๐Ÿ‘— ๋ธŒ๋žœ๋”” ์ธํ„ด์‹ญ ํšŒ๊ณ ๋ก

haejun-kimยท2020๋…„ 10์›” 22์ผ
1

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

https://www.brandi.co.kr/
๋ธŒ๋žœ๋””๋Š” 20๋Œ€ ์—ฌ์„ฑ์„ ์œ„ํ•œ ํŒจ์…˜/๋ทฐํ‹ฐ ์•ฑ์ด๋‹ค. ๋ธŒ๋žœ๋””๋Š” ์ถ”๊ฐ€์ ์œผ๋กœ ๋‚จ์„ฑ ํŒจ์…˜ ์•ฑ ํ•˜์ด๋ฒ„, ์‡ผํ•‘๋ชฐ ๋ฌด๋ฃŒ ์ฐฝ์—… ์„œ๋น„์Šค ํ—ฌํ”ผ, ๋™๋Œ€๋ฌธ D2C(Direct to Consumer) ํ”Œ๋žซํผ ํŠธ๋žœ๋””๊นŒ์ง€ ๋™๋Œ€๋ฌธ ํŒจ์…˜ ์‚ฌ์—…์— ์ ๊ทน์ ์œผ๋กœ ๋›ฐ์–ด๋“ค๊ณ  ์žˆ๋Š” ๊ธฐ์—…์ด๋‹ค.
์ด ๋ธŒ๋žœ๋””์˜ ๋ธŒ๋žœ๋””์˜ ์Šคํ…Œ์ด์ง• ์„œ๋น„์Šค ํŽ˜์ด์ง€์™€, ๋ฐฑ์˜คํ”ผ์Šค ํŽ˜์ด์ง€๋ฅผ ํด๋กœ๋‹ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์œผ๋ฉฐ, ๊ทธ ์ค‘ ๋ฐฑ์˜คํ”ผ์Šค ๊ฐœ๋ฐœ์„ ๋‹ด๋‹นํ•˜์˜€๋‹ค.

๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ : 2020-09-14 ~ 2020-10-15 (31์ผ)
๊ฐœ๋ฐœ ์ธ์›
Service
Front-End 3๋ช…(์ด์ƒํ›ˆ, ์œ ํœ˜์ฐฌ, ์กฐ์€๋ณ„), Back-End 2๋ช…(๊ถŒ์ฐฝ์‹, ๊ณ ์ง€์›)
Front-End , Back-End Github
https://github.com/Wecode11-Brandi-Team2/Service-frontend
https://github.com/Wecode11-Brandi-Team2/Service-backend

BackOffice
Front-End 2๋ช…(๊น€๋™ํ˜ธ, ์ด๋„์œค), Back-End 3๋ช…(๊น€ํ•ด์ค€, ์ด์šฉ๋ฏผ, ๊ณ ์ง€์›)
Front-End , Back-End Github
https://github.com/Wecode11-Brandi-Team2/BO-frontend
https://github.com/Wecode11-Brandi-Team2/BO-backend

๊ฐœ์ธ ๊นƒํ—ˆ๋ธŒ
https://github.com/Wecode11-Brandi-Team2/BO-backend


๊ตฌํ˜„ ์‚ฌํ•ญ

๊ธฐ์กด์˜ ์œ„์ฝ”๋“œ์—์„œ์˜ ํ”„๋กœ์ ํŠธ์™€๋Š” ๋‹ฌ๋ฆฌ ๊ฐœ๋ฐœ ๊ทœ๋ชจ๋„ ์ปธ์œผ๋ฉฐ, ์ฐธ์—ฌ ์ธ์›๋„ ๋งŽ์•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌํ˜„ ํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ์— ๋‚˜์—ดํ•˜๊ธฐ๋ณด๋‹ค๋Š” ์ œ๊ฐ€ ์ง์ ‘ ๊ตฌํ˜„ ํ•œ ๊ธฐ๋Šฅ๋“ค๋งŒ์„ ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ชจ๋ธ๋ง (๊ณตํ†ต)

AQueryTool์„ ์ด์šฉํ•ด ์„œ๋น„์Šค ํŽ˜์ด์ง€์™€ ๋ฐฑ์˜คํ”ผ์Šค ํŽ˜์ด์ง€์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•  ๊ฒƒ์ธ์ง€ ๋ชจ๋ธ๋ง์„ ์ง„ํ–‰ํ–ˆ๋‹ค.

URL : https://aquerytool.com:443/aquerymain/index/?rurl=684cffa4-5742-4925-abbd-1fb90558f5e1
Password : 8fk52g

API

User

  • User ์ „์ฒด ๋ชฉ๋ก ๋ฐ˜ํ™˜ API
  • QueryString์„ ์‚ฌ์šฉํ•œ filtering ๊ธฐ๋Šฅ ๊ตฌํ˜„

