[일지] 2025.01.14

김재만·2026년 1월 13일

작업한 것

  • TDD
    • Dollar 객체 작성 > 초록불 켜기
  • in-c
    • spring-boot 프로젝트 재생성 및 브랜치로 반복 연습 구조 변경
    • 연습 계획 수립(gemini가 만들어줌)
      # 가벼운 인증 구현 계획 (Lightweight Authentication Implementation Plan)
      이 계획은 반복적인 백엔드 구현 연습을 위해 보일러플레이트(boilerplate)를 최소화하면서 인증 기능을 구현하는 옵션들을 제안합니다.
      ## 사용자 확인 사항
      > [!IMPORTANT]
      > **Spring Boot 버전 관련**: [build.gradle.kts](file:///Users/gimjaeman/Desktop/coding/practice/in-c-backend/build.gradle.kts)에서 버전이 `4.0.1`로 설정되어 있습니다. 현재 Spring Boot 4는 공식 출시 전이므로(현재 최신은 3.4.x), 의도된 설정이 아니라면 안정성을 위해 `3.4.1` 등으로 조정을 검토해 보세요. (사용자께서 다시 4.0.1로 복구하셨으므로 이 설정을 유지하겠습니다.)
      ## 제안하는 접근 방식
      ### 옵션 1: HandlerInterceptor (연습용으로 가장 추천)
      Spring Security 프레임워크의 복잡함 없이, Spring Web의 표준 기능을 사용하여 요청 헤더의 토큰을 체크하는 방식입니다.
      **장점:**
      - 추가 의존성 없음 (Spring Web만 사용).
      - "마법" 같은 내부 필터 없이 로직의 모든 단계를 직접 볼 수 있음.
      - 구현 속도가 매우 빠르고 테스트에서 모킹(Mocking)하기 쉬움.
      **변경 예정 사항:**
      - [신규] [config/WebConfig.java](file:///Users/gimjaeman/Desktop/coding/practice/in-c-backend/src/main/java/com/example/in_c_backend/config/WebConfig.java): 인터셉터 등록.
      - [신규] [interceptor/AuthInterceptor.java](file:///Users/gimjaeman/Desktop/coding/practice/in-c-backend/src/main/java/com/example/in_c_backend/interceptor/AuthInterceptor.java): `X-AUTH-TOKEN` 헤더 체크 로직.
      ---
      ### 옵션 2: Spring Security + Basic Auth
      표준적인 방식이지만, 작은 연습용 프로젝트에서는 다소 무겁거나 내부 동작이 불투명할 수 있습니다.
      **장점:**
      - 실제 산업 표준 프레임워크를 익힐 수 있음.
      - 로그인/로그아웃 처리가 내장되어 있음.
      **변경 예정 사항:**
      - [수정] [build.gradle.kts](file:///Users/gimjaeman/Desktop/coding/practice/in-c-backend/build.gradle.kts): `spring-boot-starter-security` 의존성 추가.
      - [신규] `config/SecurityConfig.java`: 인메모리 유저 및 접근 권한 설정.
      ---
      ### 옵션 3: JWT (현대적인 웹 표준)
      실제 API 개발 연습에 가장 좋지만, 초기 설정 코드(Boilerplate)가 많습니다.
      **장점:**
      - 실제 서비스에서 사용하는 상태 없는(stateless) 인증 방식.
      - CORS 및 보안 베스트 프렉티스를 학습하기 좋음.
      **변경 예정 사항:**
      - [수정] [build.gradle.kts](file:///Users/gimjaeman/Desktop/coding/practice/in-c-backend/build.gradle.kts): JWT 라이브러리 추가.
      - [신규] `security/JwtTokenProvider.java`
      - [신규] `security/JwtFilter.java`
      ## 검증 계획
      ### 자동화 테스트
      - `./gradlew test`를 실행하여 기본 연결 확인.
      - `MockMvc` 테스트를 작성하여 토큰이 없는 경우(401)와 유효한 토큰이 있는 경우(200)를 검증.
      ### 수동 검증
      - Postman 또는 `curl`을 사용하여 `X-AUTH-TOKEN` 헤더 포함 여부에 따른 응답 확인.

배운 것

  • Java 컴파일러는 디렉토리 경로에 따라 요구하는 java파일 구조가 있다.
    • ex) src/main/java/com/inc/tdd_practice/Dollar.java의 경우 com.inc.tdd_practice로 패키징 되길 기대한다.
      ⇒ 따라서 해당 파일에 package com.inc.tdd_practice를 작성하도록 권고한다

다음 작업

  • TDD 초록불 켜기 세부 단계 나눠서 커밋하기
  • HandlerInterceptor로 인증기능 구현

마무리

슬슬 근육 붙는다잉

profile
듣는 것을 좋아하는 개발자입니다

0개의 댓글