Skip to content

PerDayOneSpoon/PerDayOneSpoon-BE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

✨ ν”„λ‘œμ νŠΈ μ†Œκ°œ

ν•˜λ£¨μ— ν•œ μ€Œμ”© πŸ§‘πŸ»β€πŸŒΎπŸŒ± κΎΈμ€€νžˆ μŠ΅κ΄€μ„ κΈ°λ‘ν•΄λ³΄μž!

ν•˜λ£¨ ν•œ μ€Œμ€ μ²΄λ“ν•˜κ³  싢은 μŠ΅κ΄€λ“€μ„ κΈ°λ‘ν•˜μ—¬ κΎΈμ€€νžˆ μ΄λ€„λ‚˜κ°ˆ 수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.

μ‚¬μš©μžλ“€μ΄ λ‹¨μˆœνžˆ μžμ‹ μ˜ μŠ΅κ΄€μ„ λ§Œλ“œλŠ” 것보닀 μ’€ 더 재미있게 μŠ΅κ΄€μ„ ν˜•μ„±ν•  수 μžˆλ„λ‘ ν•˜μžλŠ” μ·¨μ§€μ—μ„œ μ‹œμž‘λœ ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€.
λ”°λΌμ„œ λ‚΄ μŠ΅κ΄€λΏλ§Œ μ•„λ‹ˆλΌ 친ꡬ의 μŠ΅κ΄€κΉŒμ§€ ν™•μΈν•˜κ³  독렀할 수 μžˆμŠ΅λ‹ˆλ‹€.


πŸ“† ν”„λ‘œμ νŠΈ κΈ°κ°„

  • 개발 κΈ°κ°„: 2022/08/26 ~ 2022/10/07
  • 런칭: 2022/10/03
  • μœ μ € ν”Όλ“œλ°±: 2022/10/03 ~ 2022/10/07
  • μΆ”κ°€ μ—…λ°μ΄νŠΈ: 2022/10/03 ~ μ§„ν–‰ 쀑


πŸ“– μ„œλΉ„μŠ€ 아킀텍쳐

image



πŸ‘Š 아킀텍쳐 λ„μž… λ°°κ²½