Seller

  • Seller ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ API
    • bcrypt๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋ฐ€๋ฒˆํ˜ธ ์•”ํ˜ธํ™”
    • jwt๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ access_token ๋ฐœํ–‰
  • Seller ์ „์ฒด ๋ชฉ๋ก ๋ฐ˜ํ™˜ API
    • Querystring์„ ์‚ฌ์šฉํ•˜์—ฌ filtering ๊ธฐ๋Šฅ ๊ตฌํ˜„
    • flaks_request_validator package๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ Querystring์„ ๊ด€๋ฆฌ
  • Seller ์ƒ์„ธ ์ •๋ณด ๋ฐ˜ํ™˜ API
    • Pathparameter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ด๋–ค ๋ฐ์ดํ„ฐ์˜ ์ƒ์„ธ ์ •๋ณด์— ์ ‘๊ทผํ•  ๊ฒƒ์ธ์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜
  • Seller ์ •๋ณด ์ˆ˜์ • API
    • ์„ ๋ถ„ ์ด๋ ฅ์œผ๋กœ ์ด๋ ฅ์— ๋Œ€ํ•œ ๊ด€๋ฆฌ
    • DB์—์„œ ํ˜„์žฌ ์‹œ๊ฐ„์„ ์กฐํšŒ ํ•˜์—ฌ ๊ทธ ๊ฐ’์„ ์„ ๋ถ„ ์ด๋ ฅ์— ์ ์šฉ์‹œํ‚ด์œผ๋กœ์จ ๊ฐ€๋”์”ฉ ๋ฐœ์ƒํ•˜๋Š” ์‹œ๊ฐ„์˜ ์˜ค์ฐจ๋ฅผ ์‚ฌ์ „์— ๋ฐฉ์ง€
    • ๊ฐ™์€ seller์˜ id๊ฐ’์„ ์ฐธ์กฐํ•˜๋„๋ก ํ•˜์—ฌ ์ƒˆ๋กœ์šด raw๊ฐ€ ์ƒ๊ฒจ๋„ ์ด๋ ฅ์ด ๊ทธ๋Œ€๋กœ ์œ ์ง€ ๋จ
  • ํ•œ๊ธ€/์˜๋ฌธ ์…€๋Ÿฌ๋ช… ์ค‘๋ณต ๊ฒ€์‚ฌ API
    • ์…€๋Ÿฌ๋ช…์ด ์กด์žฌ ํ•  ์‹œ์—๋Š” count์˜ ๊ฐ’์ด 1, ์กด์žฌํ•˜์ง€ ์•Š์„ ์‹œ์—๋Š” count์˜ ๊ฐ’์ด 0์ธ ์ ์„ ํ™œ์šฉํ•˜์—ฌ ๋กœ์ง ์„ค๊ณ„
    • count(*) vs count(column)์˜ ์ฐจ์ด๋ฅผ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•˜์—ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„ ์งˆ ๊ฒฝ์šฐ query์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์„ ๊ณ ๋ คํ•˜์—ฌ ์„ค๊ณ„
  • Seller ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ API
    • ์œ ์ €๊ฐ€ ๊ธฐ์กด์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ๋‹ค๋ฅธ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ํŒ๋ณ„ ๋กœ์ง ๊ตฌํ˜„
    • ์œ ์ €๊ฐ€ ๊ธฐ์กด์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ๊ฐ™์€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ์ˆ˜์ •์„ ์š”์ฒญ ํ–ˆ์„ ์‹œ์— ๋Œ€ํ•œ ํŒ๋ณ„ ๊ตฌํ˜„

Q&A

  • Q&A ์ „์ฒด ๋ชฉ๋ก ๋ฐ˜ํ™˜ API
    • Querystring์„ ์‚ฌ์šฉํ•˜์—ฌ filtering ๊ธฐ๋Šฅ ๊ตฌํ˜„
    • flaks_request_validator package๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ Querystring์„ ๊ด€๋ฆฌ
  • Q&A ์ƒ์„ธ ์ •๋ณด ๋ฐ˜ํ™˜ API
    • Pathparameter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ด๋–ค ๋ฐ์ดํ„ฐ์˜ ์ƒ์„ธ ์ •๋ณด์— ์ ‘๊ทผํ•  ๊ฒƒ์ธ์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜
  • Q&A ๋ฌธ์˜ ๊ธ€์— ๋‹ต๋ณ€ํ•˜๊ธฐ API
    • ํ•ด๋‹น ๋ฌธ์˜๊ธ€์˜ id๋ฅผ ๋ฐ›์•„ ํ•ด๋‹น ๋ฌธ์˜ ๊ธ€์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ INSERT ํ•˜๋„๋ก ๊ตฌํ˜„
  • Q&A Delete API
    • Soft Delete ์ฒ˜๋ฆฌ

Review

  • Review ์ „์ฒด ๋ชฉ๋ก ๋ฐ˜ํ™˜ API
    • Querystring์„ ์‚ฌ์šฉํ•˜์—ฌ filtering ๊ธฐ๋Šฅ ๊ตฌํ˜„
    • flaks_request_validator package๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ Querystring์„ ๊ด€๋ฆฌ
  • Review ์ƒ์„ธ ์ •๋ณด ๋ฐ˜ํ™˜ API
    • Pathparameter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ด๋–ค ๋ฐ์ดํ„ฐ์˜ ์ƒ์„ธ ์ •๋ณด์— ์ ‘๊ทผํ•  ๊ฒƒ์ธ์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜
  • Review Delete API
    • Soft Delete ์ฒ˜๋ฆฌ

1์ฃผ์ฐจ

1์ฃผ์ฐจ๋Š” ์ฃผ๋ง์„ ํฌํ•จํ•œ ์ผ์ฃผ์ผ๋™์•ˆ ๋ชจ๋ธ๋งํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์„ ๋ชจ๋‘ ์Ÿ์•˜๋‹ค. ์œ„์ฝ”๋“œ์—์„œ ๋‘ ๋ฒˆ์˜ ํด๋ก  ํ”„๋กœ์ ํŠธ์—์„œ ๋‚ด๊ฐ€ ๊ฒฝํ—˜ ํ•œ ๋ชจ๋ธ๋ง๊ณผ๋Š” ์Šค์ผ€์ผ์ด ๋‹ฌ๋ž๋‹ค. ์„œ๋น„์Šค์™€ ๋ฐฑ์˜คํ”ผ์Šค ๋‘๊ฐœ์˜ ํŽ˜์ด์ง€๋ฅผ ๋ชจ๋‘ ํ†ตํ•ฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋ฅผ ํ•ด์•ผํ–ˆ๊ณ , ๊ฒฐ์ œ ์™„๋ฃŒ, ์ฃผ๋ฌธ ์™„๋ฃŒ, ๊ฒฐ์ œ ์™„๋ฃŒ, ์ฃผ๋ฌธ ์ทจ์†Œ, ํ™˜๋ถˆ ์š”์ฒญ ๋“ฑ์˜ ํ๋ฆ„์ด ํ•„์ˆ˜์ ์ธ ๋ฐฑ์˜คํ”ผ์Šค์˜ Admin์— ๋Œ€ํ•œ ๋ชจ๋ธ๋ง ์„ค๊ณ„์˜ ๊ฒฝํ—˜์€ ์ „๋ฌดํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋– ํ•œ ์„ค๊ณ„๊ฐ€ ๊ณผ์—ฐ ํšจ์œจ์ ์ธ ์„ค๊ณ„์ธ๊ฐ€์— ๋Œ€ํ•œ ์Šค์Šค๋กœ์— ๋Œ€ํ•œ ํ™•์‹ ์ด ๋ถ€์กฑํ–ˆ๊ณ , ๊ทธ๋žฌ๊ธฐ ๋•Œ๋ฌธ์— ๋”์šฑ ๋”๋Ž ๋‹ค.

๊พธ์—ญ๊พธ์—ญ ์ง„ํ–‰ํ•œ ๋ชจ๋ธ๋ง์„ ๊ฐ€์ง€๊ณ  ์ฒ˜์Œ์œผ๋กœ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์•˜๋‹ค. ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์€ ๋‚ด์šฉ์€ ์šฐ๋ฆฌ๊ฐ€ ์„ค๊ณ„ํ•œ ๋ชจ๋ธ๋ง์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต ํ•  ๊ฒฝ์šฐ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ์ ๋“ค์— ๋Œ€ํ•ด์„œ ๋ง์”€ํ•ด์ฃผ์…จ๊ณ , ๊ฐ€ํžˆ ์ถฉ๊ฒฉ์ ์ด์˜€๋‹ค. ์ „ํ˜€ ์ƒ๊ฐํ•˜์ง€ ๋ชป ํ–ˆ๋˜ ๋ถ€๋ถ„๊นŒ์ง€๋„ ๋ชจ๋‘ ์—ผ๋‘์— ๋‘๊ณ  ์„ค๊ณ„๋ฅผ ์ง„ํ–‰ํ•˜์‹œ๋Š”๊ตฌ๋‚˜..

๊ทธ๋ฆฌ๊ณ  ์ด ๋‚  ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์€ ํ›„ ๋ถ€ํ„ฐ ๋‚ด๊ฐ€ ๋ธŒ๋žœ๋”” ์ธํ„ด์‹ญ์„ ์ง„ํ–‰ํ•˜๋Š” ์•ฝ 5์ฃผ์˜ ๊ธฐ๊ฐ„๋™์•ˆ ํ•ญ์ƒ ๋‚˜๋ฅผ ์ข‡์•„๋‹ค๋…”๋˜ ๊ฐ์ •์ด ์ƒ๊ฒผ๋‹ค.
๋‚˜๋Š” ์šฐ๋ฌผ์•ˆ์˜ ๊ฐœ๊ตฌ๋ฆฌ๊ตฌ๋‚˜

2์ฃผ์ฐจ

2์ฃผ์ฐจ๋ถ€ํ„ฐ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์ฝ”๋”ฉ์„ ์‹œ์ž‘ํ–ˆ๋‹ค. ์ฝ”๋”ฉ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „ ์–ด๋–ค ๊ตฌ์กฐ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ค๊ณ„ํ•  ๊ฒƒ์ธ๊ฐ€์— ๋Œ€ํ•œ ์˜์‚ฌ ๊ฒฐ์ •์„ ์œ„ํ•ด Layered Architecture์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ–ˆ๊ณ , Django์—์„œ๋Š” ORM์„ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด flask์—์„œ๋Š” Raw Query๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋‚ด์šฉ์„ ํ•˜๋ฃจ์ •๋„ ๋‚ด๋‚ด ๊ณต๋ถ€ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์„ ํˆฌ์žํ–ˆ๋‹ค. raw query ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ๋ฌธ๋ฒ•๋งŒ ๊ฐ€์ง€๊ณ ๋Š” ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ์ด ๋˜๋Š”์ง€ ๊ฐ์ด ์ž˜ ์˜ค์ง€ ์•Š์•„์„œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ DB ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋„ ๋‹ค ํ’€์–ด๋ณด๋ฉด์„œ ํ”„๋กœ์ ํŠธ์— ์ ์šฉ ์‹œํ‚ค๊ธฐ ์ „ ๊ฐ์„ ์ตํ˜”๋‹ค.

