개발
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 메서드 적용
@DeleteMappingREST 스타일로 개선.
7. POSTMAN 활용
/api/v1/postsAPI 테스트 진행.
8. JSON 요청 처리
@RequestBodyJSON → 객체 자동 변환.
9. Validation 처리
@ValidREST 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 기반 구조로 점점 실제 스프링과 비슷하게 발전하고 있다.