Home > Backend > Spring > πŸƒ[Spring] `@Controller` μ• λ„ˆν…Œμ΄μ…˜ μ‚¬μš©μ‹œ μΌμ–΄λ‚˜λŠ” 일.

πŸƒ[Spring] `@Controller` μ• λ„ˆν…Œμ΄μ…˜ μ‚¬μš©μ‹œ μΌμ–΄λ‚˜λŠ” 일.
Spring Framework

πŸƒ[Spring] @Controller μ• λ„ˆν…Œμ΄μ…˜ μ‚¬μš©μ‹œ μΌμ–΄λ‚˜λŠ” 일.

1️⃣ μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬μ—μ„œ @Controller μ• λ…Έν…Œμ΄μ…˜ μ‚¬μš©μ‹œ μ–΄λ–€ 일이 μΌμ–΄λ‚ κΉŒμš”?

  • μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬μ—μ„œ @Controller μ• λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•˜λ©΄, ν•΄λ‹Ή ν΄λž˜μŠ€κ°€ μŠ€ν”„λ§ MVC의 μ›Ή 컨트둀러둜 λ™μž‘ν•˜λ„λ‘ μ„€μ •λ©λ‹ˆλ‹€.
  • @Controller λŠ” 기본적으둜 μ›Ή μš”μ²­μ„ μ²˜λ¦¬ν•˜κ³ , μ μ ˆν•œ 응닡을 μƒμ„±ν•˜λŠ” 역할을 λ‹΄λ‹Ήν•˜λŠ” 클래슀λ₯Ό μ •μ˜ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.

@Controller μ• λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•˜λ©΄ λ‹€μŒκ³Ό 같은 일듀이 λ²Œμ–΄μ§‘λ‹ˆλ‹€.

  • 1. μŠ€ν”„λ§ 빈으둜 등둝.
    • @Controller μ• λ…Έν…Œμ΄μ…˜μ΄ 적용된 ν΄λž˜μŠ€λŠ” μŠ€ν”„λ§μ˜ μ»΄ν¬λ„ŒνŠΈ μŠ€μΊ” λ©”μ»€λ‹ˆμ¦˜μ— μ˜ν•΄ μžλ™μœΌλ‘œ μŠ€ν”„λ§ μ»¨ν…μŠ€νŠΈμ— 빈으둜 λ“±λ‘λ©λ‹ˆλ‹€.
      • μ΄λŠ” @Component 와 μœ μ‚¬ν•˜κ²Œ λ™μž‘ν•˜λ©°, μŠ€ν”„λ§μ΄ 이 클래슀λ₯Ό κ΄€λ¦¬ν•˜λ„λ‘ λ§Œλ“­λ‹ˆλ‹€.
  • 2. μš”μ²­ 처리 λ©”μ„œλ“œ 맀핑.
    • @Controller κ°€ 달린 클래슀 λ‚΄μ˜ λ©”μ„œλ“œλ“€μ€ @RequestMapping, @GetMapping, @PostMapping λ“±κ³Ό 같은 μš”μ²­ 맀핑 μ• λ…Έν…Œμ΄μ…˜μ„ 톡해 νŠΉμ • HTTP μš”μ²­μ„ μ²˜λ¦¬ν•˜λŠ” λ©”μ„œλ“œλ‘œ 맀핑될 수 μžˆμŠ΅λ‹ˆλ‹€.
      • μ΄λŸ¬ν•œ 맀핑을 톡해 νŠΉμ • URL둜 λ“€μ–΄μ˜€λŠ” μš”μ²­μ΄ μ–΄λ–€ λ©”μ„œλ“œμ— μ˜ν•΄ μ²˜λ¦¬λ μ§€ κ²°μ •λ©λ‹ˆλ‹€.
  • 3. λͺ¨λΈκ³Ό λ·°.
    • @Controller λŠ” 주둜 λͺ¨λΈκ³Ό λ·°λ₯Ό μ²˜λ¦¬ν•©λ‹ˆλ‹€.
      • μš”μ²­μ΄ μ»¨νŠΈλ‘€λŸ¬μ— λ„λ‹¬ν•˜λ©΄, μ»¨νŠΈλ‘€λŸ¬λŠ” ν•„μš”ν•œ 데이터λ₯Ό λͺ¨λΈμ— λ‹΄κ³ , μ μ ˆν•œ λ·°(예: JSP, Thymeleaf ν…œν”Œλ¦Ώ)λ₯Ό λ°˜ν™˜ν•˜μ—¬ μ‚¬μš©μžμ—κ²Œ 응닡을 λ³΄λƒ…λ‹ˆλ‹€.
        • μŠ€ν”„λ§μ€ 이 μž‘μ—…μ„ μ‰½κ²Œ ν•  수 μžˆλ„λ‘ λ‹€μ–‘ν•œ κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.
  • 4. λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 μ„œλΉ„μŠ€ 계측.
    • μ»¨νŠΈλ‘€λŸ¬λŠ” 보톡 직접 λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ μ²˜λ¦¬ν•˜μ§€ μ•Šκ³ , μ„œλΉ„μŠ€ 계측을 ν˜ΈμΆœν•˜μ—¬ ν•„μš”ν•œ 처리λ₯Ό μœ„μž„ν•©λ‹ˆλ‹€.
      • μ»¨νŠΈλ‘€λŸ¬λŠ” μ‚¬μš©μž μž…λ ₯을 λ°›μ•„ μ„œλΉ„μŠ€λ‘œ μ „λ‹¬ν•˜κ³ , μ„œλΉ„μŠ€μ˜ κ²°κ³Όλ₯Ό λ°›μ•„ μ‚¬μš©μžμ—κ²Œ λ°˜ν™˜ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.
  • 5. μ˜ˆμ™Έ 처리.
    • @Controller μ• λ…Έν…Œμ΄μ…˜μ„ μ‚¬μš©ν•˜λŠ” ν΄λž˜μŠ€λŠ” λ˜ν•œ @ExceptionHandler λ₯Ό μ‚¬μš©ν•˜μ—¬ νŠΉμ • μ˜ˆμ™Έλ₯Ό μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
      • 이λ₯Ό 톡해 컨트둀러 λ‚΄μ—μ„œ λ°œμƒν•˜λŠ” μ˜ˆμ™Έλ₯Ό μž‘μ•„ νŠΉμ • 응닡을 λ°˜ν™˜ν•˜κ±°λ‚˜ μ—λŸ¬ νŽ˜μ΄μ§€λ₯Ό 보여쀄 수 μžˆμŠ΅λ‹ˆλ‹€.

μš”μ•½ν•˜λ©΄, @Controller μ• λ…Έν…Œμ΄μ…˜μ€ ν•΄λ‹Ή 클래슀λ₯Ό μŠ€ν”„λ§ MVCμ—μ„œ μš”μ²­μ„ μ²˜λ¦¬ν•˜λŠ” 컨트둀러둜 μ •μ˜ν•˜λ©°, HTTP μš”μ²­μ„ μ²˜λ¦¬ν•˜κ³  μ μ ˆν•œ 응닡을 μƒμ„±ν•˜λŠ”λ° μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€.