Skip to content

Goorm-Lucky7/ThinkTank_BE

Repository files navigation

πŸ’› WebIDE ν”„λ‘œμ νŠΈ feat.ThinkTank

mockup

ν”„λ‘œμ νŠΈ κΈ°κ°„ : 2024.04.25 ~ 2023.05.20

πŸ”— ThinkTank μ„œλΉ„μŠ€ λ‘˜λŸ¬λ³΄κΈ° (λ°μŠ€ν¬νƒ‘/νƒœλΈ”λ¦Ώ ν™˜κ²½μ—μ„œ 이용 κ°€λŠ₯)

🎬 μ‹œμ—° μ˜μƒ λ³΄λŸ¬κ°€κΈ°



✨ ν”„λ‘œμ νŠΈ μ†Œκ°œ

Think, Share, Develop, ThinkTank

  • ThinkTank은 개발자λ₯Ό μœ„ν•œ μ•Œκ³ λ¦¬μ¦˜ λ¬Έμ œν’€μ΄ 기반 μ†Œμ…œ ν”Œλž«νΌμž…λ‹ˆλ‹€.
  • 각 μœ μ €λ“€μ€ μ„œλ‘œ 문제 생성 및 풀이λ₯Ό 톡해 μƒν˜Έμž‘μš©μ΄ μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€.
  • μ†Œμ…œ ν”Œλž«νΌμ„ κΈ°λ°˜ν•œ μ„œλΉ„μŠ€ ꡬ쑰둜 μΉœμˆ™ν•˜κ²Œ μ„œλ‘œκ°„ 문제λ₯Ό 곡유 및 ν”Όλ“œλ°± κ°€λŠ₯ν•©λ‹ˆλ‹€.



⭐️ μ£Όμš” κΈ°λŠ₯

πŸ“Œ 문제 쑰회

  • μœ μ €λ“€μ΄ ν¬μŠ€νŒ…ν•œ λ¬Έμ œλ“€μ„ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. image

πŸ“Œ 문제 생성

  • 문제 λ‚΄μš©κ³Ό μ •λ‹΅ μ½”λ“œ, ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ‘œ κ΅¬μ„±ν•˜μ—¬ 문제λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. image

πŸ“Œ 문제 풀이

  • μœ μ €λ“€μ΄ 올린 문제λ₯Ό 풀어보며 정닡을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€. image

πŸ“Œ 정보 쑰회

  • μžμ‹ μ˜ ν™œλ™(λ§Œλ“  문제, λ§žμ€ 문제, 즐겨찾기)을 μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 메인 νŽ˜μ΄μ§€μ—μ„œ λ‹‰λ„€μž„μ„ ν΄λ¦­ν•¨μœΌλ‘œμ¨ μ‚¬μš©μž 정보 쑰회λ₯Ό μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€. image



πŸ”— ν”„λ‘œμ νŠΈ λ¬Έμ„œ

πŸ“’ νŒ€ Notion πŸŽ‰ κΈ°νšμ•ˆ πŸ’Œ μš”κ΅¬μ‚¬ν•­ πŸ“ API λͺ…μ„Έμ„œ πŸ“† ν”„λ‘œμ νŠΈ 일정



πŸ§‘β€πŸ§‘β€πŸ§’β€πŸ§’ TEAMMATE μ†Œκ°œ

λ°•μ°½λ―Ό 강솔문 μ΄μ§€μˆ˜ μ‹¬μ˜ˆμ€
λ°•μ°½λ―Ό 강솔문 μ΄μ§€μˆ˜ μ‹¬μ˜ˆμ€
BackEnd BackEnd BackEnd BackEnd
채점(메인), 배포, BE νŒ€μž₯ νšŒμ› 둜그인, νšŒμ›κ°€μž…, λ§ˆμ΄νŽ˜μ΄μ§€ κ²Œμ‹œκΈ€, μ’‹μ•„μš” λŒ“κΈ€, μ†Œμ…œ 둜그인



βœ” μ•„ν‚€ν…μ²˜

architecture



πŸ‘¨β€πŸ’»πŸ‘©β€πŸ’» 기술 μŠ€νƒ

Language & Library Java Spring Boot
Database H2 MySQL Redis
CI/CD AWS Docker
HTTP Postman
Test JUnit5 Mockito



πŸ—‚οΈ νŒ¨ν‚€μ§€ ꡬ쑰

