[플레이데이터 풀스택 백엔드 9기] 6월 2주차 회고 (13주차)

FerryLa·2025년 6월 17일

서론

6월 2주차 (13주차) - (06/09 - 06/14)

06/09 : JWT (CQRS)
06/10 : JWT (Security)
06/11 : MSA
06/12 : 단위 프로젝트 (백엔드 커리큘럼)
06/13 : 단위 프로젝트 (백엔드 커리큘럼)

주말 간 약한 부분을 학습하기 위해 JPA CRUD (쇼핑몰)를 예제로 만들어보았습니다. 덕분에 더 자세히 코드를 알게 되었습니다.

이번 주 단위 프로젝트로에서도 로그인, 로그아웃 기능을 구현하며 토큰 방식을 알게 되었습니다.

1. 내용정리

[JWT]

JWT (Java Persistence API)

JWT 토큰을 활용한 보안 검증
1. 사용자가 로그인하면 서버가 JWT 토큰을 발급 (클라이언트 서비스 요청)
2. 이후 사용자는 요청을 보낼 때 이 JWT 토큰을 함께 전달
3. API Gateway 또는 서비스는 JWT 토큰을 검증하여 유효한 사용자만 요청을 처리

Security

인증 및 인가

  • 인증(Authentication): 사용자가 누구인지 확인하는 과정, 보통 아이디와 비밀번호, OAuth 토큰, API 키 등을 사용
  • 인가(Authorization) : 인증된 사용자가 특정 리소스나 기능에 접근할 권한이 있는지 확인하는 과정

Spring Security 필터를 통한 토큰 전달 과정

  1. 사용자가 로그인하면 서버에서 JWT를 발급하여 클라이언트에게 전달
  2. 헤더에 토큰 포함 서버로 요청, 클라이언트는 API 요청시 Authorization 헤더에 JWT를 포함하여 서버로 요청
  3. Spring Security 필터에서 토큰 검증
  4. SecurityContext에 사용자 정보 저장
  5. 컨트롤러에서 인증된 사용자 접근

로그인 기능

컨트롤러
@PostMapping("/login")
public ResponseEntity<ApiResponse<TokenResponse>> login(@RequestBody LoginRequest request) {
    TokenResponse token = authService.login(request); // AuthService.login(request)에서 사용자 인증 후 JWT 생성
    return ResponseEntity.ok(ApiResponse.success(token)); // ApiResponse.success(token)을 통해 응답을 표준화
    // ResponseEntity.op(...)를 사용해 HTTP상태코드와 함꼐 응답 반환
}

[MSA]

Spring Cloud - Eureka

- 클라이언트(Client)가 서비스를 호출할 때, 직접 개별 서비스에 접근하지 않고 API Gateway를 통해 요청을 보냄

2. 마무리

> 좋았던 점과 아쉬웠던 점

스프링을 열정적으로 배우려는 것은 좋았고, 연습이 많이 필요한 것 같습니다.

> 개선할 점

코드 예제 연습을 많이 할 생각입니다.

> 다음주 계획

커리큘럼 : (06/17 ~ 07/17) 데브옵스

06/16 : 프로젝트 발표, 지필평가
06/26 : PCCE 코딩테스트

08/09 : ADsP 자격증 시험
08/23 : SQLD 자격증 시험

profile
김지환

0개의 댓글