Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/inyeob step2 #13

Open
wants to merge 35 commits into
base: inyeob
Choose a base branch
from
Open

Feature/inyeob step2 #13

wants to merge 35 commits into from

Conversation

inshining
Copy link
Contributor

STEP2 기능 구현

follower, following

현재 기술 명세에서 친구 요청을 수락할 필요없이 바로 친구로 추가 기능을 요구합니다. 추후 수락 기능을 염두 해두고 follower, following 으로 친구 관계를 설정하였습니다.

친구 추가 기능

현재 로그인한 유저 정보는 controller에서 ''Principal''으로 받아서 service 레이어로 넘겼습니다. 인가 과정에서 현재 유저 정보를 알고 있다는 점을 활용했습니다.
현재 유저를 "follower"로 상정하고, 추가하고자 하는 친구를 "following"으로 정의하였습니다.

다음 3가지 예외 케이스를 고려하였습니다.

  • follower 유저가 존재하지 않는 경우
  • following 유저가 존재하지 않는 경우
  • follower와 following 유저가 동일한 경우

친구 조회 기능

follower, following 구조이기 때문에 친구 조회하기 위해서 한명 유저를 기준으로 follower, following 두 가지 케이슬 모두 고려해야 했습니다.
서로 following을 할 수 있기 때문에 SET을 이용해서 중복된 경우의 수를 제거하고자 했습니다.

SQLite DB 를 추가하였음. DB Config 생성하였고, sqlite properties를 생성하여서 둘 config 파일이 이를 따르게 하였다.
도메인 패키지와 엔티티 패키지 생성
created, modified 를 공통적으로 사용할 수 있게 BaseTimeEntity 생성
유저 엔티티 생성
spring security 를 이용해서 회원 가입을 구현하였다.
회원 가입을 하기 위해서 username(아이디), password, name이 필요하다.
org.xerial:sqlite-jdbc의 버전을 3.7.2에서 3.40.1로 업그레이드
이후 하드코딩을 막기 위해 jwt 설정을 properties로 옮겼음
기존 유저 존재 여부 확인 후에 생성 로직으로 변경
관련 레코드도 생성
@inshining inshining self-assigned this Nov 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant