Skip to content

๐ŸŽถ๊ณต์—ฐ ํ‹ฐ์ผ“ ์˜ˆ๋งค ์„œ๋น„์Šค Book Your Seat๐ŸŽธ

Notifications You must be signed in to change notification settings

prgrms-be-devcourse/NBE1_2_Team02

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ™Œ Book Your Seat!

๊ณต์—ฐ ํ‹ฐ์ผ“ ์˜ˆ๋งค ์„œ๋น„์Šค

ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ ๐Ÿ“Œ

๊ณต์—ฐ ํ‹ฐ์ผ“ํŒ…์„ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์„œ๋น„์Šค ์ž…๋‹ˆ๋‹ค.

  • ํšŒ์› ๊ด€๋ฆฌ ์‹œ์Šคํ…œ
  • ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ์„ ์œ„ํ•œ ๋Œ€๊ธฐ์—ด ์‹œ์Šคํ…œ
  • ์ฝ˜์„œํŠธ ์ •๋ณด ๋ฐ ๋ฆฌ๋ทฐ ์ œ๊ณต
  • ์‹ค์‹œ๊ฐ„ ํ‹ฐ์ผ“ ์˜ˆ์•ฝ ๋ฐ ํ† ์Šค ๊ฒฐ์ œ
  • ๊ฒฐ์ œ ์™„๋ฃŒ, ์˜ˆ์™ธ ๋ฐœ์ƒ ์‹œ SNS ์•Œ๋ฆผ ๊ตฌํ˜„

๊ธฐ์ˆ  ์Šคํƒ ๐Ÿฆพ

Languages

Java Kotlin

Frameworks

Spring Boot Spring Security Spring Data JPA QueryDSL

Testing

JUnit

Databases

MySQL Redis H2

Tools

IntelliJ IDEA Gradle Postman Notion Slack

Infrastructure

AWS S3 nGrinder JWT

ํŒ€์› ์†Œ๊ฐœ ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘

๊น€๊ด€ํ˜„ ๊น€๋„์šฐ ๊น€์ˆ˜๋ฏผ ์•ˆํƒœํ˜ธ ์ด์„ฑ์›
kwanse kimdw0823 tnals2384 AnTaeho kcsc2217
๊ณต์—ฐ API, ์˜ˆ๋งค,๊ฒฐ์ œ API Swagger API, ์˜ˆ๋งค, ๊ฒฐ์ œ API ํšŒ์› API, ์ฟ ํฐ API, ๋Œ€๊ธฐ์—ด API ๋Ÿญํ‚ค๋“œ๋กœ์šฐ API, ์ฟ ํฐ API, ๋Œ€๊ธฐ์—ด API ์ฟ ํฐ API, Slack API, ๋ฆฌ๋ทฐ API

ERD

BookYourSeat

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

  • ๋ ˆ์ด์–ด๋“œ ์•„ํ‚คํ…์ฒ˜ + ๋„๋ฉ”์ธ ๊ธฐ๋ฐ˜ ํŒจํ‚ค์ง€ ๊ตฌ์กฐ
  • Facade : CommandService + QueryService

EX) User ๋„๋ฉ”์ธ

book_your_seat
โ”‚
โ”œโ”€โ”€ user
     โ”œโ”€โ”€ UserConst.java
     โ”œโ”€โ”€ controller
     โ”‚   โ”œโ”€โ”€ AdminUserController.java
     โ”‚   โ”œโ”€โ”€ UserController.java
     โ”‚   โ””โ”€โ”€ dto
     โ”‚       โ”œโ”€โ”€ UserCreateRequest.java
     โ”‚       โ”œโ”€โ”€ UserDetailResponse.java
     โ”‚       โ”œโ”€โ”€ UserResponse.java
     โ”‚       โ””โ”€โ”€ UserUpdateRequest.java
     โ”œโ”€โ”€ domain
     โ”‚   โ”œโ”€โ”€ User.java
     โ”‚   โ””โ”€โ”€ UserRole.java
     โ”œโ”€โ”€ repository
     โ”‚   โ”œโ”€โ”€ UserRepository.java
     โ”‚   โ”œโ”€โ”€ UserRepositoryCustom.java
     โ”‚   โ””โ”€โ”€ UserRepositoryImpl.java
     โ””โ”€โ”€ service
         โ”œโ”€โ”€ command
         โ”‚   โ””โ”€โ”€ UserCommandService.java
         โ”œโ”€โ”€ facade
         โ”‚   โ””โ”€โ”€ UserFacade.java
         โ””โ”€โ”€ query
             โ””โ”€โ”€ UserQueryService.java

๊ธฐ๋Šฅ ๋ชฉ๋ก

1. ํšŒ์›

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-11-04 แ„‹แ…ฉแ„’แ…ฎ 2 57 37

