Skip to content

THANKSRAP/shoppingmall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

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

Repository files navigation

๐Ÿ›๏ธ ๋•ก์Šค๋žฉ ์‡ผํ•‘๋ชฐ (ThanksRap Shopping Mall)

Spring Boot์˜ ์ž๋™ ์„ค์ •์— ์˜์กดํ•˜์ง€ ์•Š๊ณ , XML ๊ธฐ๋ฐ˜์œผ๋กœ ์ง์ ‘ ์„ค์ •ํ•˜๋ฉฐ Spring Framework์˜ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ํƒ๊ตฌํ•œ Legacy ๊ตฌ์กฐ์˜ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค.


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

  • ํ”„๋กœ์ ํŠธ๋ช…: '๋•ก์Šค๋žฉ'
  • ๊ฐœ์š”: ์—ฌ์„ฑ ์ƒŒ๋“ค ์‡ผํ•‘๋ชฐ์ธ โ€˜๋Œ•์Šค๋žฉโ€™์„ ๋ฒค์น˜๋งˆํ‚นํ•˜์—ฌ ์ƒํ’ˆ ํƒ์ƒ‰, ์žฅ๋ฐ”๊ตฌ๋‹ˆ, ์ฃผ๋ฌธ, ํšŒ์› ๊ด€๋ฆฌ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์›น ๊ธฐ๋ฐ˜ ์‡ผํ•‘๋ชฐ ์„œ๋น„์Šค
  • ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„: 25.06.09. ~

โš™๏ธ ์‚ฌ์šฉ ๊ธฐ์ˆ  ์Šคํƒ

Spring Boot์˜ ์ž๋™ ์„ค์ • ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , XML ๊ธฐ๋ฐ˜์œผ๋กœ DispatcherServlet๊ณผ Bean ๋“ฑ๋ก ๋“ฑ์„ ์ง์ ‘ ์„ค์ •ํ•˜๋ฉฐ Spring๊ณผ Servlet, Tomcat ๋“ฑ์˜ ์—ฐ๊ฒฐ์ด ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ง€๋Š”์ง€ ์ดํ•ดํ•ด๋ณด๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค.

JPA์™€ ๊ฐ™์ด ์ž๋™ํ™”๋œ ORM ๋Œ€์‹  MyBatis๋ฅผ ์‚ฌ์šฉํ•ด ๋ณต์žกํ•œ SQL ์ฟผ๋ฆฌ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•˜๊ณ  ์ตœ์ ํ™”ํ•ด๋ณด๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค. DAO์— ๋Œ€ํ•œ ์ดํ•ด๋„๋ฅผ ๋†’์ด๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค.

Docker๋ฅผ ํ†ตํ•ด DB ํ™˜๊ฒฝ ๋“ฑ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ํ†ต์ผ ์‹œ์ผœ์„œ ์ง„ํ–‰ํ•˜๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์–ธ์–ด
    • Java (v17)
  • ํ…œํ”Œ๋ฆฟ ์—”์ง„
    • Thymleaf
  • ์›น ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ
    • Spring Framework (v5.3.x)
  • DB ์—ฐ๋™
    • MyBatis
  • ์ธ์ฆ/์ธ๊ฐ€
    • JWT (Json Web Token)
  • DB
    • MySQL 8.x
  • DevOps
    • Docker
  • ๋ณด์•ˆ
    • Spring Security
  • ETC
    • Lombok, Validation, Junit ๋“ฑ

๐Ÿงพ ์„ค์ • ํŒŒ์ผ ์„ค๋ช…

  • web.xml : DispatcherServlet ๋“ฑ๋ก, Context ์„ค์ •
  • dispatcher-servlet.xml : Spring MVC Controller, View ์„ค์ •
  • root-context.xml : ๊ณตํ†ต ๋นˆ ๋“ฑ๋ก, DB ์—ฐ๋™ ๋“ฑ
  • pom.xml : ์˜์กด์„ฑ ๊ด€๋ฆฌ
  • WEB-INF/views/ : Thymleaf View ์ €์žฅ ์œ„์น˜

