/donggam

πŸ’Œμ‚¬μš©μžλ“€μ˜ μœ„μΉ˜λ₯Ό 기반으둜 ν•œ μ‹€μ‹œκ°„ 읡λͺ… SNS πŸ’Œ (2023.10.10 - 2023.11.17) | πŸ† μš°μˆ˜μƒ πŸ†

Primary LanguageJava

동감(Ditto) ✨

동ᄀᅑᆷ

πŸŽ€ ν”„λ‘œμ νŠΈ μ†Œκ°œ

🏷 ν”„λ‘œμ νŠΈ λͺ… : 동감

πŸ—“οΈ ν”„λ‘œμ νŠΈ κΈ°κ°„ : 2023.10.10 ~ 2023.11.17 (6μ£Ό)

πŸ‘₯ ꡬ성원 : 곡정민, 박진희, μ–‘λΆˆνšŒ, μ •ν˜„μš°, μ΅œλ™μš°(νŒ€μž₯πŸ‘‘)


πŸ₯° μ„œλΉ„μŠ€ ꡬ경 λ°”λ‘œκ°€κΈ°

πŸ–₯ μ„œλΉ„μŠ€ μ£Όμ†Œ : https://donggam.site/


βœ… 기획 λ°°κ²½

β€œκ°™μ€ 곡간, 같은 μ‹œκ°„ 속 μ‚¬λžŒλ“€μ€ μ–΄λ–€ λͺ¨μŠ΅μΌκΉŒ?”
같은 곡간과 μ‹œκ°„ 속에 μžˆμ§€λ§Œ 무심코 곁을 μ§€λ‚˜μΉœ μ‚¬λžŒλ“€μ€ μ–΄λ–€ 생각을 ν•˜κ³  μžˆμ„κΉŒ?

μš°λ¦¬λŠ” 늘 곁을 μ§€λ‚˜μΉ˜λŠ” λ§Žμ€ μ‚¬λžŒλ“€μ„ λ§Œλ‚˜κ²Œ λ˜λŠ”λ°, κ·Έμ€‘μ—λŠ” 맀일 얼꡴을 마주치며 μ„œλ‘œμ˜ μ‘΄μž¬μ— λŒ€ν•΄ μ΅μˆ™ν•΄μ§€λŠ” μ‚¬λžŒλ“€λ„ μžˆλ‹€.

비둝 말 ν•œλ§ˆλ”” 해보지 λͺ»ν–ˆμ§€λ§Œ, μ‹œκ°„μ΄ μ§€λ‚˜λ©΄μ„œ 혼자만의 내적 μΉœλ°€κ°μ΄ μŒ“μ΄λ©° μ € μ‚¬λžŒλ“€μ€ μ–΄λ–€ μ‚¬λžŒλ“€μΌκΉŒ, 각자 μ–΄λ–€ 고민을 가지고 μ–΄λ–€ ν•˜λ£¨λ₯Ό 보내고 μžˆμ„κΉŒ κΆκΈˆν•΄μ§€κΈ°λ„ ν•œλ‹€.

β€˜μ˜·κΉƒλ§Œ μŠ€μ³λ„ μΈμ—°β€™μ΄λΌλŠ” 말 처럼, μŠ€μ³μ§€λ‚˜κ°€λŠ” μ‚¬λžŒλ“€μ΄μ§€λ§Œ, 같은 μ‹œκ°„κ³Ό 곡간을 κ³΅μœ ν•œλ‹€λŠ” 것은 큰 의미λ₯Ό μ§€λ‹ˆκ³  μžˆλ‹€.

κΈΈ μœ„μ—μ„œ λ§Œλ‚˜κ²Œ 될 λ§Žμ€ μ‚¬λžŒλ“€μ„ μ•Œμ•„κ°€κΈ° μœ„ν•œ μ„œλΉ„μŠ€! 동감이 λ‚˜μ˜€κ²Œ λ˜μ—ˆλ‹€.


βœ… μ„œλΉ„μŠ€ μ†Œκ°œ

μ‚¬μš©μžλ“€μ˜ μœ„μΉ˜λ₯Ό 기반으둜 ν•œ SNS

  • μƒνƒœλ©”μ‹œμ§€λ₯Ό μ„€μ •ν•΄μ„œ μ£Όλ³€ μ‚¬λžŒλ“€μ˜ 감정을 배경으둜 확인할 수 μžˆλ‹€.
  • μ‹œκ°„κ³Ό 곡간을 기반으둜 ν•œ λ‹€μ–‘ν•œ 컨텐츠에 μ°Έμ—¬ν•  수 있으며 μžμ‹ μ˜ 기둝을 κ³΅μœ ν•  수 μžˆλ‹€.

