Docker ์„ค์น˜ํ•ด์„œ ๋ฐฑ์—”๋“œ ๋กœ์ปฌ๋กœ ๋กœ๊ทธ์ธ ํ…Œ์ŠคํŠธํ•˜๊ธฐ [Linkiving]

2026. 2. 27. 19:18ใ†Trouble Shooting & Issues/Linkiving

๋ฐ˜์‘ํ˜•

Docker๋กœ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๋ฅผ ๊ฐ€์ ธ์™€์„œ ๊ตฌ๊ธ€ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋กœ์ปฌ๋กœ ์„ฑ๊ณต์‹œํ‚ค๊ธฐ

๋ชฉ์ฐจ

1. ์ƒํ™ฉ: ๊ตฌ๊ธ€ OAuth๋กœ ๋กœ๊ทธ์ธํ•˜๋ฉด ๋ฐฐํฌ๋œ ํŽ˜์ด์ง€๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์ด ๋ฐœ์ƒ

2. ํ•ด๊ฒฐ: ๋„์ปค ํŒŒ์ผ์„ ์„ค์น˜ํ•ด ๋ฐฑ์—”๋“œ ๋กœ์ปฌํ˜ธ์ŠคํŠธ ์ฃผ์†Œ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์‹œํ‚ค๊ธฐ

3. ๋„์ปค ํŒŒ์ผ ์„ค์น˜

 

 


1. ์ƒํ™ฉ: ๊ตฌ๊ธ€ OAuth๋กœ ๋กœ๊ทธ์ธํ•˜๋ฉด ๋ฐฐํฌ๋œ ํŽ˜์ด์ง€๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์ด ๋ฐœ์ƒ

1. ์ƒํ™ฉ

์ƒํ™ฉ์€ ์ด๋ ‡๋‹ค. 

๋ฐฑ ์ธ์ฆ ๊ตฌํ˜„์ด ์•„์ง ๋ฏธ์™„์„ฑ๋œ ์ƒํƒœ์—์„œ ํ”„๋ก ํŠธ๋Š” "๊ฐœ๋ฐœ์šฉ ๋กœ๊ทธ์ธ" ๋ฒ„ํŠผ์„ ๋งŒ๋“ค์–ด์„œ ์ง์ ‘ ๋กœ๊ทธ์ธ ํ† ํฐ์„ ๋„ฃ์–ด ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋˜ ์ค‘..

๋“œ๋””์–ด ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ๋กœ์ง์ด ์ œ๋Œ€๋กœ ์™„์„ฑ๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค!

 

๊ทธ๋ž˜์„œ ๋‚˜๋„ ๊ธฐ์กด ์ž„์˜๋กœ ์ž‘์„ฑ๋˜์–ด ์ค‘๋ณต ์ฝ”๋“œ ํˆฌ์„ฑ์ด์— ์•ฝํ•œ ๋ณด์•ˆ์ด ์‹ ๊ฒฝ์“ฐ์˜€๋˜, ํ”„๋ก ํŠธ์ธก ์ธ์ฆ ๋กœ์ง์„ ๊ฐœํŽธํ–ˆ๋‹ค.

BFF ํŒจํ„ด ์ ์šฉํ•˜๊ณ  ๋ ˆ์ด์–ด ๊ณ„์ธต ๋‚˜๋ˆ„๊ณ  ์ด๊ฒƒ์ €๊ฒƒ.. ์ด๊ฑด ์ข€ ๋ณต์žกํ•ด์„œ ์ผ๋‹จ PR์—์„œ๋งŒ ์„ค๋ช…์„ ๋Œ€๊ฐ• ์ ์–ด๋’€์œผ๋‚˜, ์ถ”ํ›„ ๋ธ”๋กœ๊ทธ์—๋„ ์ •๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ๊ฐœํŽธํ•˜๊ณ  ๋ณด๋‹ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐฑ์—”๋“œ์—์„œ ๋กœ๊ทธ์ธํ›„ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์ด "ํ˜„์žฌ ์ฃผ์†Œ" ๊ธฐ์ค€์ด ์•„๋‹ˆ๋ผ, ๋ฌด์กฐ๊ฑด "๋ฐฐํฌ๋œ ์ฃผ์†Œ"๋กœ๋งŒ ๋ฆฌ๋‹ค์ด๋ ‰์…˜์ด ๋˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ์ด๋Ÿฌ๋ฉด ๋ฌธ์ œ๊ฐ€ ๋กœ์ปฌ์—์„œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฐ”๋กœ ํ…Œ์ŠคํŠธํ•  ์ˆ˜๊ฐ€ ์—†๋‹ค.

 

2. ์›์ธ

ํ˜„์žฌ ๊ตฌ๊ธ€ OAuth๋Š” ๋ณด์•ˆ์„ ์œ„ํ•ด ๋ฐฑ์—”๋“œ ์ธก์—์„œ ๊ตฌํ˜„์„ ํ–ˆ๋‹ค.

