[π μ¬μ΄ν΄2 - λ―Έμ (μμ½ λ³κ²½/μ·¨μμ μλ¬ μ²λ¦¬)] μΊλͺ¨(κΉμ μ ) λ―Έμ μ μΆν©λλ€.#442
Open
jason0904 wants to merge 29 commits into
Open
[π μ¬μ΄ν΄2 - λ―Έμ
(μμ½ λ³κ²½/μ·¨μμ μλ¬ μ²λ¦¬)] μΊλͺ¨(κΉμ μ ) λ―Έμ
μ μΆν©λλ€.#442jason0904 wants to merge 29 commits into
jason0904 wants to merge 29 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
μΈμΏλ§
μλ νμΈμ μλ§μ°!
μ΄λ² μ¬μ΄ν΄μμ μꡬνλ λ΄μ© μ€ μ¬λ¬ κ°κ° μ λ² λ―Έμ , μ¬μ΄ν΄μμ μ΄λ―Έ ꡬννλ λ΄μ©λ€μ΄λΌ, λΉ λ₯΄κ² ꡬνν΄λ΄€μ΅λλ€..!
μ΄λ² λ―Έμ λ μ λΆνλ립λλ€!
μ²΄ν¬ λ¦¬μ€νΈ
testλ₯Ό μ€ννμ λ, λͺ¨λ ν μ€νΈκ° μ μμ μΌλ‘ ν΅κ³Όνλμ?λ² μ΄μ€ μ½λ μ ν 체ν¬
μ΄λ€ λΆλΆμ μ§μ€νμ¬ λ¦¬λ·°ν΄μΌ ν κΉμ?
μμΈ μ½λμ λνμ¬..
νμ¬ μ μ ErrorResponseμλ μλ¬μ½λκ° μλ ErrorMessage λ§μ λμ§λλ€.
μ΄λ κ² κ΅¬νμ νκΈ΄ νμ§λ§, μλ¬ μλ΅ λ°©μμ λν΄ μ‘°κΈ λ κ³ λ―Όν΄ λ³΄μλλ°μ. ν΄λΌμ΄μΈνΈ κ°λ°μκ° λλ²κΉ μ μν΄ νμΈν΄μΌ νλ μλ¬ λ©μμ§μ, μ€μ μ¬μ©μμκ² λ ΈμΆλμ΄μΌ νλ μΉμ ν μλ΄ λ©μμ§λ μ±κ²©μ΄ λ€λ₯Ό μ μλ€κ³ μκ°ν©λλ€.
λν ν₯ν λ€κ΅μ΄ μ§μ λ± μμ€ν μ΄ νμ₯λ μν©μ κ³ λ €νλ€λ©΄, νλ‘ νΈμλμμ μλ¬λ₯Ό λͺ νν μλ³νκ³ μ μ°νκ² λμ²ν μ μλ κΈ°μ€μ΄ νμν κ² κ°μ΅λλ€.
μ΄λ° κ΄μ μμ ν μ€νΈ λ©μμ§μ λλΆμ΄ κ³ μ ν μλ¬ μ½λλ₯Ό λμ νλ κ²μ΄ ν¨μ¬ ν¨κ³Όμ μΈ λ°©λ²μΌλ‘ λκ»΄μ§λλ°, μ΄ λ°©ν₯μ λν μλ§μ°μ μκ°μ μ΄λ μ μ§ κΆκΈν©λλ€!
컀μ€ν Exception ꡬλΆμ λνμ¬..
νμ¬λ μμΈλ₯Ό λλ©μΈλ³λ‘ λλμ§ μκ³ , λ°μνλ μν©μ κΈ°μ€μΌλ‘ λ¬Άμ΄μ μ²λ¦¬νκ³ μλλ°μ.
μ΄λ κ² νλ€ λ³΄λ μμΈμ μ±κ²©μ΄ λΉμ¦λμ€μ μλ―Έλ₯Ό λ΄κΈ°λ³΄λ€λ, HTTP μν μ½λλΌλ μΉ κ³μΈ΅μ κ°λ μ λ무 κ°νκ² μμ‘΄νκ³ μλ κ²μ μλκ° νλ μ°λ €κ° λ€μμ΅λλ€. νΉν NotFoundException, UnauthorizedActionExceptionκ°μ λΆλΆλ€μ 보λ μ΄λ¦λ Http μνμ½λμ μμ‘΄λμ΄μλ κ² κ°λλΌκ³ μ..
λλ©μΈ κ³μΈ΅μ μμμ± κ΄μ μμ λ³Ό λ, νμ¬μ μμΈ λ€μ΄λ°κ³Ό λΆλ₯ λ°©μμ λν΄ μλ§μ°μ μκ²¬μ΄ κΆκΈν©λλ€!
ν μ€νΈμ λνμ¬..
μ§λ μ¬μ΄ν΄μμλ Repository, Service, Controllerλ₯Ό κ°κ° Mockμ νμ©ν΄ μ격ν λ¨μ ν μ€νΈλ‘ λΆλ¦¬νμμ΅λλ€. νμ§λ§ κ³μΈ΅μ΄ λλμ΄ μλλΌλ κ²°κ΅ νλμ μ μ°¨μ μΈ λΉμ¦λμ€ νλ¦μ κ°κΈ° λλ¬Έμ, Mockμ λ¨μ©ν기보λ€λ λΉμ¦λμ€ λ‘μ§μ κ²μ¦νλ ν΅ν© ν μ€νΈλ‘ λ¬Άμ΄λ΄λ κ²μ΄ λ μ€μ©μ μ΄λΌκ³ νλ¨νμ΅λλ€.
μ΄μ λ°λΌ νμ¬λ Controller νλΌλ―Έν°/DTO κ²μ¦ + Service ν΅ν© ν μ€νΈ + E2E ν μ€νΈ κ΅¬μ‘°λ‘ κ°νΈνλλ°, κ²°κ³Όμ μΌλ‘ μ€λ³΅λκ±°λ μλ―Έ μλ ν μ€νΈκ° νμ°ν μ€μ΄λ κ²μ λκΌμ΅λλ€.
λ€λ§, Layered Architectureμ μμΉμ μκ°νλ©΄ μ¬μ ν κ³μΈ΅λ³λ‘ μ² μ ν λΆλ¦¬ν΄μ ν μ€νΈνλ κ²μ΄ μ μμΌκΉ νλ μΌλ§μ κ³ λ―Όλ λ¨μμλλ°μ. μ΄ λΆλΆμ κ΄ν μλ§μ°μ μκ°μ΄ κΆκΈν©λλ€..!
DTOμ λλ ν°λ¦¬ μμΉμ λνμ¬
μ λ² μ¬μ΄ν΄ λ§μ§λ§ 컀λ©νΈλ‘ DTOμ μμΉμ κ΄λ ¨λμ μ΄μΌκΈ°λ₯Ό ν΄μ£Όμ ¨λλ°μ..
μκ°μ κ³μ ν΄λ΄€λλ°, μ²μμλ Controller ν¨ν€μ§ λ΄λΆμ DTO ν¨ν€μ§λ₯Ό λ£μ κ²½μ°, ν¨ν€μ§ Depthκ° λΆνμνκ² κΉμ΄μ§κ³ κΈ°μ‘΄μ μμ‘΄μ± λ°©ν₯μ λͺ νν νλ €λ ν¨ν€μ§ λΆλ¦¬μ μλ―Έκ° λ€μ ν¬μλ μ μλ€κ³ μκ°νμ¬ μΌλ¨ νμ¬ κ΅¬μ‘°λ₯Ό μ μ§νμ΅λλ€.
νμ§λ§ λ©°μΉ λ μ½λλ₯Ό λ€μ¬λ€λ³΄λ, Controllerμ λΌμ΄νμ¬μ΄ν΄μ μμ ν ν¨κ»νλ DTOλ€μ νλμ λλ ν°λ¦¬λ‘ λ¬Άμ΄λλ κ²μ΄ νμΌ κ΄λ¦¬λ μ 체μ μΈ κ΅¬μ‘° λ©΄μμ ν¨μ¬ κΉλν μ μκ² λ€λΌλ μκ°μ΄ λ€κΈ°λ νλ€μ..
κ²°κ΅ ν¨ν€μ§ Depth μ¦κ°μ νμΌ κ΄λ¦¬μ μμ§λ ν₯μ μ¬μ΄μμ ν½ν½νκ² κ³ λ―Όμ΄ λλλ°μ, νμ μμλ μ΄ νΈλ μ΄λμ€νλ₯Ό μ΄λ»κ² λ€λ£¨λ νΈμΈμ§ μλ§μ°μ μκ°μ΄ κΆκΈν©λλ€!