Spring
OAuth login 구현 구조 변환 과정
프로젝트에서 로그인 기능을 구현하는 파트를 맡게 되었다. 우리 프로젝트에서는 일반 로그인은 하지 않고, 다른 많은 사이트처럼 sns로그인만 지원하기로 했다. 그래서 나는 OAuth 2.0 프로토콜에서 Authorization Code Grant 방식으로 구현을 했다. Spring Security에 대한 이해가 부족했어서, Spring Security없이 구현을 했다. sns 로그인은 google, naver, kakao 등 여러 개가 추가 될 수 있기 때문에, 확장성을 고려하면서 구현을 해서, 여러 번에 리팩토링 과정이 있었다. 그 과정에 대해서 쓰려고 한다. 여기서, authorization code는 front-end에서 받아와서, 요청을 처리할 수 있도록 했다. V1 구조 login 처리를 담당하는..
연관 관계 편의 메소드❓
연관 관계 편의 메서드라는 말을 공부할 때, 들었고, 김영한님이 이거 실수 하는 사람들 많다고 말씀하셔서, 나는 안 그러겠지라고 했는데, 그랬다,,,이제 실수를 하지 않기 위해서 정리를 하자,,,!!! 연관 관계 편의 메서드를 알아보기 전 연관 관계부터 알아보자!! 연관 관계란❓ 내가 사용하는 JPA는 관계형 DB(MySQL, Oracle, etc)에 대해서 지원을 한다. 관계형 데이터베이스는 키(key)와 값(value)들의 간단한 관계를 테이블화 시킨 매우 간단한 전산정보 데이터베이스이다. ORM은 Object Relation Mapping 즉, 객체와 관계형 데이터 베이스간의 매핑이라고 말할 수 있다. 위에 관계형 데이터베이스 설명처럼 각 테이블에 관계가 있다. 테이블에서는 왜리키를 통해서 관계를 ..
Builder패턴, 그리고 Builder annotation는 뭘까🧐
Spring과 JPA에 대해서 공부는 해보았지만, Spring으로 프로젝트를 진행하는 것은 처음이다. 그래서 이전에 spring을 진행한 팀원의 코드를 자주 참고하는데, 그 친구가 Builder annotation을 사용해서 뭔지 공부해보려 한다. Builder annotation에 앞서 Builder패턴이 무엇인지 살펴보자!! Builder 패턴이란❓ 빌더 패턴은 생성 패턴 중 하나이다. 또, 생성 패턴은 "인스턴스"를 만드는 절차를 "추상화"하는 패턴이다. 생성 패턴을 이용하면, 무엇이 생성되고, 어떻게 결합하는지에 대한 부분을 가려준다. GoF의 빌더패턴 그중에서 빌더 패턴은 복잡한 객체를 생성하는 방법을 정의하는 클래스와 표현하는 방법을 정의하는 클래스를 별도로 "분리"하여, 서로 다른 표현이라도..
👐컨벤션 어디까지 해봤니❓
이전에 프로젝트를 진행할 때는 컨벤션을 두고하지 않았다. 팀의 규칙들 조차도 정하지 않아서 중구난방인 경우가 많았다!! 이번에는 컨벤션을 정해서 해본 경험들이 있는 친구들이 있었고, 그 친구들의 주도하에 컨벤션과 팀 규칙들도 정했다~!! 나는 이런 것을 정하고 하는 것이 처음이여서 너무 설렜다,,,!! 이게 진짜 개발자가 하는 프로젝트인가,,,👻 Team Ground Rule 1. 정모는 반드시 참여하기로 했다,,!!정모는 1주일에 한번 1시간 이상인데,,,2시간이 넘었으면 바로 끝내기로 했다!!(너무 길어지면 지치고, 머리도 잘 안돌아가니까 결론이 안나니까~~) 정모 내용은 회고도 하고 동기부여도 하고 의견 다른 거 있으면 토론하고 싸우기로 했다,,!! 같이 하는 프로젝트니까!!! 2. 중요한 안건이 ..

설계,,,,이렇게 하는 게 맞는 건가,,,??
지인들과 프로젝트를 시작했다. 어떤 주제로 할지에 대해 정하고, 핵심 기능까지 정했다,,,!! 그 후에서 백엔드 개발자들끼리는 도메인 구조 설계를 해보기로 했다,,,!! 설계에 앞서서 어떤 기능들이 필요한지 여부에 대해 적어봤다. 더보기 [일반 회원] - 소설 로그인(회원 가입) - 프로필 정보 변경(nickname, image) - 로그 아웃 - 회원 탈퇴 - 발자국 조회(내가 쓴 리뷰 조회) - 찜한 shop 조회 - 작성한 리뷰 목록 조회 [admin] - 새로운 shop 등록 - (대량) 새로운 shop 등록 - 새로운 카테고리 등록 - 새로운 Tag 등록 - Tag 삭제 - 가게 삭제 [shop] - 위치 별 shop 목록 조회 - shop 상세 조회 - 유저 별 - shop 정보 수정 - sh..