πŸ‘₯ μ„œλΉ„μŠ€ λŒ€μƒ

  • 주변에 관심이 λ§Žμ€ μ‚¬λžŒλ“€
  • 읡λͺ…μ˜ λˆ„κ΅°κ°€μ™€ λŒ€ν™”λ₯Ό ν•˜κ³  싢은 μ‚¬λžŒλ“€

πŸ’Œ μ„œλΉ„μŠ€ ν™”λ©΄ 및 κΈ°λŠ₯ μ†Œκ°œ

βœ… μ‹œ/곡간 ν™”λ©΄

  • λ‹‰λ„€μž„ 및 ν˜„μž¬ μƒνƒœλ©”μ‹œμ§€ μ„€μ •

μƒνƒœλ©”μ‹œμ§€λ₯Ό 감정 λΆ„μ„ν•œ ν›„, μ£Όλ³€μΈλ“€μ˜ 감정에 따라 배경이 λ³€ν•˜λŠ” κ±Έ 확인할 수 μžˆλ‹€.

메인_νšŒμ›μ •λ³΄μˆ˜μ •.gif

  • 같은 곡간, 같은 μ‹œκ°„μ„ λ³΄λ‚΄λŠ” μ‚¬λžŒ μ°ΎκΈ°

반경 10km μ΄λ‚΄μ˜ μ‚¬λžŒλ“€ 쀑 μ–΄ν”Œμ„ ν™œμ„±ν•œ μ‚¬λžŒμ΄ 있으면 ν™”λ©΄μ—μ„œ 확인 κ°€λŠ₯ν•˜λ‹€.

메인_μ£Όλ³€μœ μ €μ‘°νšŒ.gif

  • λ‹€λ₯Έ μ‚¬μš©μžμ™€ μƒν˜Έ μž‘μš©

1:1 μ±„νŒ…(μ–‘λ°©ν–₯)κ³Ό μͺ½μ§€ 보내기(단방ν–₯)λ₯Ό ν•  수 μžˆλ‹€.

메인_μ±„νŒ…λ³΄λ‚΄κΈ°.gif 메인_μͺ½μ§€λ³΄λ‚΄κΈ°.gif 메인_μͺ½μ§€ν™•μΈ+μ’‹μ•„μš”.gif


βœ… μ‹œκ°„ ν™”λ©΄

  • μ£Όμ œμ— λ”°λ₯Έ 사진 μ½˜ν…ŒμŠ€νŠΈ

μ‹œκ°„λŒ€μ— 따라 λ°”λ€ŒλŠ” μ£Όμ œμ— 맞좰 사진을 μ—…λ‘œλ“œ ν•  수 μžˆλ‹€.

μ‹œκ°„_사진_λͺ©λ‘.gif

μ‹œκ°„_μ‚¬μ§„μ—…λ‘œλ“œ.gif

  • λͺ…μ˜ˆμ˜ μ „λ‹Ή

μ’‹μ•„μš”λ₯Ό 많이 받은 베슀트 사진듀을 확인할 수 μžˆλ‹€.

μ‹œκ°„_μ „μ‹œνšŒ.gif


βœ… 곡간 ν™”λ©΄

  • λžœλ“œλ§ˆν¬ 확인

주변에 μžˆλŠ” λžœλ“œλ§ˆν¬λ₯Ό 확인할 수 있으며, 타 지역에 μžˆλŠ” λžœλ“œλ§ˆν¬λ₯Ό μ‘°νšŒν•  수 μžˆλ‹€.

곡간_λžœλ“œλ§ˆν¬μ‘°νšŒ+λ°©λͺ…둝.gif

  • λ°©λͺ…둝

주변에 μžˆλŠ” λ°©λͺ…둝을 확인할 수 있으며, 지도λ₯Ό 톡해 μœ„μΉ˜λ„ 확인할 수 μžˆλ‹€.

곡간_μ£Όλ³€λ°©λͺ…둝+λŒ“κΈ€μž‘μ„±.gif

  • κΈ€ 등둝 및 λ‚΄ λ°©λͺ…둝 확인

λ°©λͺ…둝과 λžœλ“œλ§ˆν¬ λ‚˜λˆ„μ–΄μ„œ 글을 등둝할 수 있고, λ‚΄κ°€ μ μ—ˆλ˜ λ°©λͺ…둝을 확인할 수 μžˆλ‹€.

곡간_λ°©λͺ…둝 μž‘μ„±.gif

πŸ›  기술 μŠ€νƒ

FE

BE

DB

Dev-Ops

Communication

πŸ—‚ ν”„λ‘œμ νŠΈ ꡬ쑰

FE

