Spring Boot (50) 썸네일형 리스트형 [Spring boot] 프록시 객체(Proxy Object) 프록시 객체란?원본 객체를 감싸는 객체로 실제 객체를 대신하여 요청을 처리하는 객체입니다.메소드 호출을 가로채 추가적인 기능(로깅, 트랜잭션, 보안 등)을 수행할 수 있도록 합니다. 프록시 객체의 주요 특징AOP 적용 시 프록시 객체 사용AOP는 메소드 실행 전후에 부가 기능을 삽입하기 위해 프록시 객체를 활용합니다.@Transactional을 적용하면 대상 객체 대신 트랜잭션을 관리하는 프록시 객체를 생성동적 프록시 방식런타임에 동적으로 프록시 객체 생성트랜잭션 관리와 관련@Transactional을 사용할 경우 해당 객체의 메소드를 실행할 때 프록시를 통해 트랜잭션을 시작하고 정상적으로 종료되면 커밋을 하고 예외가 발생할 때는 롤백을 합니다. 프록시 객체 종류JDK 프록시 객체인터페이스를 구현한 객.. [Spring Boot] 상속관계 매핑 전략 개발을 진행하던 중 스, 드, 메 테이블을 작성하였고 밑의 그림처럼 테이블을 작성하였습니다.스드메의 공통 속성들을 상품 테이블로 묶고 1대1 관계로 연관관계를 설정하였으며 개발에 들어가니 너무 귀찮은 작업을 하기 시작했습니다. 처음 개발을 진행했을 때 드레스 1개 상품을 등록을 할 때 상품 테이블에 데이터 1개 드레스 테이블에 데이터 1개를 저장하고 있었습니다. 하지만 문뜩 드는 생각은 이렇게 번거롭고 귀찮은 작업을 무수히 많은 사람들이 했을텐데 간편하게 만든게 있지 않을까? 라는 생각을 찾아보았습니다. 상속 관계 매핑에 대해서 검색을 하니 바로 검색으로 나왔었습니다.https://victorydntmd.tistory.com/209 [Spring JPA] 상속 ( JOINED 전략을 중심으로 )객체지향.. [Spring Boot] @PrePersist 어노테이션 @PrePersist란?JPA의 라이프사이클 이벤트 어노테이션 중 하나로, 엔티티가 영속화(저장)되기 전에 실행할 로직을 정의할 때 사용EntityManager.persist() 혹은 save() 중 하나라도 호출이 될 때 데이터베이스에 INSERT 되기 직전 실행되는 메소드 예제 : 유저 가입일 자동 값 입력UserEntityimport jakarta.persistence.*;import lombok.*;import java.time.LocalDateTime;@Getter@Entity@Table(name = "user")@AllArgsConstructor@NoArgsConstructor@Builder@ToStringpublic class UserEntity { @Id @GeneratedVa.. [Spring Boot] HTTP Body 암호화 및 간단한 예제 민감한 데이터 전송 시 보안 방법1. 전송 시 사용하는 보안 방식TLS(Transport Layer Security) 또는 SSL(Secure Sockets Layer) 프로토콜은 인터넷을 통한 데이터 전송에서 암호화를 제공합니다.민감한 데이터를 전송할 때, 클라이언트와 서버 간의 연결을 암호화하여 중간에서 데이터가 탈취되는 것을 방지합니다.TLS는 HTTP over SSL(HTTPS)로 구현되어 웹 브라우저와 서버 간의 통신을 안전하게 암호화합니다.이 방식은 데이터 전송 중 보안을 보장하며, 연결이 안전하게 유지되도록 합니다.추가 설명:HTTPS는 HTTP 프로토콜 위에 TLS/SSL을 적용하여 데이터의 기밀성을 보장합니다. 이로 인해 중간자 공격(MITM)이나 데이터 스니핑을 방지할 수 있습니다. .. [Spring Boot] 로그 파일 생성하기 1. 사전 지식@Slf4j@Slf4j는 SLF4J(Simple Logging Facade for Java)의 추상화를 사용하며, 디폴트로 Logback이 구현체로 설정됩니다.Logback은 Spring Boot에서 기본 제공되는 로깅 프레임워크로, XML 또는 Groovy 파일을 통해 유연한 설정을 제공합니다. 2. Logback 설정 가이드Logback 설정 파일 생성위치: src/main/resources/logback.xml기본 구성 %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n 구성 요소 설명로그 메시지를 출력하는 대상 설정.여기서 STDOUT은 콘솔에 로그를 출력하기 위한 App.. [Spring Boot] Slf4j와 Logback SLF4J란?SLF4J(Simple Logging Facade for Java)는 Java 로깅을 위한 추상화 계층으로, 개발자가 특정 로깅 구현체에 종속되지 않도록 돕습니다. SLF4J를 사용하면 다양한 로깅 프레임워크(Logback, Log4j 등)를 교체하거나 적용하는 작업이 단순해집니다.SLF4J의 특징추상화 계층 제공로깅 구현체(Logback, Log4j 등)를 선택적으로 사용 가능.코드 변경 없이 구현체를 교체할 수 있음.Spring 프레임워크에서는 기본적으로 Logback을 구현체로 사용. Logback의 주요 특징Logback은 SLF4J의 기본 구현체로, 성능과 유연성을 중점에 둔 로깅 프레임워크입니다.1. 비동기 로깅별도의 스레드를 통해 로그 메시지를 처리하여 메인 스레드의 지연을 최소.. [Spring Boot] Lombok과 직렬화/역직렬화 Lombok과 직렬화/역직렬화: 문제와 해결 방법Lombok의 @Getter, @Setter, @AllArgsConstructor, @NoArgsConstructor는 코드 작성의 편리함을 제공합니다. 그러나 Java의 직렬화/역직렬화(Jackson, Gson, 기본 직렬화 등)와 함께 사용할 때 문제가 발생하기도 합니다. 이번 글에서는 이러한 문제를 다루고, 해결 방법과 설계 가이드를 제시합니다. 직렬화와 역직렬화란?1. 직렬화(Serialization)정의: 객체를 바이트 스트림으로 변환하여 파일 저장, 네트워크 전송 등에 사용할 수 있도록 만드는 과정입니다.사용 사례:객체 데이터를 파일에 저장할 때.HTTP API 응답으로 JSON 형식의 데이터를 반환할 때.2. 역직렬화(Deserializati.. [Spring Boot] 간단한 실시간 웹소켓 채팅 구현하기 소켓이란?소켓(Socket)은 네트워크 상에서 서로 다른 프로그램이 데이터를 송수신하기 위한 종단점입니다.소켓은 IP 주소와 포트 번호를 기반으로 통신하며, 클라이언트와 서버 간의 연결을 유지하거나 메시지를 교환하는 데 사용됩니다.소켓의 주요 개념IP 주소: 네트워크 상에서 컴퓨터를 식별하는 고유 주소.포트 번호: 특정 애플리케이션(프로세스)을 식별하는 번호.소켓 연결: 클라이언트와 서버가 데이터를 주고받기 위해 소켓을 통해 이루어지는 연결. 웹소켓(WebSocket)이란?기존 HTTP 프로토콜은 요청-응답 기반으로 작동하여 실시간 양방향 통신이 어렵습니다.웹소켓(WebSocket)은 이러한 한계를 극복하기 위해 만들어진 프로토콜로,서버와 클라이언트 간에 지속적인 연결을 유지하며,실시간으로 양방향 데이.. 이전 1 2 3 4 ··· 7 다음 목록 더보기