Git Action
  • CI & CD ꡬ좕 λ‹Ήμ‹œ κ΅¬μΆ•λœ ν™˜κ²½μ—μ„œ νŒ€μ›λ“€μ΄ κ°œλ°œμ—λ§Œ 집쀑할 수 있게 λ§Œλ“œλ €λŠ” 것이 우리의 쀑점 κ³Όμ œμ˜€λ‹€.
  • λŒ€μ•ˆμœΌλ‘œλŠ” Genkins Travisκ°€ μ‘΄μž¬ν–ˆμœΌλ‚˜ λ‘˜λ‹€ EC2μ„œλ²„λ₯Ό λ‘λŒ€λ‘œ CI & CD ꡬ좕해야 ν•œλ‹€λŠ” 차이점이 μ‘΄μž¬ν–ˆλ‹€.
  • Git Action은 ν•˜λ‚˜μ˜ μ„œλ²„λ‘œ CI & CDꡬ좕이 κ°€λŠ₯ν•˜μ—¬ μ„œλ²„ λΉ„μš©μ˜ 문제 감당 μ‹œ λΉ„μš© μ΅œμ†Œν™”λ₯Ό ν•  수 μžˆλ‹€κ³ 
    μƒκ°ν–ˆλ‹€.
  • λ ˆνΌλŸ°μŠ€λ„ 많고 λŸ¬λ‹μ»€λΈŒκ°€ 적으며 원격 μ €μž₯μ†Œλ‘œ Git Hubλ₯Ό μ‚¬μš©ν•˜λŠ” μš°λ¦¬μ—κ² git action은 λ‚œμ΄λ„λ„
    μ μš©ν•˜κΈ°λ„ 제일 쉽닀고 μƒκ°ν–ˆλ‹€.
  • 상기 μ΄μœ λ“€λ‘œ λΉ„μš© μ΅œμ†Œν™” , μ΅œμ†Œν•œμ˜ μ‹œκ°„μœΌλ‘œ κ΅¬μΆ•λœ ν™˜κ²½μ„ λ§Œμ‘±ν•œλ‹€κ³  μƒκ°ν•˜μ—¬ Git Action으둜 μžλ™
    λ°°ν¬ν™˜κ²½μ„ κ΅¬μΆ•ν–ˆλ‹€.
  • google, kakao, naver μ†Œμ…œλ‘œκ·ΈμΈ
  • λ‘œκ·ΈμΈμ„ κ΅¬ν˜„ν•˜κ²Œ λ˜μ—ˆμ„ λ•Œ μ‚¬μš©μžλ“€μ˜ νŽΈμ˜μ„±μ„ κ³ λ €ν•˜λŠ” λ‹¨κ³„μ—μ„œ 일반 λ‘œκ·ΈμΈμ€ νŽΈμ˜μ„±μ„ λ–¨μ–΄λœ¨λ¦°λ‹€κ³ 
    νŒλ‹¨ν–ˆλ‹€.
  • μ†Œμ…œ 둜그인으둜 인증 , 인가λ₯Ό 보증된 μ†Œμ…œ(kakaoλ“±)에 맑겨 κ°„νŽΈν•œ 둜그인 처리 λ°©μ‹μœΌλ‘œ νŽΈμ˜μ„±μ„ ν–₯μƒμ‹œν‚€κ³ μž ν•˜μ˜€λ‹€.
  • μ†Œμ…œ 둜그인 쀑 μ• ν”Œμ˜ 경우 (1λ…„κ°„ 9~12λ§Œμ›μ˜ λΉ„μš©) κ²°μ œκΈˆμ•‘μ˜ 이슈둜 카카였 , 넀이버 , ꡬ글 3개의
    μ†Œμ…œλ‘œκ·ΈμΈμ„ μ„ νƒν•˜κ²Œ λ˜μ—ˆλ‹€.
  • git hubλŠ” 일반 μ‚¬μš©μžλ“€μ—κ² 접근성이 λ–¨μ–΄μ§„λ‹€κ³  νŒλ‹¨ν–ˆκ³  facebook은 naver, goolge둜 λŒ€μ²΄ κ°€λŠ₯ν•˜λ‹€ νŒλ‹¨ν–ˆλ‹€.
  • 상기 μ΄μœ λ“€λ‘œ 3개의 μ†Œμ…œ λ‘œκ·ΈμΈμ„ μ„ νƒν•˜κ²Œ λ˜μ—ˆκ³  그에따라 νŽΈμ˜μ„±μ„ ν–₯μƒμ‹œν‚¬ 수 μžˆμ—ˆλ‹€.
  • Redis
  • λ°μ΄ν„°μ˜ I/Oκ°€ μž¦μ€ 경우 변동성이 적은 λ°μ΄ν„°μΌλ•Œ 맀번 DBλ₯Ό μ‘°νšŒν•˜λŠ” 것은 νŠΈλž˜ν”½ λΆ€ν•˜μ™€ μ„±λŠ₯ μ €ν•˜λ₯Ό ν•΄κ²°ν•  수 μ—†μ—ˆλ‹€.
  • 데이터λ₯Ό 캐싱 μ²˜λ¦¬ν•˜λŠ” 경우 νŠΈλž˜ν”½μ„ 쀄이고 μ„±λŠ₯을 ν–₯μƒμ‹œν‚¬ 수 μžˆλŠ”λ° μ΄λ•Œ λ‘œμ»¬μΊμ‹œ , Redisλ₯Ό κ³ λ €ν•˜κ²Œ
    λ˜μ—ˆλ‹€.
  • λ‘œμ»¬μΊμ‹œ(caffeine cache)λ₯Ό κ³ λ €ν•˜κ²Œ λ˜μ—ˆμœΌλ‚˜ 무쀑단 배포 ν™˜κ²½μ—μ„œ νœ˜λ°œμ„± μΊμ‹œκ°€ μ‚¬λΌμ§ˆ μœ„ν—˜μ΄ μ‘΄μž¬ν•œλ‹€κ³ 
    νŒλ‹¨ν–ˆκ³  scale-outμ‹œ 데이터 μ •ν•©μ„± λ¬Έμ œκ°€ 생긴닀고 νŒλ‹¨ν–ˆλ‹€.
  • Redis의 경우 μ—¬λŸ¬ 자료ꡬλ₯Ό μ§€μ›ν•˜μ—¬ 캐싱 처리, 데이터λ₯Ό μ²˜λ¦¬ν•˜κΈ° νŽΈλ¦¬ν•˜λ‹€κ³  μƒκ°ν–ˆκ³  무쀑단 λ°°ν¬ν™˜κ²½μ—μ„œ
    μ„œλ²„μ˜ μžμ›μ„ μ‚¬μš©ν•˜κΈ°μ— 데이터가 μ‚¬λΌμ§ˆ μœ„ν—˜μ΄ μ‘΄μž¬ν•˜μ§€ μ•Šμ•˜λ‹€.
  • RedisλŠ” μ—¬λŸ¬ μ„œλ²„κ°„ 데이터 μ •ν•©μ„± λ¬Έμ œλ„ ν•΄κ²°ν•  수 μžˆλ‹€κ³  μƒκ°ν–ˆλ‹€.
  • 상기 μ΄μœ λ“€λ‘œ Redisλ₯Ό μΊμ‹±μ²˜λ¦¬λ₯Ό μœ„ν•΄ μ‚¬μš©ν•˜κΈ°λ‘œ κ²°μ •ν–ˆλ‹€.
  • aws RDS MySql
  • DBλ₯Ό μ €μž₯ν•˜κΈ° μœ„ν•œ RDBMSλ‘œλŠ” RDBS와 NOSQL이 μ‘΄μž¬ν•œλ‹€.
  • NOSQL은 검색속도가 μ›”λ“±ν•˜λ‚˜ ν…Œμ΄λΈ”κ°„ 연관관계λ₯Ό μ„€μ •ν•  수 μ—†κ³  λ°μ΄ν„°μ˜ ν˜•νƒœκ°€ μ •ν™•ν•˜κ²Œ μœ μ§€λ˜μ§€ μ•ŠμœΌλ©° λ°μ΄ν„°μ˜ 무결성이 μ§€μΌœμ§€μ§€ μ•ŠλŠ”λ‹€.
  • RDBMSλŠ” λ°μ΄ν„°μ˜ 무결성이 μ§€μΌœμ§€λ©° μΌμ •ν•œ μŠ€ν‚€λ§ˆλ‘œ 데이터λ₯Ό 관리할 수 μžˆμ–΄ ν…Œμ΄λΈ” λ‚΄ 데이터λ₯Ό 각각 관리할 μŠ€νŠΈλ ˆμŠ€κ°€ 쀄어듀며 μ—°κ΄€κ΄€κ³„λ‘œ ν…Œμ΄λΈ”λ“€μ„ 관리할 수 μžˆλ‹€.
  • 상기 μ΄μœ λ“€λ‘œ RDBMSλ₯Ό μ„ νƒν–ˆμœΌλ©° aws의 RDS인 MySql을 μ‚¬μš©ν•˜κΈ°λ‘œ κ²°μ •ν–ˆλ‹€.
  • router53 , Amazon ELB
  • Front-End와 ν†΅μ‹ μ‹œ HTTPν”„λ‘œν† μ½œλ‘œλ§Œ ν†΅μ‹ ν•˜λŠ” 것은 λ³΄μ•ˆμƒμ˜ μœ„ν—˜μ„±μ„ μ•ΌκΈ°ν•œλ‹€κ³  μƒκ°ν•œλ‹€.
  • Back-End λ°°ν¬μ‹œ HTTPS ν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•˜μ—¬ λ³΄μ•ˆμ„ λ†’νžˆκ³ μž ν•˜μ˜€κ³  μ΄λ•Œ aws의 router53, Amazon ELBλ₯Ό
    λ„μž…ν•˜λŠ” 것이 EC2λ₯Ό μ‚¬μš©ν•˜λŠ” μš°λ¦¬κ°€ λ°”λ‘œ μ μš©ν•  수 μžˆλŠ” 뢀뢄이라고 μƒκ°ν–ˆλ‹€.
  • 상기 μ΄μœ λ“€λ‘œ HTTP,HTTPSν”„λ‘œν† μ½œμ„ 톡신할 수 μžˆλŠ” 배포 ν™˜κ²½μ„ κ΅¬μΆ•ν•˜λŠ” 것에 aws의 router53κ³Ό Amazon
    ELBλ₯Ό μ΄μš©ν•˜κΈ°λ‘œ κ²°μ •ν–ˆλ‹€.
  • SSE
  • μ‹€μ‹œκ°„ μ•Œλ¦Όμ„ κ΅¬ν˜„ν•˜κΈ° μœ„ν•΄μ„  기쑴의 HTTP 톡신 방식(폴링 , 긴폴링)을 μ‚¬μš©ν•˜κΈ°μ—” μžμ›μ˜ λ‚­λΉ„κ°€ λ°œμƒν•˜μ—¬
    μƒˆλ‘œμš΄ 방식을 λ„μž…ν•΄μ•Ό ν–ˆλ‹€.
  • 기쑴의 HTTPν”„λ‘œν† μ½œμ„ μ‚¬μš©ν•˜λŠ” streamingλ°©μ‹μ˜ SSE와 WebSocket을 μ‚¬μš©ν•˜λŠ” μ›Ήμ†ŒμΌ“ 두가지가 μ‘΄μž¬ν–ˆμœΌλ‚˜
    μš°λ¦¬κ°€ κ΅¬ν˜„ν•˜λ €λŠ” μ•Œλ¦Όμ€ μ–‘λ°©ν–₯의 μ•Œλ¦Όμ΄ μ•„λ‹ˆμ—ˆλ‹€.
  • 배터리 μ†Œλͺ¨λŸ‰μ΄ 적고 연결이 λŠμ–΄μ§€λ©΄ μž¬μ—°κ²°μ„ μ‹œλ„ν•˜λ©° pollyfill둜 λͺ¨λ“  λΈŒλΌμš°μ € 지원이 κ°€λŠ₯ν•˜κ²Œν•  수 μžˆλŠ” SSEκ°€ 우리의 μ•Œλ¦Όκ³Ό λ§žλŠ”λ‹€κ³  νŒλ‹¨ν–ˆλ‹€.
  • SSEλŠ” 첫 μ—°κ²° 이후 맀번 μž¬μš”μ²­μ„ ν•˜μ§€μ•Šκ³  μ„œλ²„μ˜ 응닡을 쀄 수 μžˆμ–΄ λΉ„μš©μ„ μ•„λ‚„ 수 μžˆλŠ” μΈ‘λ©΄κ³Ό μ›Ήμ†ŒμΌ“μ˜ 차이 , ν”„λ‘œμ νŠΈμ˜ λ°©ν–₯성을 κ³ λ €ν•˜μ—¬ μ‚¬μš©ν•˜κΈ°λ‘œ κ²°μ •ν–ˆλ‹€.


  • πŸ’– μ£Όμš” κΈ°λŠ₯

    πŸ“…μ§€ν‚€κ³  싢은 μŠ΅κ΄€λ“€μ„ 기둝해 μΊ˜λ¦°λ”μ—μ„œ 확인할 수 μžˆμ–΄μš”.
    • μ‹œκ°„κ³Ό 캐릭터λ₯Ό 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.
    • μŠ΅κ΄€μ€ 3일과 7일 쀑에 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.
    • μ„€μ •ν•œ μ‹œκ°„μœΌλ‘œ 타이머λ₯Ό μ§„ν–‰ν•˜κ³  μŠ΅κ΄€μ„ 달성할 수 μžˆμŠ΅λ‹ˆλ‹€.
    • μ„€μ •ν•œ μŠ΅κ΄€μ„ μΊ˜λ¦°λ”μ—μ„œλ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.


    πŸ™ŒμΉœκ΅¬λ₯Ό κ²€μƒ‰ν•˜μ—¬ νŒ”λ‘œμš°ν•˜κ³  μ„ νƒν•˜λ©΄ μΉœκ΅¬κ°€ κΈ°λ‘ν•œ μŠ΅κ΄€μ„ 확인할 수 μžˆμ–΄μš”.
    • 친ꡬ의 이메일, 이름 λ˜λŠ” κ²€μƒ‰μ½”λ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ 검색할 수 μžˆμŠ΅λ‹ˆλ‹€.
    • μΊ˜λ¦°λ”μ—μ„œ μΉœκ΅¬κ°€ 곡개 μ„€μ •ν•œ μŠ΅κ΄€μ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

    πŸ‘€μΉœκ΅¬μ˜ μŠ΅κ΄€μ— μ’‹μ•„μš”μ™€ λŒ“κΈ€μ„ 달아 μ†Œν†΅ν•  수 μžˆμ–΄μš”!
    • μΉœκ΅¬κ°€ μ–΄λ–€ μŠ΅κ΄€μ„ ν–ˆλŠ”μ§€ λ‘˜λŸ¬λ³΄κ³  응원과 μ½”λ©˜νŠΈλ₯Ό 남길 수 μžˆμŠ΅λ‹ˆλ‹€.

    πŸ‘«μΉœκ΅¬μ—κ²Œ 보여주고 μ‹Άμ§€ μ•Šμ€ μŠ΅κ΄€λ“€μ€ 프라이빗 μ„€μ •μœΌλ‘œ 숨길 수 μžˆμ–΄μš”!
    • 프라이빗을 μ„€μ •ν•œ μŠ΅κ΄€μ€ μΉœκ΅¬λ“€μ΄ μΊ˜λ¦°λ”μ—μ„œ λ³Ό 수 μ—†μŠ΅λ‹ˆλ‹€.

    πŸ…λ±ƒμ§€λ“€μ€ μ–΄λ–»κ²Œ μ–»λŠ”μ§€ λΉ„λ°€..! μ„œλΉ„μŠ€λ₯Ό μ΄μš©ν•˜λ©΄μ„œ ν•˜λ‚˜μ”© μ–»μ–΄κ°€λŠ” 재미λ₯Ό λŠκ»΄λ³΄μ„Έμš”!
    • 얻은 뱃지듀은 이미지와 ν•¨κ»˜ μ–Έμ œ νšλ“ν–ˆλŠ”μ§€ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€.
    • μ–»μ§€ μ•Šμ€ 뱃지듀은 λ¬ΌμŒν‘œ λͺ¨μ–‘μ˜ 뱃지와 ν•¨κ»˜ 힌트λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.


    πŸ“’μ‹€μ‹œκ°„μœΌλ‘œ μ•Œλ¦Όμ„ 받을 수 μžˆμ–΄μš”!
    • 뱃지 νšλ“, λŒ“κΈ€, μ’‹μ•„μš”, μŠ΅κ΄€ 달성 μ‹œ μ‹€μ‹œκ°„μœΌλ‘œ μ•Œλ¦Όμ„ 받을 수 μžˆμŠ΅λ‹ˆλ‹€.

    πŸ™β€β™‚οΈλ‚΄ ν”„λ‘œν•„μ„ νŽΈμ§‘ν•  수 μžˆμ–΄μš”!
    • 사진과 이름, μƒνƒœλ©”μ‹œμ§€λ₯Ό λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • μΉœκ΅¬λ“€μ˜ μƒνƒœλ©”μ‹œμ§€λŠ” νŒ”λ‘œμš° λ˜λŠ” νŒ”λ‘œμ›Œ λͺ©λ‘μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.



    πŸ‘ͺ TEAM μ†Œκ°œ

    κΉ€λ―Όμ„­ 리더 λ°•λ―Όν˜ 졜λͺ…μˆœ μ „μ†Œμ—° 뢀리더 λ°°μ§€μ˜
    KakaoTalk_Photo_2022-03-30-14-34-07 KakaoTalk_Photo_2022-03-30-14-41-33 KakaoTalk_Photo_2022-03-30-14-41-33 KakaoTalk_Photo_2022-03-30-14-41-33

    πŸ”§ 기술 μŠ€νƒ

    πŸ’» λ°±μ—”λ“œ





    πŸ’» ν”„λ‘ νŠΈμ—”λ“œ




    πŸŽ‡ 개발 포인트



    πŸš€ νŠΈλŸ¬λΈ”μŠˆνŒ…

    About

    No description, website, or topics provided.

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published

    Contributors 2

    •  
    •