β””β”€πŸ“¦ src
  β”œβ”€πŸ“‚ api
  β”œβ”€πŸ“‚ assets
  β”‚  β”œβ”€πŸ“‚ animation
  β”‚  β”œβ”€πŸ“‚ common
  β”‚  β”œβ”€πŸ“‚ fonts
  β”‚  β”œβ”€πŸ“‚ icons
  β”‚  β”œβ”€πŸ“‚ images
  β”‚  β”œβ”€πŸ“‚ landmark
  β”‚  β”œβ”€πŸ“‚ like
  β”‚  β”œβ”€πŸ“‚ mail
  β”‚  β”œβ”€πŸ“‚ timeBackground
  β”‚  β”œβ”€πŸ“‚ tutorial
  β”‚  β””β”€πŸ“œ kakao_login_button.png
  β”œβ”€πŸ“‚ components
  β”‚  β”œβ”€πŸ“‚ character
  β”‚  β”œβ”€πŸ“‚ chatpage
  β”‚  β”œβ”€πŸ“‚ common
  β”‚  β”œβ”€πŸ“‚ landmarkpage
  β”‚  β”œβ”€πŸ“‚ loginpage
  β”‚  β”œβ”€πŸ“‚ mailboxpage
  β”‚  β”œβ”€πŸ“‚ mainpage
  β”‚  β”œβ”€πŸ“‚ spacepage
  β”‚  β””β”€πŸ“‚ timepage
  β”œβ”€πŸ“‚ pages
  β”œβ”€πŸ“‚ recoil
  β”‚  β”œβ”€πŸ“‚ existingCharacter
  β”‚  β”œβ”€πŸ“‚ location
  β”‚  β””β”€πŸ“‚ user
  β”œβ”€πŸ“‚ utils
  β””β”€πŸ“œ App.jsx

BE

C:.
β”œβ”€πŸ“‚ generated
β”‚  β””β”€πŸ“‚ com
β”‚      β””β”€πŸ“‚ example
β”‚          β””β”€πŸ“‚ backend
β”‚              β””β”€πŸ“‚ entity
β”‚                  β”œβ”€πŸ“‚ mariaDB
β”‚                  β”‚  β”œβ”€πŸ“‚ chat
β”‚                  β”‚  β”œβ”€πŸ“‚ member
β”‚                  β”‚  β”œβ”€πŸ“‚ message
β”‚                  β”‚  β”œβ”€πŸ“‚ space
β”‚                  β”‚  β”œβ”€πŸ“‚ status
β”‚                  β”‚  β””β”€πŸ“‚ time
β”‚                  β””β”€πŸ“‚ postgreSQL
β”œβ”€πŸ“‚ java
β”‚  β””β”€πŸ“‚ com
β”‚      β””β”€πŸ“‚ example
β”‚          β”œβ”€πŸ“‚ backend
β”‚          β”‚  β”œβ”€πŸ“‚ config
β”‚          β”‚  β”‚  β””β”€πŸ“‚ chat
β”‚          β”‚  β”œβ”€πŸ“‚ controller
β”‚          β”‚  β”‚  β”œβ”€πŸ“‚ chat
β”‚          β”‚  β”‚  β”œβ”€πŸ“‚ member
β”‚          β”‚  β”‚  β”œβ”€πŸ“‚ message
β”‚          β”‚  β”‚  β”œβ”€πŸ“‚ space
β”‚          β”‚  β”‚  β”œβ”€πŸ“‚ time
β”‚          β”‚  β”‚  β””β”€πŸ“‚ web
β”‚          β”‚  β”œβ”€πŸ“‚ data
β”‚          β”‚  β”œβ”€πŸ“‚ dto
β”‚          β”‚  β”‚  β”œβ”€πŸ“‚ chat
β”‚          β”‚  β”‚  β”œβ”€πŸ“‚ image
β”‚          β”‚  β”‚  β”œβ”€πŸ“‚ landmark
β”‚          β”‚  β”‚  β”œβ”€πŸ“‚ memberUpdate
β”‚          β”‚  β”‚  β”œβ”€πŸ“‚ message
β”‚          β”‚  β”‚  β””β”€πŸ“‚ record
β”‚          β”‚  β”œβ”€πŸ“‚ entity
β”‚          β”‚  β”‚  β”œβ”€πŸ“‚ mariaDB
β”‚          β”‚  β”‚  β”‚  β”œβ”€πŸ“‚ chat
β”‚          β”‚  β”‚  β”‚  β”œβ”€πŸ“‚ member
β”‚          β”‚  β”‚  β”‚  β”œβ”€πŸ“‚ message
β”‚          β”‚  β”‚  β”‚  β”œβ”€πŸ“‚ space
β”‚          β”‚  β”‚  β”‚  β”œβ”€πŸ“‚ status
β”‚          β”‚  β”‚  β”‚  β””β”€πŸ“‚ time
β”‚          β”‚  β”‚  β””β”€πŸ“‚ postgreSQL
β”‚          β”‚  β”œβ”€πŸ“‚ exception
β”‚          β”‚  β”‚  β””β”€πŸ“‚ type
β”‚          β”‚  β”œβ”€πŸ“‚ jwt
β”‚          β”‚  β”œβ”€πŸ“‚ repository
β”‚          β”‚  β”‚  β”œβ”€πŸ“‚ mariaDB
β”‚          β”‚  β”‚  β”‚  β”œβ”€πŸ“‚ chat
β”‚          β”‚  β”‚  β”‚  β”œβ”€πŸ“‚ image
β”‚          β”‚  β”‚  β”‚  β”œβ”€πŸ“‚ landmark
β”‚          β”‚  β”‚  β”‚  β”œβ”€πŸ“‚ member
β”‚          β”‚  β”‚  β”‚  β”œβ”€πŸ“‚ message
β”‚          β”‚  β”‚  β”‚  β”œβ”€πŸ“‚ record
β”‚          β”‚  β”‚  β”‚  β””β”€πŸ“‚ status
β”‚          β”‚  β”‚  β””β”€πŸ“‚ postgreSQL
β”‚          β”‚  β”œβ”€πŸ“‚ service
β”‚          β”‚  β”‚  β”œβ”€πŸ“‚ chat
β”‚          β”‚  β”‚  β”œβ”€πŸ“‚ Member
β”‚          β”‚  β”‚  β””β”€πŸ“‚ message
β”‚          β”‚  β”œβ”€πŸ“‚ type
β”‚          β”‚  β””β”€πŸ“‚ util
β”‚          β”‚      β”œβ”€πŸ“‚ fcm
β”‚          β”‚      β””β”€πŸ“‚ mattermost
β”‚          β””β”€πŸ“‚ scheduler
β””β”€πŸ“‚ resources
    β””β”€πŸ“‚ firebase