com.thinktank
β”œβ”€β”€ api
β”‚   β”œβ”€β”€ controller
β”‚   β”œβ”€β”€ dto
β”‚   β”‚   β”œβ”€β”€ post
β”‚   β”‚   β”‚   β”œβ”€β”€ request 
β”‚   β”‚   β”‚   └── response
β”‚   β”‚   β”œβ”€β”€ user
β”‚   β”‚   β”‚   β”œβ”€β”€ request
β”‚   β”‚   β”‚   └── response
β”‚   β”‚   β”œβ”€β”€ comment
β”‚   β”‚   β”‚   β”œβ”€β”€ request
β”‚   β”‚   β”‚   └── response
β”‚   β”‚   β”œβ”€β”€ judge
β”‚   β”‚   β”‚   β”œβ”€β”€ request
β”‚   β”‚   β”‚   └── response
β”‚   β”‚   └── like
β”‚   β”‚       β”œβ”€β”€ request
β”‚   β”‚       └── response
β”‚   β”œβ”€β”€ entity
β”‚   β”œβ”€β”€ repository
β”‚   └── service
└── global
    β”œβ”€β”€ common
    β”‚   └── util
    β”œβ”€β”€ error
    β”‚   β”œβ”€β”€ exception
    β”‚   β”œβ”€β”€ handler
    β”‚   └── model
    β”œβ”€β”€ auth
    β”‚   β”œβ”€β”€ filter
    └── config



πŸ—ƒοΈ ERD

erd.png



βœ”οΈ μ½”λ“œ μ»¨λ²€μ…˜

νŒ€ λ‚΄μ—μ„œ μ§€μΌœμ•Ό ν•  μ½”λ“œ μ»¨λ²€μ…˜μ„ λͺ…μ‹œν•©λ‹ˆλ‹€. 이 μ»¨λ²€μ…˜λ“€μ€ μ½”λ“œμ˜ 가독성을 높이고, 효율적인 ν˜‘μ—… 및 μœ μ§€ 보수λ₯Ό 도λͺ¨ν•˜κΈ° μœ„ν•΄ μ •λ¦½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

일반 κ·œμΉ™

  • μΈν…”λ¦¬μ œμ΄ 넀이버 μ½”λ“œ μ»¨λ²€μ…˜ μ‚¬μš© : 가독성 ν–₯상과 였λ₯˜ λ°œμƒ μœ„ν—˜μ„ 쀄이기 μœ„ν•΄ μ‚¬μš©ν•©λ‹ˆλ‹€.
  • μ½”λ“œ 길이 : ν•œ μ€„μ˜ μ½”λ“œ κΈΈμ΄λŠ” μ΅œλŒ€ 120자λ₯Ό λ„˜μ§€ μ•Šλ„λ‘ ν•©λ‹ˆλ‹€.
  • 클래슀 ꡬ쑰 : ν΄λž˜μŠ€λŠ” μƒμˆ˜, 멀버 λ³€μˆ˜, μƒμ„±μž, λ©”μ„œλ“œ 순으둜 μž‘μ„±ν•©λ‹ˆλ‹€.

넀이밍 κ·œμΉ™

  • λ©”μ„œλ“œ 이름 : λ©”μ„œλ“œλŠ” 동사+λͺ…μ‚¬μ˜ ν˜•νƒœλ‘œ λͺ…ν™•ν•˜κ²Œ μž‘μ„±ν•©λ‹ˆλ‹€. 예) saveOrder, deleteUser
  • 뢈린 λ°˜ν™˜ λ©”μ„œλ“œ : λ°˜ν™˜ 값이 뢈린 νƒ€μž…μΈ 경우 λ©”μ„œλ“œ 이름은 'is'둜 μ‹œμž‘ν•©λ‹ˆλ‹€. 예) isAdmin, isAvailable
  • 검증 λ©”μ„œλ“œ : 검증에 κ΄€ν•œ λ©”μ„œλ“œλŠ” validate둜 μ‹œμž‘ν•©λ‹ˆλ‹€. 예) validateInput, validateUser