๐Ÿ› ๏ธ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๊ด€๋ฆฌ (.env) (์ถ”ํ›„ ๋ฆฌํŒฉํ† ๋ง ์˜ˆ์ •)

.env ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ด ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ฉ์œผ๋กœ ๊ด€๋ฆฌํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
ํ˜„์žฌ๋Š” .gitignore์— ๋“ฑ๋กํ•˜์ง€ ์•Š์•„, ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”ํ›„ ๋ฆฌํŒฉํ† ๋ง ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. .env๋กœ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด .env.dev, .env.prod ๋“ฑ์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
SpringDotenv(ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๊ด€๋ฆฌ)๋ผ๋Š” ์˜์กด์„ฑ์„ Spring Framework์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • Spring Framework๋Š” Spring Boot์™€ ๋‹ฌ๋ฆฌ .env ํŒŒ์ผ์ด ์ž๋™์œผ๋กœ ๋กœ๋”ฉ ๋˜์ง€ ์•Š์Œ
  • Spring Framework์—์„œ๋Š” ์ง์ ‘ .env ํŒŒ์ผ์„ ์ฝ๊ณ  Environment๋‚˜ Bean ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ โ†’ Spring Framework์—์„œ๋Š” .properties + @Value ๋ฐฉ์‹์ด ๋” ์ถ”์ฒœ๋œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๊ณ  ์ถ”ํ›„ ๋ฆฌํŒฉํ† ๋ง ์ง„ํ–‰ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

๐Ÿ“ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

๋„๋ฉ”์ธํ˜• ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ฑ„ํƒํ•ด ๊ตฌํ˜„์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ๋Šฅ์ด๋‚˜ ๊ณ„์ธต(Service, Controller ๋“ฑ)์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ„๋Š” ์ „ํ†ต์ ์ธ ๋ฐฉ์‹(Layered Architecture)์ด ์•„๋‹Œ, ์—…๋ฌด ๋„๋ฉ”์ธ ์ค‘์‹ฌ์œผ๋กœ ๋””๋ ‰ํ† ๋ฆฌ์™€ ํด๋ž˜์Šค๋ฅผ ๊ตฌ์„ฑํ•จ์œผ๋กœ์จ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์ ์„ ์–ป๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค:

  • ๋†’์€ ์‘์ง‘๋„: ๊ด€๋ จ๋œ ๋„๋ฉ”์ธ ํด๋ž˜์Šค๋“ค์ด ํ•˜๋‚˜์˜ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ชจ์—ฌ ์žˆ์–ด ๋ณ€๊ฒฝ์ด๋‚˜ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์›€
  • ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ(Separation of Concern): ๊ฐ ๋„๋ฉ”์ธ์˜ ์ฑ…์ž„์ด ๋ช…ํ™•ํ•˜๊ฒŒ ๋ถ„๋ฆฌ๋จ
  • ํ™•์žฅ ์šฉ์ด์„ฑ: ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์‹œ ํ•ด๋‹น ๋„๋ฉ”์ธ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์—์„œ๋งŒ ์ž‘์—… ๊ฐ€๋Šฅ
  • ํ˜‘์—… ํšจ์œจ ์ฆ๊ฐ€: ์—ญํ•  ๋ถ„๋‹ด์ด ๋„๋ฉ”์ธ ๋‹จ์œ„๋กœ ๋‚˜๋‰˜๋ฏ€๋กœ ํŒ€์›์ด ๊ฐ ๋„๋ฉ”์ธ์— ์ง‘์ค‘ํ•˜๊ธฐ ์‰ฌ์›€

๋„๋ฉ”์ธ๋งˆ๋‹ค ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ(ex: ์˜ˆ์™ธ ์ฒ˜๋ฆฌ, ๋ณด์™„ ์„ค์ •, ๋กœ๊น…, ์ธํ„ฐ์…‰ํ„ฐ ๋“ฑ)์€ ๋ณ„๋„ ๊ณตํ†ต ํŒจํ‚ค์ง€ ๋˜๋Š” ์„ค์ • ํŒจํ‚ค์ง€(ex: config, common ํŒจํ‚ค์ง€)์— ๋ถ„๋ฆฌํ•ด์„œ ๊ด€๋ฆฌํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