2. ์„ ์ฐฉ์ˆœ ์ฟ ํฐ

  • ์ฟ ํฐ ์žฌ๊ณ  ๋™์‹œ์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์˜ Lock ๊ตฌํ˜„ ํ›„, ์„ฑ๋Šฅํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์—ฌ ์ตœ์ข… ๋น„๊ด€์  ๋ฝ + Pub/sub ๋ฝ ์ด์ค‘๋ฝ ๊ตฌํ˜„
  • ๋น„๊ด€์  ๋ฝ, ๋‚™๊ด€์  ๋ฝ, Named ๋ฝ (RDB ์ด์šฉ)
  • Spin ๋ฝ, Pub/sub ๋ถ„์‚ฐ ๋ฝ (Redis ์ด์šฉ)
  • ์„ ์ฐฉ์ˆœ ์ฟ ํฐ ๋ฝ(Lock) ํŽ˜์Šคํ‹ฐ๋ฒŒ

3. ๊ณต์—ฐ ๋ฐ ๋ฆฌ๋ทฐ

  • ๊ณต์—ฐ ๋ชฉ๋ก๊ณผ ์ƒ์„ธ ์ •๋ณด ์กฐํšŒ
  • ๊ณต์—ฐ ๋ฆฌ๋ทฐ ์ž‘์„ฑ ๋ฐ ๋ฆฌ๋ทฐ ์กฐํšŒ ๊ฐ€๋Šฅ
  • ๊ด€์‹ฌ ๊ณต์—ฐ ์„ค์ • ๊ฐ€๋Šฅ
  • No Offset ๋ฐฉ์‹์˜ ๊ณต์—ฐ ๋ชฉ๋ก ํŽ˜์ด์ง• ์ ์šฉ
  • ์บ์‹ฑ์„ ํ†ตํ•œ ํšจ์œจ์ ์ธ ๊ณต์—ฐ ๋ชฉ๋ก ๋ฐ˜ํ™˜
  • ๋‹ค์ค‘ ์ปฌ๋Ÿผ ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•œ ๋ฆฌ๋ทฐ ๋ชฉ๋ก ์กฐํšŒ ์„ฑ๋Šฅ ๊ฐœ์„ 

4. ๋Œ€๊ธฐ์—ด

  • ํ‹ฐ์ผ“ ์˜ˆ๋งค ์‹œ ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ์„ ์œ„ํ•œ Redis Zset์„ ์ด์šฉํ•œ ๋Œ€๊ธฐ์—ด ๊ตฌํ˜„

  • ์™„์ „ํ•œ ์˜์กด์„ฑ ๋ถ„๋ฆฌ๋กœ ๋ฉ€ํ‹ฐ ์„œ๋ฒ„๋กœ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅ -> ๋Œ€๊ธฐ์—ด ์„œ๋ฒ„ / ๋ฉ”์ธ ์„œ๋ฒ„๋กœ ๋‚˜๋ˆ„์–ด ์šด์˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„

  • ๋Œ€๊ธฐ์—ด

    image

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-11-04 แ„‹แ…ฉแ„’แ…ฎ 3 02 58

5. ์ขŒ์„ ์„ ์  ๋ฐ ์˜ˆ๋งค, ๊ฒฐ์ œ

  • ๋Œ€๊ธฐ์—ด์„ ๋‹ค ๊ธฐ๋‹ค๋ ค ์ง„ํ–‰์—ด์— ๋“ค์–ด์˜ค๊ฒŒ๋˜๋ฉด, ์ขŒ์„ ์„ ์  ๋ฐ ์˜ˆ๋งค, ๊ฒฐ์ œ ๊ฐ€๋Šฅ
  • ์˜ˆ๋งค, ๊ฒฐ์ œ flow
์ขŒ์„ ์„ ์  ๊ฒฐ์ œ


6. ๋Ÿญํ‚ค๋“œ๋กœ์šฐ

  • ์ด๋ฒคํŠธ ๊ธฐ๊ฐ„ ๋‚ด ํ‹ฐ์ผ“์„ ์˜ˆ๋งคํ•œ ๊ณ ๊ฐ์—๊ฒŒ ๋žœ๋ค ๋Ÿญํ‚ค๋“œ๋กœ์šฐ ์ฟ ํฐ ์ง€๊ธ‰
  • 1๋“ฑ -> 5๋ช…
  • 2๋“ฑ -> 10๋ช…
  • 3๋“ฑ -> 15๋ช…
  • 4๋“ฑ -> 20๋ช…
  • ์Šค์ผ€์ค„๋Ÿฌ๋ฅผ ํ†ตํ•ด ์ถ”์ฒจ ํ›„, ์˜ˆ๋งค์ž email๋กœ ๋‹น์ฒจ ์•Œ๋ฆผ

Notion

ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…, ์ผ์ •๊ด€๋ฆฌ, ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ ๋“ฑ์€ ์—ฌ๊ธฐ 2ํŒ€ ๋…ธ์…˜์—์„œ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

About

๐ŸŽถ๊ณต์—ฐ ํ‹ฐ์ผ“ ์˜ˆ๋งค ์„œ๋น„์Šค Book Your Seat๐ŸŽธ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages