1. 소개OAuth2 인증이란?OAuth(”Open Authorization”)는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로 사용되는, 접근 위임을 위한 개방형 표준이다.Spring Boot에서 OAuth2를 사용하면 소셜 로그인(카카오, 구글, 네이버 등) 또는 OAuth2 인증 서버와의 연동을 쉽게 구현할 수 있다.Spring Security의 OAuth2 Client 기능을 활용하면, 인증 및 액세스 토큰 관리까지 자동으로 처리할 수 있다. 기본 개념OAuth2는 사용자의 로그인 정보를 직접 다루지 않고, 외부 서비스(카카오, 구글 등)을 통해 인증을 수행하는 프로토콜이를 통해 보안성을..
1. 소개Swagger란? REST API 문서를 자동으로 생성하고 테스트할 수 있도록 도와주는 도구Spring Boot에서 API를 만들면 보통 어떤 엔드포인트가 있고, 어떤 요청과 응답이 있는지 문서를 만들어야 하는데, Swagger를 사용하면 이 과정을 자동화할 수 있다. 기능API 문서를 자동으로 생성코드에 어노테이션을 추가하면 문서가 자동으로 생성됨API를 웹 UI에서 바로 테스트Swagger UI를 통해 API를 직접 호출하고 응답을 확인할 수 있음API 명세를 JSON/YAML 형식으로 제공해서 다른 개발자나 클라이언트가 쉽게 연동OpenAPI Specification(OAS) 기반으로 API를 표준화할 수 있음코드와 동기화된 문서 유지코드 변경 시 API 문서도 자동으로 업데이트 2. S..
1. DB Replication 1) Master-Slave 구조Master DB: 데이터 변경(INSERT, UPDATE, DELETE) 담당Slave DB: 읽기(SELECT) 요청 담당 2) Replication 구현 흐름Master-Slave 데이터소스 설정동적으로 DataSource 선택Repository에서 @Transactional 사용하여 자동 분배 2. 데이터베이스 설정1) Master DB 설정1. cnf 파일 수정server-id=1log-bin=mysql-binbinlog-do-db=mydatabase # 복제할 DB 지정 2. Master DB에서 Replication 계정 생성CREATE USER 'replica_user'@'%' IDENTIFIED BY 'replica_p..
1. 소개1. Redis란?Redis(REmote DIctionary Server)는 인메모리(NoSQL) 데이터 저장소이다.즉, 데이터를 메모리에 저장해서 빠르게 읽고 쓸 수 있는 데이터베이스라고 생각하면 될 것 같다. 빠른 속도와 다양한 데이터 구조를 지원해 캐싱용도로 많이 사용된다.Spring Boot와 함께 Redis를 활용하면 데이터베이스나 외부 API 호출을 최소화하면서 성능을 향상시킬 수 있다. 2. 사용하는 이유고속 데이터 처리: 메모리 기반 저장소라서 DB보다 훨씬 빠름부하 감소: 자주 사용하는 데이터를 캐싱하여 DB 부하를 줄임TTL(만료 시간) 설정 가능: 특정 시간 후 자동 삭제 가능분산 환경 지원: 여러 인스턴스에서 공유 가능 2. 프로젝트 설정 (Spring Boot + Redi..
1. 소개1. Spring Boot Starter란?Spring Boot Starter는 특정 기능을 쉽게 설정하고 사용할 수 있도록 도와주는 라이브러리 모음이다.일반적으로 여러 라이브러리를 함께 조합해야 하는 경우가 많은데, Starter를 사용하면 번거로운 설정 없이 필요한 기능을 바로 적용할 수 있습니다. 2. 특징1. 의존성 관리 편리필요한 라이브러리를 한 번에 추가 가능2. 자동 설정 지원추가적인 설정 없이도 기본 기능 제공3. 버전 관리 용이Spring Boot 버전에 맞춰 호환되는 라이브러리 제공 3. 주요 모듈1. 웹 애플리케이션 관련spring-boot-starter-web: RESTful API 개발 및 웹 애플리케이션을 위한 기본적인 설정 포함 (Tomcat도 포함)spring-boo..
1. 소개Spring Security란?Spring 기반 애플리케이션의 보안을 담당하는 프레임워크인증(Authentication)과 인가(Authorization)를 중심으로 애플리케이션을 보호하는 역할을 한다.한마디로 인증, 권한 관리 그리고 데이터 보호 기능을 포함하여 웹 개발 과정에서 필수적인 사용자 관리 기능 ex) 로그인 등을 구현하는데 도움을 주는 프레임워크 주요기능1. 인증 (Authentication)사용자가 누구인지 확인하는 과정으로, 일반적으로 로그인 과정을 의미한다.사용자 정보 확인: ID/PW, OAuth2, JWT, LDAP, SAML 등 다양한 인증 방식을 지원인증 관리자(AuthenticationManager): 사용자의 인증 정보를 검증하고 인증 여부를 결정하는 핵심 컴포넌트..