์ด๋Ÿด ๋•Œ ํ๋ฆ„์€ ์•„๋ž˜์™€ ๊ฐ™์ด ๋œ๋‹ค.

1. ํ”„๋ก ํŠธ → ๋ฐฑ์—”๋“œ๋กœ ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ์—”๋“œํฌ์ธํŠธ ์š”์ฒญ

2. ๋ฐฑ์—”๋“œ → Google ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ

3. ๋กœ๊ทธ์ธ ์„ฑ๊ณต

4. Google → ์‚ฌ์ „์— ๋ฐฑ์—”๋“œ์—์„œ ๋“ฑ๋กํ•œ redirect URI๋กœ ๋˜๋Œ๋ฆผ

5. ๋ฐฑ์—”๋“œ → ํ† ํฐ ๋ฐœ๊ธ‰ ํ›„ ํ”„๋ก ํŠธ๋กœ ์ด๋™

 

์—ฌ๊ธฐ์„œ ์ด ์‚ฌ์ „์— ๋“ฑ๋กํ•œ redirect URI๊ฐ€ ๋ฐฐํฌ๋œ ๋„๋ฉ”์ธ์œผ๋กœ ๊ณ ์ •๋˜์–ด์žˆ๋˜ ๊ฒƒ์ด๋‹ค.

https://linkiving.com/auth/google/callback

 


2. ํ•ด๊ฒฐ: ๋„์ปค ํŒŒ์ผ์„ ์„ค์น˜ํ•ด ๋ฐฑ์—”๋“œ ๋กœ์ปฌํ˜ธ์ŠคํŠธ ์ฃผ์†Œ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰์…˜ ์‹œํ‚ค๊ธฐ

1. Docker์˜ ์—ญํ• 

Docker๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐํฌ ํ™˜๊ฒฝ๊ณผ ๋™์ผํ•œ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋กœ์ปฌ์—์„œ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์‹คํ–‰ ํ™˜๊ฒฝ์ด๋‹ค.

 

๊ตฌ๊ธ€ OAuth๋Š” ์‚ฌ์ „์— ๋“ฑ๋ก๋œ redirect URI์™€ ์ •ํ™•ํžˆ ์ผ์น˜ํ•˜๋Š” ์ฃผ์†Œ๋กœ๋งŒ ์ธ์ฆ ๊ฒฐ๊ณผ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค.

๋”ฐ๋ผ์„œ ๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ๋„ OAuth๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋ ค๋ฉด, Google Console์— ๋“ฑ๋ก๋œ redirect URI์™€ ์ผ์น˜ํ•˜๋Š” ์„ค์ •์„ ๊ฐ€์ง„ ๋ฐฑ์—”๋“œ๊ฐ€ ์‹คํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค.

 

Docker๋Š” ์ด๋Ÿฌํ•œ ๋กœ์ปฌ ์ „์šฉ ์„ค์ •(localhost:8080 ๊ธฐ์ค€ redirect_uri)์„ ํฌํ•จํ•œ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ฐฐํฌ ํ™˜๊ฒฝ๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ OAuth ์ธ์ฆ ํ๋ฆ„์ด ๋™์ž‘ํ•˜๋„๋ก ๋งŒ๋“ ๋‹ค.

 

Docker๋กœ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ์ž์ฒด๋ฅผ ์‹คํ–‰ํ•ด์„œ ์ด ์„œ๋ฒ„๋กœ OAuth ์ธ์ฆ์„ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ.

 

2. ์ „์ฒด ํ๋ฆ„

.env์—์„œ NEXT_PUBLIC_BASE_API_URL์— ๋กœ์ปฌ8080์„ ๋„ฃ์–ด์ค€๋‹ค.

pnpm run dev๋กœ ๋กœ์ปฌ3000ํฌํŠธ๋ฅผ ๋„์šด ํ›„, ๋กœ๊ทธ์ธ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ด 8080์„ ๊ธฐ์ค€์œผ๋กœ oauth ์ธ์ฆ ์—”๋“œํฌ์ธํŠธ๋กœ ์š”์ฒญ์ด ๊ฐ„๋‹ค.

 

๋ฐฑ์—”๋“œ์—์„œ ์‚ฌ์šฉ์ž๋ฅผ ๊ตฌ๊ธ€ ๋กœ๊ทธ์ธ ํ™”๋ฉด์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ์‹œํ‚ฌ ๋•Œ redirect_uri(8080)์ด ํฌํ•จ๋˜๊ณ , ๊ตฌ๊ธ€์€ ์ด redirect_uri๋ฅผ ๊ธฐ์ค€์œผ๋กœ

๋กœ๊ทธ์ธ ์ดํ›„ authorization code๋ฅผ ๋ณด๋‚ธ๋‹ค.

 

