java 55

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

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

Java Spring_ @Mapping

@Mapping 어노테이션은 MapStruct를 사용하여 자동으로 DTO와 Entity 객체를 매핑해 줄 때 사용되는 어노테이션 중 하나입니다. @Mapping은 각 매핑 대상에 대한 정보를 제공하여 매핑 프로세스를 구성하며 다음과 같은 속성을 갖습니다. source : 매핑되는 객체에서 가져올 속성 이름입니다. target : 매핑 대상 객체의 속성 이름입니다. dateFormat : 날짜 형식을 변경하는 데 사용됩니다. qualifiedByName : 매핑에 사용할 메소드 이름을 지정합니다. ignore : 매핑을 무시합니다. defaultValue : 매핑 대상 객체의 속성 값이 null일 때 기본값을 설정합니다. 예를 들어, 다음과 같은 객체가 있다고 가정해 봅시다. public class Sou..

Spring 2023.03.05

Java Spring JPA (Cascade vs EntityManager.persist())

Cascade JPA에서 Cascade란 부모 엔티티와 관련된 자식 엔티티의 상태 변화를 전파시키는 옵션입니다. 즉, 부모 엔티티의 상태가 변경되면, 자식 엔티티의 상태도 같이 변경되도록 자동으로 처리해 주는 기능입니다. Cascade의 장단점 Cascade를 사용하면 부모 엔티티를 저장할 때 자식 엔티티도 함께 저장할 수 있어서 코드를 간략화하고 편리하게 사용할 수 있습니다. 또한, 저장, 삭제, 수정 등을 한 번에 처리할 수 있기 때문에 효율적입니다. 하지만, Cascade를 사용하면 자식 엔티티를 저장할 때 부모 엔티티가 먼저 저장되어 있어야 하기 때문에 이를 고려하여 코드를 작성해야 합니다. 또한, 자식 엔티티를 일괄적으로 처리하기 때문에 필요하지 않은 자식 엔티티까지 저장되는 경우가 생길 수 있..

Spring 2023.03.05

Spring Framework_ApplicationEventPublisher,@EventListener

ApplicationEventPublisher Interface Spring Framework는 이벤트 기반 프로그래밍(Event-driven programming)을 지원합니다. 이벤트 기반 프로그래밍은 특정 이벤트 발생 시 해당 이벤트를 처리하는 동작을 하는 방식입니다. Spring Framework에서는 이벤트 발생 시 특정 작업을 수행하는 기능을 ApplicationEventPublisher와 @EventListener를 통해 제공합니다. @FunctionalInterface public interface ApplicationEventPublisher { /** * Notify all matching listeners registered with this * application of an app..

Spring 2023.03.03

Spring을 이용해 이메일 보내는 방법

javax.mail 라이브러리 자바에서 구글 이메일을 보내는 방법에는 여러 가지가 있지만, 그중에서 가장 간단하게 구현할 수 있는 방법은 javax.mail 라이브러리를 사용하는 것입니다. 이 라이브러리를 사용하기 위해서는 우선 메일 서버의 호스트 이름과 포트 번호, 계정 정보 등을 설정해야 합니다. 이후에는 메일을 보낼 때 필요한 정보를 설정한 후, 메일을 보내는 코드를 작성하면 됩니다. 아래는 javax.mail 라이브러리를 사용하여 구글 이메일을 보내는 코드입니다. import javax.mail.*; import javax.mail.internet.*; import java.util.Properties; public class EmailSender { public static void main(S..

Spring 2023.03.02