Spring 15

Ngrok - 특징 및 사용법 (로컬 서버를 공개 서버로)

What is a NgrokNgrok은 로컬 개발 환경에서 인터넷을 통해 웹 애플리케이션에 안전하게 접근할 수 있도록 해주는 도구입니다. 보안 연결을 통해 인터넷에서 서버를 실행할 수 있으며, 웹 애플리케이션을 외부에 노출시키지 않고도 테스트할 수 있습니다. Ngrok의 주요 장점은 다음과 같습니다. 1. 편리한 설치와 사용 Ngrok는 다운로드 및 설치가 간편합니다. 설치 후에는 쉽게 사용할 수 있으며, 명령어 한 줄로 로컬 개발 서버를 인터넷으로 노출시킬 수 있습니다. 2. 안전한 연결 Ngrok은 TLS/SSL 보안 연결을 사용하며, 인증서는 자동으로 생성됩니다. 이를 통해 로컬 서버에서도 안전하게 연결할 수 있으며, 외부에서도 보안적으로 안전한 연결을 통해 애플리케이션을 실행할 수 있습니다. 3...

Spring 2023.04.06

Apache Tomcat (톰캣)

What is an Apache Tomcat? Tomcat 은 자바 웹 애플리케이션 서버로, 웹 애플리케이션을 실행하기 위한 자바 서블릿 및 JSP(JavaSever Pages)를 지원하며, 다음과 같은 장점들을 가지고 있습니다. 1. 경량화된 서버 : Tomcat은 경량화된 서버로써, 가볍고 빠르게 동작합니다. 따라서 웹 애플리케이션의 배포 및 실행이 빠르게 이루어집니다. 2. 개발과 배포의 용이성 : Tomcat은 자바 웹 어플리케이션을 개발하고 배포하는 데 필요한 대부분의 기능을 제공합니다. 또한, Tomcat은 많은 개발자와 커뮤니티가 활발하게 참여하고 있기 때문에, 다양한 플로그인과 라이브러리를 사용할 수 있습니다. 3. 높은 호환성 : Tomcat은 Java Servlet, JavaServer..

Spring 2023.04.06

Spring _ JAR(Java Archive) , WAR(Web application Archive)

JAR / WAR JAR과 WAR는 둘 다 자바 애플리케이션을 패키징 하는 방식입니다. JAR은 Java Archive의 약자로, 라이브러리 모듈 또는 단일 애플리케이션을 배포할 때 사용되는 방식이며, WAR는 Web Archive의 약자로, 웹 애플리케이션을 배포할 때 사용되는 방식입니다. JAR과 WAR에는 구조적으로도 차이가 있는데 JAR 같은 경우는 폴더 구조가 없으며 메타데이터(manifest) 파일을 포함합니다. 반면 WAR는 웹 애플리케이션의 구조를 따르는 폴더 구조와 웹 관련 파일들(html, jsp, servlet 등)을 포함합니다. 이러한 차이 때문에 웹 어플리케이션을 배포하는 때 WAR는 JAR보다 훨씬 효율적이며 편리합니다. JAR 패키징 방법 기본 설정에서 어플리케이션을 build..

Spring 2023.04.06

