Backend Wiki - 100-hours-a-week/9-team-Devths-WIKI GitHub Wiki
| κΈ°κ° | μ£Όμ μμ |
|---|---|
| 25/12/22 ~ 26/1/4 | μλΉμ€ κΈ°ν, κΈ°μ κ²ν |
| 26/1/5 ~ 1/18 | μ€κ³ (ERD, API, ν ν¬μ€ν) |
| 1/19 ~ 2/1 | MVP κ°λ° |
| 2/2 ~ 2/8 | 1μ°¨ λ°°ν¬ λ° μΆμ |
μμ
- EditorConfig μ€μ
| μ€μ νλͺ© | κ° | μ€λͺ |
|---|---|---|
| charset | utf-8 | μΈμ½λ© ν΅μΌ |
| end_of_line | lf | Mac/Windows μ€λ°κΏ μ°¨μ΄ ν΄κ²° |
| indent_style | space | ν λμ μ€νμ΄μ€ μ¬μ© |
| insert_final_newline | true | νμΌ λμ κ°ν μΆκ° |
| trim_trailing_whitespace | true | νν 곡백 μ κ±° |
| max_line_length | 120 | κ°λ μ±μ μν λΌμΈ κΈΈμ΄ μ ν |
μμ
| νλͺ© | κ·μΉ |
|---|---|
| ν΄λμ€λͺ | PascalCase |
| λ³μλͺ λ° λ©μλλͺ | camelCase |
| μμλͺ | UPPER_SNAKE_CASE |
| ν¨ν€μ§λͺ |
lowercase (com.devths.domain) |
| ν μ¬μ© | μ¬μ© μν¨ (Space 4) |
| μ€ λ°κΏ | LF |
| μ΅λ λΌμΈ κΈΈμ΄ | 120 |
| μ μ΄λ¬Έ λΈλ‘ {} | K&R Style (κ°μ μ€μ μμ) |
| μ°μ°μ λ°°μΉ | μ€λ°κΏ μ μ°μ°μλ‘ μμ |
| import μμ |
java -> javax -> org -> com
|
| μ£Όμ μ€νμΌ | Javadoc νμ μ€μ |
μμ
** μ»€λ° λ©μμ§λ type: message νμμ λ°λ₯΄λ©°, μλμ κ·μΉμ λ°λ¦ λλ€. **
μ λͺ© κ·μΉ
- μ λͺ©μ λ€μ λμλ¬Έμ μ€νμΌ μ€ νλλ₯Ό λ°λΌμΌ ν©λλ€: - sentence-case - start-case - pascal-case - upper-case - lower-case
- μ λͺ© λμ λ§μΉ¨ν(.)λ₯Ό μ¬μ©νμ§ μμ΅λλ€.
- μ λͺ©μ μ΅μ 5μ μ΄μμ΄μ΄μΌ ν©λλ€.
- μ 체 ν€λλ 72μλ₯Ό μ΄κ³Όνμ§ μμμΌ ν©λλ€.
| νμ | μ€λͺ |
|---|---|
| build | λΉλ μμ€ν λλ μΈλΆ μμ‘΄μ± λ³κ²½ |
| chore | ν¨ν€μ§ λ§€λμ μ€μ λ± μμ€ μ½λ μΈμ μΈ λ³κ²½ |
| content | μ½ν μΈ λ³κ²½ |
| docs | λ¬Έμ μμ (README, Wiki λ±) |
| feat | μλ‘μ΄ κΈ°λ₯ μΆκ° |
| fix | λ²κ·Έ μμ |
| refactor | μ½λ 리ν©ν λ§ (κΈ°λ₯ λ³κ²½ μμ) |
| style | μ½λ ν¬λ§·ν , μΈλ―Έμ½λ‘ λλ½ λ± (λ‘μ§ λ³κ²½ μμ) |
| test | ν μ€νΈ μ½λ μΆκ°/μμ |
| deploy | λ°°ν¬ κ΄λ ¨ λ³κ²½ |
type: μ λͺ© (#μ΄μλ²νΈ)
λ³Έλ¬Έ (μ ν μ¬ν)
μμ
feat: νμκ°μ
κΈ°λ₯ ꡬν (#12)
- Spring Security μ€μ μΆκ°
- User μν°ν° μμ± λ° Repository ꡬν
μμ
- PR μ λͺ©μ μ»€λ° λ©μμ§μ λμΌν νμμ μ μ§ν©λλ€.
- ν λ²μ PRμ νλμ λͺ©μ μ κ°μ ΈμΌ ν©λλ€.
- μ½λ 리뷰λ₯Ό κ±°μΉ ν λ³ν©μ μνν©λλ€.
μ΄ μ»¨λ²€μ μ μ€μνμ¬ νμ μ½λ νμ§μ μ μ§νκ³ μνν νμ μ μ§νν©μλ€!
κ° μ€κ³ λ¨κ³μ μμΈ λ΄μ©μ λ§ν¬λ μλΈ νμ΄μ§μμ νμΈν μ μμ΅λλ€.
Why: λ°μ΄ν° 무결μ±μ 보μ₯νκ³ , ν₯ν λΉμ¦λμ€ νμ₯μ μ μ°νκ² λμνκΈ° μν λ°μ΄ν° λͺ¨λΈλ§μ λλ€.
- ERD λ€μ΄μ΄κ·Έλ¨: π ERDCloud λ§ν¬
- ν΅μ¬ μ λ΅: μ κ·ν/λ°μ κ·ν νΈλ μ΄λμ€ν κ³ λ €, μΈλ±μ€ μ΅μ ν
Why: ν΄λΌμ΄μΈνΈμμ λͺ νν μΈν°νμ΄μ€ μ½μμ΄λ©°, 리μμ€ μ€μ¬μ μ€κ³λ₯Ό ν΅ν΄ μ§κ΄μ μΈ μ¬μ©μ±μ μ 곡ν©λλ€.
- URI κ·μΉ: RESTful μμΉ μ€μ (μμ=λͺ μ¬, νμ=λ©μλ)
- μ£Όμ λ΄μ©: μΈμ¦ μνμ€, κ³΅ν΅ μλ΅ κ·κ²©(JSON), μλ¬ μ½λ
Why: "λ¨λ€μ΄ μ¨μ"κ° μλ, **"μ°λ¦¬ μλΉμ€μ κ·λͺ¨μ νΉμ±μ μ ν©ν κΈ°μ "**μ λΉκ΅ λΆμνμ¬ μ μ ν©λλ€.
Why: 볡μ‘ν λΉμ¦λμ€ λ‘μ§μ μ½λλ‘ μ§κΈ° μ μ μκ°ννμ¬ λ Όλ¦¬μ μ€λ₯λ₯Ό μ¬μ μ λ°©μ§ν©λλ€.
Why: λ°λ³΅μ μΈ μλ λ°°ν¬λ‘ μΈν ν΄λ¨Ό μλ¬λ₯Ό μ κ±°νκ³ , μ½λ λ³κ²½ μ¬νμ μ¦μ μ΄μ νκ²½μ λ°μν©λλ€.
[Image of CI CD pipeline diagram]
- Cloud: AWS (EC2, RDS, S3)
- Network: VPC (Public/Private Subnet λΆλ¦¬)
- CI: Github Actions (Build -> Unit Test -> Lint Check)
- CD: Docker Hub Image Push -> EC2 Pull & Run (Blue/Green Deployment)
μ§μ κ°λ₯ν μννΈμ¨μ΄λ₯Ό μν΄ λΆμ±λ₯Ό κ΄λ¦¬νκ³ μ½λμ μ λ’°μ±μ μ λμ μΌλ‘ μΈ‘μ ν©λλ€.
| λꡬ | μν | λͺ©μ |
|---|---|---|
| .editorconfig | μ½λ ν¬λ§· ν΅μΌ | IDE κ° μ€μ μ°¨μ΄λ‘ μΈν λΆνμν μ½λ λ³κ²½ λ°©μ§ |
| Checkstyle | μ½λ© 컨벀μ κ²μ¬ | μ½λ μ€νμΌ μΌκ΄μ± μ μ§ λ° κ°λ μ± ν₯μ |
| JaCoCo | ν μ€νΈ 컀λ²λ¦¬μ§ μΈ‘μ | ν μ€νΈλμ§ μμ λΉμ¦λμ€ λ‘μ§ μλ³ (λͺ©ν: 70%) |
| Java Test Fixtures | ν μ€νΈ λ°μ΄ν° κ΄λ¦¬ | ν μ€νΈ μ½λ μ€λ³΅ μ κ±° λ° μ μ§λ³΄μ μ©μ΄μ± ν보 |
| SonarQube | μ μ μ½λ λΆμ | μ½λ μ€λ©, 보μ μ·¨μ½μ , λ²κ·Έ μ¬μ νμ§ |