-
Notifications
You must be signed in to change notification settings - Fork 4
06 ‐ 02 ‐ My Page (Profile) Wiki
juhyeonlee edited this page Nov 10, 2023
·
21 revisions
- 비즈니스 요구사항
- 아키텍처 설계
- API 엔드포인트 설계
- 다른 모듈과 상호작용 포인트
- 모델 수정 사항
- 사용자의 개인정보와 프로필, 알람, 관심 리스트를 관리한다.
- 개인정보 페이지
- 개인정보(실명, 이메일, 지역, 소속)를 조회할 수 있다.
- 비밀번호를 수정할 수 있다.
- 42인증을 진행할 수 있다.
- 프로필 페이지
- 프로필 정보(프로필 이미지, 닉네임, 소속집단, 이메일, 자기소개)와 링크(링크 제목, 링크 URL)를 조회할 수 있다.
- 닉네임 중복을 확인한다.
- 프로필 정보(프로필 이미지, 닉네임, 자기소개)를 수정할 수 있다.
- 자기소개는 영문기준 300자, 한글기준 150자이다.
- Controller : HTTP 요청을 처리한다.
- PersonalInfoController : 개인정보(비밀번호) 처리
- ProfileController : 프로필 정보(프로필 이미지, 닉네임, 자기소개, 링크) 처리
- AlarmController : 알람 키워드
- FavoriteController : 관심있는 리스트
- Service : 비즈니스 로직 수행
- PersonalInfoService : 개인정보조회, 42인증, 비밀번호 수정
- ProfileService : 프로필 조회, 타 사용자 프로필 조회, 닉네임 중복 확인(이는 회원가입 API와 공유), 프로필 정보 수정, 링크 수정
- AlarmService : 알람 키워드 조회, 등록, 삭제, 전체 삭제
- FavoriteService : 관심있는 리스트 조회, 전체 삭제
- FileService : 파일(여기서는 프로필 이미지)저장, 업로드, 삭제
- Repository : 데이터 저장소와 상호작용을 담당한다.
- UserRepository : 사용자와 관련된 정보들
- UserLinkRepository : 링크와 관련된 정보들
- User : 사용자에 대한 정보가 저장되는 데이터베이스
- id : 사용자에 대한 고유 식별자(Long)
- email : 사용자의 E-mail(String)
- password : 사용자가 등록한 비밀번호로, 암호화되어 저장(String)
- name : 사용자의 실명(String)
- nickname : 사용자의 닉네임(String)
- isAlarm : 사용자가 설정한 알람(Alarm)
- address : 사용자가 설정한 지역(String)
- imageUrl : 사용자가 등록한 프로필 이미지
- certification : 사용자 본인 인증 여부(boolean)
- company : 사용자의 소속(String)
- introducte : 사용자의 자기소개(String)
- peerLevel : 사용자의 피어 레벨(Long)
- representAchievement : 사용자의 대표업적(String)
- keywordAlarm : 사용자가 등록한 알람 키워드(String, ^&%로 구분)
- PeerOperation : 42 서울에 대한 정보들(PeerOperation)
- userAchievements : 사용자가 달성한 업적(List-UserAchievement)
- userLinks : 사용자가 등록한 소개 링크(List-UserLink)
- teamUsers : 사용자가 속한 팀(List-TeamUser)
- recruiteFavorites : 사용자가 등록한 관심 목록(List-RecruitFavorite)
- socialLogins :
- indexList1 :
- indexList2 :
- recruitList :
- UserLink : 사용자가 등록한 링크들이 저장되는 데이터베이스
- id : 사용자가 등록한 링크에 대한 고유 식별자(Long)
- userId : 해당 링크를 등록한 사용자(User)
- link : 링크 주소(String)
- linkName : 링크 이름(String)
- HTTP 헤더에 JWT 토큰을 추가해서 전달해 주셔야합니다. 해당 토큰을 이용해서 사용자를 찾아 CRUD를 진행합니다. (JWT 토큰을 사용하는 API는 JWT 표시, 사용하지 않는 API는 표시 안함)
- 개인정보 조회 :
GET
/api/v1/info (JWT) - 비밀번호 수정 :
PUT
/api/v1/info/password (JWT) - 프로필 조회 :
GET
/api/v1/profile (JWT) - 프로필 수정 :
PUT
/api/v1/profile/introduction/edit (JWT) - 상대방 프로필 조회 :
GET
/api/v1/profile/other/?userId=?infoList= - 링크 수정 :
PUT
/api/v1/profile/link (JWT) - 알람 키워드 조회 :
GET
/alarm (JWT) - 알람 키워드 등록 :
POST
/alarm/add (JWT) - 알람 키워드 삭제 :
DELETE
/alarm/delete?keyword= (JWT) - 알람 키워드 전체 삭제 :
DELETE
/alarm/delete/all (JWT) - 관심 리스트 조회 :
GET
/api/v1/recruit/favorite?type=&page&pagesize= (JWT) - 관심 리스트 전체 삭제 :
DELETE
/api/v1/recruit/favorite?type= (JWT)
- 관심 리스트 조회는 recruit 모듈과 관련있습니다.