π₯ SSAFY 2νκΈ° 첫 νλ‘μ νΈ (κ³΅ν΅ νλ‘μ νΈ) μ°μμ μμ
첫 νλ‘μ νΈλ₯Ό λ§μΉκ³ νκ³ νλ κΈλ‘ κ²½νν κ²κ³Ό λλμ μ μμ λ‘κ² μ 리νμμ΅λλ€ :)
ν΄λΉ νλ‘μ νΈλ 2024λ 7μ 8μΌ - 2024λ 8μ 16μΌ μ΄ 6μ£Όλμ μ§νλμμ΅λλ€.
νλ‘μ νΈ μ€λͺ
νλ‘κ·Έλλ°μ κ²μμ²λΌ μ¦κΈ°λ, μ€μκ° μ°Έμ¬ν νμ΅ νλ«νΌ 'Street Coding Fighter(μ€μ½ν)'
μλλ νλ‘μ νΈ κ°μμ λλ€.
2017λ κ΅μ‘ κ³Όμ κ°μ μΌλ‘ μΈν΄ νμ¬ κ³ λ±νμλ€μ νλ‘κ·Έλλ° κ΅μ‘μ μ무μ μΌλ‘ λ°κ³ μμ΅λλ€. λν, 2025λ λΆν°λ μ΄λ±νμκ³Ό μ€νμλ νλ‘κ·Έλλ°μ μ무μ μΌλ‘ λ°°μ°κ² λ©λλ€.
μ ν¬λ κ²½λ¨ μμ°μ ν κ³ λ±νκ΅ νμλ€μ λ§λ μ΄μΌκΈ°λ₯Ό λ€μ΄λ³΄μμ΅λλ€.
μΈν°λ·° κ²°κ³Ό νμλ€μ μ½λ©μ΄ μ€μνλ€λ κ²μ μμ§λ§, νκ΅ μμ μ΄ μ΄λ‘ μ€μ¬μΌλ‘ μ§νλμ΄ μ§λ£¨νκ³ μ¬λ―Έκ° μλ€κ³ λ§νμ΅λλ€. νΉν νμλ€μ μ½λ©μ μ€μμ±μ μΈμ§νκ³ μμ§λ§, μ΄λ‘ μ€μ¬μ μμ κ³Ό λ°°μ΄ λ΄μ©μ λ¨μ νμ΅μ§μ λ΅μμ μ±μ°λ λ°©μμ μμ μ ν₯λ―Έλ₯Ό μκ³ μμμ΅λλ€.
μ΄λ¬ν λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄, μ ν¬λ μ΄λ»κ² νλ©΄ νμλ€μ΄ μ½λ©μ μ¬λ―Έμκ² λ°°μ°κ³ λ ν¨κ³Όμ μΌλ‘ νμ΅ν μ μμμ§ κ³ λ―Όνμ¬ μ½λ©μ κ²μμ²λΌ μ¦κΈΈ μ μλ μ€μκ° μ°Έμ¬ν νμ΅ νλ«νΌ, 'μ€νΈλ¦Ώ μ½λ© νμ΄ν°'λ₯Ό μ μνκ² λμμ΅λλ€.
μλΉμ€μ κΈ°λ₯κ³Ό κΈ°μ μ€ν λ±μ μλ κΉνλΈ λ ν¬μ§ν 리 리λλ―Έλ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ :)
https://github.com/SunYerim/Street-Coding-Fighter
νλ‘μ νΈ μ§ννλ©°
1. ν λΉλ©
μ ν¬λ λ³ΈμΈ ν¬ν¨ μ 곡μ 3λͺ κ³Ό λΉμ 곡μ 3λͺ μΌλ‘ νμ΄ κ΅¬μ±λμμ΅λλ€. μ 곡μ λΆλ€κ³Όλ 1νκΈ°λ κ°μ λ°μ΄μκΈ°μ μΉνμκ³ , λΉμ 곡μλΆ μ€ ν λΆκ³Ό μ€λ©°κ°λ©° μΈμ¬λ νκ³ μ§λμμ΅λλ€. λ°μ΄ λ°°μ λ ν λΉ λ₯΄κ² ν λΉλ©μ ν΄μΌ μ’λ€λ μ΄μΌκΈ°λ₯Ό λ€μ΄μκΈ°μ, μ κ° λμμ νμ κΎΈλ Έμ΅λλ€. λΉμ 곡μλΆλ€κ³Ό ν¨κ» 첫 νμ μ΄λ€λ³΄λ κΈ°λκ° λ§μ΄ λμκ³ , μ΄λ€ λΆλ€μΈμ§ μ λͺ°λκΈ°μ μ€λ λ°, κ±±μ λ° .. μ΄μμ΅λλ€!
κ·Έλ μ§λ§, νμλ€μ μκΈ°μκ°λ₯Ό 보며 'λ€λ€ μ΄μ μ΄ λμΉμλ λΆλ€μ΄μ κ² κ°λ€'λΌλ μκ°μ΄ λ€μ΄ νλ‘μ νΈκ° κΈ°λλμμ΅λλ€ π
2. κ°νλ§μ¬μ±νμ 'κ·ΈλΌμ΄λ λ£°'
λ§μΈλμ
- ν무μ§κ²½
- λͺ¨λ₯΄λ κ² μΈμ νκΈ°
- μλκ° λͺ¨λ₯Ό κ²μ΄λΌκ³ μ μ νμ§ μκΈ°
- λμΉλ³΄μ§ μκΈ°
κ·ΈλΌμ΄λλ£°
- λ§€μΌ λ§μΉκΈ° 30λΆ μ κ°μΈ νκ³ μ§ν
- μμ΄μ΄λ¦ λΆλ₯΄κΈ°
- νμμ μΈνμ λ€κ³ μ΄μΌκΈ°νκΈ°
- μμΉ¨ μΈμ¬λ 무쑰건 μμ΄μ΄λ¦μΌλ‘ νκΈ°
λ±μ΄ μμμ΅λλ€. μ λ μ¬κΈ°μ 'λͺ¨λ₯΄λ κ² μΈμ νκΈ°', 'μλκ° λͺ¨λ₯Ό κ²μ΄λΌκ³ μ μ νμ§ μκΈ°' μ΄ λ λΆλΆμ΄ νΉν μ’μμ΅λλ€.
μ΄μ μ νλ‘μ νΈ κ²½νμ μ΄λμ λ μμμΌλ, λ°±μλ κ°λ° ννΈλ₯Ό 맑μ μ λλ‘ ν΄λ³΄λ νλ‘μ νΈλ μ²μμ΄μκΈ°μ, ν·κ°λ¦¬λ λΆλΆμ΄λ μ²μ μ νλ κΈ°μ λ μμμ΅λλ€. μ΄ λΆλΆμ λν λλμ μ νμ μΈκΈν΄λ³΄κ² μ΅λλ€ γ γ
3. νλ‘μ νΈ μ€κ³
μ°μ , μ ν¬νμ νλ¦λ, νλ©΄μ€κ³, ERD μ€κ³ λ± λͺ¨λ μ€κ³λ₯Ό 6λͺ λ€ ν¨κ» μ§ννμμ΅λλ€. μ¬μ€ μ΄μ μ νκ΅μμ νλ νλ‘μ νΈλ€ λͺ¨λ μ¬λ§νλ©΄ νλ‘ νΈμλ, λ°±μλ λͺ¨λ λ€ ν¨κ» μ€κ³νκΈ°λ νμ΄μ λ―μ€μ§λ μμμ΅λλ€. κ·Έλ μ§λ§, μ΄μ λλ‘ λͺ¨λ κ²μ λ€κ°μ΄ ν΄λ³Έ 건 μ²μμ΄λΌ 'κ°λ° μκ°μ΄ λΆμ‘±ν΄μ§μ§ μμκΉ?'λΌλ μκ°μ΄ λ€κΈ΄νλλ°, κ²°κ³Όμ μΌλ‘ κ·Έλ μ§ μμμ΅λλ€!!
μ€κ³μ μκ°μ λ§μ΄ λ€μΈλ§νΌ, 6λͺ λͺ¨λμ μκ°μ΄ κ°μ λ°©ν₯μΌλ‘ μ 립λμκ³ , κ°λ° μλλ λΉ¨λμ΅λλ€. 무μλ³΄λ€ μν΅μ΄ μννκΈ°μ λͺ¨λ κ³Όμ μ΄ ν¬κ² λ§νμμ΄ μ§νλμλ κ² κ°μ΅λλ€.
νμλ€κ³Ό νλ‘μ νΈμ λν΄ κ°μ μκ°μ κ°μ§κ³ μλ€λ κ² μμ²΄κ° λ λ νκ³ , 'μ€κ°μ μ΄λ ν μ΄λ €μμ΄ μκΈ°λλΌλ μ΄ μ¬λλ€κ³Ό ν¨κ»λΌλ©΄ 무쑰건 ν€μ³λκ° μ μκ² λ€!'λΌλ νμ μ΄ μκ²Όμμ΅λλ€.
4. νλ‘μ νΈ κ°λ°
μ λ μ΄λ² νλ‘μ νΈμμ "νμκ΄λ¦¬, νλ‘ν κ΄λ¦¬, νν λ¦¬μΌ λͺ¨λ" κ°λ°μ λ맑μ νμ΅λλ€. μμμλ μΈκΈνμ§λ§, μ λ λ°±μλ κ°λ°κ²½νμ΄ νλΆνμ§ μμκΈ°μ, Spring security μ¬μ©μ΄ μ²μμ΄μμ΅λλ€. κ·Έλ μ§λ§, νλ‘ νΈμλ κ°λ°μ νμκΈ°μ νλ¦μ μκ³ μμμ΅λλ€.
μ ν¬λ λ°±μλ νμλΌλ¦¬ mrλ§λ€ μ½λ리뷰λ₯Ό μ§ννμλλ°, 첫 mrμ λ λ Έμλ μ λ§ λ§μ μ§λ¬Έμ΄ λ€μ΄μμμ΅λλ€ ......γ μ§κΈ μκ°ν΄λ³΄λ©΄ μ€κ³μ μ‘°κΈ λ μκ°μ λ§μ΄ λ€μ΄κ³ μ½λλ₯Ό μμ±ν΄λ λμμ κ² κ°μλ° λΉ¨λ¦¬ ν΄μ€μΌλ κ² κ°λ€λ μκ°λλ¬Έμ λ‘μ§μ κΌΌκΌΌν νμΈνμ§λ μμλ κ² κ°μ΅λλ€. μλ₯Ό λ€μ΄, λ‘κ·ΈμΈν λ tokenλ°κΈ λ‘μ§μ 2λ² μμ±ν΄λλ€λκ° .... (μ§μ§ λ°λ³΄λ©μ²μ΄μλ€ λμμ μ)
λΉμμ λ€λ₯Έ λ°±μλ νμλΆλΌλ¦¬ μ²μλΆν° μ½λ리뷰λ₯Ό λ무 μκ²(?) νλ κ²μ΄ μλλ λΌλ μ΄μΌκΈ°κ° μ€κ°λ€κ³ νλλ° μ λ μ€νλ € μ’μμ΅λλ€. μ λ securityλ₯Ό μ²μ μ¬μ©ν΄λ΄€κΈ°μ μ½λμ λν νμ μ΄ μμκ³ , λ§μμ λ€μ§ μμκΈ° λλ¬Έμ 리뷰 ν΄μ£Όμ κ²λ€μ νλνλ μ½μ΄λ³΄λ©° 'μ΄λ° λΆλΆμ κ³ μ³μΌκ² λ€, μμΌλ‘ μ€κ³ μκ°μ μ‘°κΈ λ λ§μ΄ κ°μ Έκ°μΌκ² λ€' λΌλ μκ°μ μ λ§ λ§μ΄ νμ΅λλ€.
μ΄ν mrλ 릴λλΆν°λ μκ°νλ μκ°μ μ΄μ λ³΄λ€ μ‘°κΈ κΈΈκ² κ°μ Έκ°κ³ κΌΌκΌΌνκ² μ½λλ₯Ό μμ±νλ € λ Έλ ₯νμ΅λλ€. νμ€ν μ²μλ³΄λ€ μ½λ κ°λ μ± λΆλΆμμλ κ·Έλ κ³ μ’μμ§λ κ² λμ 보μμ΅λλ€. ν·κ°λ¦¬λ λΆλΆμ΄ μλ€λ©΄ 무쑰건 νμμκ² μ§λ¬Έ λ μ§λ¬Έ, λ΄κ° μ΄ν΄ν λ‘μ§μ΄ λ§λμ§ λ Όμνλ κ² κ°μ΅λλ€!
μ μ λ°λ¦° μ’μ λ§λ€ λ£λ κ²λ μ’μ§λ§, λ°λνκ² μ‘°μΈμ λ£κ³ λΆμ‘±ν λΆλΆμ μ±μκ°λ©° μ€μ€λ‘ μ±μ₯νκ³ μΆμ μμ¬μ΄ λ μ»ΈκΈ°μ μ½λ리뷰 λΆλΆμ΄ μ λ§ μ’μμ΅λλ€. λ€λ₯Έ mrλ λ¨κ²¨μ£Όμ μ½λ©νΈλ€μ κΈ°λ‘ν΄λκ³ , μ€μ€λ‘λ λ€μ μ½λλ₯Ό μ½μ΄λ³΄μμ΅λλ€. μ΄λ¬ν λΆλΆλ€μ μ΄λ² νΉννλ‘μ νΈλ μ κ²½μ¨μ κ°λ°ν΄ λ³Ό μμ μ λλ€.
4-1. μ μ©ν μλ‘μ΄ κΈ°μ λ€μ΄ μμμ§λ€!
μ°μ , μ΄λ² νλ‘μ νΈ μ§ννλ©° μ²μ μ¨ λ³Έ κΈ°μ λ€μ΄ λ§μμ΅λλ€!
MSAμν€ν μ²λ Dockerμ κ°μ μΈνλΌμͺ½ κΈ°μ λ€μ μ΄μ μ μΉκ΅¬μ κ°μΈ νλ‘μ νΈλ₯Ό νλ©΄μ μ¬μ©μ ν΄λ΄€μλλ°, Kafka, Redis, Spring security ... λ μ²μ μλν΄λ³Έ κΈ°μ μ΄μμ΅λλ€.
μ²μ μλν΄λ³Έ κΈ°μ λ€μ΄λΌ κ±±μ μ΄ λ§μ΄ λμλλ°, νμλ€κ³Ό ν¨κ»μ¬μ κΈ°κ° λ΄μ λͺ¨λ μ μ©ν μ μμλ κ² κ°μ΅λλ€. κ·Έ κ³Όμ μμ λ λ§μ΄ λ°°μΈ μ μμμ΅λλ€.
4-2. RequestHeaderμλ userIdκ° μλλΌ memberId !
μ΄κ±΄ λ³ λ¬Έμ λ μλμμ§λ§ μ½κ°μ μν μ΄μ ...? μ λκ² λ€μ.
μ΄μ μ MSA μν€ν μ²λ‘ νλ‘μ νΈλ₯Ό μ€κ³νμλ, μΈμ¦μλ²(Gateway Server)λ₯Ό λ°λ‘ λμλλ°μ. μ΄λ ν΄λΌμ΄μΈνΈ μ μ₯μμλ headerμ accessTokenλ§ ν¬ν¨νμ¬ μΈμ¦μλ²(Gateway Server)λ‘ μμ²μ 보λ΄λ©΄ ν΄λΉ μλ²μμ ν ν° κ²μ¦ ν tokenμ ν¬ν¨λ memberIdλ₯Ό μΆμΆν΄ ν€λμ μΆκ°ν λ€ μ€ μμ² μλ²λ‘ μμ²μ μ λ¬νλλ°μ.
μ΄λ²μλ μμ λμΌν λ‘μ§μΌλ‘ μ²λ¦¬νμμ΅λλ€. λ¬Όλ‘ μ΄λ²μλ Nginxκ° gatewayμν μ λ΄λΉνμ΅λλ€.
μ κ° μ μ μΈ‘ μλΉμ€λ₯Ό λ΄λΉνκΈ°μ ERDμμ member ν μ΄λΈμ PKμΈ memberIdλ‘ tokenμ κ° νμμ κ³ μ idλ₯Ό λ£μ΄λμμ΅λλ€. νμ§λ§ Nginx(API Gateway)μμ tokenμ decodingν λ userIdλ₯Ό μ°ΎμΌλ € νκΈ° λλ¬Έμ νμ κ³ μ id κ°μ μ°Ύμ μ μμμ΅λλ€.
κ·Έλμ ν΅μ μ΄ μ λλ‘ λμ§ μμμλλ°μ. μ΄λ, μ¬μν λΆλΆμ΄λΌκ³ μκ°λλλΌλ μν΅μ νμ ! λΌλ κ΅νμ μ»μμ΅λλ€.
4-3. κ²μ κ²°κ³Όκ° μμ€λμ§ μλλ‘ Kafka λ©μμ§ νλ₯Ό λμ νμ.
μ ν¬ μλΉμ€μ μ£Όμ κΈ°λ₯μΈ 'λ©ν° λͺ¨λ'μ κ²½μ° ν κ²μ λ°©μ μ΅λ 100λͺ μ μ μ κ° κ²μμ νλ μ΄ν μ μμ΅λλ€. μ΄ λ, μ¬λ¬ κ°μ λ°©μμ νλ μ΄ μ€μΈ μ΅λ 100λͺ μ μ μ λ€μ λ¬Έμ νμ΄μ κ²μ κ²°κ³Ό κΈ°λ‘μ μ μ€μν€μ§μκ³ μμ νκ² μ μ₯μμΌμΌ λμ§ μμκΉ? λΌλ νμμ κ³ λ―Όμ λ£κ² λμμ΅λλ€. μ΄ κ²μ κ²°κ³Όλ λμμ λνΉμ μ λ°μ΄νΈ νλ μμ²κ³Όλ μ§κ²°λμ΄μκΈ° λλ¬Έμ, κ²μ κ²°κ³Όλ₯Ό μ λ°μ΄νΈ νλ μμ²μ΄ νκΊΌλ²μ μμμ§κ² λλ©΄ κ²μ κ²°κ³Όκ° μμ€λλ λ¬Έμ κ° λ°μν μ μκ² λ€κ³ μκ°νμ΅λλ€.
μ΄λλ¬Έμ μ ν¬λ Kafka λ©μμ§ νλ₯Ό λμ νκΈ°λ‘ νμ΅λλ€.
4-4. Kafka μμ 100λ§λ²μ λ‘κ·Έ λ°μμΌλ‘ μλ²κ° λ€μ΄λλ²λ Έλ€.
κ²μμ΄ λλ ν, GameResultμ 리μ€νΈλ₯Ό publishνμ΅λλ€. μ΄ λ, 리μ€νΈ μ체λ₯Ό μ§λ ¬ννλ©΄μ λ¬Έμ κ° λ°μνμ΅λλ€. 리μ€νΈκ° μ§λ ¬νλλ©΄μ λ¬Έμμ΄(String)λ‘ λ³νλμκ³ , μ΄λ₯Ό λ€μ μμ§λ ¬ννλ €κ³ μλνμ λ λ¬Έμ κ° μκ²Όμ΅λλ€. μ΄λ‘ μΈν΄ 100λ§ λ²μ λ‘κ·Έ..κ° λ°μνκ³ , λ‘κ·Έ μ©λμ΄ μ΄λ§μ΄λ§ν΄μ κ²°κ΅ μλ²κ° λ€μ΄λλ νμκΉμ§ λ°μλμμ΅λλ€π
μ΄ κ²½μ°λ Kafka κΈ°μ μ체λ₯Ό μ²μ μΌλ€λ³΄λ μκ²Όλ λ¬Έμ λΌκ³ μκ°ν©λλ€ .. !
Listλ₯Ό publishνμ§λ§κ³ κ°λ³ κ°μ²΄λ₯Ό forλ¬Έμ ν΅ν΄ publishνμ! λΌλ κΉ¨λ¬μμ μ»μ μ μμμ΅λλ€.
5. νλ‘μ νΈ νλ°
νλ°λΆμλ μ κ° λ§‘μ κΈ°λ₯ κ°λ°μ λ§μΉκ³ , νλ‘μ νΈμ μμ±λλ₯Ό λμ΄κΈ° μν΄ λν μΌν λμμΈ λΆλΆ μμ μμ μ νκ³ νλ‘ νΈμλ λΆλ€κ³Ό μν΅νλ©° λ νμν apiκ° μμΌλ©΄ μ€κ³λ₯Ό νλ©° μκ°μ 보λμ΅λλ€.
λ νΌμ νλ νλ‘μ νΈκ° μλλΌ, μ°λ¦¬ λͺ¨λκ° νλ νλ‘μ νΈλΌκ³ μκ°νκΈ°μ νλ‘ νΈμλ λΆλΆ κ°λ°μ νλ©΄μλ μ¦κ²κ² νλ‘μ νΈλ₯Ό ν μ μμλ κ² κ°μ΅λλ€ !!
κ·Έλ¦¬κ³ μ λμμ΄ κ³ λ±νμμΈλ°, μ ν¬ νλ‘μ νΈ μ¬μ© λμμ΄ κ³ λ±νμ μΉκ΅¬λ€μ΄μ΄μ λμμ λμμ μ λ§ λ§μ΄ λ°μμ΅λλ€.
μ€μ κ³ λ±νμ μΉκ΅¬λ€(5λͺ ) μΈν°λ·°λ νκ³ μ§μ νΌλλ°±μ λ°μ μλΉμ€λ₯Ό λμ± κ°μ ν μ μμμ΅λλ€.
6. λ΄κ° 500λͺ μμμ λ°νλ₯Ό νκ²λλ€λ ?! κ·Έλ°λ° λ°ν μ€λΉν μκ°μ΄ μ΄νλ°μ μ λ¨μλ€..
μ ν¬νμ μλ λ€λ₯Έ νμλΆμ΄ λ°νλ₯Ό μ§ννμ ¨μ΅λλ€. λ°νλ₯Ό μ ν΄μ£Όμ ¨λλ°, μ ν¬ νλ‘μ νΈμ 컨μ κ³Ό λ°νμ λΆμ λͺ©μ리 ν€μ΄ μ λ§λ€λ νΌλλ°±μ κ³μ λ°κ²λμμ΅λλ€.
κ·Έλ μ§λ§, λ°ν μ²μλΆν° λκΉμ§ μ λ°μ μΌλ‘ μ ν΄μ£Όμ μ νμ λͺ¨λ μΌμ°μΌμ°νλ©° μ‘°κΈλ§ λ νμ΄ν νμλ λΆμκΈ°μλλ°, λ³Έμ μ§μΆνμλ ν΄λΉ νΌλλ°±μ΄ κ³μ λ€μ΄μμ κ²°κ΅μ μ κ° νκ² λμμ΅λλ€.
μ΄μ λνκ΅ λ€λλ μ 곡μμ , λμ리, μ‘Έμ μν λ±μμ λ°ν κ²½νλ μ΄λμ λ μμκ³ , 1νκΈ° κ΄ν΅νλ‘μ νΈ μ΅μ’ λ°νμμλ μ κ° λ°νμμμ΄μ 'λ°ν μ체'μλ ν¬κ² λΆλ΄μ΄ λμ§ μμμ΅λλ€. κ·Έλ μ§λ§, μ΄λ²μ μλ‘ μ μ©ν κΈ°μ λ€λ μλλ§κ³ μ λ°νμλΆμ λΉν΄μ μ λ§ μλ²½νκ² μμ§λ μνκ° μλμκΈ°λλ¬Έμ μ§λ¬Έ λΆλΆμ μμ΄μ μ½κ°μ λΆλ΄κ°μ΄ μμμ΅λλ€. (λ°λλ‘ μΏ‘ μ°λ₯΄λ©΄ λ°λ‘ μλ²½νκ² μ μ λμ¬ μ λλ μλμμ΅λλ€ ..)
κ·Έλ μ§λ§ νμ μν΄ μ κ° ν΄λΉ μν μ 맑μμΌλ λ¨μ μκ°λμ μ΅λν λ Έλ ₯μ ν΄λ³΄μλ λ§μμ κ°κ³ λ°ν μ°μ΅λ μλ²½κΉμ§ νλ©° λμ¬λ§ν μ§λ¬Έμ΄λ κΈ°μ λ€μ λ€μ κΌΌκΌΌνκ² μ 리νλ μκ°μ κ°μ‘λ κ² κ°μ΅λλ€. λ°ν μ€ν¬λ¦½νΈλ μ²μλΆν° λκΉμ§ λ€μ μ§κ³ , μμ°μκ° μ΄λ λΆλΆμμ νμ΄μ§λ₯Ό λ겨μΌλλμ§λ λ€ μμ±ν΄μ μμ°μμ κ³μ ν©μ λ§μ·μ΅λλ€. μ΄λ μλ²½κΉμ§ νμλ€μ μ‘°κΈ κ΄΄λ‘νλλ° λ€λ€ μ΄μ¬ν λ€μ΄μ£Όκ³ νΌλλ°±μ£Όμ μ μ ~λ§μ λ§ κ°μ¬νμ΅λλ€ π
μμ¬μ΄ μ
κ·Έλ¦¬κ³ entityμ Setter μ¬μ©μ μ§μν΄μΌλλ€λ κ±Έ μκ³ μμλλ°, μ΄λ² νλ‘μ νΈλ μ΄ λΆλΆμ κ°κ³Όνκ³ μ½λλ₯Ό μμ±νμ΅λλ€. μ λΆλΆμ μ΅ν λ€μ΄μλλ°, 'λ΄κ° μ κ·Έλ¬μ§?'λΌλ μκ°μ΄ μ λ§ λ§μ΄ λ€μμ΅λλ€. μ μΌ κΈ°λ³Έμ μΈ λΆλΆμΈλ°, λ무 κΈνκ² κ°λ°ν κ² ννκ° λλλΌκ³ μ .. κ·Έλμ λ€μ νλ‘μ νΈλλ κΌ μ κ²½μ¨μ κ°λ°μ νλ € ν©λλ€.
λμ± μ²΄κ³μ μΌλ‘ κΌΌκΌΌνκ² κ°λ°νκ³ μΆμλλ°, μλ‘ μ μ©ν΄μΌλλ κΈ°μ λ€λ μμμ‘κ³ κΈ°νμ΄ κ·Έλ κ² λλμΉ μμκΈ°μ μ‘°κΈν¨μ΄ μμ κΉκ² 곡λΆνμ§ λͺ»ν λΆλΆ, κ·Έλ¦¬κ³ νΈλ¬λΈ μν λ μ λλ‘ νμ§ λͺ»ν μ μ΄ μμ½μ΅λλ€.
맀μΌλ§€μΌ λλμ μ λν΄ κ°λ¨νκ²λΌλ 1μΌ 1λΈλ‘κ·Έλ₯Ό μμ±ν΄μΌκ² λ€ ... λ€μ§νμλλ° λͺ» μ§ν¨ λΆλΆλ μμ½μ΅λλ€.
νλ‘μ νΈ νκΈ°
λ°±μλλ‘ μ ν₯ ν μΌλ§λμ§μμ μΈνΌ μ κ³Όλ₯Ό ν΄μ controller, service, model(dto, entity) μ΄λ€μμΌλ‘ λλκ³ μμ±ν΄μΌνλμ§, entity to dtoλ₯Ό μν΄μΌλλμ§ λ± κΈ°λ³Έμ μΈκ²λ λ§μ΄ ν·κ°λ €ν΄μ μ΄λ €μνλ κ² μκ·Έμ κ°μλ°, λͺκ°μλ§μ λ§μ΄ μ±μ₯νμμ λκΌμ΅λλ€. 1μ μ΄μ μ‘Έμ μ λμ리μμ νλ νλ‘μ νΈ λ§λ¬΄λ¦¬κ° μλμ, νμλΆ μ€ ν λΆνν μ§μ€ κ³ΌμΈλ₯Ό μμ²ν κ²λ μκ·Έμ κ°λ€μ.
ννΈμΌλ‘, κΈ°λ³Έμ μΈ λΆλΆλ€μ λ€μ ν λ² λ κΌΌκΌΌν μ 리ν΄μΌκ² λ€λ μκ°μ νμ΅λλ€.
μ΄μ λνκ΅ λμ리 WAPμμ μ§ννλ Bejuryu νλ‘μ νΈλ νμκ° ν©μ΄ μ λ§ μ λ§μμ΄μ 'μ΄κ²λ³΄λ€ μ λ§λ μ¬λλ€μ λ§λ μ μμκΉ'νμλλ°, ν΄λΉ νλ‘μ νΈλ‘λΆν° μ νν 1λ λ€ μ λ§ ν©μ΄ μ’μ νμλ€μ λ λ§λ¬λ€μ π μ λ§ μ λ μ΄μ΄ μ’μ κ² κ°μ΅λλ€ γ γ
μ κ° μ΄λ κ²κΉμ§ λ§μ‘±νλ©΄μ νλ‘μ νΈλ₯Ό ν μ μμλ μ΄μ λ ν λΆμκΈ°κ° μ ~λ§ μ’μκΈ° λλ¬Έμ΄λΌκ³ μκ°ν©λλ€.
- μλ‘μ μ견μ μ‘΄μ€νκ³ λ€λ₯Έ μκ²¬μ΄ λμ€λλΌλ κΈ°λΆ λλΉ νμ§ μκ³ κ²½μ²νλ©° λ³ΈμΈμ μ견μ λ§νλ μ μ΄ μ’μμ΅λλ€.
- μ ν¬ νμ λͺ¨λ μ€κ³λ₯Ό 6λͺ λ€κ°μ΄ νλλ°, λΉλ‘ μ€κ³νλ λ° λ€λ₯Έ νλ³΄λ€ μκ°μ΄ μ€λ κ±Έλ Έμ§λ§ νλ‘μ νΈ λκΉμ§ μ΄κΈ° μ€κ³κ° κ±°μ λ³νμ§ μμλ μ μ΄ λλ¨νλ€ ! μκ°ν©λλ€.
- κ°μμ μ λ¬΄κ° λλ μ Έμλ€ μκ°νμ§μκ³ , λͺ¨λκ° ν¨κ» κ³ λ―Όν΄μ£Όκ³ λμκΈ°μ λ³Έμ μ§μΆνμ¬ 'μ°μμ'λ λ°μ μ μμλ€κ³ μκ°ν©λλ€. νλ€μ΄λ ν°λ΄μ§μκ³ ν¨κ» λκΉμ§ μ΄μ¬ν λ¬λ €μ¨ μ°λ¦¬ κ°νλ§μ¬μ± νμλ€μκ² κ³ λ§λ€λ λ§μ μ νκ³ μΆμ΅λλ€ π
λ€μ νΉννλ‘μ νΈ νμλ€κ³Όλ λΆμκΈ°κ° λ무 μ’μ κΈ°λκ° λ©λλ€. λΆμ‘±ν λΆλΆμ μ κ° λ λ Έλ ₯ν΄μ μ±μκ°λ©° μ΄μ¬ν λ¬λ €λ³΄κ² μ΅λλ€. νμ΄ν :)
'κ°λ°κ΄λ ¨' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νκ³ ] SSAFY νΉν νλ‘μ νΈ - Stock Of Galaxy (2) | 2025.01.28 |
---|---|
[κ°λ°μΌμ§] SSAFY νΉν νλ‘μ νΈ - 3μ£Όμ°¨(2024.09.07 - 2024.09.14) (7) | 2024.09.08 |
Message Broker - Kafkaμ RabbitMQ (37) | 2024.07.30 |