๐Ÿช kakaotech campus

์นดํ…Œ์ผ | [STEP2 clone coding] 1์ฃผ์ฐจ ๊ณผ์ œ - (1)

c0zi 2023. 6. 28. 18:40

๊ณผ์ œ๋ช…

1. ์š”๊ตฌ์‚ฌํ•ญ๋ถ„์„ / API์š”์ฒญ ๋ฐ ์‘๋‹ต ์‹œ๋‚˜๋ฆฌ์˜ค ๋ถ„์„
2. ์š”๊ตฌ์‚ฌํ•ญ ์ถ”๊ฐ€ ๋ฐ˜์˜ ๋ฐ ํ…Œ์ด๋ธ” ์„ค๊ณ„๋„

 

๊ณผ์ œ ์„ค๋ช…

1. ์š”๊ตฌ์‚ฌํ•ญ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋ณด๊ณ  ๋ถ€์กฑํ•ด ๋ณด์ด๋Š” ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜ ์ด์ƒ ์ฒดํฌํ•˜์—ฌ README์— ๋‚ด์šฉ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

2. ์ œ์‹œ๋œ ํ™”๋ฉด์„ค๊ณ„๋ฅผ ๋ณด๊ณ  ํ•ด๋‹น ํ™”๋ฉด์„ค๊ณ„์™€ ๋ฐฐํฌ๋œ ๊ธฐ์กด ์„œ๋ฒ„์˜ API์ฃผ์†Œ๋ฅผ ๋งค์นญํ•˜์—ฌ README์— ๋‚ด์šฉ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. (์นด์นด์˜ค ํ™”๋ฉด์„ค๊ณ„ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์žˆ์Œ)

3. ๋ฐฐํฌ๋œ ์„œ๋ฒ„์— ๋ชจ๋“  API๋ฅผ POSTMAN์œผ๋กœ ์š”์ฒญํ•ด๋ณธ ๋’ค ์‘๋‹ต๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•˜๊ณ  ๋ถ€์กฑํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ฒดํฌํ•˜์—ฌ README์— ๋‚ด์šฉ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

4. ํ…Œ์ด๋ธ” ์„ค๊ณ„๋ฅผ ํ•˜์—ฌ README์— ER-Diagram์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ œ์ถœํ•˜์‹œ์˜ค.

 


01. ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„/ API ์š”์ฒญ ๋ฐ ์‘๋‹ต ์‹œ๋‚˜๋ฆฌ์˜ค ๋ถ„์„


01) ์š”๊ตฌ์‚ฌํ•ญ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋ณด๊ณ  ๋ถ€์กฑํ•ด ๋ณด์ด๋Š” ๊ธฐ๋Šฅ์„ ํ•˜๋‚˜ ์ด์ƒ ์ฒดํฌํ•˜์—ฌ README์— ์ž‘์„ฑ

 

๊ฐœ๋ณ„ ์ œํ’ˆ ์ƒ์„ธ ์กฐํšŒ

 

 - ์ œํ’ˆ ์ƒ์„ธ ์ •๋ณด ์„ค๋ช…

 - ํ†ก๋”œ๊ฐ€๋กœ ๊ตฌ๋งคํ•˜๊ธฐ ๊ธฐ๋Šฅ

 - ๋ณ„์  or ๋ฆฌ๋ทฐ ๊ธฐ๋Šฅ

 

 

์ฃผ๋ฌธํ•˜๊ธฐ 

 

 - ๋ฐฐ์†ก์ง€ ์ •๋ณด ์ˆ˜์ • ๊ธฐ๋Šฅ (๊ตฌํ˜„ ๋˜์–ด์žˆ์ง€๋งŒ ์ œ๋Œ€๋กœ ๊ธฐ๋Šฅํ•˜์ง€ x)

ps. ๋ฐฐ์†ก์ง€๋ช… ์ถ”๊ฐ€ (--์ด๋„ค )

 

 

 

์ฃผ๋ฌธ ์™„๋ฃŒ

 

 - ์ฃผ๋ฌธ ๋ฒˆํ˜ธ

 

์ฃผ๋ฌธ ๋ฒˆํ˜ธ x

 


02) ์ œ์‹œ๋œ ํ™”๋ฉด์„ค๊ณ„๋ฅผ ๋ณด๊ณ  ํ•ด๋‹น ํ™”๋ฉด์„ค๊ณ„์™€ ๋ฐฐํฌ๋œ ๊ธฐ์กด ์„œ๋ฒ„์˜ API ์ฃผ์†Œ๋ฅผ ๋งค์นญํ•˜์—ฌ README ๋‚ด์šฉ ์ž‘์„ฑ

 

 

1. ์‡ผํ•‘ํ•˜๊ธฐ - ์ „์ฒด ์ƒํ’ˆ ๋ชฉ๋ก ์กฐํšŒ

  • GET
  • http://localhost:8080/products

 

