프로젝트35 [내멋대로 만드는 Kimstagram] 9. 팔로우 기능 구현하기 이제 대망의 팔로우 기능을 구현해보자... 사실 이걸 어떻게 구현해야 하나 로직을 꽤 고민했다. 여차하면 맞팔로우까지 필요할 수도 있으니까... 결국 내가 생각한 방법은 Follow라는 클래스를 하나 만들어서 테이블을 만들고, 팔로우하는 Account와 팔로우 당하는 Account를 저장하는 방법이었다. 일단 글은 이렇게 써놓긴 했는데... 구현을 시작해보자. 일단 Follow 클래스를 하나 만들었다. package com.kimdev.kimstagram.model; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.ann.. 2024. 1. 24. [Java] 소켓을 이용한 간단한 채팅 프로그램 예제 GitHub - kimdevv/Chat Contribute to kimdevv/Chat development by creating an account on GitHub. github.com 주로 사용한 것들: JFrame, JDBC(MySQL), Socket 학교에서 컴퓨터 네트워크 이론과 데이터베이스를 배우면서 뭔가 깨달음을 얻고(…) 간단하게 만들어 본 채팅 프로그램. 말은 간단하다고 했지만 사실 내가 많이 부족해서인지 거진 2주 정도 걸린 듯…? ㅋㅋㅋㅋㅋㅋ 열심히 안 한 것도 있긴 한데… 학교에서는 소켓이랑 TCP UDP 등등… 되게 복잡했던 거 같은데 자바에서는 그냥 소켓만 구현하면 통신이 바로 되네여…? 생각보다 어렵지 않게 만들었읍니다. 제일 어려웠던 건 jar을 빌드했을 때 한글이 깨져서 .. 2024. 1. 22. [내멋대로 만드는 Kimstagram] 8. 프로필 수정 이번에 할 것은 프로필을 수정하는 것이다. 예를 들면 프로필 사진이나 한 줄 커멘트 같은 거... 그런데 사실 프로필이라고 해봤자 수정할 게 저 둘 밖에 없어서... 그냥 어렵지 않게 구현했다. 프로필에서 '프로필 편집' 버튼을 누르면 위와 같은 프로필 편집 폼으로 이동한다. 실제 인스타그램에는 성별도 있고 웹사이트 주소도 넣을 수 있는데... 이건 딱히 구현해봤자 큰 의미는 없을 것 같아서 다 생략한다. 사진 변경은 게시물 업로드 때와 동일하게 MultipartFile으로 구현했다. 여기서 헤맸던 부분은... static 폴더에 image를 저장하면 서버를 재시작하기 전 까지는 서버에서 파일을 인식하지 못한다. 곰곰이 생각해 보면 당연한 게... static은 정적 리소스를 관리하는 폴더이므로 동적으로.. 2024. 1. 21. [내멋대로 만드는 Kimstagram] 7. 게시물 좋아요 구현하기 인스타그램의 대표 기능이라고 볼 수 있는 좋아요 기능... 이번 게시글은 구현하면서 함께 글을 작성하는 중이라서 아직 모르긴 하는데 지금까지 해왔던 것들에 비하면 나름 쉽게 구현할 수 있을 것 같은데...? 일단 DB에 좋아요 정보를 저장해야 하므로 모델을 하나 만들어준다. package com.kimdev.kimstagram.model; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; import org.hibernate.annotations.CreationTimestamp; import javax.persistence.*; import java.sql.T.. 2024. 1. 21. [내멋대로 만드는 Kimstagram] 6. 게시글 화면 구현과 댓글 작성하기 사실 게시글 화면도 인스타그램의 화면을 그대로 클론하려고 했는데 어려워서 포기했다... 프론트 쪽 지식은 거의 전무해서 ㅋㅋㅋ 그냥 최대한 인스타그램 느낌이 살도록 내가 커스텀 해서 만들었다. 일단 결과물부터 업로드... 1. Controller 주소로 게시글ID를 받는다. 이 컨트롤러에서는 게시글ID를 받아서 해당 게시글을 가지고 post를 찾아서 Model에 함께 넘겨준다. 그리고 replyRepository에 findAllByPost()를 만들어서 방금 찾은 post에 달린 replies(댓글) 목록을 찾아서 함께 Model에 넘겨준다. @GetMapping("/post/{postId}") public String write(@PathVariable int postId, Model model) { .. 2024. 1. 21. [내멋대로 만드는 Kimstagram] 5. 프로필 화면 만들기 글쓰기를 구현했으니, 이제 그 유저의 프로필 화면을 구현할 수 있게 되었다. 프로필 폼에는 유저의 정보와 게시물, 팔로잉 정보가 보여야 한다. 유저의 정보는 주소에 입력한 username으로 accountRepository에서 해당 account를 찾아서 Model에 같이 넘겨주었다. 그리고 그 유저가 작성한 게시글 목록도 함께 jsp로 이동되어야 하므로, 찾은 account를 가지고 post를 찾을 수 있도록 postRepository에 findAllByAccount를 만들어 활용한 후 posts 리스트도 Model에 함께 추가해 주었다. @GetMapping("/profile/{username}") public String profile(@PathVariable String username, Mode.. 2024. 1. 21. 이전 1 2 3 4 5 6 다음 반응형