본문 바로가기
반응형
SMALL

분류 전체보기120

단위 테스트 (@WebMvcTest, @DataJpaTest) 스프링 부트 단위 테스트 기본 개념 구분 설명 단위 테스트(Unit Test)특정 클래스(컨트롤러, 서비스, 리포지토리)를 독립적으로 테스트통합 테스트(Integration Test)실제 스프링 애플리케이션 컨텍스트를 로딩해 전체 구성 요소를 테스트1. @WebMvcTest – 컨트롤러 단위 테스트목적Controller 레이어만 테스트서비스, DB 등은 Mock으로 처리예제@WebMvcTest(MemberController.class)class MemberControllerTest { @Autowired private MockMvc mockMvc; @MockBean private MemberService memberService; @Test void getMember_응답.. 2025. 4. 15.
OAuth2 로그인(Google, Kakao 등) OAuth2 로그인 기본 흐름사용자가 소셜 로그인 버튼 클릭클라이언트가 인증 서버(Google 등)로 리디렉션사용자 로그인 → 인증 코드 발급서버가 인증 코드를 통해 액세스 토큰 발급사용자 정보 요청 → 로그인 처리1. 의존성 추가build.gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' implementation 'org.springframework.boot:spring-boot-starter-security'}2. application.yml 설정 (Google 기준)spring: security: oauth2: client: regist.. 2025. 4. 15.
JWT(Json Web Token) 인증 JWT 인증이란?정의**JWT(Json Web Token)**은 인증 정보를 담은 서명된 토큰을 클라이언트에 전달하여,세션 없이 Stateless하게 사용자 인증을 유지하는 방식입니다.🧱 JWT 구조JWT는 3개의 부분으로 구성됩니다:HEADER.PAYLOAD.SIGNATURE 시:eyJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6ImRhbmJpIiwicm9sZXMiOlsiVVNFUiJdfQ.sdf934jfsd98fsdljf934jsdf 구성 요소 설명 Header토큰 타입 + 알고리즘 정보Payload사용자 정보(Claims)Signature비밀 키를 사용한 서명JWT 인증 전체 흐름사용자가 로그인 시도 (ID/PW)서버가 인증 후 JWT 생성클라이언트에 JWT 전달 (HTTP 응답).. 2025. 4. 15.
로그인 & 회원가입 구현 로그인 & 회원가입 구현 개요기술 스택Spring BootSpring SecurityH2 / MySQLJPABCryptPasswordEncoder (비밀번호 암호화)1. 의존성 설정 (build.gradle)dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring.. 2025. 4. 15.
Spring Security 기본 설정 Spring Security 기본 설정 가이드1. 의존성 추가build.gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-security'}이 한 줄만 추가하면 기본 보안 설정이 자동 적용됩니다.2. 기본 동작 확인의존성을 추가하면:모든 요청은 기본적으로 인증 필요/login 경로의 기본 로그인 폼 제공콘솔에 출력된 임시 사용자 비밀번호로 로그인 가능예시Using generated security password: 78d7c7f2-xxxx-4ff5-bd44-xxxxxx 기본 사용자: user기본 비밀번호: 콘솔 출력값3. 사용자 정의 보안 설정SecurityConfig 클래스 생성@Configuratio.. 2025. 4. 15.
DTO, 응답 포맷 구조화 1. DTO란?DTO(Data Transfer Object)란, 데이터 전송을 위한 전용 객체로, 엔티티(Entity)와 분리해서 클라이언트와 통신합니다.왜 DTO를 써야 하나요? 이유 설명 보안엔티티 직접 노출 시 DB 필드까지 노출될 수 있음유연성API 요청/응답 포맷 변경이 쉬움계층 분리Entity ↔ DTO 분리로 테스트 및 유지보수 용이불필요한 필드 제거클라이언트가 필요한 정보만 전달 가능DTO 예시public class MemberRequestDto { @NotBlank private String name; @Email private String email; private int age; // 생성자, getter/setter 생략}public class.. 2025. 4. 15.
LIST