๊ทธ๋ฆฌ๊ณ ๋Š” ํšŒ์›๊ฐ€์ž… ๋œ User์˜ ์ „์ฒด ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ ํ•ด ์ฃผ๋Š” API๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค. ์ฒ˜์Œ ์ด API๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ๋Š”, ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ๋ฌด์—‡์„ ์–ด๋–ป๊ฒŒ ์ „๋‹ฌ์‹œ์ผœ์•ผํ•˜๋Š”์ง€ ๊ฐ์ด ์•ˆ์žกํ˜€์„œ ๋งŽ์ด ํ—ท๊ฐˆ๋ ธ๋‹ค. ๊ทธ๋ž˜๋„ ํ˜ผ์ž ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋˜ ๊ทธ๊ฒƒ์ด ๋‚ด ์„ฑ๊ฒฉ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ€์ƒ‰์„ ํ–ˆ๊ณ , ์—ฌ๋Ÿฌ ์˜ˆ์ œ๋“ค์„ ๋ดค๊ณ , ๋”ฐ๋ผ์ณ๋ณด๋ฉด์„œ ์‹คํ–‰์‹œ์ผœ๋ดค๊ณ , ๋จผ์ € ๋ธŒ๋žœ๋””์—์„œ ์ธํ„ด์‹ญ์„ ์ง„ํ–‰ ํ•˜์‹  ์œ„์ฝ”๋“œ ์„ ๋ฐฐ ๊ธฐ์ˆ˜๋ถ„๋“ค์˜ Git์„ ๋ณด๊ณ  ํ•œ ์ค„ ํ•œ ์ค„ ๋ถ„์„ํ•˜๊ธฐ๋„ ํ–ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ์™„์„ฑ์‹œํ‚จ ํ•˜๋‚˜์˜ API๋ฅผ ๊ฐ€์ง€๊ณ  ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์•˜๋‹ค.

์ด ๋‚  ๋ฐ›์€ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋•Œ์˜ ๋‚˜์˜ ์ฝ”๋“œ๋Š” Python์˜ f-string์„ ์‚ฌ์šฉํ•˜์—ฌ Query๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์˜ ์ฝ”๋“œ์˜€๋‹ค. ํŒ€์žฅ๋‹˜๊ป˜์„œ ์ด ์ฝ”๋“œ๋ฅผ ๋ณด์‹œ๊ณ ๋Š” ๋ณด์•ˆ์— ๋Œ€ํ•ด์„œ ๋ง์”€์„ ํ•ด ์ฃผ์…จ๊ณ , Query Injection ์ด๋ผ๋Š” ํ•ดํ‚น ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์…จ์œผ๋ฉฐ, ๊ทธ๋ ‡๊ธฐ์— ์™œ f-string์„ ์‚ฌ์šฉํ•œ Query๋ฌธ ์ž‘์„ฑ์ด ์œ„ํ—˜ํ•œ ๋ฐฉ๋ฒ•์ธ์ง€์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์…จ๋‹ค.

๊ทธ๋ ‡๋‹ค. ๋‚ด๊ฐ€ ์‹ ๊ฒฝ ์“ธ ๊ฒƒ์€ ๋‹จ์ˆœํžˆ ๊ธฐ๋Šฅ ๊ตฌํ˜„๋ฟ๋งŒ์ด ์•„๋‹ˆ๋‹ค. ํšจ์œจ์„ฑ๋„ ๊ณ ๋ คํ•ด์•ผํ•˜๋ฉฐ, ๋ณด์•ˆ๊นŒ์ง€๋„ ๊ณ ๋ คํ•ด์•ผํ–ˆ๋‹ค.

3์ฃผ์ฐจ

3์ฃผ์ฐจ๋ถ€ํ„ฐ flask์™€ raw query์— ๋Œ€ํ•ด ์ต์ˆ™ํ•ด์ง€๋ฉฐ ๊ฐ์ด ์žกํ˜”๊ณ , ์ด ๋•Œ๋ถ€ํ„ฐ API ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์†๋„๊ฐ€ ๋ถ™๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํŒ€์žฅ๋‹˜๊ป˜ ์–ด์ฉŒ๋ฉด ๋‹ค์‹œ๋Š” ๋“ค์–ด๋ณด์ง€ ๋ชป ํ•  ๊ณผ๋ถ„ํ•œ ์นญ์ฐฌ๋„ ๋ฐ›์•˜๋‹ค.

์ถ”์„ ์—ฐํœด๊ฐ€ ์žˆ์–ด์„œ ์ถœ๊ทผ์„ ์›”์š”์ผ๊ณผ ํ™”์š”์ผ ์ดํ‹€๋ฐ–์— ๋ชปํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ™”์š”์ผ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์‹œ๊ฐ„์— ๋งŽ์€ API๋ฅผ ๋ณด์—ฌ๋“œ๋ฆฌ์ง„ ๋ชปํ–ˆ๊ณ , Seller์˜ ํšŒ์›๊ฐ€์ž…๊ณผ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๋ณด์—ฌ๋“œ๋ ธ๋‹ค. Django๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋• ๋‚˜๋ฆ„ ํ›„๋”ฑ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ธ ํšŒ์›๊ฐ€์ž…๊ณผ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ 3์ฃผ์ฐจ๊ฐ€ ๋ผ์„œ์•ผ ๋ณด์—ฌ๋“œ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋‹ˆ. ๊ฐœ์ธ์ ์œผ๋กœ ์ž์‹ ์—๊ฒŒ ์‹ค๋ง์Šค๋Ÿฌ์šด ์ˆœ๊ฐ„์ด๊ธฐ๋„ ํ–ˆ๋‹ค.
'ํ•ด์ค€์•„, ์•„์ง ์ด๊ฒƒ๋ฐ–์— ๋ชป ๋งŒ๋“ค์—ˆ๋‚˜?'

๊ทธ๋ž˜์„œ ์ฉ ์ž์‹ ๊ฐ์ด ์ฐจ ์žˆ์ง€๋Š” ๋ชป ํ•œ ์ƒํƒœ๋กœ ์ฝ”๋“œ ๋ฆฌ๋ทฐ์— ์ฐธ์—ฌํ–ˆ๋‹ค. ๊ทผ๋ฐ ์›ฌ ๊ฑธ? ๋ฐœํ‘œ๊ฐ€ ๋๋‚ฌ์„ ๋•Œ, ํŒ€์žฅ๋‹˜๊ป˜์„œ ์นญ์ฐฌ์„ ํ•ด์ฃผ์‹œ๋”๋ผ.
"ํ˜น์‹œ ๊ฐœ๋ฐœ ํ˜„์—…์—์„œ ์ผ ํ•˜๋‹ค๊ฐ€ ์˜ค์…จ๋‚˜์š”? ์ •๋ฆฌ๊ฐ€ ๊ต‰์žฅํžˆ ์ž˜ ๋˜์–ด ์žˆ๋„ค์š”."

์•„์ง ์ •ํ™•ํžˆ ์–ด๋–ค ์ด์œ ์—์„œ ํŒ€์žฅ๋‹˜๊ป˜์„œ ์ด๋ ‡๊ฒŒ ๋ง์”€์„ ํ•ด์ฃผ์‹  ์ง€๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์ƒ๊ฐ ํ•ด ๋ดค์„ ๋•, ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์‹œ๊ฐ„์— ๊ฐ ์ธ์ž๋“ค์ด ์–ด๋–ค ํ˜•ํƒœ๋กœ, ์–ด๋–ค ๊ฐ’์ด ๋„˜์–ด๊ฐ€๋Š”์ง€. ๋˜, ์–ด๋–ค ํ˜•ํƒœ์™€ ์–ด๋–ค ๊ฐ’์ด return ๋˜๋Š”์ง€๋ฅผ printํ•ด์„œ ๋ธŒ๋žœ๋””์˜ ์ฃผ์„ ์ปจ๋ฒค์…˜์— ๋งž์ถ˜ ์ฃผ์„ ์ •๋ฆฌ ๋ถ€๋ถ„์— ์จ ๋†“์•˜๊ณ , ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋ฐœํ‘œ๊ฐ€ ๋๋‚ฌ์„ ๋•Œ ์ด ์ฝ”๋“œ๊ฐ€ ์‹ค์ œ๋กœ ์–ด๋–ค ํ˜•ํƒœ๋กœ ์‹คํ–‰๋˜๋Š”์ง€ PostMan์œผ๋กœ ๋ณด์—ฌ๋“œ๋ ธ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋Ÿฐ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ์ •๋ฆฌ๊ฐ€ ์ž˜ ๋˜์–ด ์žˆ์–ด์„œ ์ด๋Ÿฐ ๊ณผ๋ถ„ํ•œ ์นญ์ฐฌ์„ ํ•ด ์ฃผ์‹ ๊ฒŒ ์•„๋‹๊นŒ? ํ•˜๋Š” ์ƒ๊ฐ์„ ์กฐ์‹ฌ์Šค๋ ˆ ํ•œ๋‹ค.

์‚ด์ง ๋น„ํ•˜์ธ๋“œ๋Š” '๊ทธ๋ ‡๊ฒŒ ์ •๋ฆฌ๋ฅผ ํ•ด์•ผ์ง€' ํ•˜๊ณ  ์ •๋ฆฌ๋ฅผ ํ•œ ๊ฒƒ์€ ์•„๋‹ˆ์˜€๊ณ , ์—๋Ÿฌ๋ฅผ ๋””๋ฒ„๊น… ํ•˜๋Š” ๋„์ค‘์— ๊ฐ ์ธ์ž๋“ค์ด ์–ด๋–ค ํ˜•ํƒœ๋กœ ์–ด๋–ค ๊ฐ’์ด ์‹ค์ œ๋กœ ๋„˜์–ด์˜ค๊ณ  ๋„˜์–ด๊ฐ€๋Š”์ง€๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ Print๋ฅผ ํ•˜๊ธฐ ๋„ˆ๋ฌด ๊ท€์ฐฎ์•˜๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋ƒฅ ์ฃผ์„์œผ๋กœ ๋”ฑ ๋ฐ•์•„๋†“์•˜๋‹ค.

์—ญ์‹œ ์„ธ์ƒ์„ ๋ฐ”๊พธ๋Š” ํ˜์‹ ์€ ๊ท€์ฐฎ์Œ์—์„œ ๋‚˜์˜ค๋Š” ๊ฒƒ์ด ์ •๋ง์ผ์ง€๋„..?

๊ทธ๋ฆฌ๊ณ  ์ถ”์„ ์—ฐํœด๊ฐ€ ์‹œ์ž‘๋˜์—ˆ๊ณ , ๋‹น์žฅ ๋‹ค์Œ์ฃผ๊ฐ€ ๋งˆ์ง€๋ง‰์ธ๋ฐ ์•„์ง ์†๋„๊ฐ€ ๋„ˆ๋ฌด ๋ถ™์ง€ ์•Š์•˜๋˜ ๋‚˜๋Š” ์กฐ๊ธ‰ํ•œ ๋งˆ์Œ์— ๋ชจ๋“  ์—ฐํœด๋ฅผ ๋ฐ˜๋‚ฉํ•˜๊ณ  ์—ด์‹ฌํžˆ API๋ฅผ ๊ตฌํ˜„ํ–ˆ๊ณ , ์—ฐํœด๋™์•ˆ ์•ฝ 9~10๊ฐœ์˜ API๋ฅผ ๋งŒ๋“ค์–ด ๋‚ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
์žƒ์–ด๋ฒ„๋ฆฐ ์—ฐํœด๋ฅผ ์ฐพ์•„์„œ..๐Ÿ˜‚

4์ฃผ์ฐจ

๋งˆ์ง€๋ง‰ ์ฃผ์ธ ์ค„ ์•Œ์•˜๋Š”๋ฐ ๊ฐ‘์ž‘์Šค๋Ÿฝ๊ฒŒ ํ•œ ์ฃผ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ๋‹จ๋‹ค. ๊ทธ๋ž˜ ์•„์ง ๋‚˜๋Š” ๋‚ด๊ฐ€ ๋‹ด๋‹นํ–ˆ๋˜ ๋ถ€๋ถ„์„ ์™„๋ฒฝํžˆ ๋๋‚ด์ง€ ๋ชป ํ–ˆ๊ณ , ํ”„๋ก ํŠธ์™€ ํ†ต์‹ ๋„ ๋ชป ํ•ด๋ดค์œผ๋‹ˆ ์ด ๊ธฐ๊ฐ„์ด ์ƒ๊ธด ๊ฒƒ์„ ๋‹คํ–‰์œผ๋กœ ์ƒ๊ฐํ•˜๊ณ  ํŒ€์›๋“ค์—๊ฒŒ ํ๊ฐ€ ๋ผ์น˜์ง€ ์•Š๊ฒŒ ๋‚ด๊ฐ€ ํ•˜๊ฒ ๋‹ค๊ณ  ๋งก์€ ๋ถ€๋ถ„์€ ๋ชจ๋‘ ๊ตฌํ˜„ํ•˜์ž.

๊ทธ๋ ‡๊ฒŒ ์ด๋ฒˆ ์ฃผ์ฐจ์˜ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๊นŒ์ง€๋Š” ๋ฌด๋‚œํ•˜๊ฒŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์ง‘์ค‘ ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ , ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋˜ํ•œ ๋ฌด๋‚œํžˆ ์ง€๋‚˜๊ฐ”๋‹ค. ์—ฌ๊ธฐ์„œ ๊ณ„์† ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ ํ•  ๊ฒƒ์ด๋ƒ, ์•„๋‹ˆ๋ฉด ์กฐ๊ธˆ์€ ์ฝ”๋“œ์— ๋””ํ…Œ์ผ์„ ์‚ด๋ฆฌ๊ณ  ๋ถˆํ•„์š”ํ•œ ์ฝ”๋“œ์— ๋Œ€ํ•ด ๋ฆฌํŒฉํ† ๋ง์„ ์ง„ํ–‰ํ•  ๊ฒƒ์ด๋ƒ์— ๋Œ€ํ•œ ์„ ํƒ์ด ํ•„์š”ํ–ˆ๊ณ  ๋‚˜๋Š” ํ›„์ž๋ฅผ ์„ ํƒํ–ˆ๋‹ค.
์•„์ง ํ”„๋ก ํŠธ์—”๋“œ์™€ ํ†ต์‹ ์„ ํ•˜์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๊ฐ€ ๋งŽ์€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค๊ฐ€ ๋ง‰์ƒ ํ†ต์‹ ์„ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ, ๋งŽ์€ ์—๋Ÿฌ๋“ค์ด ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ์ฃผ์–ด์ง„ ์‹œ๊ฐ„ ์•ˆ์— ์ˆ˜์ •ํ•˜๊ธฐ ํž˜๋“ค ๊ฒƒ ๊ฐ™์•˜๊ณ , ๋งˆ์ง€๋ง‰ ์ฃผ์ฐจ๋Š” ๋ฐœํ‘œ์ค€๋น„ ๋˜ํ•œ ํ–ˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ ์ธ ์—ฌ์œ ๊ฐ€ ๋งŽ์ง„ ์•Š์„๊ฑฐ๋ผ ์ƒ๊ฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