๐Ÿ›๏ธ shoppingmall/
โ”œโ”€โ”€ .idea/                           # IntelliJ ์„ค์ • ํด๋”
โ”œโ”€โ”€ db/                              # DB ์ดˆ๊ธฐํ™” SQL, ERD ๋“ฑ
โ”œโ”€โ”€ logs/                            # ๋กœ๊ทธ ํŒŒ์ผ ์ €์žฅ ์œ„์น˜
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ main/
โ”‚   โ”‚   โ”œโ”€โ”€ java/com/example/shoppingmall/
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”‚โ”€โ”€ config/                  # ์ „์ฒด ๊ณตํ†ต ์„ค์ •
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ WebMvcConfig.java
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ SecurityConfig.java
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ MyBatisConfig.java
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ JwtTokenProvider.java
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”‚โ”€โ”€ common/                  # ๊ณตํ†ต ๋ชจ๋“ˆ (์˜ˆ์™ธ, ์‘๋‹ต ํฌ๋งท, ์œ ํ‹ธ ๋“ฑ)
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ exception/
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ GlobalExceptionHandler.java
โ”‚   โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ CustomException.java
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ErrorResponse.java
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ util/
โ”‚   โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ JwtUtil.java
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ response/
โ”‚   โ”‚   โ”‚       โ””โ”€โ”€ ApiResponse.java
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”‚โ”€โ”€ user/                    # ํšŒ์› ๋„๋ฉ”์ธ
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ controller/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ service/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ repository/
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ dto/
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ domain/
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ”‚โ”€โ”€ item/                    # ์ƒํ’ˆ ๋„๋ฉ”์ธ
โ”‚   โ”‚   โ”‚โ”€โ”€ cart/                    # ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋„๋ฉ”์ธ
โ”‚   โ”‚   โ”‚โ”€โ”€ order/                   # ์ฃผ๋ฌธ ๋„๋ฉ”์ธ
โ”‚   โ”‚   โ”‚โ”€โ”€ board/                   # ๊ฒŒ์‹œํŒ/๋ฌธ์˜ ๋„๋ฉ”์ธ
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ ...
โ”‚   โ”‚   โ”‚
โ”‚   โ”‚   โ””โ”€โ”€ resources/
โ”‚   โ”‚       โ”œโ”€โ”€ dispatcher-servlet.xml     # Spring MVC ์„ค์ •
โ”‚   โ”‚       โ”œโ”€โ”€ root-context.xml           # ๊ณตํ†ต ๋นˆ ์„ค์ •
โ”‚   โ”‚       โ”œโ”€โ”€ mapper/                    # MyBatis Mapper XML
โ”‚   โ”‚       โ””โ”€โ”€ static/, templates/        # ์ •์  ์ž์› ๋ฐ Thymeleaf ๋ทฐ
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ test/                      # ํ…Œ์ŠคํŠธ ์ฝ”๋“œ
โ”‚       โ””โ”€โ”€ java/com/example/shoppingmall/
โ”œโ”€โ”€ target/                        # Maven ๋นŒ๋“œ ์•„์›ƒํ’‹
โ”œโ”€โ”€ docker-compose.yml             # ๊ฐœ๋ฐœํ™˜๊ฒฝ ํ†ตํ•ฉ์„ ์œ„ํ•œ Docker ์„ค์ •
โ”œโ”€โ”€ pom.xml                        # ํ”„๋กœ์ ํŠธ ์˜์กด์„ฑ ์ •์˜
โ”œโ”€โ”€ .env                           # ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํŒŒ์ผ (.gitignore ๋Œ€์ƒ ์˜ˆ์ •)
โ”œโ”€โ”€ .gitignore
โ””โ”€โ”€ README.md

๐Ÿ”ง ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜

[์‚ฌ์šฉ์ž]
   โ†“
[Thymeleaf ๊ธฐ๋ฐ˜ ์›น ํŽ˜์ด์ง€]
   โ†“ (ํผ ์ „์†ก / ์š”์ฒญ)
