Home > Backend > CS > πŸ’Ύ [CS] λΉ„μ¦ˆλ‹ˆμŠ€ 둜직(Business Logic)μ΄λž€?

πŸ’Ύ [CS] λΉ„μ¦ˆλ‹ˆμŠ€ 둜직(Business Logic)μ΄λž€?
CS

πŸ’Ύ [CS] λΉ„μ¦ˆλ‹ˆμŠ€ 둜직(Business Logic)μ΄λž€?

1️⃣ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직(Business Logic).

  • λΉ„μ¦ˆλ‹ˆμŠ€ 둜직(Business Logic) 은 μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œ λ‚΄μ—μ„œ νŠΉμ • λΉ„μ¦ˆλ‹ˆμŠ€ 도메인에 λŒ€ν•œ κ·œμΉ™, 계산, 절차 등을 κ΅¬ν˜„ν•œ 뢀뢄을 μ˜λ―Έν•©λ‹ˆλ‹€.
    • 이 λ‘œμ§μ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ‹€μ œ λΉ„μ¦ˆλ‹ˆμŠ€ μš”κ΅¬ 사항을 μΆ©μ‘±ν•˜λ„λ‘ ν•˜λŠ” 핡심 κΈ°λŠ₯을 λ‹΄λ‹Ήν•©λ‹ˆλ‹€.
  • λΉ„μ¦ˆλ‹ˆμŠ€ 둜직(Business Logic) 은 μ‹œμŠ€ν…œμ΄ μ²˜λ¦¬ν•΄μ•Ό ν•˜λŠ” 업무 κ·œμΉ™κ³Ό κ΄€λ ¨λœ μ˜μ‚¬κ²°μ •μ„ ν¬ν•¨ν•˜λ©°, λ°μ΄ν„°μ˜ μœ νš¨μ„± 검사λ₯Ό ν•˜κ³ , λΉ„μ¦ˆλ‹ˆμŠ€ ν”„λ‘œμ„ΈμŠ€λ₯Ό κ΄€λ¦¬ν•˜κ³ , κ΄€λ ¨λœ 계산을 μˆ˜ν–‰ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.

2️⃣ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직의 μ£Όμš” μ—­ν• 

  • 1. 도메인 κ·œμΉ™ 관리.
    • νŠΉμ • λΉ„μ¦ˆλ‹ˆμŠ€ λ„λ©”μΈμ—μ„œ 따라야 ν•˜λŠ” κ·œμΉ™μ„ μ •μ˜ν•˜κ³  κ΄€λ¦¬ν•©λ‹ˆλ‹€.
      • 예λ₯Ό λ“€μ–΄, 은행 μ‹œμŠ€ν…œμ—μ„œ κ³„μ’Œ 이체 μ‹œ μž”μ•‘μ΄ μΆ©λΆ„ν•΄μ•Ό ν•œλ‹€λŠ” κ·œμΉ™μ„ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ—μ„œ μ²˜λ¦¬ν•©λ‹ˆλ‹€.
  • 2. μœ νš¨μ„± 검사.
    • μž…λ ₯된 λ°μ΄ν„°λ‚˜ μ‹œμŠ€ν…œ λ‚΄λΆ€μ—μ„œ μ‚¬μš©λ˜λŠ” 데이터가 λΉ„μ¦ˆλ‹ˆμŠ€ κ·œμΉ™μ— λ§žλŠ”μ§€ κ²€μ¦ν•©λ‹ˆλ‹€.
      • 예λ₯Ό λ“€μ–΄, μ‚¬μš©μžκ°€ μž…λ ₯ν•œ 주문의 총앑이 0보닀 큰지, μž¬κ³ κ°€ μΆ©λΆ„ν•œμ§€ 등을 κ²€μ‚¬ν•˜λŠ” 둜직이 ν¬ν•¨λ©λ‹ˆλ‹€.
  • 3. λΉ„μ¦ˆλ‹ˆμŠ€ ν”„λ‘œμ„ΈμŠ€ κ΅¬ν˜„.
    • λΉ„μ¦ˆλ‹ˆμŠ€ μ›Œν¬ν”Œλ‘œμš°λ₯Ό κ΅¬ν˜„ν•˜μ—¬, 각 λ‹¨κ³„μ—μ„œ μˆ˜ν–‰ν•΄μ•Ό ν•˜λŠ” μž‘μ—…μ„ μ •μ˜ν•˜κ³ , μˆœμ„œλŒ€λ‘œ μ‹€ν–‰λ˜λ„λ‘ κ΄€λ¦¬ν•©λ‹ˆλ‹€.
      • 예λ₯Ό λ“€μ–΄, μ£Όλ¬Έ 처리 μ‹œμŠ€ν…œμ—μ„œ μ£Όλ¬Έ μ ‘μˆ˜, 결제 처리, 배솑 μ€€λΉ„ λ“±μ˜ 단계가 λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ— 포함될 수 μžˆμŠ΅λ‹ˆλ‹€.
  • 4. 계산과 처리.
    • νŠΉμ • λΉ„μ¦ˆλ‹ˆμŠ€ κ·œμΉ™μ— 따라 데이터λ₯Ό κ³„μ‚°ν•˜κ±°λ‚˜ μ²˜λ¦¬ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€.
      • 예λ₯Ό λ“€μ–΄, μ„ΈκΈˆ 계산, 할인 적용, 이자 계산 등이 여기에 ν¬ν•¨λ©λ‹ˆλ‹€.