5์ฃผ์ฐจ

์•„. ์ง„์งœ ๋งˆ์ง€๋ง‰ ์ฃผ๊ตฌ๋‚˜. ๋ฒŒ์จ ๋˜ ํ•œ๋‹ฌ์ด ์ด๋ ‡๊ฒŒ ํ˜๋Ÿฌ ๊ฐ€๋Š”๊ตฌ๋‚˜. ๋ผ๋Š” ์ƒ๊ฐ์„ ํ•˜๋ฉฐ ๋งž์ดํ–ˆ๋˜ ์›”์š”์ผ ์•„์นจ์ด ๊ธฐ์–ต์— ๋‚จ๋Š”๋‹ค.

์ผ์ •์ด ์ด‰๋ฐ•ํ–ˆ๋‹ค. ํ™”์š”์ผ์— ์ตœ์ข… ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์•„์•ผํ–ˆ๊ณ , ์ˆ˜์š”์ผ์—๋Š” ๋ฐœํ‘œ ์ž๋ฃŒ PPT + ๋ฐœํ‘œ ์ค€๋น„๋„ ํ•ด์•ผํ–ˆ์œผ๋ฉฐ, ๋ชฉ์š”์ผ์—๋Š” ๋งˆ์ง€๋ง‰ ์ตœ์ข… ๋ฐœํ‘œ์— ๋Œ€ํ•œ ๋งŒ๋ฐ˜์˜ ์ค€๋น„๊ฐ€ ํ•„์š”ํ–ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„์€ ํ•˜์ง€ ์•Š์•˜๊ณ , ๋ฆฌํŒฉํ† ๋ง์„ ํ–ˆ๋‹ค. 1~2์ฃผ์ฐจ์— ์ž‘์„ฑ ํ•œ ์ฝ”๋“œ๋ฅผ 5์ฃผ์ฐจ์˜ ์ž…์žฅ์—์„œ ๋ณด๋‹ˆ ์† ๋ณผ๊ฒŒ ๋งŽ๋”๋ผ. 10๋…„ ์ด์ƒ ๊ฐœ๋ฐœํ•˜์‹  ๋ถ„๋“ค์˜ ์ž…์žฅ์—์„œ ๋ณด๋ฉด ์–ผ๋งˆ๋‚˜ ๋œฏ์–ด๊ณ ์น ๊ฒŒ ๋งŽ๊ฒŒ ๋ณด์ผ๊นŒ!
๊ทธ๋ ‡๊ฒŒ ๋ฆฌํŒฉํ† ๋ง์„ ์‹ค์‹œํ•˜๊ณ  ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์‹œ๊ฐ„์—๋Š” ๋ฆฌํŒฉํ† ๋ง ํ•œ ๋ถ€๋ถ„์„ ์„ค๋ช…๋“œ๋ฆฌ๊ณ , ์•ž์œผ๋กœ์˜ ์ถ”๊ฐ€์ ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„์€ ํ•˜์ง€ ์•Š๊ณ  ํ”„๋ก ํŠธ์™€ ํ†ต์‹ ํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ ์ˆ˜์ •๊ณผ PPT ์ž‘์„ฑ ๋ฐ ๋ฐœํ‘œ ์ค€๋น„์— ํž˜์„ ์Ÿ๊ฒ ๋‹ค๊ณ  ๋ง์”€์„ ๋“œ๋ ธ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ตœ์ข… ๋ฐœํ‘œ ์ „ ๋ฆฌํ—ˆ์„ค์„ ์ง„ํ–‰ํ–ˆ๊ณ , ์ƒ๊ฐ๋ณด๋‹ค ์ˆœ์กฐ๋กญ๊ฒŒ ๋ฐœํ‘œ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋ฐœํ‘œ๊ฐ€ ๋๋‚œ ํ›„ ์ถฉํฌ๋‹˜๊ป˜ ๋“ค์€ ์ด์•ผ๊ธฐ์ง€๋งŒ ๋ฐœํ‘œ๊ฐ€ ๋๋‚œ ํ›„ ํŒ€์žฅ๋‹˜๊ป˜์„œ ์ถฉํฌ๋‹˜๊ป˜ ๊ฐœ์ธ์ ์œผ๋กœ ๋ง์”€ํ•˜์…จ๋‹ค๋˜๋ฐ, ๋‚ด๊ฐ€ ๋ฐœํ‘œ๋ฅผ ๋˜๊ฒŒ ์ž˜ํ–ˆ๋‹ค๊ณ  ์นญ์ฐฌ์„ ํ•ด ์ฃผ์…จ๋‹ค๊ณ  ํ•˜์‹œ๋”๋ผ.
๋ธŒ๋žœ๋””์—์„œ ํŒ€์žฅ๋‹˜๊ป˜ ๋‘๋ฒˆ์˜ ์นญ์ฐฌ์„ ๋ฐ›์•„ ๊ธฐ๋ถ„์ด ์ข‹์•˜์Œ์€ ๋ง ํ•  ํ•„์š”๋„ ์—†์—ˆ๊ณ , '๊ฐœ๋ฐœ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜๋„ ๋Šฅํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ณ  ์‹ถ๋‹ค'๋ผ๋Š” ๋‚˜์˜ ๋ชฉํ‘œ์— ํ•œ ๊ฑธ์Œ ๋‹ค๊ฐ€๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ๋œ ๊ฒƒ ๊ฐ™์•„ ๋”์šฑ์ด ๊ธฐ๋ปค๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜์„œ ์ง‘ ๊ฐ€๋Š” ๊ธธ์— ๋™๊ธฐ๋“ค์—๊ฒŒ ์ž๋ž‘ํ•˜๊ธฐ๋„ ํ–ˆ๋‹ค.

