-
초기 세팅: fork - clone
-
반복: issue 생성 - 해당 브랜치 생성 - 작업 - pr - 승인 - merge
-
해당 작업의 issue 를 생성합니다.
-
작업 시작 전에는 항상 원격 저장소의 develop 브랜치의 작업물을 가져와야 합니다.(안 그러면 충돌 발생 가능)
git pull origin develop -
로컬의 develop 브랜치로부터 feature/[name] 브랜치를 생성합니다. 이 때 [name] 은 현재 하려는 작업을 간단하게 설명하는 이름으로 짓습니다.
git branch feature/[name] develop -
앞서 생성한 브랜치로 이동합니다.
git checkout feature/[name] -
해당 브랜치 내부에서 작업을 합니다.
-
작업 중간 필요할 때 마다, 아래의 깃 컨벤션을 참고하여 커밋 메시지를 작성 후 커밋 합니다.
-
작업이 끝난 경우(끝나지 않아도 가능) 원격 저장소에 해당 브랜치를 push 합니다.
git push origin feature/[name] -
해당 브랜치 내부에서의 작업이 완전히 끝나고, 원격 저장소로 push도 마쳤다면 develop 브랜치로의 PR 을 생성합니다.
-
팀원들의 리뷰를 반영하고, 승인을 받은 경우 활성화된 merge 버튼을 이용하여 merge 합니다.
-
이후 로컬에서 해당 브랜치는 제거합니다.
git branch -D feature/[name]
커밋 메시지는 [태그]: [메시지] 형식으로 작성합니다.
| 태그 | 설명 |
|---|---|
| Feat | 새로운 기능을 추가할 경우 |
| Fix | 버그를 고친 경우 |
| Design | CSS 등 사용자 UI 디자인 변경 |
| !BREAKING CHANGE | 커다란 API 변경의 경우 |
| !HOTFIX | 급하게 치명적인 버그를 고쳐야하는 경우 |
| Style | 코드 포맷 변경, 세미 콜론 누락, 코드 수정이 없는 경우 |
| Refactor | 프로덕션 코드 리팩토링 |
| Comment | 필요한 주석 추가 및 변경 |
| Docs | 문서를 수정한 경우 |
| Test | 테스트 추가, 테스트 리팩토링(프로덕션 코드 변경 X) |
| Chore | 빌드 태스트 업데이트, 패키지 매니저를 설정하는 경우(프로덕션 코드 변경 X) |
| Rename | 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우 |
| Remove | 파일을 삭제하는 작업만 수행한 경우 |
feat: Oauth2.0 기반의 카카오 로그인 구현
다양한 음식과 그에 해당하는 조리법이 궁금한 사람들을 위한 커뮤니티
- 다양한 음식 레시피를 공유하고 탐색할 수 있는 스프링부트 웹 어플리케이션
- 다양한 전통 음식과 요리법을 소개하여 사용자들이 보다 많은 요리에 대해 배울 수 있도록 합니다.
- 사용자들이 자신의 레시피를 공유하고 다른 사람들과 소통할 수 있는 커뮤니티 형성을 목표로 합니다.
- 특정 종류(카테고리: 면, 밥, 디저트 등)를 기준으로 레시피를 쉽게 검색하고 필터링할 수 있도록 합니다.
- Java JDK 17, JavaScript
- 프론트엔드 : HTML, CSS, JS
- 백엔드 : Spring Boot
- 데이터베이스 : MySQL
- ORM : JPA
- 배포환경 : AWS EC2, RDS, Docker
- 협업도구 : GitHub, Notion, DB diagram, Figma
| Main Page (Member) | Main Page (Guest) |
![]() |
![]() |
| SignUp Page | SignIn Page |
![]() |
![]() |
| MyPage Info Select | Modify-info Page |
![]() |
![]() |
| Find ID / Password Page | Manage Member Authorization |
![]() |
![]() |
| Board Write Page | |
![]() |
📁 src
└── 📁 main/resources
├── 📁 static
| ├── 📁 css
| | ├── 📃 admin.css
| | ├── 📃 home.css
| | ├── 📃 login.css
| | ├── 📃 logo.png
| | ├── 📃 noticeStyle.css
| | ├── 📃 searchIcon.css
| | └── 📃 style.css
| ├── 📁 img
| | └── 📃 mouse.png
| └── 📁 js
| ├── 📃 admin.js
| ├── 📃 home.js
| ├── 📃 login.js
| └── 📃 script.js
└── 📁 templates
├── 📁 comment
| ├── 📁 css
| | └── 📃 comment.css
| └── 📁 html
| | └── 📃 comment.html
├── 📁 search
| ├── 📁 css
| | └── 📃 search.css
| ├── 📁 html
| | └── 📃 search.html
| ├── 📁 img
| | ├── 📃 food.png
| | ├── 📃 mouse.png
| | └── 📃 searchIcon-black.png
| └── 📁 script
| └── 📃 search.js
├── 📃 admin.html
├── 📃 editNotice.html
├── 📃 editPost.html
├── 📃 find.html
├── 📃 home.html
├── 📃 login.html
├── 📃 noticeDetail.html
├── 📃 postDetail.html
├── 📃 writeNotice.html
└── 📃 writePost.html
📁 src
├── 📁 admin
│ ├── 📁 application
| | └── 📃 AdminService.java
│ └── 📁 dto
| | ├── 📃 AdminRequest.java
| | └── 📃 AdminResponse.java
│ └── 📁 presentation
| └── 📃 AdminController.java
├── 📁 auth
│ ├── 📁 controller
| | └── 📃 AuthController.java
│ ├── 📁 domain
| | ├── 📃 Role.java
| | └── 📃 User.java
│ ├── 📁 dto
| | ├── 📃 FindPasswordRequest.java
| | ├── 📃 LoginRequest.java
| | └── 📃 SignupRequest.java
│ ├── 📁 repository
| | └── 📃 UserRepository.java
│ └── 📁 service
| └── 📃 UserService.java
├── 📁 common
│ ├── 📁 entity
| | └── 📃 BaseEntity.java
│ └── 📁 handle
| └── 📃 AuthInterceptor.java
├── 📁 config
│ └── 📁 jpa
| | └── 📃 JpaConfig.java
│ └── 📁 web
| └── 📃 WebConfig.java
├── 📁 exception
| └── 📃 GlobalExceptionHandler.java
├── 📁 home/controller
│ └── 📃 HomeController.java
├── 📁 notice
│ ├── 📁 application
| | └── 📃 NoticeService.java
│ ├── 📁 domain
| | └── 📃 Notice.java
│ ├── 📁 dto/request
| | └── 📃 NoticeRequest
│ ├── 📁 infrastructure
| | └── 📃 NoticeRepository.java
│ └── 📁 presentaion
| └── 📃 NoticeController.java
└── 📁 post
├── 📁 controller
| ├── 📃 PostController.java
├── 📁 dto
| ├── 📁 request
| │ └── 📃 PostRequest.java
| └── 📁 request
| └── 📃 PostSaveResponse.java
├── 📁 entity
| ├── 📃 FoodCategory.java
| ├── 📃 Post.java
| └── 📃 PostDetail.java
├── 📁 repository
| ├── 📃 PostDetailRepository.java
| └── 📃 PostRepository.java
└── 📁 service
└── 📃 PostService.java
| 🏷 NAME | ⚙ METHOD | 📎 URL | 📖 DESCRIPTION |
|---|---|---|---|
| getAllPost | GET | /api/posts | 게시판 글 목록 조회 |
| getAllCommentsById | GET | /api/posts/{post_id} | 게시물의 전체 댓글 불러오기 |
| createComment | POST | /api/posts/{post_id}/comment | 해당 게시글에 댓글 생성 |
| updateComment | PATCH | /api/posts/{post_id}/comment/{id} | 해당 게시글의 해당 댓글 수정 |
| deleteComment | DELETE | /api/posts/{post_id}/comment/{id} | 해당 게시글의 해당 댓글 삭제 |
| 🏷 NAME | ⚙ METHOD | 📎 URL | 📖 DESCRIPTION |
|---|---|---|---|
| confirmPassword | POST | /api/users/{pasword} | 비밀번호 확인 |
| changePassword | PUT | /api/users/{pasword} | 비밀번호 변경 |
| getUserInfo | GET | /api/users | 사용자 정보 조회 |
| getUserPost | GET | /api/posts/{user_id} | 자신의 게시글 목록 조회 |
| getUserComment | GET | /api/comments/{user_id} | 자신의 댓글 목록 조회 |
| deleteUser | DELETE | /api/users | 회원탈퇴 |
| 🏷 NAME | ⚙ METHOD | 📎 URL | 📖 DESCRIPTION |
|---|---|---|---|
| getUserId | GET | /api/users/{id} | 특정 회원의 아이디 조회 |
| modifyAuthority | PUT | /api/auth/{auth} | 특정 회원의 권한 수정 |
| 🏷 NAME | ⚙ METHOD | 📎 URL | 📖 DESCRIPTION |
|---|---|---|---|
| createNotice | POST | /api/notice | 공지사항 쓰기 |
| getNotice | GET | /api/notice/{notice_id} | 공지사항 조회 |
| modifyNotice | PUT | /api/notice/{notice_id} | 공지사항 수정 |
| deleteNotice | DELETE | /api/notice/{notice_id} | 공지사항 삭제 |
| getAllNotice | GET | /api/notices | 공지사항 목록 |
| 🏷 NAME | ⚙ METHOD | 📎 URL | 📖 DESCRIPTION |
|---|---|---|---|
| getPost | GET | /api/post/{postId} | 게시글 조회 |
| writePost | POST | /api/post | 게시글 작성 |
| modifyPost | POST | /api/post/{postId} | 게시글 수정 |
| deletePost | DELETE | /api/posts/{postId} | 게시글 삭제 |
| 🏷 NAME | ⚙ METHOD | 📎 URL | 📖 DESCRIPTION |
|---|---|---|---|
| login | POST | /api/users/login | 사용자 로그인 |
| signup | POST | /api/users/signup | 회원가입 |
| findId | GET | /api/users/find-id | 아이디 찾기 |
| findPassword | POST | /api/users/find-password | 비밀번호 찾기 |
1_.mov
2_.MP4
3_.MP4
4_.MP4
- 오한얼
- 백의헌
- 박성환
- 유석호
- 이재준






















