Team name : ꡬλ¦μ μ¬κ³
Project : μ¬μ©μκ° μΌμΌμ΄ μ°Ύμ λ³Ό νμμμ΄
λͺ©μ μ§μ κ·Έ κ·Όμ² μ₯μλ€μ μΆμ²ν΄μ£Όλ μλΉμ€. βDofarmingβ
Project duration : 2024.07.01 - 2024.08.14
Team members : κΉνμ°, κΉνν, λ¨μν¬(νμ₯), μκ·Όμ¬, μμ§μ£Ό, μ΄νΈμ±, νμ§μ
Link : π Dofarming [μλΉμ€μ μ κ³μ : Email: , PW: ][κ΄λ¦¬μ κ³μ : Email: , PW: ]
User Flow: μ μ νλ‘μ°
Functional Requirement: μꡬμ¬ν λͺ
μΈμ
API Specification: API λͺ
μΈμ
Tech Presentaion: κΈ°μ λ°ν
λ¨μν¬ (Leader)
μκ·Όμ¬ (FE Leader)
μμ§μ£Ό (FE)
Features - SockJSμ Stompλ₯Ό μ¬μ©ν μ±ν
κΈ°λ₯ - SSEλ₯Ό μ¬μ©ν μλ¦Ό κΈ°λ₯ - 리뷰 κΈ°λ₯ - μ μ νλ‘μ° μμ± - λ°ν λ° λ°ν μλ£ μμ±
Features - Frontend λ°°ν¬ λ΄λΉ - Github Action CI/CD μ μ© - OAuth λ° μΌλ° λ‘κ·ΈμΈ/νμκ°μ
κΈ°λ₯ - λ‘κ·Έ νμΈ κΈ°λ₯ - μΉ΄μΉ΄μ€ν‘ 곡μ κΈ°λ₯ - μ μ νλ‘μ° μμ±
Features - ν
λ§ μ€μ λ° λλ€ ν κΈ°λ₯ - Kakao map APIλ₯Ό μ΄μ©ν μΆμ² μ₯μ μ‘°ν κΈ°λ₯ - μΆμ² μ₯μ μ’μμ κΈ°λ₯ - λ§ν¬ 곡μ κΈ°λ₯ - ERD λ° API μμ± - λ°ν μλ£ μμ±
μ΄νΈμ± (BE Leader)
κΉνμ° (BE)
κΉνν (BE)
νμ§μ (BE)
Features - Kafka, STOMPλ₯Ό μ¬μ©νμ¬ μ±ν
μλ² κ΅¬ν - SSE(Server Sent Event)λ₯Ό μ¬μ©νμ¬ μ μ½μ λ©μμ§ κΈ°λ₯ λ° μλ¦Ό μλ² κ΅¬ν - QueryDslμ μ¬μ©νμ¬ μ±ν
λ°©, λ©μμ§, 리뷰, μ’μμ 리μ€νΈ μ λ ¬ λ° κ²μ κΈ°λ₯ ꡬν - JWTμ Spring Securityλ₯Ό ν΅ν νμ κΈ°λ₯ ꡬν - μ 체 μν°ν° μμ± λ° μ°κ΄κ΄κ³ μ€μ - κ³΅ν΅ κΈ°λ₯ λ° κΈλ‘λ² μλ¬ μ²λ¦¬ μμ± - ERD λ° μμ€ν
μν€ν
μ² μ€κ³
Features - Postmanμ μ¬μ©ν Backend ν
μ€νΈ λ΄λΉ - λ
Έμ
κ΄λ¦¬, νμλ‘ λ° λ¬Έμ μμ±
Features - Spring Swaggerλ₯Ό ν΅ν REST API Docs μ 곡 - Git Actionκ³Ό GitHubλ₯Ό μ¬μ©νμ¬ CI/CD κ΅¬μΆ - λ°ν μλ£ μμ± - μνμ€ λ€μ΄μ΄κ·Έλ¨ μμ±
Features - μΆμ² μ₯μμ λν μ λ³ μκ³ λ¦¬μ¦ κΈ°λ₯ ꡬν - MySQLλ‘ Tour API λ§μ΄κ·Έλ μ΄μ
- AWS EC2, Git actionκ³Ό GitHubλ₯Ό μ¬μ©νμ¬ CI/CD κ΅¬μΆ - AWS Load Balancerλ₯Ό ν΅ν HTTPS μ μ© λ° λ¦¬λ€μ΄λ νΈ μ€μ - μμ€ν
μν€ν
μ² μμ±
Github
Discord
Notion
Jira
NextJS
Typescript
Styled-components
SCSS(SASS)
Recoil
Axios
React Query
Stomp
MSW
SockJS
Spring
Java
MySQL
Spring Security
JPA
QueryDSL
Kafka
Gradle
H2
SwaggerUI
Stomp
AWS S3
Github Actions
Elastic Load Balancer
Route53
CodeDeploy
NGINX
μΉ΄μΉ΄μ€ λ‘κ·ΈμΈ
μΉ΄μΉ΄μ€ μ§λ/λ‘컬
μΉ΄μΉ΄μ€ λ©μμ§
κ΅¬κΈ λ‘κ·ΈμΈ
λ€μ΄λ² λ‘κ·ΈμΈ
νκ΅ κ΄κ΄ κ³΅μ¬ Tour API
main : μλΉμ€ μ΄μ λΈλμΉ
dev : κ°λ° νκ²½ λΈλμΉ
feat/κ°λ°λͺ
: κΈ°λ₯ κ°λ° λΈλμΉ ex) feat/Login
fix/κ°λ°λͺ
: μμ λ³κ²½ & λ²κ·Έ μμ λΈλμΉ ex) fix/Login
π System Architecture - Backend
π System Architecture - Frontend
ββsrc
ββmain
β ββjava
β β ββgoorm
β β ββdofarming
β β ββdomain
β β β ββjpa
β β β ββauth
β β β β ββcontroller
β β β β ββdto
β β β β β ββrequest
β β β β β ββresponse
β β β β ββservice
β β β ββchatroom
β β β β ββcontroller
β β β β ββdto
β β β β β ββrequest
β β β β β ββresponse
β β β β ββentity
β β β β ββrepository
β β β β ββservice
β β β ββemail
β β β β ββcontroller
β β β β ββdto
β β β β β ββrequest
β β β β ββservice
β β β ββimage
β β β β ββconfig
β β β β ββcontroller
β β β β ββdto
β β β β β ββresponse
β β β β ββentity
β β β β ββrepository
β β β β ββservice
β β β ββjoin
β β β β ββcontroller
β β β β ββdto
β β β β β ββrequest
β β β β β ββresponse
β β β β ββentity
β β β β ββrepository
β β β β ββservice
β β β ββlike
β β β β ββcontroller
β β β β ββdto
β β β β β ββrequest
β β β β β ββresponse
β β β β ββentity
β β β β ββrepository
β β β β ββservice
β β β ββlocation
β β β β ββcontroller
β β β β ββdto
β β β β β ββrequest
β β β β β ββresponse
β β β β ββentity
β β β β ββrepository
β β β β ββservice
β β β ββlog
β β β β ββcontroller
β β β β ββdto
β β β β β ββrequest
β β β β β ββresponse
β β β β ββentity
β β β β ββrepository
β β β β ββservice
β β β ββmessage
β β β β ββcontroller
β β β β ββdto
β β β β β ββresponse
β β β β ββentity
β β β β ββrepository
β β β β ββservice
β β β ββrecommend
β β β β ββcontroller
β β β β ββdto
β β β β β ββrequest
β β β β β ββresponse
β β β β ββentity
β β β β ββrepository
β β β β ββservice
β β β β ββutil
β β β ββreview
β β β β ββcontroller
β β β β ββdto
β β β β β ββrequest
β β β β ββentity
β β β β ββrepository
β β β β ββservice
β β β ββreview_like
β β β β ββcontroller
β β β β ββentity
β β β β ββrepository
β β β β ββservice
β β β ββtag
β β β β ββcontroller
β β β β ββdto
β β β β β ββresponse
β β β β ββentity
β β β β ββrepository
β β β ββuser
β β β ββcontroller
β β β ββdto
β β β β ββrequest
β β β β ββresponse
β β β ββentity
β β β ββrepository
β β β ββservice
β β ββglobal
β β β ββauth
β β β ββcommon
β β β β ββdto
β β β β β ββrequest
β β β β β ββresponse
β β β β ββentity
β β β β ββerror
β β β β ββexception
β β β ββconfig
β β β β ββkafka
β β β ββfilter
β β β ββutil
β β ββinfra
β β ββhttps
β β ββtourapi
β β ββconfig
β β ββcontroller
β β ββdomain
β β ββdto
β β ββrepository
β β ββservice
β β ββtestpackage
β ββresources
β ββstatic
β ββtemplates
ββtest
ββjava
ββgoorm
ββdofarming
ββsrc
ββmain
β ββjava
β β ββgoorm
β β ββchat
β β ββconfig
β β ββcontroller
β β ββdomain
β β ββdto
β β ββservice
β ββresources
β ββstatic
β ββtemplates
ββtest
ββjava
ββgoorm
ββchat
ββsrc
ββmain
β ββjava
β β ββgoorm
β β ββnotification
β β ββconfig
β β β ββkafka
β β ββcontroller
β β ββdto
β β ββrepository
β β ββservice
β ββresources
β ββstatic
β ββtemplates
ββtest
ββjava
ββgoorm
ββnotification
πDevelopment Environment
Java 17.0.10
Gradle 9.0
Spring Boot 3.3.1
π μ£Όμ λΌμ΄λΈλ¬λ¦¬
Spring Data JPA
Spring Security
Spring Validation
Spring Kafka 3.7.0
QueryDSL JPA 5.0.0 (jakarta)
Hibernate Validator 8.0.1.Final
JWT 0.11.5
Bouncy Castle 1.69
H2 Database 2.2.224
MySQL 5.7.44
AWS S3 (Spring Cloud Starter 2.2.6.RELEASE)
spring-boot-starter-mail
Expiring Map 0.5.9
Guava 33.2.1-jre
Lombok
org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2
π©π»βπ¨ Wireframe
WireFrame
λλ© νμ΄μ§
λΉνμ
μΌλ° νμκ°μ
μΌλ° λ‘κ·ΈμΈ
μμ
λ‘κ·ΈμΈ
νλ‘ν μμ
λ‘κ·Έμμ
νμμΌ λ, 보μ΄λ λ§΅νλ©΄
λλ€ν-ν
λ§μ€μ
λ§΅ - μΆμ² μ₯μ μ‘°ν
곡μ κΈ°λ₯
리뷰 κΈ°λ₯
μ±ν
κΈ°λ₯
** **