๋ฌด์—‡์„ ๋Š๊ผˆ๋‚˜

1์ฃผ์ฐจ์˜ ํ›„๊ธฐ์—๋„ ๋‚จ๊ฒผ์ง€๋งŒ ์ •๋ง 5์ฃผ ๋‚ด๋‚ด ๋Š๋‚€ ๊ฐ์ •์ด ๋ฐ”๋กœ ์šฐ๋ฌผ์•ˆ์˜ ๊ฐœ๊ตฌ๋ฆฌ์˜€๋‹ค. ๋Š” ๊ฒƒ.
์–ธ์ œ๊นŒ์ง€ ๊ฐœ๊ตฌ๋ฆฌ์ผ ์ˆœ ์—†๊ธฐ์— ๋ณด๋‹ค ๋†’์€ ๋„์•ฝ์„ ๊ฟˆ๊ฟ€ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ณ„๊ธฐ๊ฐ€ ํ™•์‹คํžˆ ๋˜์—ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ž์‹ ๊ฐ์„ ์–ป๊ฒŒ ๋˜์—ˆ๋‹ค. ํ•ญ์ƒ ๊ธ์ •์ ์œผ๋กœ ์ƒ๊ฐํ•˜๊ณ  'ํ•  ์ˆ˜ ์žˆ๋‹ค.'๋ผ๋Š” ๋ง์„ ๋‚ด ์Šค์Šค๋กœ์—๊ฒŒ ๋งค์ผ ๋˜์ƒˆ๊ธฐ์ง€๋งŒ, ์‚ฌ์‹ค ๊ฐœ๋ฐœ์ž๋กœ์˜ ์ปค๋ฆฌ์–ด ์ „ํ™˜์ด ๊ทธ๋ ‡๊ฒŒ ์‰ฌ์šด ๊ธธ์ด ๋  ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•œ ์ ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— 'ํ•  ์ˆ˜ ์žˆ์„๊นŒ..?' ๋ผ๋Š” ์ƒ๊ฐ์„ ํ•œ ์ ์ด ๊ฝค๋‚˜ ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ธŒ๋žœ๋“œ์—์„œ ์ธํ„ด์‹ญ์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ํŒ€์žฅ๋‹˜๊ป˜ ๋ฐ›์€ ๋‘ ๋ฒˆ์˜ ์นญ์ฐฌ์œผ๋กœ '๋‚˜๋„ ํ•  ์ˆ˜ ์žˆ๊ฒ ๊ตฌ๋‚˜' ๋ผ๋Š” ์ž์‹ ๊ฐ์„ ์–ป๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ฐœ๋ฐœ์ž. ๋‚˜๋„ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. ์•„๋‹ˆ ํ•ด์•ผ ํ•œ๋‹ค ์ด์ œ๋Š”.

์ง€๊ธˆ๊นŒ์ง€์˜ ํด๋ก  ํ”„๋กœ์ ํŠธ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ๊ทœ๋ชจ๊ฐ€ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐํš๊ณผ ๋””์ž์ธ์€ ํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ๋ชจ๋ธ๋ง ๋‹จ๊ณ„๋ถ€ํ„ฐ ์ง์ ‘ ๊ธฐ๋Šฅ ๊ตฌํ˜„๊นŒ์ง€ ๋ชจ๋‘ ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ์˜€๋‹ค๋Š” ๊ฒƒ์ด ์ •๋ง ๊ท€ํ•œ ๊ฒฝํ—˜์ด์˜€๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  '์œ„์ฝ”๋“œ๊ฐ€ ์•„๋‹ˆ์˜€๋‹ค๋ฉด ๋ธŒ๋žœ๋””๋ผ๋Š” ํšŒ์‚ฌ์— ๊ณผ์—ฐ ์ธํ„ด์‹ญ์„ ํ•  ์ˆ˜ ์žˆ์—ˆ์„๊นŒ?'๋ผ๋Š” ์งˆ๋ฌธ์— ์Šค์Šค๋กœ No ๋ผ๊ณ  ๋Œ€๋‹ตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐํšŒ์˜ ์†Œ์ค‘ํ•จ์„ ๋†“์น˜๊ณ  ์‹ถ์ง€ ์•Š์•„ ๋”์šฑ ์—ด์‹ฌํžˆ ํ–ˆ๋‹ค.

1๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2021๋…„ 3์›” 25์ผ

์•ˆ๋…•ํ•˜์„ธ์š”. ์šฐ์„  ์ข‹์€ ๊ธ€ ์˜ฌ๋ ค์ฃผ์…”์„œ ๋„ˆ๋ฌด๋‚˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ^_^*

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