litebook's Issues
회원 가입을 위한 화면을 구현합니다.
users/profile
MENU : POSTS
(1) 사용자가 로그인에 성공하면 Profile 화면으로 이동합니다.
(2) 로그인한 본인만 Profile의 POSTS
menu에서
글을 작성하고 작성한 글 목록을 확인할 수 있습니다.
(3) 글 목록은 5개씩 호출되어 출력되며, infinite scroll로 구현합니다. (ajax 호출)
signup.jsp, signin.jsp
- submit 버튼을 눌렀을 때 form에 입력한 값들이 컨트롤러 액션 메소드에 전달되지 않는다.
-
사용자가 게시글을 작성하기 위해 Post 테이블이 필요합니다.
-
Post entity, controller, service, reposiroty 등을 구현합니다.
-
jsp도 해당 기능에 맞게 수정합니다.
-
사용자는 user/profile
의 POSTS
메뉴에서 글 작성이 가능합니다.
USER Entity
서비스에서 필요한 uid
, name
, profile image
만 저장한다.
sign up
회원 가입이 완료되면 uid
와 함께 유저 정보 DB에 저장
sign in
client에서 uid
와 access token
을 전달받아 kakao profile과 DB에서 USER 조회 후 비교
- 일치하면 session 로그인
- 불일치, not found 로그인 실패
- 로그인된 사용자만 사용 가능한 api는 session 로그인 interceptor 필요
Follow
-
Follower : 나를 팔로우하는 사람
-
Following : 내가 팔로우하는 사람
profile
의 메뉴 FOLLOWER
와 FOLLOWING
에서 구독 정보를 확인할 수 있게 구현합니다.
update & delete
게시글 수정 & 삭제 기능을 구현하고 게시글 목록 기능도 함께 완성합니다.
-
user : controller, service, repository
-
이메일 인증 기능과 회원가입 로직, 로그인 로직까지 이어지는지 확인해야 합니다.
-
DB에 user가 입력한 정보가 저장되는지 확인해야 합니다.
로그인을 위한 화면을 구현합니다.
사용자 정보 수정
위 정보를 변경할 수 있도록 기능을 구현합니다.
Todo
-
Gradle
-
kakao login
-
timeline cache
-
aop(image upload)
-
search
-
query dsl(no offset)
-
댓글
-
FCM
-
로그인한 유저에게 보이는 화면 구현
-
네비게이션바 - 프로필, 포스트, 타임라인, 팔로워, 팔로잉, 검색
-
유저 정보를 수정할 수 있는 버튼
위 기능들을 수행할 수 있게 화면을 구현합니다.
프로젝트에 필요한 docker image를 생성하고 container 실행까지 확인
잘못된 url 접근 혹은 서비스 실패 시 이동할 에러 페이지를 생성하고
사용자가 다른 서비스를 이용할 수 있는 페이지로 이동할 수 있게 구현합니다.
ubuntu ssh 접속이 되는지 확인합니다.
following
: 내가 구독한 사용자
사용자는 자신이 관심있는 업로더를 팔로우할 수 있으며
자신이 팔로우한 사용자의 목록을 확인할 수 있습니다.
follower
: 나를 구독하는 사용자
나에게 관심 있는 사용자는 나를 팔로우할 수 있으며
나를 팔로우한 사용자의 목록을 확인할 수 있습니다.
예시) A만 B를 구독하고 있다면
- A의 팔로잉 목록: B가 있음
- B의 팔로잉 목록: A가 없음
- A의 팔로워 목록: B가 없음
- B의 팔로워 목록: A가 있음
- UUID 사용하여 fileName 따로 저장
- 사용자 프로필 수정 시 삭제와 변경 가능하게 구현
사용자 관리
- 이메일 인증으로 회원가입이 가능, Redis 이용하여 인증 토큰 저장
- 회원가입 시 비밀번호, 이름, 전화번호, 프로필 사진을 입력받음
- spring form validationd으로 입력된 오류 자동 검사
- Spring Security를 사용하여 로그인/로그아웃 구현
- 사용자 정보를 수정이 가능하고 탈퇴 가능
![스크린샷 2021-05-14 오후 11 33 46](https://user-images.githubusercontent.com/33855307/118285857-d99b4a00-b50c-11eb-9eb9-b160bd0343ee.png)
![스크린샷 2021-05-14 오후 11 34 23](https://user-images.githubusercontent.com/33855307/118285935-eddf4700-b50c-11eb-8d73-1bc2fcd6e2a0.png)
![스크린샷 2021-05-14 오후 11 34 43](https://user-images.githubusercontent.com/33855307/118285989-f9327280-b50c-11eb-8ea3-b0882d57e417.png)
![스크린샷 2021-05-14 오후 11 35 34](https://user-images.githubusercontent.com/33855307/118286136-1d8e4f00-b50d-11eb-98b5-849676596a4d.png)
검색 & 구독
원하는 사용자를 검색하여 구독, 구독 취소할 수 있고 구독한 사용자 리스트를 확인할 수 있음
![스크린샷 2021-05-14 오후 11 36 38](https://user-images.githubusercontent.com/33855307/118286356-55959200-b50d-11eb-8969-2dcdb2c3c709.png)
게시글 업로드, 수정, 삭제
게시글을 업로드, 수정, 삭제할 수 있습니다.
![스크린샷 2021-05-14 오후 11 38 16](https://user-images.githubusercontent.com/33855307/118286583-9097c580-b50d-11eb-97b1-6ec7031da63d.png)
![스크린샷 2021-05-14 오후 11 38 35](https://user-images.githubusercontent.com/33855307/118286611-95f51000-b50d-11eb-9566-1dcbd4c26509.png)
![스크린샷 2021-05-14 오후 11 38 44](https://user-images.githubusercontent.com/33855307/118286616-97bed380-b50d-11eb-9e39-7247669c57de.png)
타임라인
나의 타임라인, 특정 사용자 타임라인, 구독 타임라인
- 타임라인은 ajax로 호출로 페이징 구현
- No offset 기반으로 성능 개선 및 무한 스크롤 페이징 구현
- JPQL로 쿼리 직접 작성
![스크린샷 2021-05-14 오후 11 42 38](https://user-images.githubusercontent.com/33855307/118287078-13b91b80-b50e-11eb-8f6e-9ab2c6fc59e7.png)
게시글 좋아요
게시글에 좋아요를 누를 수 있음
![스크린샷 2021-05-14 오후 11 39 51](https://user-images.githubusercontent.com/33855307/118286715-b6bd6580-b50d-11eb-9e58-424bfb7a63f3.png)
![스크린샷 2021-05-14 오후 11 39 59](https://user-images.githubusercontent.com/33855307/118286717-b755fc00-b50d-11eb-9aec-ecb382d3d740.png)
CI/CD
![80232609-24db8400-8690-11ea-8876-3114a6e2b158](https://user-images.githubusercontent.com/33855307/118287327-524ed600-b50e-11eb-8c9e-20dae353feb4.png)
- 계층별로 패키지를 분류하고 필요한 클래스 생성
- User Entity 클래스를 생성
Comments
-
게시글에 댓글을 작성할 수 있는 기능 생성
-
수정 기능은 없고, 생성, 삭제 기능만 구현합니다.
-
댓글에 사용자 프로필 사진, 이름 등의 정보를 함께 출력해줍니다.