Spring Boot (47) 썸네일형 리스트형 [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)은 이러한 한계를 극복하기 위해 만들어진 프로토콜로,서버와 클라이언트 간에 지속적인 연결을 유지하며,실시간으로 양방향 데이.. [Spring Boot] AccessToken 및 RefreshToken 인증 구현하기 쿠키, 세션, 토큰이란?1. 쿠키 (Cookie)쿠키는 웹 브라우저에 저장되는 작은 데이터 조각으로, 사용자의 정보나 상태를 추적하는 데 사용됩니다.예를 들어, 사용자가 로그인할 때 서버는 로그인 정보를 쿠키로 브라우저에 저장하고, 그 후 사용자 요청이 있을 때마다 이 쿠키를 사용하여 사용자를 인증할 수 있습니다.특징:클라이언트 측에 저장됩니다.만료 시간이나 특정 정보(예: 사용자 ID, 로그인 상태)를 설정할 수 있습니다.보통 HTTP 요청 시 자동으로 서버에 전송됩니다.보안: HTTPOnly와 Secure 속성을 사용하여 보안성을 강화할 수 있습니다.2. 세션 (Session)세션은 서버 측에서 사용자의 상태 정보를 저장하는 방식입니다. 사용자가 로그인하면, 서버는 세션을 생성하여 고유한 세션 ID를.. [Spring Boot] 스프링 시큐리티 설정 스프링 시큐리티(Spring Security)란?스프링 시큐리티는 스프링 기반 웹 애플리케이션의 인증(Authentication)과 인가(Authorization) 를 담당하는 하위 프레임워크입니다.인증 (Authentication) : 사용자의 신원을 확인하는 과정 (예: 로그인)인가 (Authorization) : 인증된 사용자가 애플리케이션에서 어떤 행동을 할 수 있는지 권한을 부여하는 과정 스프링 시큐리티 기본 설정스프링 시큐리티 의존성 추가implementation 'org.springframework.boot:spring-boot-starter-security'기본 로그인 화면스프링 시큐리티 의존성을 추가하고 애플리케이션을 실행하면, 모든 경로에 기본 로그인 화면이 나타나며 인증을 요구합니다... [Spring Boot] @Configuration @Bean 사용법 스프링에서의 @Configuration과 @Bean 어노테이션@Configuration과 @Bean 어노테이션은 자바 기반 설정을 통해 스프링 빈을 등록하고 관리할 수 있게 하는 주요 어노테이션입니다. 이 두 어노테이션은 XML 기반 설정을 대체하여, 애플리케이션 구성을 더욱 명확하고 간결하게 만들어 코드 가독성과 유지보수성을 높입니다.@Configuration클래스 레벨에서 사용되며, 스프링이 해당 클래스를 설정 클래스로 인식하게 합니다.클래스 내부의 @Bean 메서드가 반환하는 객체들은 싱글턴 빈으로 관리됩니다.스프링은 @Configuration이 선언된 클래스를 프록시 객체로 관리하여, 동일한 빈을 여러 번 요청하더라도 동일한 인스턴스를 반환합니다.만약 @Configuration이 없는 클래스에서 .. 이전 1 2 3 4 ··· 6 다음