| λ°μ£Όν | μμμ§ | μ₯μ±μ | ν©κ·μ² |
|---|---|---|---|
νλ‘μ νΈ λ΄μ©
- λ¬΄λ£ μμ½ μ·¨μκ° λΆκ°ν μμμ μλ/κ±°λ νλ«νΌ
νλ‘μ νΈ μ£Όμ λ° νμ ꡬν κΈ°λ₯ μ μ
- μΌλμ
νλ‘μ νΈ μ μ λ°°κ²½
- μμ½ μ·¨μμ λν λΆλ§μ΄ λ§μ, μ μ μ μ°©κ°/μ€μλ μμΌλ μ²μ¬μ§λ³, κ°μΈμ μ¬μ λ‘ μΈν΄ μ΄μ© μ μμ΄ μ·¨μμμλ£κ° λ°μνλ κ²½μ° μ μ μ λΆλ§ λ° νν΄λ‘ μ΄μ΄μ§
- μμ½ μ·¨μμ λΆμ μ κ²½νμΌλ‘ μΈν΄ μ μ κ° νν΄νλ κ²μ λ§μ μ μλ λ°©μμΌλ‘ μμ½ μ·¨μ λΆκ° μνμ ν΄κ²°ν μ μλ νλ«νΌ λλ κΈ°λ₯ μ 곡
- 곡κΈμμ κΈ°μ‘΄ ꡬ맀μ, μλμλ₯Ό λͺ¨λ κ³ λ €ν μμ νκ³ μ λ’°λ λμ μμ½ μ·¨μ κ±°λ κΈ°λ₯ ꡬμΆ
- μμ½ μ·¨μ μμλ£κ° μλ μ·¨μ μμ½κ±΄μ μ¨μ ν 체ν¬μΈ μλ£νλ©΄ λ§€μΆ μ¦λμ κΈ°μ¬ν κ²μΌλ‘ κΈ°λν¨
νλ‘μ νΈ λͺ©μ
- κΈ°ν, λμμΈ, νλ‘ νΈμλ, λ°±μλ κ°μ νμ
- RESTful API κ°λ°
νλ‘μ νΈ κΈ°κ°
- μλΉμ€ κΈ°ν κΈ°κ° : 2023λ 12μ 02μΌ ~ 2024λ 01μ 05μΌ
- μλΉμ€ κ°λ° κΈ°κ° : 2024λ 01μ 04μΌ ~ 2024λ 01μ 29μΌ
νλ‘μ νΈ μ€νλ°©λ²
λ©λ΄μΌ
μΌλλ°λ€ ννμ΄μ§
λ©μΈμλ² λ°°ν¬ URL
ν μ€νΈ μλ² λ°°ν¬ URL
ν μ€νΈ κ³μ
- ID : [email protected]
- PW : password123!
docker run -d -p 6379:6379 --name yanabada_redis redis- 6379 ν¬νΈλ‘ Redisκ° μ€νμ€μ΄μ΄μΌ νλ‘μ νΈ λ‘κ·ΈμΈ κΈ°λ₯μ΄ μ μ μ€νλ©λλ€!
- http://localhost:8080/h2-console μ λ€μ΄κ°λλ€.
- μλ μ 보λλ‘ μ λ ₯ μΉΈμ μ±μ°κ³ Connectλ₯Ό λλ¦ λλ€.
- Driver Class: org.h2.Driver
- JDBC URL: jdbc:h2:mem:testdb
- User Name: sa
- Password: (λΉμΉΈ)
API λͺ
μΈμμ μλ APIλ λλ―Έλ°μ΄ν°λ₯Ό λ£κΈ°μν μ체μ μΈ APIμ
λλ€.
- 컀μ€ν κ΅¬κΈ μ½λ© 컨벀μ μ μ¬μ©ν©λλ€.
- λ©μλ λ€μ΄λ°, ν¨ν€μ§, DTO λ€μ΄λ° λ± κΈ°ν μ½λ© 컨벀μ μ λ Έμ λ°±μλ μμΉ΄μ΄λΈ ν΄λλ₯Ό νμΈν©λλ€.
- λΈλμΉ μ λ΅μΌλ‘ Git Flowλ₯Ό μ¬μ©ν©λλ€.
- API ꡬν λ° μ€κ³λ λͺ¨λ νμμ Approveλ₯Ό λ°μμΌ Merge ν μ μμ΅λλ€.
λΈλμΉλ³ μν
- μ€μ μμ μ νλ λΈλμΉ
- μ΄μ λ²νΈκ° 1μ΄λΌλ©΄ feature/1λ‘ λ§λ€λ©΄ λ©λλ€.
- 'develop'μ λ² μ΄μ€ λΈλμΉλ‘ νμ¬ λ§λ€μ΄μΌ ν©λλ€.
- ( λΈλμΉ μμ±μ λ² μ΄μ€ λΈλμΉ[ 체ν¬μμλμ΄μλ λΈλμΉ ]λ₯Ό κΈ°μ€μΌλ‘ λ§λ€μ΄μ§λ€.)
- μμ μ΄ μλ£λλ©΄ developμΌλ‘ Pull Requestλ₯Ό λ 립λλ€.
- λ³ΈμΈμ μ μΈν μ‘°μμ Approveλ₯Ό λͺ¨λ λ°μλ€λ©΄ Merge ν©λλ€.
- ν μ€νΈ μλ²μ μλ λ°°ν¬λλ λΈλμΉ
- λ€μ λ²μ κ°λ°μ μν΄ releaseμΌλ‘ κ°κΈ° μ κΈ°λ₯ μ½λλ€μ λͺ¨μλλ λΈλμΉ
- μμ±ν κΈ°λ₯μ΄ μ μλλλμ§ νμΈνκ³ , releaseμΌλ‘ PR λ° Mergeλ₯Ό νλ©΄ λ©λλ€.
- developμΌλ‘ Merge νκ³ λμ μλ λ°°ν¬λ ν μ€νΈ μλ²μμ μμ μ APIκ° μ μ μλνλμ§ κΌ ν μ€νΈν΄μΌ ν©λλ€.
- μ€μ μλΉμ€λ₯Ό μ΄μν μ μλ λ©μΈ μλ² μλ λ°°ν¬λλ λΈλμΉ
- releaseμΌλ‘ Merge νκ³ λμ μλ λ°°ν¬λ λ©μΈ μλ²μμ μμ μ APIκ° μ μ μλνλμ§ κΌ ν μ€νΈν΄μΌ ν©λλ€.
- μ΅μ’ λ³Έμ κ°λ λΈλμΉ
- νμ
κ΄λ ¨
- λ§€ νμμ νμλ‘ μμ±
- λ°±μλ μμΉ΄μ΄λΈμ κΈ°μ μ€ν μ¬μ©λ² μ 리
- λ°μΌλ¦¬ μ€ν¬λΌ: λ§€μΌ μ€μ 10:00, μ€ν 14:00, 19:00 λ
Έμ
μ μ§νμν© κ³΅μ
- Notion μμ PM, UIUX, FrontEnd λ° BackEnd νμμ¬ν 곡μ , μλ‘κ°μ μ§λ¬Έμ¬ν & 건μμ¬ν μν΅
- λ§€μ£Ό κΈμμΌ ν μ 체νμ
- λ§€ νμμ νμλ‘ μμ±
- μ»€λ° λ©μμ§ κ΄λ ¨
- μ»€λ° μ λͺ©μ
prefix: μ»€λ° λ©μμ§ννλ‘ ν©λλ€. - prefixμ λͺ©λ‘κ³Ό κ°κ°μ μ©λλ IntelliJ νλ¬κ·ΈμΈ commit message template μ λ§μΆ° μμ±
- μ»€λ° λ΄μ©μ μμΈνκ² μ μ΅λλ€.
- μ»€λ° μ λͺ©μ
-
μ€μκ° μ±ν μ ꡬνν μ μλ λ°©λ²μ μ¬λ¬κ°μ§κ° μμμ΅λλ€. νλ§, λ‘±νλ§, μ€νΈλ¦¬λ° λ± μμμ΅λλ€. νμ§λ§ HTTP λ©μΈμ§λ₯Ό μ£Όκ³ λ°μΌλ©΄μ ν΅μ νλ κ²μ λ©μΈμ§μμ΄ λ무 컀, λ€λ₯Έ λ°©λ²μΈ μΉμμΌμΌλ‘ μ€μκ° μ±ν μ ꡬννμμ΅λλ€. λν STOMPλΌλ μΉμμΌμ μλΈ νλ‘ν μ½μ μ΄μ©νμ¬ ν΄λΌμ΄μΈνΈμ μλ²κ° μλ‘ ν΅μ νλ λ° μμ΄ λ©μμ§ νμ, λ΄μ© λ±μ μ μν΄ μ£Όμ΄ ν΅μ μ μμνκ² ν΄μ£Όμμ΅λλ€.
-
μλΉμ€ κ³μΈ΅μμ ν λλ©μΈμ μμ‘΄μ± μ£Όμ μ 무μμ λ°μμ§ νμλ€κ³Ό μ¬λκΉμ νμλ₯Ό νμμ΅λλ€. ν λλ©μΈμ μλΉμ€κ³μΈ΅ λλ λ ν¬μ§ν 리κ³μΈ΅ λμ€ μ΄λ€ κ²μ μμ‘΄μ± λ°μμ λ μ₯λ¨μ μ΄ μλμ§ νμνμκ³ , κ²°κ΅ λ ν¬μ§ν 리 κ³μΈ΅μ μ£Όμ λ°κΈ°λ‘ κ²°μ νμμ΅λλ€.
-
리λ²μ€ νλ‘μ μλ²λ₯Ό μ¬μ©νμμ κ°κΈ° λ€λ₯Έ URL νλ‘μ ν¨μ€μ κ°κ° λ€λ₯Έ ν€λλ₯Ό set ν΄μ£Όμ΄μΌνλ€λ κ±Έ λ°°μ κ³ , μλ²λΈλ‘μ΄ κ°μ ν¬νΈκ° λκ° μ΄μμ¬μ νλ‘μ μλ²κ° μλνμ§ μλ μ΄μλ μμμ΅λλ€. ν¬νΈλΉ νκ°μ λΈλ‘μ κ°κ²λ νκ³ μνλ κ·Έλ¦¬κ³ μ¬λ°λ₯Έ ν€λλ₯Ό μΈν ν΄μ£Όμ΄ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
-
HTTPS λ₯Ό μ¬μ©νλ λ³Έμλ²μμ μΏ ν€ μ€μ μμ λ¬Έμ λ₯Ό κ²ͺμλλ° λ°λ‘, domain μ λ°λ‘ μ§μ ν΄μ€μΌ νλ λ¬Έμ μμ΅λλ€. μΏ ν€ μ€μ μ
domainμ λ°λ‘ κ°μ μ§μ ν΄μ£Όμ§ μμΌλ©΄, defaultλ‘domain=<μλ²μ λλ©μΈ μ£Όμ>λ‘ μ§μ λ©λλ€. κ·Έλ¦¬κ³ ν¬λ‘¬ λΈλΌμ°μ λ μΏ ν€λ₯Ό λ°μλλΌλ,domainμ΄ νμ¬ ν¬λ‘¬μ λμνλdomainκ³Ό μΌμΉν΄μΌλ§ μΏ ν€λ₯Ό μ¬μ©ν μ μμ΅λλ€.μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄, μλ²μ domain(api.yanabada.com)κ³Ό ν΄λΌμ΄μΈνΈ λ°°ν¬ λλ©μΈ(www.yanabada.com)μ κ³΅ν΅ λΆλΆμ λ§μΆμ΄μdomain= yanabada.comμΌλ‘ μ€μ νμμ΅λλ€. κ·Έ κ²°κ³Ό ν΄λΌμ΄μΈνΈμμλ μλ²λ‘λΆν° λ°μ μΏ ν€λ₯Ό μ¬μ©ν μ μκ² λμμ΅λλ€.
λ°μ£Όν
μ·¨μ§νκΈ° μ μ 4λΆμΌμ μ§λ¬΄κ° ν¨κ» νλμ νλ‘μ νΈμμ νμ ν΄λ³΄λ μμ€ν κ²½νμ΄μμ΅λλ€.
HTTP νλ‘ν μ½λ§ μ¬μ©νλ REST APIλ₯Ό λ§λ€μλλ°, μ±ν λλ©μΈμ ꡬννλ©΄μ HTTP μ΄μΈμ λ€λ₯Έ νλ‘ν μ½μ μ¬μ©ν APIλ λ§λ€μ΄λ³΄κ³ κ·Έκ² μ€μ λ‘ μ μ μλνμλ λ§€μ° ν볡νμ΅λλ€.
μ΄λ² νλ‘μ νΈλ κ°μΈμ μΈ λͺ©νλ‘ 3κ°μ§κ° μμλλ°, 리λ²μ€ νλ‘μ μλ²λ ꡬννμ§λ§ μκ°μ΄ λΆμ‘±νμ¬ λ¬΄μ€λ¨ λ°°ν¬μ Source - Replica Architectureλ₯Ό λμ ν΄λ³΄μ§ λͺ»νκ² μμ½μ΅λλ€. νμ§λ§ κ°μΈμ μΌλ‘ 곡λΆλ νμκΈ°μ λ€μλ²μ λμ ν΄λ³Ό μ μλ μμ κ°λ μ»μμ΅λλ€.
1λ¬μ΄ λλ μκ°λμ ν¨κ» κ³ μν PMλΆλ€, λμμ΄λλΆ, νλ‘ νΈμλλΆλ€ κ·Έλ¦¬κ³ λ°±μλ νμλ€μκ² κ°μ¬ν¨μ νν©λλ€.
μμμ§
νλμ μλΉμ€κ° μμ±λκΈ°κΉμ§ μΌλ ¨μ κ³Όμ μ κ²½νν μ μμ΄ μμ£Ό μ’μμ΅λλ€. νΉν μ°μ λμμΈμ μ’ μ¬νλ μ¬λμΌλ‘μ UX/UI λμμΈμ΄ ꡬ체μ μΌλ‘ μ΄λ€μμΌλ‘ μ§νλλμ§ κ°λ°νλ©΄μ μ§μΌλ³΄λ건 μμ£Ό μ¬λ°λ κ²½νμ΄μμ΅λλ€. (λ¬Όλ‘ λμμ΄λκ° λ± ν λΆμ΄μ μ λ³ΈμΈμ κ΄΄λ‘μ°μ ¨κ² μ§λ§...)
λ€λ§ ꡬννλ κΈ°λ₯μ΄ λ―Έλ λλ³΄λ€ νμ μ μ΄μλ λ§νΌ λ€μν μ΄μμ λμνμ§ λͺ»νλ μ μ λ€μ μμ¬μ μ΅λλ€. μ무λλ λ¦¬λ·°λ§ νλ κ²λ³΄λ€ μ§μ λΆλ«νλ³΄κ³ λ¬Έμ λ₯Ό ν΄κ²°νλ건 μ ν λ€λ₯Έ λ¬Έμ λκΉμ. λ€μ νλ‘μ νΈ λλ λ³΄λ€ λ μ±μ₯ν μνλ‘ λ κΈ°μ¬λλ₯Ό λ릴 μ μκΈ°λ₯Ό κΈ°λν©λλ€.
5μ‘°μ λ§λ²μ¬λ€ νμμ μ΄μμ΅λλ€!!
μ₯μ±μ
PM, λμμΈ, νλ‘ νΈ, λ°±μλ λ± 4λΆμΌκ° νλμ νμ΄ λμ΄, μμ΄λμ΄λ₯Ό μ νννλ μ’μ κ²½νμ΄μμ΅λλ€. κ°λ°μ μ μ₯μμ νλμ νλ‘λνΈκ° νμνκΈ° μ , κΈ°νλΆν° μμ΄μ΄νλ μκΉμ§ λ§λ€μ΄μ§λ κ³Όμ μ λ λμΌλ‘ μ§μΌλ³΄μκ³ , κΈ°νμμ μ€κ³, μ€κ³μμ κ°λ°κΉμ§ μ΄μ΄μ§λ μ κ΅ν κ³Όμ λ€μ μ°Έμ¬νλ μ’μ κ³κΈ°κ° λμμ΅λλ€.
κ·Έ κ³Όμ μμ κΈ°νμ-κ°λ°μ κ°μ λ°°λ € κΉμ μμ¬μν΅μ μ€μμ±μ κΉ¨λ¬μμ΅λλ€. νλ¦¬ν° λμ κΈ°λ₯μ΄ νμνλ κ³Όμ μλ 4λΆμΌκ° λ 립μ μ΄μ§ μκ³ , κ°μ΄ κ³ λ―Όνκ³ λ Όμν΄μΌλ§ νλ€λ κ²μ λλΌκ² ν΄μ€ κ²½νμ΄μμ΅λλ€.
ν©κ·μ²
μλ‘ λ€λ₯Έ 4κ°μ§ λΆμΌμ μ¬λλ€κ³Ό λ§λμ ν νλ‘μ νΈλ₯Ό ν΄λ³Ό μ μμλ μ’μ κ²½νμ΄μμ΅λλ€.
κ°λ°μ λͺ¨λ₯΄λ λΆλ€κ³Όμ νμ λ μ²μ μ§νν΄λ³Ό μ μμλλ°, μ΄ λ μ΄μ μλ λͺ°λλ μν΅μ μ€μμ±μ κΉ¨λ«κ² λμμ΅λλ€. μ΄μ μλ κ°λ°μλ€κ³Όλ§ νμ μ μ§ννλ€λ³΄λ λΉμ°νκ² μ¬κ²Όλ λΆλΆλ€μ λμλ‘μ§ μκ² λκ²Όμλλ°, λ€λ₯Έ λΆμΌμ μ¬λλ€κ³Ό νμ νλ©΄μ λμκ²λ λΉμ°νλ κ²μ΄ λ¨μκ²λ μλ μ μꡬλ λΌλ κ²μ μκ²λμμ΅λλ€. νμ μμ μν΅μ΄λ 'λ¨μ μ μ₯μμ νλ² λ μκ°ν΄λ³΄κΈ°' λΌλ κ²μ μκ² λ μ’μ κ²½νμ΄μμ΅λλ€.