์ดํ›„์—๋Š” ๋‹ค๋ฅธ ์ž‘์—…๊ณผ ๋™์ผํ•˜๊ฒŒ ๋ฐฑ์—”๋“œ์—์„œ authorization code๋กœ ๊ตฌ๊ธ€๋กœ๋ถ€ํ„ฐ ์ธ์ฆ ์ •๋ณด ํ† ํฐ์„ ๋ฐ›๊ณ , ์ฟ ํ‚ค๋ฅผ ์„ธํŒ…ํ•˜์—ฌ ๋กœ๊ทธ์ธ ๋‹ค์Œ ํ™”๋ฉด์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ์‹œํ‚จ๋‹ค.

 


3. ๋„์ปค ํŒŒ์ผ ์„ค์น˜ (mac)

 

๋ฐฑ์—”๋“œ๋กœ๋ถ€ํ„ฐ ๋„์ปค ํŒŒ์ผ ์••์ถ• ํŒŒ์ผ์„ ์ „๋‹ฌ ๋ฐ›์•˜๋‹ค.

 

1. Docker ์„ค์น˜ํ•˜๊ธฐ

์ผ๋‹จ Docker ๋จผ์ € ์„ค์น˜ํ•ด์•ผํ•œ๋‹ค.

Docker๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋น ๋ฅด๊ฒŒ ๊ตฌ์ถ•/ํ…Œ์ŠคํŠธ/๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์˜คํ”ˆ์†Œ์Šค ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™” ํ”Œ๋žซํผ์ด๋‹ค.

์ฝ”๋“œ, ๋Ÿฐํƒ€์ž„, ์‹œ์Šคํ…œ ๋„๊ตฌ ๋“ฑ ์‹คํ–‰์— ํ•„์š”ํ•œ ๊ฒƒ๋“ค์„ ์ปจํ…Œ์ด๋„ˆ ๋‹จ์œ„๋กœ ํŒจํ‚ค์ง•ํ•ด์„œ ์–ด๋””์„œ๋“  ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋„๋ก ๋ณด์žฅํ•œ๋‹ค.

https://docs.docker.com/desktop/setup/install/mac-install/

 

Mac

Install Docker Desktop for Mac to get started. This guide covers system requirements, where to download, and instructions on how to install and update.

docs.docker.com

๋‚˜๋Š” ๋งฅ๋ฏธ๋‹ˆ๋ฅผ ์‚ฌ์šฉํ•ด์„œ Docker Desktop for Mac with Apple silicon์„ ๋ˆŒ๋Ÿฌ์„œ ์„ค์น˜ํ–ˆ๋‹ค.

์„ค์น˜ ์™„.

 

 

2. ํŒŒ์ผ ์‹คํ–‰ํ•˜๊ธฐ

๋‹ค์šด๋ฐ›์•„์„œ ์••์ถ• ํ•ด์ œ๋ฅผ ํ•ด๋ณด์ž.

warp๋กœ ์ง„ํ–‰ํ•ด๋ดค๋‹ค.

cd Downloads/  # ์••์ถ•ํด๋” ๋‹ค์šด ์œ„์น˜
tar -xvzf linkiving-core-local.tar.gz # ์••์ถ• ํ•ด์ œ
cd linkiving-core-local  # ์••์ถ•ํ•ด์ œ๋œ ํด๋”๋กœ ์ด๋™
ls # Dockerfile, README.md, app.jar, docker-compose.yml
docker compose up --build  # ๋„์ปค๋กœ ํŒŒ์ผ ๋นŒ๋“œ

 

README.md์— ์‚ฌ์šฉ๋ฐฉ๋ฒ•์„ ์ •๋ฆฌํ•ด์คฌ๋‹ค๊ณ  ํ•œ๋‹ค.

 

docker compose up --build๋กœ ๋„์ปค ํŒŒ์ผ์„ ์‹คํ–‰์‹œํ‚จ ์ƒํƒœ์—์„œ

๋ฐฑ์—”๋“œ BASE_API_URL, API_TOKEN์„ ์ž‘์„ฑํ•œ์ฑ„๋กœ pnpm run dev๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ด์ œ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๊ฐ€ ๋กœ์ปฌ์— ์„ฑ๊ณต์ ์œผ๋กœ ๋œ๋‹ค.

์ €๊ธฐ๊ฐ€ ์›๋ž˜ linkiving.com/home์œผ๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ๋ผ์„œ ํ…Œ์ŠคํŠธ๊ฐ€ ์•ˆ๋๋Š”๋ฐ ์ด์ œ ๋กœ์ปฌ๋กœ ๋– ์„œ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค ํ—คํ—ค!

 

 

 

 

์ฐธ๊ณ 

๋”๋ณด๊ธฐ
๋ฐ˜์‘ํ˜•