Skip to content

Backend Convention

Jinhong edited this page Aug 16, 2021 · 11 revisions

1. Overall Code Convention

  • IntelliJ Java Google Style을 μ€€μˆ˜ν•©λ‹ˆλ‹€.
    • Preferences - Editor - Code Style - Java - Scheme Import - Google Style IDE
    • Tab and Indentsμ—μ„œ Indent 및 Tab Sizeλ₯Ό 4둜 λ³€κ²½ν•©λ‹ˆλ‹€.
  • New Line μžλ™ μΆ”κ°€ 및 Import μ΅œμ ν™” 섀정을 μ°Έκ³ ν•΄μ£Όμ„Έμš”.
    • POSIX ν‘œμ€€ μ€€μˆ˜λ₯Ό μœ„ν•΄ μ½”λ“œ 파일 끝에 New Line을 μΆ”κ°€ν•©λ‹ˆλ‹€.
    • μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” Import ꡬ문은 μ‚­μ œν•©λ‹ˆλ‹€.

2. Test Code Convention

  • 7 Popular Unit Test Naming Conventions을 μ€€μˆ˜ν•©λ‹ˆλ‹€.
    • MethodName_StateUnderTest_ExpectedBehavior 방식을 μ‚¬μš©ν•©λ‹ˆλ‹€.
  • Test Method의 @DisplayName은 λ™μ‚¬ν˜•μœΌλ‘œ μž‘μ„±ν•˜λ˜, λ„ˆλ¬΄ 길어지지 μ•Šλ„λ‘ μ£Όμ˜ν•©λ‹ˆλ‹€.
  • μ‹ κ·œ κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” 경우 μ•„λž˜ ν•­λͺ©μ—μ„œ ν•΄λ‹Ήλ˜λŠ” ν…ŒμŠ€νŠΈλ“€μ„ λͺ¨λ‘ μž‘μ„±ν•΄μ•Ό ν•©λ‹ˆλ‹€.
    • Unit Test
      • @DataJpaTest 및 μ™ΈλΆ€ API Mock Test 포함
    • Slice Test (Service)
    • Slice Test (Controller)
    • Integration Test (Service - Repository)
    • Acceptance Test

3. Web Layered Architecture

  • Presentation - Application - Domain - Infrastructure의 μ›Ή 계측을 μ€€μˆ˜ν•©λ‹ˆλ‹€.

4. Tech Stack

4.1. Language

  • Java 11

4.2. Framework

  • Spring Boot
  • Spring Data JPA

4.3. Documentation

  • Spring REST Docs
  • SonarQube

4.4. Logging

  • Logback
  • AWS CloudWatch

4.5. Test

  • JUnit (feat. AssertJ)

4.6. Database

  • MariaDB (Prod, Dev, Local)
  • H2 (Test)

4.7. Build

  • Jenkins

4.8. Deployment

  • AWS EC2
  • AWS S3
  • AWS CloudFront
  • Nginx (Reverse Proxy)
  • TLS
  • Docker

4.9. ETC

  • OAuth2 & JWT
  • Sub-Module

4.10. μΆ”ν›„ λ„μž… μ˜ˆμ •

  • QueryDSL
  • Multi-Module
  • Web Socket

πŸ’» κΉƒ-λ“€λ‹€ (PickGit)



κΈ°νšμ„œ


ν”„λ‘œμ νŠΈ 쀑점 사항


νŒ€ κ·œμΉ™


기술 λ¬Έμ„œ


회의둝

Clone this wiki locally