[Spring + MyBatis ์„œ๋ฒ„]
   โ†“ (์ฟผ๋ฆฌ ์‹คํ–‰)
[MySQL DB]

+ ์„ธ์…˜๊ธฐ๋ฐ˜ ๋กœ๊ทธ์ธ/ํšŒ์›๊ด€๋ฆฌ ์ฒ˜๋ฆฌ
+ Docker๋กœ ์„œ๋ฒ„์™€ DB ํ™˜๊ฒฝ ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์„ฑ ๋ฐ ์‹คํ–‰

๐Ÿš€ ์ฃผ์š” ๊ธฐ๋Šฅ ๋ช…์„ธ

๊ธฐ๋Šฅ ์˜์—ญ ์„ธ๋ถ€ ๊ธฐ๋Šฅ ์„ค๋ช…
ํšŒ์› ๊ด€๋ฆฌ ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ ์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ ์‹œ์Šคํ…œ (JWT ๋„์ž… ์˜ˆ์ •)
์ƒํ’ˆ ํƒ์ƒ‰ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์กฐํšŒ, ๊ฒ€์ƒ‰, ์ •๋ ฌ Thymeleaf๋ฅผ ํ†ตํ•œ ๋™์  ํŽ˜์ด์ง€ ๋ Œ๋”๋ง
์ƒํ’ˆ ๋ฆฌ๋ทฐ ๋ฆฌ๋ทฐ ์ž‘์„ฑ ๋ฐ ์กฐํšŒ ๊ตฌ๋งค์ž๋งŒ ๋ฆฌ๋ทฐ ์ž‘์„ฑ ๊ฐ€๋Šฅ
์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ƒํ’ˆ ๋‹ด๊ธฐ, ์ˆ˜๋Ÿ‰ ๋ณ€๊ฒฝ, ์‚ญ์ œ ๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž์˜ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์„ธ์…˜ ๊ธฐ๋ฐ˜ ๊ด€๋ฆฌ
์ฃผ๋ฌธ ๊ธฐ๋Šฅ ์ฃผ๋ฌธ ์ƒ์„ฑ ๋ฐ ์กฐํšŒ ๊ฒฐ์ œ ๊ธฐ๋Šฅ์€ ์ถ”ํ›„ ์ถ”๊ฐ€ ์˜ˆ์ •
๊ฒŒ์‹œํŒ ๊ธฐ๋Šฅ ์ƒํ’ˆ ๋ฌธ์˜/๋‹ต๋ณ€, ๊ณต์ง€์‚ฌํ•ญ ์ปค๋ฎค๋‹ˆํ‹ฐ/๊ณ ๊ฐ์„ผํ„ฐ ๊ธฐ๋Šฅ ์ œ๊ณต
๊ด€๋ฆฌ์ž ๊ธฐ๋Šฅ ํšŒ์›/์ƒํ’ˆ/๋งค์ถœ ๊ด€๋ฆฌ (์˜ˆ์ •) ๊ด€๋ฆฌ์ž ์ „์šฉ Admin ํŽ˜์ด์ง€ ์˜ˆ์ •

๐Ÿงฎ DB ์„ค๊ณ„


๐Ÿ”€ Git ๋ธŒ๋žœ์น˜ ์ „๋žต

  • main : ๋ฐฐํฌ(์šด์˜)์šฉ ๋ธŒ๋žœ์น˜
  • ๊ธฐ๋Šฅ(๋„๋ฉ”์ธ)๋ณ„ ๋ธŒ๋žœ์น˜ : feature/user, feature/item, feature/order ...

๐Ÿ“˜ GitHub Convention