2. ์žฅ๋ฐ”๊ตฌ๋‹ˆ - ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์กฐํšŒ

  • GET
  • http://localhost:8080/carts

 

3. ๋กœ๊ทธ์ธ / ๋กœ๊ทธ์•„์›ƒ

  • POST
  • http://localhost:8080/login

 

4. ๊ฐœ๋ณ„ ์ƒํ’ˆ ์กฐํšŒ

  • GET
  • http://localhost:8080/products/1 (๊ฐ ์ˆซ์ž)

 


ํšŒ์›๊ฐ€์ž… ์ƒ์„ธ

 

ํšŒ์›๊ฐ€์ž… ํ™”๋ฉด

 

1. ์ด๋ฉ”์ผ ์ค‘๋ณต์ฒดํฌ

  • POST
  • http://localhost:8080/check
  • Request Body ⇒ { "email":"ssarnate.com" }

 

2. ํšŒ์›๊ฐ€์ž…

  • Post
  • http://localhost:8080/join
  • Request Body ⇒ { "username":"mata", "email":"meta@nate.com", "password":"meta1234!" }

 


๋กœ๊ทธ์ธ ์ƒ์„ธ

 

๋กœ๊ทธ์ธ ํ™”๋ฉด

  • POST
  • http://localhost:8080/login
  • Request Body ⇒ { "email":"ssar@nate.com", "password":"meta1234!" }

 


์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋‹ด๊ธฐ

 

์˜ต์…˜ ํ™”๋ฉด

  • POST
  • http://localhost:8080/carts/add
  • Request Header
  • ⇒ Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzc2FyQG5hdGUuY29tIiwicm9sZSI6Il JPTEVfVVNFUiIsImlkIjoxLCJleHAiOjE2ODcwNTM5MzV9.fXlD0NZQXYYfPHV8rokRJTM86nhS869L Z1KIGi7_qvPOcVbXgvyZLKvnlLxomIiS3YFnQRLzXAJ2G41yI_AmGg
  • Request Body ⇒ [ { "optionId":1, "quantity":5 }, { "optionId":2, "quantity":5 } ]

 


์žฅ๋ฐ”๊ตฌ๋‹ˆ ์กฐํšŒ

 

์žฅ๋ฐ”๊ตฌ๋‹ˆ ํ™”๋ฉด

  • GET
  • http://localhost:8080/carts
  • Request Header
  • ⇒ Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzc2FyQG5hdGUuY29tIiwicm9sZSI6Il JPTEVfVVNFUiIsImlkIjoxLCJleHAiOjE2ODcwNTM5MzV9.fXlD0NZQXYYfPHV8rokRJTM86nhS869L Z1KIGi7_qvPOcVbXgvyZLKvnlLxomIiS3YFnQRLzXAJ2G41yI_AmGg

 


์ฃผ๋ฌธํ•˜๊ธฐ - ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ˆ˜์ •

 

์žฅ๋ฐ”๊ตฌ๋‹ˆ ํ™”๋ฉด

  • POST
  • http://localhost:8080/carts/update
  • Request Header ⇒ Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzc2FyQG5hdGUuY29tIiwicm9sZSI6Il JPTEVfVVNFUiIsImlkIjoxLCJleHAiOjE2ODcwNTM5MzV9.fXlD0NZQXYYfPHV8rokRJTM86nhS869L Z1KIGi7_qvPOcVbXgvyZLKvnlLxomIiS3YFnQRLzXAJ2G41yI_AmGg
  • Request Body ⇒ [ { "cartId":4, "quantity":10 }, { "cartId":5, "quantity":10 } ]

 


๊ฒฐ์ œํ•˜๊ธฐ - (์ฃผ๋ฌธ ์ธ์„œํŠธ)

 

๊ฒฐ์ œํ•˜๊ธฐ ํ™”๋ฉด

 

1. ์ฃผ๋ฌธ insert

  • POST
  • http://localhost:8080/orders/save
  • Request Header ⇒ Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzc2FyQG5hdGUuY29tIiwicm9sZSI6Il JPTEVfVVNFUiIsImlkIjoxLCJleHAiOjE2ODcwNTM5MzV9.fXlD0NZQXYYfPHV8rokRJTM86nhS869L Z1KIGi7_qvPOcVbXgvyZLKvnlLxomIiS3YFnQRLzXAJ2G41yI_AmGg

 

2. ์ฃผ๋ฌธ ์™„๋ฃŒ

  • GET
  • http://localhost:8080/orders/1
  • Request Header ⇒ Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzc2FyQG5hdGUuY29tIiwicm9sZSI6Il JPTEVfVVNFUiIsImlkIjoxLCJleHAiOjE2ODcwNTM5MzV9.fXlD0NZQXYYfPHV8rokRJTM86nhS869L Z1KIGi7_qvPOcVbXgvyZLKvnlLxomIiS3YFnQRLzXAJ2G41yI_AmGg