๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ279

[TIL] ํ”„๋กœ์ ํŠธ 3์ผ์ฐจ!! ๐ŸŒž ์˜ค๋Š˜์€ ์–ด๋–ค ํ•˜๋ฃจ์˜€์ง€..์˜ค์ „์—๋Š” ์—ด์‹ฌํžˆ ํƒ๋ฐฐ์‚ฌ ๋„๋ฉ”์ธ ๊ด€๋ จ MVP ๊ตฌํ˜„์— ์ง‘์ค‘ํ–ˆ๋‹ค.๊ธฐ๋ณธ์ ์ธ CRUD ๊ตฌํ˜„์ด์—ˆ์ง€๋งŒ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ฅผ ์ƒ๊ฐํ•˜๋ฉด์„œ ๊ตฌํ˜„์„ ํ–ˆ๋”๋‹ˆ ์‹œ๊ฐ„์ด ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์ด ๊ฑธ๋ ธ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํƒ๋ฐฐ์‚ฌ๋กœ ์˜ค์ „์„ ์ „๋ถ€ ๋ณด๋‚ด๊ณ  ์˜คํ›„์—๋Š” ์ถœ๊ณ ์ง€(๋ฌผ๋ฅ˜์„ผํ„ฐ) CRUD๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค.CRUD๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ํ•„์š”ํ•œ ๋‚ด์šฉ๋“ค์€ ์ƒ๊ฐํ•˜๊ณ  ๋ฉ”๋ชจํ•ด๋‘๋ฉด์„œ ์ง„ํ–‰ํ–ˆ๋”๋‹ˆ ์˜คํ›„๋„ ์‹œ๊ฐ„์ด ๋š๋”ฑ ์ง€๋‚˜๊ฐ”๋‹ค.TBD ๊ตฌ์กฐ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ํ‘ธ์‰ฌ๋ฅผ ์™„๋ฃŒํ•˜๊ณ  ํŒ€์›์˜ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์œผ๋ฉด์„œ ์ˆ˜์ •์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„์„ ๊ณ ์ณ๋‚˜๊ฐ”๋‹ค.๊ทธ๋Ÿฌ๋ฉด์„œ ์ถ”๊ฐ€์ ์œผ๋กœ ์–ด๋–ค ๋กœ์ง๋“ค์ด ํ•„์š”ํ•œ ์ง€ ์ƒ๊ฐํ•ด๋ณด๊ณ  ๊นŒ๋จน์ง€ ์•Š๊ธฐ ์œ„ํ•ด ๋ฉ”๋ชจ๋กœ ๋‚จ๊ฒจ๋‘์—ˆ๋‹ค.์ €๋… ์ดํ›„๋กœ๋Š” ๋ฐฐ์†ก๊ณผ ์†ก์žฅ ๊ด€๋ จ MVP ๊ตฌํ˜„์— ์ง‘์ค‘ํ–ˆ๋Š”๋ฐ, ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์ด ์™„์„ฑ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋ผ์„œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋Š”๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ์• ๋ฅผ ๋จน์—ˆ๋‹ค..ENUM.. 2025. 5. 22.
[TIL] ํ”„๋กœ์ ํŠธ 2์ผ์ฐจ!! ๐ŸŒž ์˜ค๋Š˜์€ ์–ด๋–ค ํ•˜๋ฃจ์˜€์ง€..์˜ค์ „์—๋Š” ๊ณ„์† API ๋ช…์„ธ์„œ๋ฅผ ํ™•์ธํ–ˆ๋‹ค.๊ฐ์ž ์ž‘์„ฑํ•œ API ๋ช…์„ธ์„œ๋ฅผ ํ•จ๊ป˜ ๋ณด๋ฉด์„œ ์ž˜๋ชป๋œ ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ๋นผ๋จน์€ ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด ์„œ๋กœ ์•Œ๋ ค์ฃผ๊ณ  ๋ฌผ์–ด๋ณด๋Š” ํ˜•์‹์œผ๋กœ ์ง„ํ–‰๋˜์—ˆ๋‹ค. ๊ทธ ๋•๋ถ„์— ์„œ๋กœ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ–ˆ๋˜ ๋ถ€๋ถ„์„ ์งš์–ด์ฃผ๊ณ , ์•Œ๋ ค์ฃผ๋ฉด์„œ ์„ฑ์žฅํ•˜๋Š” ์‹œ๊ฐ„์ด ๋˜์—ˆ๋‹ค.์˜คํ›„์—๋Š” ERD ์ˆ˜์ •์— ๋ชฐ๋‘ํ–ˆ๋‹ค.๋ฐฐ์†ก๊ณผ ์†ก์žฅ์„ ๋ถ„๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ํƒ๋ฐฐ์‚ฌ์™€ ์ถœ๊ณ ์ง€(๋ฌผ๋ฅ˜์„ผํ„ฐ)๋ฅผ ์ถ”๊ฐ€์ ์œผ๋กœ ์ƒ๊ฐํ–ˆ๊ณ , ์—ด์‹ฌํžˆ ๋จธ๋ฆฌ๋ฅผ ๊ตด๋ฆฐ ๊ฒฐ๊ณผ ์ƒ๊ฐ๋ณด๋‹ค ๋” ๊ดœ์ฐฎ์€ ERD๊ฐ€ ๋‚˜์˜จ ๊ฒƒ ๊ฐ™๋‹ค.ERD๊ฐ€ ์™„์„ฑ๋จ์— ๋”ฐ๋ผ API ๋ช…์„ธ์„œ๋„ ์ถ”๊ฐ€์ ์œผ๋กœ ์ˆ˜์ •์ด ํ•„์š”ํ•ด์„œ API ๋ช…์„ธ์„œ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด์„œ ํ•˜๋ฃจ๋ฅผ ๋งˆ๋ฌด๋ฆฌํ–ˆ๋‹ค. ๐Ÿ—“๏ธ ๋‚ด์ผ์€ ๋ญ ํ•˜์ง€?!โœ”๏ธ ํ”„๋กœ์ ํŠธ MVP ๊ตฌํ˜„โœ”๏ธ TIL ์ž‘์„ฑ 2025. 5. 22.
[TIL] ํ”„๋กœ์ ํŠธ ์‹œ์ž‘!! ๐ŸŒž ์˜ค๋Š˜์€ ์–ด๋–ค ํ•˜๋ฃจ์˜€์ง€..์˜ค๋Š˜ ์ƒˆ๋กญ๊ฒŒ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค.์ฟ ํŒก์„ ๋ฒค์น˜๋งˆํ‚นํ•ด์„œ ์ง„ํ–‰ํ•˜๋Š” ์ด์ปค๋จธ์Šค ํ”„๋กœ์ ํŠธ.. TurtleMarket์ด๋‹ค!์˜ค์ „์—๋Š” ERD ์ž‘์„ฑํ•˜๊ณ  ์˜คํ›„์—๋Š” API ๋ช…์„ธ์„œ ์ž‘์„ฑํ•˜๋Š”๋ฐ ํ•˜๋ฃจ๋ฅผ ๋‹ค ๋ณด๋ƒˆ๋‹ค!๊ท€์—ฌ์šด ๋งˆ์Šค์ฝ”ํŠธ๋„ ๋งŒ๋“ค์—ˆ๋‹ค ใ…Žใ…Žใ…ŽERD ์ผ๋ถ€๋ž‘ API ๋ช…์„ธ์„œ ์ผ๋ถ€ ๋‚จ๊ฒจ๋†”์•ผ์ง€!๊ณ ๋ฏผํ–ˆ๋˜ ๋‚ด์šฉ์ˆ˜๋ น์ธ ์ด๋ฆ„/์ „ํ™”๋ฒˆํ˜ธ ์ปฌ๋Ÿผ ์ƒ์„ฑ ํ›„ ์Šค๋ƒ…์ƒท์œผ๋กœ ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค.๋ฐฐ์†ก ์™„๋ฃŒ ํ›„ 1๋…„, 2๋…„์ด ์ง€๋‚˜๋„ ๊ทธ๋•Œ ๋ˆ„๊ตฌํ•œํ…Œ ๋ณด๋ƒˆ๋Š”์ง€ ์ •ํ™•ํžˆ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.์ฃผ์†Œ๊ฐ€ ๋งŒ์•ฝ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ๊ฐ™์ด ๋ณ€๊ฒฝ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ์ง€๋‚œ ํ›„์—๋„ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ์Šค๋ƒ…์ƒท์œผ๋กœ ์ €์žฅํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.๊ทธ๋ ‡๋‹ค๋ฉด ์ฃผ์†Œ ํ…Œ์ด๋ธ” ์•ˆ์— ์ˆ˜๋ น์ธ์˜ ์ด๋ฆ„๊ณผ ์ „ํ™”๋ฒˆํ˜ธ ์ปฌ๋Ÿผ์ด ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•œ๋‹ค.ํƒ๋ฐฐ์‚ฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์†ก์žฅ ๊ธฐ๋Šฅ๊ณผ ๋ฐฐ์†ก ์กฐํšŒ ๊ธฐ๋Šฅ์„ ํšจ์œจ์ ์ด๊ณ  ์ผ๊ด€๋˜๊ฒŒ.. 2025. 5. 19.
[Docker] Docker Compose ์™„์ „ ์ •๋ณต: ๊ฐœ๋…๋ถ€ํ„ฐ ์‹ค์Šต, CLI ๋ช…๋ น์–ด๊นŒ์ง€ ์ •๋ฆฌ Docker Compose๋ž€?!์—ฌ๋Ÿฌ ๊ฐœ์˜ Docker ์ปจํ…Œ์ด๋„ˆ๋“ค์„ ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๋กœ ์ •์˜๋ผ๊ณ  ๊ตฌ์„ฑํ•ด ํ•˜๋‚˜์˜ ๋ฌถ์Œ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ํˆด์ด๋‹ค! Docker Compose๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์šฉ์ดํ•˜๋‹ค.์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ปจํ…Œ์ด๋„ˆ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ•œ ๋ฒˆ์— ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ์—ฌ๋Ÿฌ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•˜๋‚˜์˜ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค.๋ณต์žกํ•œ ๋ช…๋ น์–ด๋กœ ์‹คํ–‰์‹œํ‚ค๋˜ ๊ฑธ ๊ฐ„์†Œํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.Docker Compose๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰์‹œํ‚ฌ ๋•Œ๋งˆ๋‹ค ๋ณต์žกํ•œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ๋‹จ์ˆœํžˆ docker compose up ๋ช…๋ น์–ด๋งŒ ์‹คํ–‰์‹œํ‚ค๋ฉด ๋œ๋‹ค. Docker Compose ์ „์ฒด ํ๋ฆ„ ๋А๊ปด๋ณด๊ธฐ1. compose.yml ํŒŒ์ผ ์ž‘์„ฑํ•˜๊ธฐservices: m.. 2025. 5. 16.
[Docker] ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” Dockerfile: FROM๋ถ€ํ„ฐ EXPOSE๊นŒ์ง€ ์‰ฝ๊ฒŒ ์ •๋ฆฌํ•ด๋ณด๊ธฐ Dockerfile์ด๋ž€?!Docker ์ด๋ฏธ์ง€๋“ค์„ ๋ˆ„๊ตฐ๊ฐ€ ๋งŒ๋“ค์–ด์„œ Dockerhub์— ์˜ฌ๋ ค๋†“๊ณ , ๊ทธ๊ฑธ ๋‹ค์šด๋ฐ›์•„์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.๊ทธ๋ ‡๋‹ค๋ฉด Docker ์ด๋ฏธ์ง€๋Š” ์–ด๋–ป๊ฒŒ ๋งŒ๋“œ๋Š”๊ฑธ๊นŒ?Dockerfile์ด๋ผ๋Š” ๊ฒƒ์„ ํ™œ์šฉํ•ด์„œ Docker ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.์ •๋ฆฌํ•˜์ž๋ฉด, Dockerfile์ด๋ž€ Docker ์ด๋ฏธ์ง€๋ฅผ ๋งŒ๋“ค๊ฒŒ ํ•ด์ฃผ๋Š” ํŒŒ์ผ์ด๋‹ค. FROM : ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€ ์ƒ์„ฑFROM์€ ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. Docker ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํŠน์ • ์ดˆ๊ธฐ ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ถ”๊ฐ€์ ์ธ ์„ธํŒ…์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” 'ํŠน์ • ์ดˆ๊ธฐ ์ด๋ฏธ์ง€'๊ฐ€ ๊ณง ๋ฒ ์ด์Šค ์ด๋ฏธ์ง€์ด๋‹ค.์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒˆ๋กœ ๋„์›Œ์„œ ๋ฏธ๋‹ˆ ์ปดํ“จํ„ฐ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•  ๋•Œ ๊ธฐ๋ณธ ํ”„๋กœ๊ทธ๋žจ์ด ์–ด๋–ค ๊ฒŒ ๊น”๋ ค์žˆ์œผ๋ฉด ์ข‹๊ฒ ๋Š”์ง€ ์„ ํƒํ•˜๋Š” ์˜ต์…˜์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.# ๋ฌธ๋ฒ•FROM [์ด๋ฏธ์ง€๋ช…].. 2025. 5. 14.
[Docker] Docker๋กœ MySQL ์‹คํ–‰ํ•ด๋ณด์ž! (๋ณผ๋ฅจ์œผ๋กœ ๋ฐ์ดํ„ฐ ๋‚ ์•„๊ฐ€๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ๊นŒ์ง€) Docker๋กœ MySQL ์‹คํ–‰์‹œ์ผœ๋ณด๊ธฐ MySQL ์ด๋ฏธ์ง€๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ์‹คํ–‰$ docker run -e MYSQL_ROOT_PASSWORD=password123 -p 3306:3306 -d mysql๐Ÿ‘‰ -e MYSQL_ROOT_PASSWORD=password123 : -e ์˜ต์…˜์€ ์ปจํ…Œ์ด๋„ˆ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ์˜ต์…˜์ด๋‹ค.๐Ÿ‘‰ Dockerhub์˜ MySQL ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ณด๋ฉด ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋กœ MYSQL_ROOT_PASSWORD๋ฅผ ์ •ํ•ด์ฃผ์–ด์•ผ๋งŒ ์ •์ƒ์ ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹คํ–‰๋œ๋‹ค๊ณ  ์ ํ˜€์žˆ๋‹ค.$ docker exec -it [MySQL ์ปจํ…Œ์ด๋„ˆ ID] bash$ echo $MYSQL_ROOT_PASSWORD # MYSQL_ROOT_PASSWORD๋ผ๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๊ฐ’ ์ถœ๋ ฅ$ export # ์„ค์ •๋˜์–ด ์žˆ๋Š” ๋ชจ๋“  ํ™˜๊ฒฝ๋ณ€์ˆ˜ .. 2025. 5. 14.