Issue ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ ํ๋ฆ„

  • ์ด ํ”„๋กœ์ ํŠธ๋Š” ๋ชจ๋“  ์ž‘์—…์„ Issue ์ค‘์‹ฌ์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ, ๋ฒ„๊ทธ ์ˆ˜์ •, ๋ฆฌํŒฉํ† ๋ง ๋“ฑ ๋ชจ๋“  ์ž‘์—…์€ ๋จผ์ € Issue๋ฅผ ๋“ฑ๋กํ•œ ํ›„,
  • ํ•ด๋‹น ์ด์Šˆ ๋ฒˆํ˜ธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ปค๋ฐ‹ ๋ฐ Pull Request(PR)์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํ๋ฆ„์„ ํ†ตํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • ์ž‘์—… ๋‹จ์œ„๊ฐ€ ๋ช…ํ™•ํ•˜๊ฒŒ ์ถ”์ ๋˜์–ด ๊ธฐ๋ก ๋ฐ ๋ฆฌ๋ทฐ๊ฐ€ ์ˆ˜์›”ํ•จ
  • PR๊ณผ ์ปค๋ฐ‹์ด ํŠน์ • ์ด์Šˆ์— ์ •ํ™•ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ํ๋ฆ„์ด ๋ช…ํ™•ํ•ด์ง
  • GitHub Projects ๋ฐ Kanban ๋ณด๋“œ์™€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์—ฐ๊ณ„ ๊ฐ€๋Šฅ
  • ์ž๋™ํ™” ๋„๊ตฌ(๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ, CI/CD ํŠธ๋ฆฌ๊ฑฐ ๋“ฑ)์™€ ํ†ตํ•ฉ ์šฉ์ด

๐Ÿ“ ์ปค๋ฐ‹ ์ปจ๋ฒค์…˜

์ปค๋ฐ‹ ํ˜•์‹

<type>: <subject>
- <body> (์„ ํƒ)
Issue: #<issue number>
  • subject: ํ˜„์žฌํ˜• + ๋ช…๋ นํ˜•, 50์ž ์ด๋‚ด
  • body: ๋ณ€๊ฒฝ ์ด์œ , ์ƒ์„ธ ์„ค๋ช… ๋“ฑ (์„ ํƒ ์‚ฌํ•ญ)
  • Issue: #๋ฒˆํ˜ธ๋ฅผ ํ†ตํ•ด ๊ด€๋ จ ์ด์Šˆ๋ฅผ ์—ฐ๊ฒฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์ปค๋ฐ‹ ์˜ˆ์‹œ

feat: ์‚ฌ์šฉ์ž ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ๊ตฌํ˜„
- ์œ ํšจ์„ฑ ๊ฒ€์ฆ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™” ์ถ”๊ฐ€
Issue: #12

์ปค๋ฐ‹ ํƒ€์ž… ๋ชฉ๋ก

Conventional Commits ํ‘œ์ค€์„ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค. ์ž๋™ ๋ฆด๋ฆฌ์ฆˆ, changelog ๋“ฑ๊ณผ ํ˜ธํ™˜์ด ๋˜๋„๋ก (feat:, fix:, ...) ๋“ฑ์˜ ํ˜•ํƒœ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํƒ€์ž… ์„ค๋ช…
feat ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
fix ๋ฒ„๊ทธ ์ˆ˜์ •
docs ๋ฌธ์„œ ์ž‘์—… (README, API ๋ฌธ์„œ ๋“ฑ)
style ์ฝ”๋“œ ์Šคํƒ€์ผ ๋ณ€๊ฒฝ (๊ณต๋ฐฑ, ์„ธ๋ฏธ์ฝœ๋ก  ๋“ฑ / ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ ์—†์Œ)
refactor ๋ฆฌํŒฉํ† ๋ง (๊ธฐ๋Šฅ ๋ณ€๊ฒฝ ์—†์ด ๊ตฌ์กฐ ๊ฐœ์„ )
test ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€ ๋˜๋Š” ์ˆ˜์ •
chore ์„ค์ • ํŒŒ์ผ, ๋นŒ๋“œ ์ž‘์—…, ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋“ฑ ๊ธฐํƒ€ ์žก๋ฌด์„ฑ ์ž‘์—…
perf ์„ฑ๋Šฅ ๊ฐœ์„ 
ci CI ํ™˜๊ฒฝ ๊ตฌ์„ฑ ๋ฐ ์ˆ˜์ •
build ๋นŒ๋“œ ๋„๊ตฌ ๋˜๋Š” ์˜์กด์„ฑ ๊ด€๋ จ ์ž‘์—…
revert ์ด์ „ ์ปค๋ฐ‹ ๋˜๋Œ๋ฆฌ๊ธฐ

