java58 [Spring] SpringDoc으로 REST API 문서 자동화하기 - Swagger UI 사용법 1. API 문서란?API 문서는 API를 어떻게 사용해야 하는지 설명하는 문서이다.프론트엔드 개발자나 다른 백엔드 개발자가 API를 사용할 때 다음과 같은 정보를 확인할 수 있도록 제공한다.어떤 URL로 요청하는지어떤 HTTP Method를 사용하는지어떤 데이터를 전달해야 하는지어떤 응답을 받는지요청 및 응답 데이터의 형식은 무엇인지2. SpringDoc이란?SpringDoc은 Spring Boot 프로젝트의 API 정보를 분석해서 OpenAPI 문서를 자동으로 생성해주는 라이브러리이다.내부적으로 Swagger를 활용하기 때문에 개발자가 API 정보를 일일이 문서로 작성하지 않아도 Swagger UI를 통해 API를 확인할 수 있다.의존성 추가build.gradle.kts에 다음 의존성을 추가한다.im.. 2026. 8. 14. [Spring] REST API 응답 처리하기 - @RequestBody와 ResponseEntity 1. @RequestBody로 JSON 데이터 받기REST API에서는 클라이언트가 요청 본문에 JSON 데이터를 담아 서버로 전달하는 경우가 많다.이때 @RequestBody를 사용하면 JSON 데이터를 Java 객체로 변환해서 받을 수 있다.@PostMappingpublic RsData write( @Valid @RequestBody PostWriteRequestBody reqBody) { Post post = postService.write(reqBody.title, reqBody.content); return new RsData( "201-1", "%d번 글이 성공적으로 작성되었습니다.".formatted(post.getId()), .. 2026. 8. 13. REST API 응답 형식 통일하기 - HTTP 상태 코드와 RsData 1. REST API의 응답을 JSON으로 통일하기REST API에서는 프론트엔드와 서버가 데이터를 주고받기 때문에 일관된 응답 형식을 사용하는 것이 중요하다.조회 API에서는 JSON을 반환하면서 추가, 수정, 삭제 API에서는 평문을 반환한다면 프론트엔드에서 각각 다른 방식으로 응답을 처리해야 한다.예를 들어 다음과 같은 응답이 있다고 가정한다.게시물이 삭제되었습니다.문자열만 반환하기 때문에 프론트엔드에서는 이 메시지가 성공을 의미하는지, 실패를 의미하는지 별도로 판단해야 한다.따라서 REST API에서는 응답을 일정한 JSON 구조로 통일하는 것이 좋다.2. 응답에 결과 코드와 메시지를 사용하기비즈니스 로직이 복잡해지면 단순히 HTTP 상태 코드만으로 모든 결과를 표현하기 어려워진다.세부적인 상황을.. 2026. 8. 12. [Spring] REST API 버저닝과 @RequestMapping 1. API 버저닝이란?API 버저닝(API Versioning)은 API의 버전을 관리하여 기존 클라이언트와의 하위 호환성을 유지하면서 API를 발전시키는 방법이다.API를 운영하다 보면 기존 API의 응답 형식이나 기능을 변경해야 하는 상황이 발생할 수 있다.이때 기존 클라이언트가 갑자기 동작하지 않도록 기존 버전을 유지하면서 새로운 버전을 제공할 수 있다.예를 들어 기존 API가 다음과 같다고 가정한다./api/v1/posts이후 API의 구조가 변경되었다면 기존 API를 수정하는 대신 새로운 버전을 만들 수 있다./api/v2/posts기존 클라이언트는 v1을 계속 사용하고, 새로운 클라이언트는 v2를 사용하도록 할 수 있다.2. API 버저닝이 필요한 이유API 버저닝을 사용하는 주요 이유는 다.. 2026. 8. 12. [Spring] orphanRemoval JPA에서 @OneToMany 관계를 사용하다 보면 부모 엔티티에서 자식 엔티티를 제거했을 때 자식 데이터까지 함께 삭제하고 싶은 경우가 있다.이때 사용할 수 있는 옵션이 orphanRemoval이다.1. orphanRemoval이란?orphanRemoval = true를 설정하면 부모 엔티티와의 연관관계가 끊어진 자식 엔티티를 DB에서도 삭제할 수 있다.예를 들어 하나의 게시글(Post)에 여러 개의 댓글(PostComment)이 있다고 가정한다.@Entitypublic class Post extends BaseEntity { @OneToMany( mappedBy = "post", cascade = {CascadeType.PERSIST, CascadeType.REMOVE}.. 2026. 8. 11. [Spring] HTML Form을 이용해 게시글 작성하기 웹 애플리케이션에서 사용자가 게시글을 작성하려면 입력할 수 있는 Form을 제공하고, 사용자가 입력한 데이터를 서버로 전송하여 저장하는 과정이 필요하다.이번에는 Spring Boot에서 HTML Form을 사용하여 게시글 작성 기능을 구현해 보았다.1. HTML Form 만들기먼저 사용자가 제목과 내용을 입력할 수 있는 Form을 만든다. 은 사용자가 입력한 데이터를 서버로 전송하기 위한 HTML 요소이다.여기서 input과 textarea는 입력 방식에 차이가 있다.input : 한 줄의 텍스트를 입력할 때 사용한다.textarea : 여러 줄의 텍스트를 입력할 때 사용한다.게시글 작성에서는 제목은 한 줄로 입력하고, 내용은 여러 줄로 입력할 수 있으므로 각각 inpu.. 2026. 8. 10. 이전 1 2 3 4 ··· 10 다음