[Groupware] Spring-Boot : 테스트 코드
·
Project/Backend
📝 개요이번 프로젝트는 Spirng Boot 기반의 REST API 서버를 구축하고 기본을 익히는 과정이다. 초반에는 각 도메인에 대한 CRUD 를 개발하고 기능을 추가하는데 집중했지만, 점점 기능이 많아지고 API 요청/ 응답 케이스가 다양해지면서, 직접 서버를 띄워 일일이 Postman 으로 요청을 날리는 방식으로는 한계를 느꼈다. API 마다 다양한 예외 상황과 비즈니스 로직을 수동으로 검증하다보니 작업 속도도 느려지고, 코드 수정 시 기존 기능이 깨지는 경우도 있었다. 그래서 REST API 서버를 구축하면서 테스트 코드라는 것을 알게 되었고, 이를 적용하여 개발 속도를 높이고 각 예외에 대해서 더 견고하게 확인하고 설계하기 위해 도입했다. 다음은 프로젝트에 적용된 Spirng Boot 기반의 ..
[Groupware] Spring Security + Exception
·
Project/Backend
📝 개요Groupware 프로젝트를 진행하면서 가장 고민을 많이 했던 부분 중 하나가 바로 예외처리를 하는 부분이다. 비즈니스 로직을 개발하다 보면 런타임 예외를 던져야 할 상황이 자주 발생하는데, REST API 환경에서는 “예외를 어떻게 공통적이고 일관된 방식으로 처리할 것인가?” 라는 생각을 하게 되었다. 그래서 고민 끝에, 모든 비즈니스 예외를 RuntimeException 기반의 CustomException 으로 통일하고, 예외별 상태코드와 메세지는 Enum(ErrorCode)에 한곳에 정의했다. 그리고 이 예외를 GlobalExceptionHandler 를 통해 전역적으로 한번에 처리하는 구조를 선택했다. 이렇게 설계하니 예외 처리 코드가 중복 없이 재사용성도 높아지고, ErrorCode 를..
[Groupware] Spring-Boot : API 공통 응답 객체
·
Project/Backend
📝 개요API (Application Programming Interface)백엔드 서버가 프론트엔드(혹은 외부 시스템) 에 데이터를 주고받는 통로이다. 흔히 사용하는 “로그인”, “데이터 조회”, “등록” 과 같은 기능을 만들 때 서버는 API 를 통해 클라이언트의 요청을 받고, 처리 결과를 다시 응답으로 돌려준다. JSON(JavaScript Object Notation)대부분의 API 응답은 JSON 형식으로 전달된다. 단순히 데이터만 반환하는게 아니라 상태코드, 메세지, 실제 데이터 를 한번에 담아 보내는 것이 중요하다. 이것을 일관성 있게 관리하기 위해서 공통 응답 객체를 만들어 모든 API 반환 값을 같은 구조로 감싸도록 설계했다.🚀 API 공통 응답 객체API 공통 응답 객체를 도입하기 ..
[Groupware] Spring-Boot : Swagger 연동
·
Project/Backend
📝 개요Swagger?Swagger 는 REST API 를 쉽고 명확하게 문서화할 수 있는 오픈소스 프레임워크이다. 기존에는 API 명세서를 별도로 작성하여 (엑셀, Notion 등..) 관리가 어렵고 오류도 많았지만, Swagger 사용하면 실제 코드로부터 명세를 자동 추출 하여 최신 API 문서를 유지할 수 있다. 또한, Swagger UI 를 통해서 API 테슽와 시연이 편리하여 기획/테스트/FE 와의 협업 효율성이 증가한다. Swagger 도입 이유현재 프로젝트는 요구사항을 정리하는 Notion 에 DTO, Controller 에 대한 설계와 정의를 통해서 명세하고 있지만, API 수가 많아지고 FE 개발 및 설계를 위해서 도입하게 되었다. 🚀 SwaggerAPI 문서 자동화 프레임워크는 여러..