๐Ÿ“ Issue ์ปจ๋ฒค์…˜

Issue ์ œ๋ชฉ ํ˜•์‹

[<์œ ํ˜•>] <์ž‘์—… ์š”์•ฝ> #<์ด์Šˆ๋ฒˆํ˜ธ>

Issue ์ œ๋ชฉ ์˜ˆ์‹œ

[Feature] ์‚ฌ์šฉ์ž ์ฃผ์†Œ ๋“ฑ๋ก ๊ธฐ๋Šฅ ๊ตฌํ˜„ #32
[Bug] ๋กœ๊ทธ์ธ ์‹คํŒจ ์‹œ ์ž˜๋ชป๋œ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ #33
[Refactor] ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์„œ๋น„์Šค ๋ฆฌํŒฉํ† ๋ง #34

Issue ํƒ€์ž… ๋ชฉ๋ก

Commit, PR๊ณผ ํ‘œ๊ธฐ๋ฅผ ๋‹ฌ๋ฆฌํ•ด ์—ญํ• ์„ ํ™•์‹คํ•˜๊ฒŒ ๊ตฌ๋ถ„

ํƒ€์ž… ์„ค๋ช…
[Feature] ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ๋˜๋Š” ๊ฐœ์„ 
[Bug] ์˜ค๋ฅ˜ ์ˆ˜์ •
[Refactor] ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง, ๊ตฌ์กฐ ๊ฐœ์„ 
[Docs] ๋ฌธ์„œ ๊ด€๋ จ ์ž‘์—…
[Test] ํ…Œ์ŠคํŠธ ๊ด€๋ จ ์ž‘์—…
[Chore] ์„ค์ •, ํŒจํ‚ค์ง€, CI ๋“ฑ ๊ธฐํƒ€ ์žก๋ฌด

Issue ๋ณธ๋ฌธ ์˜ˆ์‹œ

๐Ÿ“„ ์ด์Šˆ ๋ณธ๋ฌธ์€ .github/์— ํ…œํ”Œ๋ฆฟ์„ ์ƒ์„ฑํ•ด ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค

## โœจ ์„ค๋ช…
ํšŒ์›๊ฐ€์ž… ์‹œ ์ฃผ์†Œ ๋“ฑ๋ก ๊ธฐ๋Šฅ์ด ๋ˆ„๋ฝ๋˜์–ด ์žˆ์Œ

## โœ… ์ž‘์—… ๋‚ด์šฉ
- ์ฃผ์†Œ ๋“ฑ๋ก form ์ถ”๊ฐ€
- UserController์— ์ฃผ์†Œ ์ฒ˜๋ฆฌ API ๊ตฌํ˜„
- MyBatis mapper ๋ฐ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ถ”๊ฐ€

## ๐Ÿ“Ž ์ฐธ๊ณ ์ž๋ฃŒ
- [๋””์ž์ธ ์‹œ์•ˆ - Figma ๋งํฌ]
- [API ๋ช…์„ธ์„œ - Notion ๋ฌธ์„œ]

๐Ÿ“ Pull Request(PR) ์ปจ๋ฒค์…˜

PR ์ œ๋ชฉ ํ˜•์‹

<type>: <์š”์•ฝ ์„ค๋ช…>
  • type์€ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํƒ€์ž…๊ณผ ๋™์ผ (feat, fix, refactor ๋“ฑ)
  • ์š”์•ฝ ์„ค๋ช…์€ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ•ด๋‹น ์ž‘์—…์˜ ๋ชฉ์ ์ด๋‚˜ ๊ฒฐ๊ณผ๋ฅผ ์„œ์ˆ 
  • ์ด์Šˆ ๋ฒˆํ˜ธ๋Š” PR ๋ณธ๋ฌธ์— Closes #๋ฒˆํ˜ธ๋กœ ๋ช…์‹œ (์ œ๋ชฉ์—๋Š” ํฌํ•จํ•˜์ง€ ์•Š์Œ)

PR ์ œ๋ชฉ ์˜ˆ์‹œ

feat: ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ๊ตฌํ˜„
fix: ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ˆ˜๋Ÿ‰ ์˜ค๋ฅ˜ ์ˆ˜์ •
refactor: ํšŒ์› ๋„๋ฉ”์ธ ์„œ๋น„์Šค ์ฑ…์ž„ ๋ถ„๋ฆฌ
docs: README ๊ตฌ์กฐ๋„ ์ถ”๊ฐ€

PR ๋ณธ๋ฌธ ์˜ˆ์‹œ

๐Ÿ“„ PR ๋ณธ๋ฌธ์€ .github/์— ํ…œํ”Œ๋ฆฟ์„ ์ƒ์„ฑํ•ด ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค

## ๐Ÿ”— ๊ด€๋ จ ์ด์Šˆ
Closes #32

## โœจ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ
- ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ๊ตฌํ˜„: ์œ ํšจ์„ฑ ๊ฒ€์ฆ, ์•”ํ˜ธํ™”, ์ค‘๋ณต ์ฒดํฌ
- UserController, UserService ์ž‘์„ฑ
- MyBatis ๋งคํ•‘ ํŒŒ์ผ ์ถ”๊ฐ€

## โœ… ํ…Œ์ŠคํŠธ ๋‚ด์—ญ
- ํšŒ์›๊ฐ€์ž… ์„ฑ๊ณต/์‹คํŒจ ์ผ€์ด์Šค ํ…Œ์ŠคํŠธ ์™„๋ฃŒ
- ์ค‘๋ณต ์ด๋ฉ”์ผ ๋“ฑ๋ก ๋ฐฉ์ง€ ํ…Œ์ŠคํŠธ ํ†ต๊ณผ

## ๐Ÿ“Œ TODO (ํ›„์† ์ž‘์—…)
- ์ด๋ฉ”์ผ ์ธ์ฆ ๊ธฐ๋Šฅ ๋ถ„๋ฆฌ ์˜ˆ์ •

โœ… ์ „์ฒด ์ž‘์—… ํ๋ฆ„ ์š”์•ฝ

  1. ์ด์Šˆ ์ƒ์„ฑ

    [Feature] ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ๊ตฌํ˜„ #32
  2. ๋ธŒ๋žœ์น˜ ์ƒ์„ฑ

    git checkout -b feature/signup
  3. ์ปค๋ฐ‹ ์ž‘์„ฑ

    feat: ์‚ฌ์šฉ์ž ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ๊ตฌํ˜„
    - ์œ ํšจ์„ฑ ๊ฒ€์ฆ ๋ฐ ์ค‘๋ณต ์ฒดํฌ ์ถ”๊ฐ€
    Issue: #32
  4. PR ์ƒ์„ฑ

    • ์ œ๋ชฉ:

      feat: ํšŒ์›๊ฐ€์ž… ๊ธฐ๋Šฅ ๊ตฌํ˜„
    • ๋ณธ๋ฌธ:

      Closes #32
      ...

๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ ํŒ€์› ์—ญํ•  ๋ถ„๋‹ด(์ถ”ํ›„ ์ž‘์„ฑ ์™„๋ฃŒ)

์ด๋ฆ„ ๋‹ด๋‹น ์˜์—ญ ์ƒ์„ธ ์„ค๋ช…
๊น€์ง€ํ›„ ์ƒํ’ˆ(Item) ํŒŒํŠธ item, item_image, category, item_option ๋“ฑ
๊ฐ•๋ฏผ์„œ ์ฃผ๋ฌธ(Order) ํŒŒํŠธ order, order_item, payment, delivery
๋‚˜์˜๋ฌธ ๊ฒŒ์‹œํŒ(Board) ํŒŒํŠธ item_question, question_answer, notice
๋‚˜ํ˜„์ง€ ์žฅ๋ฐ”๊ตฌ๋‹ˆ(Cart) ํŒŒํŠธ cart
์ž„ํ™๋นˆ ํšŒ์›(User) ํŒŒํŠธ user, address, wishlist

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5