본문 바로가기

Study

[내일배움캠프 TIL] 3일차 - Spring 심화

728x90
반응형

오늘 Spring 강의를 완강하였습니다.

카카오 로그인 연동하는 것을 해보았고,

테스트 코드를 어떻게 Spring에서 작성하는지 알아보았습니다.

실무에서 테스트 코드를 잘 쓰지 않았었는데, 앞으로 많이 활용해봐야겠습니다.

 

1. 오늘의 학습 키워드

 

  • Page (Paging & Sort)
  • 카카오 로그인 (OAuth 2.0)
  • 단위 테스트 & 통합 테스트
  • Given-When-Then 패턴
  • Mockito (Mock 객체 활용)
  • AOP (Aspect Oriented Programming)
    • 어드바이스 (Advice)
    • 포인트컷 (Pointcut) & 표현식

 

 

2. 핵심 키워드 상세 정리

Page (Paging & Sort)

  • 정의: 대량의 데이터를 일정 크기로 나누어 제공하는 기술입니다.
  • 특징: Spring Data JPA의 Pageable 인터페이스를 사용하여 쿼리에 LIMIT와 OFFSET을 자동으로 적용하며, 정렬(Sort) 조건도 함께 처리할 수 있습니다.

카카오 로그인 (OAuth 2.0)

  • 정의: 외부 서비스(카카오)의 인증 정보를 활용하여 우리 서비스에 로그인하는 기능입니다.
  • 흐름: 인가 코드 받기 → 토큰 받기 → 사용자 정보 가져오기 순으로 진행되며, 이를 통해 사용자의 번거로운 회원가입 절차를 줄일 수 있습니다.

단위 테스트 vs 통합 테스트

  • 단위 테스트(Unit Test): 하나의 모듈(클래스나 메서드)을 독립적으로 테스트합니다. 속도가 매우 빠르고 버그를 찾기 쉽습니다.
  • 통합 테스트(Integration Test): 여러 모듈이 연결된 상태(DB, 스프링 컨테이너 등)를 테스트합니다. 실제 환경과 유사하게 검증할 수 있습니다.

Given-When-Then 패턴

  • Given: 테스트를 수행하기 위한 준비 단계 (어떤 상황이 주어졌을 때)
  • When: 테스트하고자 하는 핵심 로직을 실행하는 단계 (무엇을 했을 때)
  • Then: 실행 결과를 검증(Assert)하는 단계 (어떤 결과가 나와야 한다)

Mockito

  • 정의: 실제 객체 대신 가짜 객체(Mock)를 만들어 테스트를 도와주는 라이브러리입니다.
  • 역할: 의존성이 있는 외부 서비스나 DB 연결 없이도 특정 메서드의 반환값을 가상으로 설정하여 독립적인 테스트 환경을 구축해 줍니다.

AOP (Aspect Oriented Programming)

  • 정의: '관점 지향 프로그래밍'으로, 핵심 비즈니스 로직과 공통 관심사(로깅, 보안, 트랜잭션 등)를 분리하는 기술입니다.
  • Advice: "언제" 공통 로직을 실행할지 정의합니다. (실행 전, 후, 예외 발생 시 등)
  • Pointcut: "어디에" 적용할지 정의합니다. 주로 포인트컷 표현식(execution(...))을 사용하여 특정 패키지나 메서드를 지정합니다.

 

 

내일부터는 MSA를 공부할 예정입니다.

반응형