μ°Έκ° κ³Όμ
겨μ°κ²¨μ° μ°Έκ° μ μ²
μ μ² λ§κ° ν루μ μ ν΄μ»€ν€μ΄ μ μ²μ€μ΄λΌλ μ¬μ€μ μκ²λμ΄ μννΈμ¨μ΄νλΆ λ¨μ²΄ ν‘λ°©μ μ¬λΌμ€μλ§μ λΆλ΄λΆλ΄ μ μ²νμ΅λλ€.
λ§μ½ μ°Έκ°νκ² λλ€λ©΄ μ€νλ§λΆνΈ μ€νμΌλ‘ μ°Έκ°νμ§ μλ μ΄μ μλ―Έ μλ μκ°μ΄ λ κ² κ°μ§ μμμ μ μ΄μ μ€νλ§λΆνΈλ§ κ°λ₯ν κ²μ²λΌ μ μ²μλ₯Ό μμ±νμμ΅λλ€.π μ μ²μμ μΆκ°μ μΌλ‘ ν΄λΉ μ€νμ μ΄ν΄λ μμλ κ°μ΄ μμ±ν΄μ μ μΆνμ΄μΌ νλλ° κ³ μμ κΈ°μ€μ΄ νλ‘μ νΈ μ°Έμ¬κ²½νμ΄μκΈ°μ (λ무 μ ν건 μλμ§?!) μΌλ¨κ²°μ κ³ μλ‘ λ΄κ² λ©λλ€.
미리 Github Organizationμ λ§λ€μμ΄μΌ νκΈ°μ μ¬μ μ μ¬λμ ν΅ν΄ μ€νμ 곡μ νκΈ°λ νμμ΅λλ€. λ€νν μ ν¬ νμ νλ‘ νΈμλ (리μ‘νΈ) κ°λ°μ 4λͺ κ³Ό λ°±μλ (μ€νλ§λΆνΈ) κ°λ°μ 2λͺ μΌλ‘ μ€νλ μ λ§μμ΅λλ€. λ°±μλ νμμ΄ μ μλ§νΌ μ€μκ° API μ°κ²°μ μν΄μ λΉ λ₯Έ λ°°ν¬ νκ²½ μΈν μ΄ μ€μν κ² κ°μ 미리 λ€λ₯Έ νλ‘μ νΈμμ ꡬνν΄λ³Έ CI/CDλ λ΄μ© μ 리λ₯Ό ν λ² λ ν΄μ μ°Έκ°νκ² λ©λλ€.
μμ΄λμ΄λ₯Ό μ§λ΄κΈ°
μκ°λ³΄λ€ μνν κ³Όμ
μμ§ν μκ°λ³΄λ€ λΉ λ₯΄κ³ λ§μ μμ΄λμ΄λ€μ΄ λμμ΅λλ€. μμ΄λμ΄ κ΅¬μ²΄ν κ³Όμ μ μ견 κ΅ν, κ·Έλ¦¬κ³ λμλ μμ΄λμ΄λ€μ λ¨μ κ³Ό 보좩μ λν μκ²¬λ€ μμλ νμ λΆλ€μ΄ μ΄μ μ μΌλ‘ λ΄μ£Όμ μ μ μμλ³΄λ€ ν¨μ¬ μνν νλ¬κ°λ κ² κ°μ΅λλ€.
(λΉμΌλ ν 곡λͺ¨μ μ μ€κ° μ κ²μ΄ μ‘νμμ΄μ μμ΄λμ΄ νμ λμ€ λκ° κ²μ κ±±μ νλλ°, λ€νν μμ΄λμ΄ μ μ ν λκ°μ, μ€κ° μ κ²λ μ λ§μΉ μ μμμ΅λλ€.)
μ€μ μ΅μ’ λ°νμμλ μ΄ λ λμλ μμ΄λμ΄λ€μ μ±νν νλ€μ νμΈν μ μμμ΅λλ€.
μ΅μ’ μ μΌλ‘ μ±νλ μμ΄λμ΄λ μ₯νκΈμ΄ νμν νμ, κ°μΈν¬μμ, κΈ°μ μ λμμΌλ‘ νμ¬ μ·¨μ -ν¬μ μλΉμ€μΈ 'TalentSave' λΌλ μλΉμ€μ λλ€. μμΈν μμ΄λμ΄ μκ°λ κΉνλΈ λ§ν¬λ₯Ό ν΅ν΄ νμΈνμ€ μ μμ΅λλ€.
κ°λ° κ³Όμ
TalentSaveνμ κ°λ°μ€
ν΄μ»€ν€ μ₯μλ 'μμν¬ μμΈμ€νμ΄' μμ μ§νλμμ΅λλ€. μ€λΉλ μ± μμ΄ 6λͺ μ΄ μ°κΈ°μ ν±μμ΄ μμμ λΉν©νμΌλ, λ€νν 2λ² νμ΄μλ λμ μ½λμ μλ μΌνμ λΆμ¬μ μ¬μ©ν μ μμμ΅λλ€. μ§λ μννΈμ¨μ΄ μ€μ¬ λν ν΄μ»€ν€μμλ μ΄λ κ² λ§μ νμ΄ λͺ¨μμ λ λ€νΈμν¬ μ΄μ λλ¬Έμ κ°λ°μ μ΄λ €μμ λ§μ΄ κ²ͺμκΈ°μ μ΄λ² ν΄μ»€ν€λ λ§μ μΈμμ΄ λͺ¨μ¬μ κ±±μ νμΌλ, μκ°λ³΄λ€ μμ΄νμ΄ μ¬μ©μ μ΄λ €μμ κ²ͺμ§ μμμ΅λλ€.
μ ν¬ νμ λ€νν μ½λμ μλ μ± μκ³Ό μΌνλ₯Ό μ¬μ©ν΄μ λ³΄λ€ νΈν κ°λ°μ μ§νν μ μμμΌλ, μ’ λ μ’μ νκ²½μ΄ μ 곡λμλλΌλ©΄ λ€λ₯Έ νλ€λ μΎμ ν κ°λ°μ ν μ μμ§ μμμκΉ μΆκΈ΄ ν©λλ€.. ν λΉ λλΆλΆ 6λͺ μ© μ΄λ£¨μ΄μ Έμμλλ° μ± μμ λ무 μ’μκ³ , 곡κ°μ λ무 λ§μ μΈμμ΄ λͺ¨μ΄λ©΄μ μλ²½μ κ΅μ₯ν κ³΅κΈ°κ° λ΅λ΅νκΈ°λ νμ΅λλ€.
μ΄λ²μ μ ν μμ΄λμ΄λ νΉνλ λ§μ APIμ ν μ€νΈ λ°μ΄ν°, 볡μ‘ν λ‘μ§μ κ°μ§κ³ μμκΈ°μ κ°λ° μ€κ°λ§λ€ μ§μ€λ ₯μ΄ μ¬νκ² λ¨μ΄μ§λ μκ°λ€μ΄ λ§μλλ° νμλΆλ€κ»μ μλ μ¬μ§κ³Ό κ°μ΄ μμ²λκ² κ±°λν λ©κ° 컀νΌμ κ°μλ±μ μ¬μ£Όμ μ.. μ€μκ° μΉ΄νμΈ μΆ©μ μ ν μ μμμ΅λλ€. κ°μ¬ν©λλ€!!
μ΄λ €μ λ μ κ³Ό μμ¬μ λ μ
νΉνλ μ΄λ²μ μ κ° κ΅¬νν΄λ³Έ μ μλ κΈ°λ₯λ€μ λ§μ΄ 건λλ¦° μλΉμ€μκΈ° λλ¬Έμ, μ κ° λ¬΄μμ μμ§λ μ μ΄ν΄νκ³ λͺ»νκ³ μλμ§ νλ²μ νμ λ.. ν΄μ»€ν€μ΄μμ΅λλ€.
λ¨Όμ , νμ κ²μ API μμ±μμ κ²μ 쑰건μ λμ μΌλ‘ μ€μ ν΄μ£Όμ΄μΌ νμ΅λλ€. κ΄μ¬ λΆμΌ, λνκ΅, νκ³Ό, νλ μ΄λΌλ κ²μ μ‘°κ±΄μ΄ μ‘΄μ¬νλλ° ν΄λΉ κ²μ μ‘°κ±΄μ΄ μμ μλ μμ μλ μκ² μ‘°κ±΄μ μ€μ νμ¬ κ²μμ ꡬνν΄λ΄μΌ νμ΅λλ€. λμ ν μ κ° μλ μ§μμΌλ‘ λμ μΌλ‘ μ‘°κ±΄μ΄ λ°λλ κ²μμ μνν μκ° μμ΄ λΉν¨μ¨μ μΌλ‘ μμ±ν μ λ°μ μμμ΅λλ€. κ·Έλ§μ λ μΌλΆλΆ(κ΄μ¬ λΆμΌ 쑰건)μμλ λμνμ§ μμκ³ , κ΅μ₯ν κ³ μ μ κ²ͺμ API μμ΅λλ€.
νΉνλ ν μ€νΈ λ°μ΄ν° μμ±λ μμ£Ό κ³ λμ΄λμμ΅λλ€. ν Member μμμλ μ°κ²°λ Entityκ° κ΅μ₯ν λ§μλλ°, λ°λͺ¨ μμ 촬μμ μν΄ λ§μ λ°μ΄ν°λ€μ μλμΌλ‘ μ λ ₯νμ΄μΌλ§ νμ΅λλ€. μ΄ λΆλΆμμ μκ° μμλ μμ²λ¬μ΅λλ€. μμμ μΈκΈν κ²μ API λ±μ λ κ³ λ―Όνκ³ ν¨μ¨μ μΈ κ°λ°μ ν΄λ΄κ³ μΆμμΌλ μμ±ν΄λ΄μΌν ν μ€νΈ λ°μ΄ν° μκ°μ λ§μμ΄ κΈλ°ν΄μ Έ μΆ©λΆν κ³ λ―Όμ μκ°μ κ°μ§μ§ λͺ»νλ κ² κ°μ΅λλ€.
API λ¬Έμ μλνν΄μ μμ§ μ΅νμ§ λͺ»ν μ λ κ΅μ₯ν μμ¬μ μ΅λλ€. κ°λ° λμ€ λ Έμ μ μ λ°μ΄νΈλ₯Ό νλ κ² μ½μ§ μμκ³ , μλ μμ±μ λμΉλ λΆλΆλ λ§μμ΅λλ€. Swagger λλ Spring REST Docs λ±μ μ¬μ©νλ€λ©΄ μ€λ‘μ§ κ°λ°μλ§ μ§μ€ν μ μμμ κ²μ λλ€. μλ μμ±κ³Όμ μμμ μ€μλ‘ μΈν΄ ν΄λΌμ΄μΈνΈμμ API μ°κ²°κ³Όμ μμ λλ μ΄λ μ¬λ¬μ°¨λ‘ λ°μνκΈ°μ μ΄ μμλ λ§μ μ μμμ κ² κ°μ μμ¬μμ΄ λ§μ΄ λ¨μλ κ² κ°μ΅λλ€.
μ΅μ’ κ²°κ³Όλ¬Ό
κ·Έλλ AWSμ Github Actions μ μ¬μ©ν CI/CD ꡬνμ΄ μκ°λ³΄λ€ μ λ§ μΌμ° λλμ λ€νμ΄μμ΅λλ€. μ΄ λλΆμ λ°±μνΈ νμ API κ°λ°μ΄ μμ§ λλ§μΉμ§ μμμμλ μ€μκ°μΌλ‘ ν΄λΌμ΄μΈνΈμμ μ°κ²°λ κ°λ₯νμΌλ©°, νλ‘ νΈμ API μμ μ¬νμ λΉ λ₯Έ λμ²κ° κ°λ₯νλ€λ μ μμλ κ΅μ₯ν λΏλ―νμ΅λλ€.
νμλΆλ€κ³Όμ νμ λ ν° μ΄λ €μ μμ΄ μ§νν μ μμμ΅λλ€. 1λ° 2μΌ λ΄λ‘ μλ²λ₯Ό λ°°ν¬νκ³ , API μ°κ²°μ μ±κ³΅νλ€λ κ²λ§μΌλ‘λ κ΅μ₯ν λΏλ―ν μ±κ³ΌλΌκ³ μκ°ν©λλ€. Swaggerλ₯Ό μμ§ λ₯μνκ² μ¬μ©νμ§ λͺ»ν΄μ API λ¬Έμλ₯Ό μλμΌλ‘ μμ±ν΄λμ΄μΌ νλλ° κ°λ° λ§λ°μ§μλ νλ‘ νΈμλ κ°λ°μλΆλ€κ»μ μν jsonλ§ λ³΄κ³ λ λ°λ‘ μ°κ²°μ μ§νν΄μ£Όμ μ κ΅μ₯ν λΉ λ₯Έ μ§νμ ν΄λΌ μ μμμ΅λλ€. μ λ§!! κ°μ¬ν©λλ€.
μ΅μ’ μ μΌλ‘ ꡬνν΄λΈ API λͺ©λ‘μ λ€μκ³Ό κ°μ΅λλ€.
- νμ λ‘κ·ΈμΈ
- νμ μ 보 μμ
- νμ κ²μ
- νμ μ 보 μμΈ μ‘°ν
- νμμκ² μ€νΌ 보λ΄κΈ°
- λ°μ μ€νΌ μ‘°ννκΈ°
- λ³΄λΈ μ€νΌ μ‘°ννκΈ°
- μ€νΌ μλ½νκΈ°
μλλ μ μν μλΉμ€μ μκ° μμκ³Ό κΉνλΈλ§ν¬μ λλ€.
νλ‘ νΈμλ κ°λ° μλ£ ν νλ‘ νΈμλ κ°λ°μλΆλ€κ»μ μ‘°μ©ν 볡λλ‘ λκ° μ νν MVP μ€λͺ μ΄ ν¬ν¨λ μμμ μ΄μ¬ν μ μν΄μ£Όμ ¨λλ°, λ°ν λ κ°μκΈ° μλ¦¬κ° μ‘μΆλμ§ μμ ν΄λΉ μ€λͺ μ΄ μ λλ‘ λ€λ¦¬μ§ μμμ΅λλ€.π±
μ λ§ μμ½μ§λ§ κ·Έλλ κ²°κ³Όλ¬Όμ΄ λ€λ€ λ Έλ ₯ν λ§νΌ μ λμ¨ κ² κ°μ λ€νμ λλ€.
μλ λμμμμλ μ ν¬ μλΉμ€μ μ£Όμ κΈ°λ₯λ€μ νμΈνμ€ μ μκ³ ,
κΉνλΈμ λ€μ΄κ°λ©΄ μ μΆν μ½λμ μμΈν μλΉμ€ μ€λͺ μ νμΈνμ€ μ μμ΅λλ€.
https://github.com/UniD3-Hackathon-Team2/TalentStock-server
GitHub - UniD3-Hackathon-Team2/TalentStock-server: 3rd Uni-DTHON team2 - server team
3rd Uni-DTHON team2 - server team. Contribute to UniD3-Hackathon-Team2/TalentStock-server development by creating an account on GitHub.
github.com
μ΅μ’ κ²°κ³Ό
μμ¬μ΄ μ΅μ’ κ²°κ³Ό
μ λ μ λ§ μ ν¬ μμ΄λμ΄κ° μμμ μ 리ν μ μ κ°μ§κ³ μλ€κ³ μκ°νμ§λ§, μ μ μ΅μ’ μμνκ² λλ νλ€μ λ°νλ₯Ό λ£μ μκ°μ΄ λ§μ΄ λ°λμλ κ² κ°μ΅λλ€.
λͺκ°μ§ μμμ λ©μ΄μ‘λ μ λ€μ΄ λ μ¬λμ§λ§, κ°μ₯ λ¨Όμ λ μ€λ₯Έ μ μ μΌλ¨ 1λ° 2μΌ λ΄λ‘ ꡬννκΈ°μ λ무 λμ λμ΄λλ₯Ό κ°μ§κ³ μμλ€λ μ μ λλ€. μ£Όμ μ μ§κ²°λ MVP κΈ°λ₯λ§μ κ°μ§ μ΄ν리μΌμ΄μ μ μκ°ν΄λλ€λ©΄ λ μ’μμ§ μμμκΉ μκ°ν©λλ€.
( λ¬Όλ‘ μ΄κ±΄ νμ μκ°νλ κ²μ΄μ§λ§.. μμ΄λμ΄κ° μ μΌ μ€μν©λλ€. )
κΈ°μ΅μ λ¨λ μΆκ°μ μΈ μ§λ¬Έ μμλ λ°μμ΅λλ€. λ§μ½ κΈ°μ κ³Ό μ΄λ―Έ κ³μ½νμ¬ κ΅μ‘κΉμ§ λ°μ νμμ΄ λ μ’μ λκΈ°μ μκ² μ μ¬ μ μλ₯Ό λ°μλ€λ©΄, μ·¨μκΈμ λ΄κ³ λκΈ°μ μ κ°μ§ μκ² λλμ λν μ§λ¬Έμ΄μμ΅λλ€. λ§λΆμ¬ μ΅κ·Ό λνκ΅μμ ν΄λΉ μ μ± μ μΆμ§νκ³ μ νμ§λ§ νμ§ λͺ»νλ μ μμλ μ΄μ ν΄λΉνλ€λ μ μ΄λ©° μ΄μ λν΄ κ³ λ―Όν λ°κ° μλμ§ λ¬Όμ΄λ³΄μ ¨μ΅λλ€. μμ§ν 짧μ μμ΄λμ΄ κ΅¬μ²΄ν μκ°μ μκ°ν΄λ΄μ§ λͺ»ν κ΄μ μ΄μκ³ , μ λ λ°νμκ° μλμμ§λ§ λ§μΉ κ·Έ μ§λ¬Έμ λ€μ κ²μ²λΌ λΉν©νμ΅λλ€.
λ€νν νμ₯λκ»μ μ’μ μλ°λ ₯μΌλ‘ λλ΅ν΄μ£Όμ ¨μ§λ§, μ§μΌλ³΄λ μ λ κ΅μ₯ν λΉν©ν μ§λ¬Έμ΄μμ΅λλ€. μμ΄λμ΄ κ΅¬μ²΄ν κ³Όμ μμ κ³ λ €ν΄μΌ ν κ΄μ λ€μ λν΄ κΉ¨λ¬μ μ μμλ μκ°μ΄μλ κ² κ°μ΅λλ€.
μμμμ΄ μμλκ³ , μμνμ§λ§ μμμ μ±κ³΅νμ§ λͺ»νμ΅λλ€. κ·Έλλ λ€λ€ λκΉμ§ λ¬λ ΈκΈ°μ μ΄λ €μ΄ κ°λ°μ ν΄λΌ μ μμμ΅λλ€.
μμ μ€ν¨νλ©΄ μΌμΈ μ·¨μΉ¨ νκ² μ΅λλ€. - νμ₯λ
μ ~ ν 5λ±κΉμ§λ§ λ½μμ΄λ μ λ°μ μ μμλλ° μμ½λ€μγ - νμ A
νΉνλ ν λΆμκΈ°κ° μ λ§ μ’μμ΅λλ€. μλ²½μ μ μ μ μ μ λμκ°λ©΄μλ λλ΄μ μ΄μμμ΄ λμ Έλκ³ , λ§μ§λ§κΉμ§λ μμΌλ©΄μ λ§λ¬΄λ¦¬ν μ μμμ΅λλ€. κ°μμ μ리μμ λꡬνλ λΉ μ§μ§ μκ³ μ΅μ μ λ€ν΄μ£Όμ ¨κΈ° λλ¬Έμ κ²°κ³Όλ¬ΌκΉμ§ 무μ¬ν μ μΆν μ μμλ κ² κ°μ΅λλ€.
μ΄λ² ν΄μ»€ν€μ νΉνλ μ½μ½ν€, κ·Έλ¦¬κ³ μμ€λ 곡λν΄μ»€ν€ μ΄ν μμν κ°λ°μ μ£Όμ λ‘ μ€νλ§λΆνΈ μ€νμΌλ‘ μ°Έκ°ν μ€λλ§μ ν΄μ»€ν€μ΄μκΈ°μ μ κ° μ΄λμ λ μ±μ₯νλμ§ μ²΄κ°ν μ μμκ³ , λ μ΄λ κ³³μ΄ μμ§λ λΆμ‘±νμ§λ μ μ μμλ μκ°μ΄μμ΅λλ€.
λͺ¨λκ° μ±μ₯ν μ μμλ μκ°μ΄λ¦¬λΌ λ―ΏκΈ°μ, μ°λ¦¬ TalentSave νμλΆλ€κ» μ λ§ μκ³ νμ ¨λ€λ λ§μ κΌ μ ν΄μ£Όκ³ μΆμ΅λλ€.
μκ³ νμ ¨μ΅λλ€!!! π
λκΈ