μ•„ν‚€ν…μ²˜ 및 μ„€μ •

  • κ³„μΈ΅ν˜• μ•„ν‚€ν…μ²˜ : ν”„λ‘œμ νŠΈλŠ” κ³„μΈ΅ν˜• μ•„ν‚€ν…μ²˜ ꡬ쑰λ₯Ό λ”°λ¦…λ‹ˆλ‹€.
  • BaseTimeEntity : λ‚ μ§œ 정보가 μžλ™μœΌλ‘œ λ“±λ‘λ˜λ„λ‘ BaseTimeEntityλ₯Ό μ μš©ν•©λ‹ˆλ‹€.
  • YML 파일 뢄리 : 개발 ν™˜κ²½μ— 맞게 local, develop, main λ“±μœΌλ‘œ yml μ„€μ • νŒŒμΌμ„ λΆ„λ¦¬ν•©λ‹ˆλ‹€.

νŠΉλ³„ν•œ κ·œμΉ™

  • 정적 νŒ©ν† λ¦¬ λ©”μ„œλ“œ μ‚¬μš© : 객체 생성 μ‹œ 정적 νŒ©ν† λ¦¬ λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ 가독성과 μœ μ € μΉœν™”μ„±μ„ λ†’μž…λ‹ˆλ‹€.
  • λΉŒλ” νŒ¨ν„΄ μ‚¬μš© : μƒμ„±μžμ˜ λ§€κ°œλ³€μˆ˜κ°€ 4개 이상일 경우 λΉŒλ” νŒ¨ν„΄μ„ μ‚¬μš©ν•΄ 가독성을 λ†’μž…λ‹ˆλ‹€.
  • λ ˆμ½”λ“œ ν™œμš© : DTO λ“± κ°„λ‹¨ν•œ λͺ©μ μ˜ ν΄λž˜μŠ€μ—λŠ” Java의 recordλ₯Ό ν™œμš©ν•˜μ—¬ μ½”λ“œλ₯Ό κ°„μ†Œν™”ν•©λ‹ˆλ‹€.



❓ 이슈 ν…œν”Œλ¦Ώ

issue-template.png



❗️ PR ν…œν”Œλ¦Ώ

pullrequest-template.png



πŸ’¬ 컀밋 λ©”μ‹œμ§€ κ·œμΉ™

  • refactor: μ½”λ“œ λ¦¬νŒ©ν„°λ§ μ‹œ μ‚¬μš©ν•©λ‹ˆλ‹€.
  • feat: μƒˆλ‘œμš΄ κΈ°λŠ₯ μΆ”κ°€ μ‹œ μ‚¬μš©ν•©λ‹ˆλ‹€.
  • fix: 버그 μˆ˜μ • μ‹œ μ‚¬μš©ν•©λ‹ˆλ‹€.
  • chore: λΉŒλ“œ 업무 μˆ˜μ •, νŒ¨ν‚€μ§€ λ§€λ‹ˆμ € μˆ˜μ • μ‹œ μ‚¬μš©ν•©λ‹ˆλ‹€.
  • style: μ½”λ“œ 포맷 λ³€κ²½, μ„Έλ―Έμ½œλ‘  λˆ„λ½, μ½”λ“œ μˆ˜μ •μ΄ μ—†λŠ” 경우 μ‚¬μš©ν•©λ‹ˆλ‹€.
  • docs: λ¬Έμ„œ μˆ˜μ • μ‹œ μ‚¬μš©ν•©λ‹ˆλ‹€.
  • test: ν…ŒμŠ€νŠΈ κ΄€λ ¨ μ½”λ“œ μ‹œ μ‚¬μš©ν•©λ‹ˆλ‹€.
  • Move: μ½”λ“œ λ˜λŠ” 파일의 이동이 μžˆμ„ 경우 μ‚¬μš©ν•©λ‹ˆλ‹€.
  • Rename: 파일λͺ…(or 폴더λͺ…)을 μˆ˜μ •ν•œ 경우 μ‚¬μš©ν•©λ‹ˆλ‹€.
  • Remove: μ½”λ“œ(파일)의 μ‚­μ œκ°€ μžˆμ„ 경우 μ‚¬μš©ν•©λ‹ˆλ‹€.
  • Comment: 주석 μΆ”κ°€ 및 변경이 μžˆμ„ 경우 μ‚¬μš©ν•©λ‹ˆλ‹€.
  • Add: μ½”λ“œλ‚˜ ν…ŒμŠ€νŠΈ, 예제, λ¬Έμ„œ λ“±μ˜ μΆ”κ°€ 생성이 μžˆμ„ 경우 μ‚¬μš©ν•©λ‹ˆλ‹€.

About

πŸ’¬ ThinkTank Back-End

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •