목록으로
개발

Day 58 - Contract pt.3

·2분 읽기
데브코스백엔드부트캠프프로그래머스

이 글은 2026년 05월 27일 작성된 글입니다.

오늘은 REST API 테스트 강화와 Swagger 문서 자동화, 그리고 IoC 컨테이너 구조 확장을 진행했다.


1. 댓글 삭제 기능 구현

댓글 삭제 API를 구현했다.

@Transactional
public void delete(PostComment postComment)

2. orphanRemoval 과 더티체킹

@OneToMany(orphanRemoval = true)

@Transactional 이 있어야 더티체킹이 동작한다.


3. 조회 전용 트랜잭션

@Transactional(readOnly = true)

조회 메서드 성능 최적화 적용.


4. RsData 응답 구조

{
  "resultCode": "200-1",
  "msg": "댓글 삭제 완료"
}

공통 응답 구조 적용.


5. 제네릭 적용

RsData<PostDto>

타입 안정성 강화.


6. DELETE 메서드 적용

@DeleteMapping

REST 스타일로 개선.


7. POSTMAN 활용

/api/v1/posts

API 테스트 진행.


8. JSON 요청 처리

@RequestBody

JSON → 객체 자동 변환.


9. Validation 처리

@Valid

REST API에서는 BindingResult를 거의 사용하지 않는다.


10. SpringDoc 도입

implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.9")

Swagger 기반 OPEN API 문서 자동 생성.


11. Swagger UI

http://localhost:8080/swagger-ui/index.html

브라우저에서 API 테스트 가능.


12. CORS 처리

Access-Control-Allow-Origin

외부 fetch 요청 허용 설정.


IoC 컨테이너 확장

13. BeanDefinition 기반 구조

Map<String, BeanDefinition>

빈 생성 정보를 저장.


14. @Bean 메서드 기반 생성

new BeanDefinition<>(
    TestJacksonConfig.class,
    "testBaseJavaTimeModule"
)

메서드 기반 빈 생성 지원.


15. reflections 라이브러리 활용

implementation("org.reflections:reflections:0.10.2")

패키지 스캔 자동화 구현.


✅ 정리

  • REST API에서는 상태코드와 응답 구조를 명확하게 관리하는 것이 중요하다.
  • SpringDoc을 통해 Swagger 기반 문서를 자동 생성할 수 있었다.
  • CORS 설정을 통해 다른 서버에서 오는 fetch 요청도 허용할 수 있었다.
  • IoC 컨테이너는 BeanDefinition 기반 구조로 점점 실제 스프링과 비슷하게 발전하고 있다.
← 목록으로
데브코스백엔드부트캠프프로그래머스