© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
Next.js 토이프로젝트 스터디 Next.js를 이용하여 토이프로젝트 진행하기
Next.js를 이용하여 간단한 블로그 플랫폼 만들기
Jun 13, 2023 → Jul 31, 2023
프로그래머스 ‘반성문 토이 프로젝트’의 서막…👀 회의록 프로젝트 일정
📓
1차 팀 회의록
2차 MVP Task
프로젝트 개요 🥅 프로젝트 목적
📝 프로젝트 범위 큰 범위: 포스트 작성, 카테고리 분류, 댓글 기능을 가진 간단한 블로그 A팀(2명)
포스트작성 (이미지 업로드 가능)
· 포스트 작성 UI 개발
· 포스트 작성 기능 개발
포스트 댓글 기능, 좋아요, 댓글 알림
· 포스트 댓글, 좋아요
· 포스트 댓글 저장, 삭제 기능 개발. 포스트 좋아
B팀(2명)
포스트 카테고리 분류, 포스트 검색
· 포스트 카테고리, 포스트 검색 UI 개발
· 포스트 카테고리, 포스트 검색 기능 개발
C팀 (2명)
· DB 구성 (Supabase 외 가능)
· 와이어프레임 작성 (FigJam,Figma)
🛠️ 기술 스택 (협의예정)
🗒️ 진행 상황 🗓️ 주차별 팀장 6.26~7.2 이승희
7.3~7.9 김주하
7.10~7.16 이현정
7.17~7.23 이범진
7.23~7.29 김희석
백엔드 DB ERD API 규격서
공통 응답 성공 - API 호출이 정상적으로 호출 되었을때
실패
게시글 Get /posts?page={page번호}&limit={limit 개수} - 게시글 목록 가져오기
Get /posts/{postId} - 게시글 상세 가져오기
Post /posts - 게시글 작성하기
댓글작성 Post /posts/{postId}/comments - 댓글 작성
Put /posts/{postId}/comments/{commentId} - 댓글 수정 Delete /posts/{postId}/comments/{commentId} - 댓글 삭제
좋아요 put /posts/{postId}/likes - 좋아요
용서 put /posts/{postId}/forgive - 용서하기
회원 post /auth/signup - 회원가입
post /auth/signin - 로그인 delete /auth/user - 회원탈퇴
put /auth/password - 비밀번호 변경 get /posts/mypost - 내 게시물 조회
고해성사 피드백
{
"status": "success",
"message": message,
"data": {}
}
{
"status": HttpStatus Code,
"message": Error Message
}
{
"status": "success",
"data": [
{
"postId": 115,
"title": "깃 푸쉬를 잘못해 버렸습니다",
"content": "안녕하세요 FE[4기] 이범진이라고 합니다. 다름이 아니라 8/14일 오전11시경 깃을 메인 브렌치에 push해버리는 행위를 해버렸습니다. 이에 대해 깊이 반성하는 바이며 멘토님의 도움으로 잘 처리 되었습니다. 앞으로 이런일이 일어나지 않도록 주의 또 주의하겠습니다!",
"templateType": "{\"color\":\"#FFCAC8\",\"icon\":\"/static/media/icon_06.5d612ff1ca48627ec9da.png\"}",
"isAnonymous": false,
"team": "",
"createAt": "2023-08-15T16:59:12.727Z",
"updateAt": "2023-08-15T16:59:12.727Z",
"user": {
"name": "이범진"
"nickName":"익명의머쓱이"
},
"commentCount": 1,
"likeCount": 2,
"forgiveCount": 0
},
{
"postId": 115,
"title": "깃 푸쉬를 잘못해 버렸습니다",
"content": "안녕하세요 FE[4기] 이범진이라고 합니다. 다름이 아니라 8/14일 오전11시경 깃을 메인 브렌치에 push해버리는 행위를 해버렸습니다. 이에 대해 깊이 반성하는 바이며 멘토님의 도움으로 잘 처리 되었습니다. 앞으로 이런일이 일어나지 않도록 주의 또 주의하겠습니다!",
"templateType": "{\"color\":\"#FFCAC8\",\"icon\":\"/static/media/icon_06.5d612ff1ca48627ec9da.png\"}",
"isAnonymous": false,
"team": "",
"createAt": "2023-08-15T16:59:12.727Z",
"updateAt": "2023-08-15T16:59:12.727Z",
"user": {
"name": "이범진"
"nickName":"익명의머쓱이"
},
"commentCount": 1,
"likeCount": 2,
"forgiveCount": 0
}
]
}
{
"status": "success",
"data": {
"postId": 59,
"title": "안녕하세요",
"content": "안녕하세요안녕하세요안녕하세요안녕하세요안녕하세요안녕하세요안녕하세요안녕하세요안녕하세요안녕하세요안녕하세요안녕하세요안녕하세요안녕하세요안녕하세요",
"templateType": "{\"color\":\"#FBD0F5\",\"icon\":\"/static/media/icon_01.055ca01df9ce11e1611569c493fc8a7a.svg\"}",
"isAnonymous": false,
"team": "",
"createAt": "2023-08-01T11:17:25.408Z",
"updateAt": "2023-08-01T11:17:25.408Z",
"user": {
"name": "희석",
"nickName": "익명의머쓱이"
},
"comment": [
{
"commentId": 1,
"comment": "ㅋㅋㅋㅋㅋㅋ",
"createAt": "2023-07-08T15:50:00.000Z",
"updateAt": "2023-07-08T15:50:01.000Z",
"user": {
"userId":33
"name": "희석"
}
}
],
"isLike": true,
"isForgive": true,
"likeCount": 2,
"forgiveCount": 1
}
}
body
{
"title" : "머쓱이 반성문!!!!!",
"content" : "2023년 07월 06일 저는 노션을 완성하지 못해 반성문을 작성합니다.",
"templateType": "{"color":"#FFCAC8","icon":"/static/media/icon_01.055ca01df9ce11e1611569c493fc8a7a.svg"}",
"team":"동영팀"
}
header
{
"Content-Type":"application/json",
"Authorization":"Bearer {Access Token}"
}
body
{
"comment":"ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ",
}
{
"comment":"수정할 메시지 입니다."
}
{
"message":"본인 댓글만 수정 할 수 있습니다."
}
{
"message":"댓글 수정을 완료하였습니다."
}
{
"message":"본인 댓글만 삭제 할 수 있습니다."
}
{
"message":"댓글 삭제를 완료하였습니다."
}
body
{
"loginId":"heeseok",
"password":"qwer1234!",
"name":"김희석",
}
body
{
"loginId":"heeseok",
"password":"qwer1234"
}
{
"status": "success",
"message": "로그인 성공",
"data": {
"access_token": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjI1LCJsb2dpbklkIjoidGVzdCIsImlhdCI6MTY5MDg4NjAwNywiZXhwIjoxNjkwOTcyNDA3fQ.DEUwv93ieOAR3hd3V54vMvD1jVoh8JW46KThSkPcd1U",
"user": {
"userId": 25,
"loginId": "test",
"name": "희석"
}
}
}
{
"status":"success",
"message":"유저 삭제 완료"
}
{
"password":"qwer1234!"
}
{
"status": "success",
"data": [
{
"postId": 115,
"title": "깃 푸쉬를 잘못해 버렸습니다",
"content": "안녕하세요 FE[4기] 이범진이라고 합니다. 다름이 아니라 8/14일 오전11시경 깃을 메인 브렌치에 push해버리는 행위를 해버렸습니다. 이에 대해 깊이 반성하는 바이며 멘토님의 도움으로 잘 처리 되었습니다. 앞으로 이런일이 일어나지 않도록 주의 또 주의하겠습니다!",
"templateType": "{\"color\":\"#FFCAC8\",\"icon\":\"/static/media/icon_06.5d612ff1ca48627ec9da.png\"}",
"isAnonymous": false,
"team": "",
"createAt": "2023-08-15T16:59:12.727Z",
"updateAt": "2023-08-15T16:59:12.727Z",
"user": {
"name": "이범진",
"nickName": "익명의머쓱이"
},
"commentCount": 1,
"likeCount": 2,
"forgiveCount": 1
},
{
"postId": 114,
"title": "반성합니다.",
"content": "과제를 하면서 실수로 메인 브랜치에 커밋을 남겨버렸습니다.\n\n앞으로 과제를 할때 꼭!!!!! 브랜치 확인하고 푸쉬하는 습관을 반드시! 갖겠습니다..\n",
"templateType": "{\"color\":\"#B8B5FF\",\"icon\":null}",
"isAnonymous": false,
"team": "",
"createAt": "2023-08-10T19:28:14.765Z",
"updateAt": "2023-08-10T19:28:14.765Z",
"user": {
"name": "이범진",
"nickName": "익명의머쓱이"
},
"commentCount": 0,
"likeCount": 0,
"forgiveCount": 0
}
]
}