스터디 & 프로젝트/Mineme 프로젝트
-
[Spring Boot] 서비스 레이어 리팩터링하기스터디 & 프로젝트/Mineme 프로젝트 2023. 3. 15. 20:38
늘 일을 벌이는 나다. 욕심만 그득그득해서 그런가보다. 사이드 프로젝트하면서 내가 구현한 비즈니스 로직을 함께 협업하는 친구 개발자에게 전달해야 했다. 내가 맡은 파트에서 구현된 메서드를 래핑해서 사용하고자 하는데 거기에 요구한 클래스와 메서드 인터페이스는 유지해달라는 요청이 있었다. 그에 따라서 내가 어떠한 방식으로 메서드를 추가하고 어떻게 구조를 변경하는 편이 좋을지 고민했다. 요구사항과 현재 상태 확인 우선 내가 맡은 파트는 사용자, 인가 쪽 도메인이다. 친구가 맡은 파트는 만들고자하는 서비스가 제공하는 핵심 기능 중 하나인 글 쓰기 관련 도메인이다. 요구사항 사용자가 글을 작성할 때 사용자가 정상적인(권한, 가입여부) 사용자인지 파악하는 로직이 필요 사용자가 글을 작성할 때 사용자가 정상적인 상태..
-
[Spring Boot] Apple OAuth 적용하기스터디 & 프로젝트/Mineme 프로젝트 2023. 2. 26. 16:00
지금까지 Github, Google, 카카오에서 제공하는 OAuth API를 사용했었다. 하지만 별도로 진행하는 사이드 프로젝트에서 Apple 인가를 사용하기로 결정났고 내 파트로 정해졌다. 다른 API 벤더에 비해서 더 많은 로직을 요구하긴 한다. 하지만 그래도 천천히 따라해보면 크게 어렵진 않다. 우선 iOS 앱에서 최초 인가 이후 Access Token과 Authorization Code(인가 코드)가 함께 API로 넘어온다. 우리가 아는 일반적인 리디렉션과 콜백을 통한 OAuth 프로토콜 동작 플로우는 여기까지는 동일하다. 공개키를 통한 검증 API 요청으로 받은 액세스 토큰과 인가 코드를 통해서 액세스 토큰의 유효성을 검증해야 한다. 보통 내가 확인할 때에는 다른 벤더의 경우 OAuth API를..
-
네이밍 컨벤션 정하기스터디 & 프로젝트/Mineme 프로젝트 2023. 2. 10. 23:22
필요성 매 번 프로젝트를 진행하면서 겪은 문제는 "이름 정하기" 였다. 모든 개발자들이 고민하는 문제다. 어떻게 하면 가독성 좋고 깔끔한 방식의 명칭을 정할 수 있을지 고민한다. 여러 번의 팀 프로젝트를 진행했지만 늘 백 엔드 개발을 거의 혼자 진행하다보니 협업의 관점에서 이런 컨벤션을 명확하게 작성한 적이 없었다. 늘 API 명세, DB 스키마 작성 정도 수준에서 마무리 했던 것 같다. 하지만 이번에 새로운 사이드 프로젝트를 진행하면서 백 엔드 개발 협업을 진행하기로 했다. 이제 우리 팀의 네이밍 컨벤션을 정해야 한다. 나의 습관 나도 무작정 네이밍 컨벤션을 쓰지는 않았다. 명칭 작성은 무조건 카멜케이스로 작성했다. 상수명은 대문자와 언더바 만을 사용했다. 하지만 습관에 의지한 상태였다. 주로 MVC ..
-
[Spring boot] 응답 값 직렬화.스터디 & 프로젝트/Mineme 프로젝트 2022. 12. 13. 14:38
public class ResponseDto { private boolean isSuccess; ... } { ... "success": true } 새로운 프로젝트를 시작하면서 공통 응답 DTO를 작성했다. 빌드 후에 테스트해보니 응답 API 명세와는 다르게 위와 같이 'is'가 사라진 형태로 응답이 발생한 것을 확인했다. boolean을 원시타입으로 작성하면서 직렬화 과정에서 is가 자동으로 삭제된 것이라고 한다. 이를 래퍼 타입인 Boolean으로 바꿔주면서 해결할 수 있었다. public class ResponseDto { private Boolean isSuccess; ... } { ... "isSuccess": true, }