[Groupware] Spring Security + Exception
·
Project/Backend
📝 개요Groupware 프로젝트를 진행하면서 가장 고민을 많이 했던 부분 중 하나가 바로 예외처리를 하는 부분이다. 비즈니스 로직을 개발하다 보면 런타임 예외를 던져야 할 상황이 자주 발생하는데, REST API 환경에서는 “예외를 어떻게 공통적이고 일관된 방식으로 처리할 것인가?” 라는 생각을 하게 되었다. 그래서 고민 끝에, 모든 비즈니스 예외를 RuntimeException 기반의 CustomException 으로 통일하고, 예외별 상태코드와 메세지는 Enum(ErrorCode)에 한곳에 정의했다. 그리고 이 예외를 GlobalExceptionHandler 를 통해 전역적으로 한번에 처리하는 구조를 선택했다. 이렇게 설계하니 예외 처리 코드가 중복 없이 재사용성도 높아지고, ErrorCode 를..
[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 : Swagger 연동
·
Project/Backend
📝 개요Swagger?Swagger 는 REST API 를 쉽고 명확하게 문서화할 수 있는 오픈소스 프레임워크이다. 기존에는 API 명세서를 별도로 작성하여 (엑셀, Notion 등..) 관리가 어렵고 오류도 많았지만, Swagger 사용하면 실제 코드로부터 명세를 자동 추출 하여 최신 API 문서를 유지할 수 있다. 또한, Swagger UI 를 통해서 API 테슽와 시연이 편리하여 기획/테스트/FE 와의 협업 효율성이 증가한다. Swagger 도입 이유현재 프로젝트는 요구사항을 정리하는 Notion 에 DTO, Controller 에 대한 설계와 정의를 통해서 명세하고 있지만, API 수가 많아지고 FE 개발 및 설계를 위해서 도입하게 되었다. 🚀 SwaggerAPI 문서 자동화 프레임워크는 여러..