3️⃣ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직의 μœ„μΉ˜

  • λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ€ 보톡 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ Service 계측 에 μœ„μΉ˜ν•©λ‹ˆλ‹€.
    • 이 계측은 데이터λ₯Ό μ²˜λ¦¬ν•˜λŠ” 둜직과 μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ‹΄λ‹Ήν•˜λŠ” λ‘œμ§μ„ λΆ„λ¦¬ν•˜μ—¬, μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±μ„ 높이고 μœ μ§€λ³΄μˆ˜λ₯Ό μš©μ΄ν•˜κ²Œ ν•©λ‹ˆλ‹€.
  • Service 계측 μ—μ„œλŠ” λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ κ΅¬ν˜„ν•˜λ©°, ν•„μš”ν•œ 경우 데이터 μ ‘κ·Ό 계측(Repository) 을 ν˜ΈμΆœν•˜μ—¬ 데이터λ₯Ό μ‘°νšŒν•˜κ±°λ‚˜ μ €μž₯ν•˜κ³ , μ΅œμ’…μ μœΌλ‘œ 처리된 κ²°κ³Όλ₯Ό ν”„λ ˆμ  ν…Œμ΄μ…˜ 계측(Controller) 에 μ „λ‹¬ν•©λ‹ˆλ‹€.

4️⃣ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직과 λ‹€λ₯Έ 둜직의 ꡬ뢄

  • λΉ„μ¦ˆλ‹ˆμŠ€ 둜직
    • μ‹€μ œ λΉ„μ¦ˆλ‹ˆμŠ€μ™€ κ΄€λ ¨λœ λͺ¨λ“  κ·œμΉ™κ³Ό ν”„λ‘œμ„ΈμŠ€λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.
      • μ΄λŠ” νŠΉμ • 도메인 지식에 κΈ°λ°˜ν•˜λ©°, 도메인 μ „λ¬Έκ°€κ°€ 주둜 μš”κ΅¬ 사항을 μ •μ˜ν•©λ‹ˆλ‹€.
  • ν”„λ ˆμ  ν…Œμ΄μ…˜ 둜직
    • μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€μ™€ κ΄€λ ¨λœ 둜직으둜, μ‚¬μš©μžμ—κ²Œ 데이터λ₯Ό ν‘œμ‹œν•˜κ±°λ‚˜ μž…λ ₯을 λ°›λŠ” 것과 κ΄€λ ¨λ©λ‹ˆλ‹€.
  • 데이터 μ ‘κ·Ό 둜직
    • λ°μ΄ν„°λ² μ΄μŠ€μ™€ μƒν˜Έμž‘μš©ν•˜λ©°, 데이터λ₯Ό μ €μž₯ν•˜κ±°λ‚˜ μ‘°νšŒν•˜λŠ” μž‘μ—…μ„ λ‹΄λ‹Ήν•©λ‹ˆλ‹€.

5️⃣ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직의 μ€‘μš”μ„±

  • λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 핡심적인 λΆ€λΆ„μ΄λ―€λ‘œ, 이 둜직의 정확성은 μ‹œμŠ€ν…œ μ „μ²΄μ˜ μ‹ λ’°μ„±κ³Ό μ§κ²°λ©λ‹ˆλ‹€.
  • 잘 μ„€κ³„λœ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μš”κ΅¬λœ λΉ„μ¦ˆλ‹ˆμŠ€ λͺ©ν‘œλ₯Ό μ •ν™•νžˆ 달성할 수 μžˆλ„λ‘ 돕고, 변경이 ν•„μš”ν•  λ•Œλ„ μ‰½κ²Œ ν™•μž₯ν•˜κ±°λ‚˜ μˆ˜μ •ν•  수 μžˆλ„λ‘ν•©λ‹ˆλ‹€.
    • λ”°λΌμ„œ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ κ΅¬ν˜„ν•  λ•ŒλŠ” 도메인 전문가와 κΈ΄λ°€ν•˜κ²Œ ν˜‘λ ₯ν•˜μ—¬ μš”κ΅¬μ‚¬ν•­μ„ λͺ…ν™•νžˆ μ΄ν•΄ν•˜κ³ , 이λ₯Ό μ½”λ“œλ‘œ μ •ν™•νžˆ ν‘œν˜„ν•˜λŠ” 것이 맀우 μ€‘μš”ν•©λ‹ˆλ‹€.