Java Spring _ SSR(Server Side Rendering) ,CSR(Client Side Renderin

Server Side Rendering (SSR) 서버 사이드 렌더링은 말 그대로 서버에서 웹 페이지를 렌더링 하는 방식입니다. 사용자가 요청한 페이지에 대한 HTML,CSS,JavaScript 파일을 서버에서 완전히 렌더링 한 후, 클라이언트(브라우저)로 전송합니다. 이 방식의 가장 큰 장점은 초기 페이지 로딩 속도가 빠르다는 것입니다. 왜냐하면 서버에서 이미 완성된 형태로 전달되기 때문입니다. 장점 초기 로딩 속도가 빠르다. 검색 엔진 최적화(SEO)에 유리하다. 단점 서버 부하가 크다. 전체 페이지를 다시 렌더링해야 하는 경우가 많다. 주로 사용되는 경우(SSR) 1. 검색 엔진 최적화 (SEO)가 중요한 경우 : SSR을 사용하면 서버에서 렌더링된 완성된 페이지를 제공하므로 크롤러가 쉽게 콘텐츠를..

Spring 2023.03.23

MapStruct / Spring MVC에서 DTO오 Entity간의 매핑 처리하기

의존성 추가 먼저 프로젝트에 MapStruct를 추가해야 합니다. Gradle 또는 Maven 프로젝트에 다음 의존성을 추가합니다. Gradle: implementation 'org.mapstruct:mapstruct:1.4.2.Final' annotationProcessor 'org.mapstruct:mapstruct-processor:1.4.2.Final' Maven: org.mapstruct mapstruct 1.4.2.Final org.mapstruct mapstruct-processor 1.4.2.Final provided DTO와 Entity 클래스 생성 다음과 같이 DTO와 Entity 클래스를 생성합니다. @Getter @Setter @NoArgsConstructor @AllArgsCons..

Spring 2023.03.18

Spring Security 권한 부여

Spring Security는 애플리케이션에 보안을 적용할 수 있도록 도와주는 프레임워크입니다. 권한 부여는 사용자가 요청한 자원에 대한 접근을 허용하거나 거부하는 기능을 제공합니다. 이 글에서는 Spring Security의 권한 부여에 대해 간단하게 정리해 보겠습니다. 1. 권한 부여 기본 원리 Spring Security는 권한 부여를 위해 사용자의 권한과 요청 자원의 권한을 비교합니다. 사용자의 권한은 사용자가 로그인하면서 인증 과정에서 얻어지며, 요청 자원의 권한은 개발자가 설정해야 합니다. 2. 사용자의 권한 설정 사용자의 권한은 'UserDetails' 인터페이스의 구현 클래스를 이용해 설정할 수 있습니다. 일반적으로 'User' 클래스를 사용해 권한을 설정하며, 다음과 같이 생성할 수 있습..

Spring 2023.03.17

Spring Security: 강력한 웹 보안 프레임워크

웹 애플리케이션 개발에서 보안은 필수적 요소인데 , Spring Security는 Spring 프레임워크의 일부로 웹 애플리케이션의 보안을 강화하는 데 사용되는 강력한 보안 프레임워크이다. 이 글에서 Spring Security의 기본 개념과 주요 기능을 알아보고, 간단한 예제를 통해 적용하는 방법을 알아보겠다. Spring Security란? Spring Security는 인증(Authentication)과 권한부여(Authorization)를 중심으로 하는 웹 애플리케이션 보안 프레임워크이다. 기본적으로 세션 기반의 인증을 제공하며, 보다 고급기능들을 포함하고 있다. 주요 기능은 다음과 같다. 1. 인증(Authentication) - 사용자의 자격을 확인하는 과정 2. 권한부여(Authorizati..

Spring 2023.03.16

Spring MVC 프레임워크의 요청처리 과정

1. 클라이언트가 웹 브라우저에서 HTTP 요청을 전송 2. DispatcherServlet 이 이 요청을 받아들임 3. DispatcherServlet은 요청 처리를 위해 HandlerMapping에게 요청을 전달 4. HandlerMapping은 요청 URL과 일치하는 컨트롤러(Controller)를 찾아서 DispatcherServlet에게 반환 5. DispatcherServlet은 HandlerAdapter에게 Controller 호출을 위임 6. HandlerAdapter는 Controller를 호출해서 Model 데이터와 View 이름을 반환 7. DispatcherServlet 은 ViewResolver에게 view 이름을 전달하며 검색 요청 8. ViewResolver는 View 이름을 ..

기술면접 2023.03.13

Java Spring _ MockMvc를 사용한 API 테스트

MockMvc를 사용한 API 테스트 Spring MVC 애플리케이션에서 API를 작성할 때, MockMvc를 사용하여 API의 테스트를 수행할 수 있습니다. MockMvc를 사용하면, API를 실제로 호출하지 않고도 API의 동작을 시뮬레이션하여 API의 동작을 검증할 수 있습니다. 이번 포스트에서는 MockMvc를 사용하여 API를 테스트하는 방법에 대해 알아보겠습니다. MockMvc 설정 MockMvc를 사용하려면, 먼저 MockMvc를 초기화해야 합니다. MockMvc는 Spring MVC의 구성 요소를 사용하여 동작하므로, 애플리케이션의 ApplicationContext를 사용하여 MockMvc를 초기화해야 합니다. 아래는 MockMvc를 초기화하는 예제 코드입니다. @RunWith(Spring..

Spring 2023.03.06

Java Spring_@Builder

@Builder @Builder는 주석으로 Lombok에서 제공하는 어노테이션으로, 해당 클래스에 대해 빌더 패턴을 생성합니다. 빌더 패턴은 객체 지향 프로그래밍에서 많은 선택적 매개변수를 가진 객체를 생성하기 위해 사용되는 생성 패턴입니다. 빌더 패턴을 사용하면 많은 속성을 가진 객체를 긴 매개변수를 사용하지 않고 생성할 수 있습니다. Java에서 클래스에 대한 빌더 패턴을 생성하는 것은 지루하고 반복적인 작업일 수 있습니다. 이때 @Builder 어노테이션을 사용하면 단 한 줄의 코드로 해당 클래스에 대해 빌더 패턴을 생성할 수 있습니다. @Builder 사용법 Java에서 @Builder 어노테이션을 사용하려면, 프로젝트에 Lombok 의존성을 추가해야 합니다. @Builder 애노테이션을 사용하기..

Spring 2023.03.05