πŸ“œ ν”„λ‘œμ νŠΈ μ‚°μΆœλ¬Ό

μ‹œμŠ€ν…œ 아킀텍쳐

System_Architecture


ERD

ERD


API λͺ…μ„Έμ„œ

API_1 API_2 API_3 API_4 API_5

πŸ’™ νŒ€μ› μ†Œκ°œ

곡정민 박진희 μ–‘λΆˆνšŒ
Front-End
μ‹œκ°„ νŽ˜μ΄μ§€ κ΅¬ν˜„ 및 CSS
전체 λ°©λͺ…둝 CSS
μͺ½μ§€ νŽ˜μ΄μ§€ CSS
FE CI/CD ꡬ좕 및 SSL 적용
μ„œκΈ°
Front-End, UI/UX
νŽ˜μ΄μ§€ λ””μžμΈ
λžœλ“œλ§ˆν¬ 쑰회 및 등둝
메인 νŽ˜μ΄μ§€ κ΅¬ν˜„ 및 CSS
μ£Όλ³€ μœ μ € μͺ½μ§€ 전솑 κ΅¬ν˜„
Front-End
μΉ΄μΉ΄μ˜€ν†‘ μ†Œμ…œ 둜그인
일반 λ°©λͺ…둝 κ΅¬ν˜„ 및 CSS
μͺ½μ§€ νŽ˜μ΄μ§€ κ΅¬ν˜„
ν”„λ‘œν•„ νŽ˜μ΄μ§€ κ΅¬ν˜„
지도 API
https://github.com/jeongmin59 https://github.com/zzarru
μ •ν˜„μš° μ΅œλ™μš°(νŒ€μž₯πŸ‘‘)
Full Stack
Stomp + SockJS μ±„νŒ…
μͺ½μ§€ 및 μ±„νŒ… API μ œμž‘
PostGIS 곡간 쿼리 적용
μ±„νŒ…λ°© νŽ˜μ΄μ§€ css
메인 νŽ˜μ΄μ§€ ꡬ쑰 μ„€μ • 및 css 적용
λ¬΄ν•œ 슀크둀 κΈ°λŠ₯ κ΅¬ν˜„
CI/CD ꡬ좕 및 SSL 적용
Full Stack
Firebase ν‘Έμ‹œ μ•Œλ¦Ό
Stomp+SockJS μ±„νŒ…
μ±„νŒ… νŽ˜μ΄μ§€ κΈ°λŠ₯ 및 CSS
PostGIS 곡간 쿼리 적용
μŠ€ν”„λ§ μ‹œνλ¦¬ν‹°+JWT 카카였 μ†Œμ…œ 둜그인
메인, μ‹œκ°„, κ³΅κ°„νŽ˜μ΄μ§€ API μ œμž‘
https://github.com/tunkcalb?tab=repositories https://github.com/woodong27