[Groupware] Spring-Boot : 테스트 코드
·
Project/Backend
📝 개요이번 프로젝트는 Spirng Boot 기반의 REST API 서버를 구축하고 기본을 익히는 과정이다. 초반에는 각 도메인에 대한 CRUD 를 개발하고 기능을 추가하는데 집중했지만, 점점 기능이 많아지고 API 요청/ 응답 케이스가 다양해지면서, 직접 서버를 띄워 일일이 Postman 으로 요청을 날리는 방식으로는 한계를 느꼈다. API 마다 다양한 예외 상황과 비즈니스 로직을 수동으로 검증하다보니 작업 속도도 느려지고, 코드 수정 시 기존 기능이 깨지는 경우도 있었다. 그래서 REST API 서버를 구축하면서 테스트 코드라는 것을 알게 되었고, 이를 적용하여 개발 속도를 높이고 각 예외에 대해서 더 견고하게 확인하고 설계하기 위해 도입했다. 다음은 프로젝트에 적용된 Spirng Boot 기반의 ..
[Groupware] Spring-Boot : Spring Security + JWT
·
Project/Backend
📝 개요Groupware 프로젝트는 Spring-Boot 백엔드 API 서버 구축과 React 프론트엔드 서버 구축 및 연동 학습에 중점을 둔 프로젝트이다. 이전 YBoard (게시판) 프로젝트에서 Spring Security 를 이용하여 보안 부분에 대한 프레임 워크를 사용했었는데, REST API 구조에서의 Spring Security 활용에 대해서 학습하기 위해서 보안 및 인증에 대한 라이브러리로 선택하게 되었다. 이전 프로젝트에서는 세션 인증 방식을 사용하면서 다중 서버에서의 중복 로그인 문제, Spring Security 의 세션 관리에 대해서 학습했지만, 이번 프로젝트는 프론트엔드와 백엔드가 분리되고 REST API 방식의 서버 구현이므로 새로운 인증 방식에 대한 부분을 찾아보았다. 그렇게 ..
[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 문서 자동화 프레임워크는 여러..