Skip to content

Latest commit

ย 

History

History
executable file
ยท
187 lines (100 loc) ยท 8.97 KB

File metadata and controls

executable file
ยท
187 lines (100 loc) ยท 8.97 KB

programmers ๊ณผ์ œ ํ…Œ์ŠคํŠธ ํ…œํ”Œ๋ฆฟ - Node.js

programmers์˜ ๊ณผ์ œ ํ…Œ์ŠคํŠธ๋Š” ์ฝ”๋“œ๋ฅผ ์ œ์ถœํ•˜๋ฉด ์ž๋™์œผ๋กœ ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ์‹คํ–‰ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜ ๋‚ด์šฉ์„ ํ™•์ธํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ œ์ถœํ•ด ์ฃผ์„ธ์š”.

์ฐธ๊ณ : ์ด ํ…œํ”Œ๋ฆฟ์€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋“ˆ์ธ express.js ์™€ SQL์„ ์œ„ํ•œ ORM(Object-Relational Mapping) ๋ชจ๋“ˆ์ธ sequelize.js ๊ฐ€ ๋ฏธ๋ฆฌ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Procfile

programmers์˜ ๊ณผ์ œ ํ…Œ์ŠคํŠธ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ heroku buildpack์„ ํ†ตํ•ด ์ œ์ถœํ•œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Procfile ์ด๋ผ๋Š” ํŠน๋ณ„ํ•œ ํŒŒ์ผ์ด ํ”„๋กœ์ ํŠธ์— ํฌํ•จ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด Procfile์—๋Š” ์•ฑ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ช…๋ น์ด ์ง€์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Procfile์€ ํ”„๋กœ์„ธ์Šค ์œ ํ˜•์„ ๊ฐœ๋ณ„ ๋ผ์ธ์— ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ผ์ธ์€ ๋‹ค์Œ ํ˜•์‹์œผ๋กœ ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

<ํ”„๋กœ์„ธ์Šค ์œ ํ˜•>: <๋ช…๋ น>

Procfile ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ”„๋กœ์„ธ์Šค ์œ ํ˜•์„ ์„ ์–ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • web: ์›น ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ช…๋ น์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด node.js ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    web: npm start
    

    ์ฐธ๊ณ : yarn ์„ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ, Procfile ํŒŒ์ผ์˜ web: npm start ๋ฅผ ์ˆ˜์ •ํ•ด์ฃผ์„ธ์š”.

  • migrate: programmers์˜ ๊ณผ์ œ ํ…Œ์ŠคํŠธ๋Š” ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ ์‹œ, ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์„ ์ด ์œ ํ˜•์— ์ •์˜ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

    migrate: ./node_modules/.bin/sequelize db:migrate
    

    ์ฃผ์˜!: migrate ์œ ํ˜•์€ ๋ฐ˜๋“œ์‹œ ์ •์˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์„œ๋ฒ„ ์‹คํ–‰์‹œ ์ž๋™์œผ๋กœ db๊ฐ€ sync๋˜์–ด ์ด ๋ช…๋ น์ด ํ•„์š”์—†๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•ด์ฃผ์„ธ์š”.

    migrate: /bin/true
    

    ์ฐธ๊ณ : sequelize ์™ธ์˜ ๋‹ค๋ฅธ SQL ๋ชจ๋“ˆ์„ ์ด์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ, ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ cli ๋ช…๋ น์–ด๋ฅผ migrate: ์— ์ž‘์„ฑํ•ด ์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • seed: ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ž…๋ ฅํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. migrate ์ดํ›„์— ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

    seed: ./node_modules/.bin/sequelize db:seed:all
    
  • ์ด์™ธ์— ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค ์œ ํ˜•์€ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

programmers์˜ ๊ณผ์ œ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ํ˜„์žฌ MySQL๋งŒ ์ง€์›ํ•˜๋ฉฐ, ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—”์ง„์€ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ด€๋ จ๋˜์–ด ์ •์˜๋˜์–ด ์žˆ๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • MySQL ์ ‘์† host: MYSQL_ROOT_HOST=mysql-server

  • MySQL ์œ ์ €: MYSQL_USER=root

  • MySQL ์œ ์ €์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ: MYSQL_ROOT_PASSWORD=password

  • ์‚ฌ์ „์— ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค: MYSQL_DATABASE=my_database

์ฐธ๊ณ : ์ด ํ…œํ”Œ๋ฆฟ์˜ config/config.json ์˜ "production"์— ์ •์˜๋˜์–ด ์žˆ๋Š” ๊ฐ’๋“ค์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

programmers์—์„œ ๊ณผ์ œ๋ฅผ ์ž๋™์œผ๋กœ ์‹คํ–‰ํ•  ๋•Œ์—๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์œ„ํ•ด ์„œ๋ฒ„ ์‹คํ–‰ ์ „ Procfile ํŒŒ์ผ์˜ migrate์— ์ •์˜๋˜์–ด ์žˆ๋Š” ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์˜!: sequelize ์™ธ์˜ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ Procfile ํŒŒ์ผ์˜ migrate์„ ์‚ฌ์šฉ ๋ชจ๋“ˆ์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ cli ๋ช…๋ น์–ด๋กœ ์ˆ˜์ •ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์œ„ํ•œ ๋ชจ๋“ˆ๋กœ sequelize.js ์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ๋‹ค์Œ ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์–ด๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ์€ migrations ๋””๋ ‰ํ† ๋ฆฌ์— ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

$ node_modules/.bin/sequelize migration:create

์ฐธ๊ณ : ์œ„์˜ ๋ช…๋ น์–ด๋กœ ๋งŒ๋“ค์–ด์ง„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํŒŒ์ผ์ด ์ด ํ…œํ”Œ๋ฆฟ์˜ migrations/2019XXXXXXXXX-create-item.js ์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ž…๋ ฅํ•˜๊ธฐ ์œ„ํ•ด Procfile ํŒŒ์ผ์˜ seed ์— ์ •์˜๋œ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์˜ˆ์‹œ ํŒŒ์ผ์ด ์ด ํ…œํ”Œ๋ฆฟ์˜ seeders/2019XXXXXXXXX-insert-items.js ์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

์‹คํ–‰ ์‹œ, ๋งค๋ฒˆ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋˜๋ฉฐ, ์‹คํ–‰์ด ์ข…๋ฃŒ๋˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์˜ ๋ฐ์ดํ„ฐ๋Š” ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ ๋ฐ ์ œ์ถœ ์‹œ ์ฃผ์˜์‚ฌํ•ญ

  • Port ๋ฒˆํ˜ธ๋Š” PORT ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋˜๋Š” 5000 ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์˜์กด์„ฑ ๋ชจ๋“ˆ๋“ค์ด ์ •์˜๋˜์–ด ์žˆ๋Š” package.json ๊ฐ€ ๋ฐ˜๋“œ์‹œ ์ €์žฅ์†Œ์— ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ €์žฅ์†Œ์—๋Š” ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋งŒ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰์‹œ ์ €์žฅ์†Œ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” package.json ํŒŒ์ผ๋งŒ ์ฐธ์กฐํ•˜์—ฌ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    ์ฃผ์˜!: ์ €์žฅ์†Œ์— api ์„œ๋ฒ„์™€ web ์„œ๋ฒ„๊ฐ€ ๊ฐ™์ด ์žˆ๋‹ค๋˜์ง€ ํ•˜๋ฉด ์•ˆ๋ฉ๋‹ˆ๋‹ค.

  • programmers์—์„œ ๊ณผ์ œ ์‹คํ–‰ ๋ฐ ์ œ์ถœ ์‹œ์—๋Š” NODE_ENV ๋Š” production ์œผ๋กœ ์‹คํ–‰ ๋ฉ๋‹ˆ๋‹ค.

    ์ฃผ์˜!: ๋”ฐ๋ผ์„œ devDependencies ์— ์ •์˜๋˜์–ด ์žˆ๋Š” ์˜์กด์„ฑ ๋ชจ๋“ˆ์€ ์„ค์น˜๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‹คํ–‰์‹œ ํ•„์š”ํ•œ ๋ชจ๋“ˆ์€ dependencies ์— ์ •์˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • .gitignore ์— ์•„๋ž˜ ํ•ญ๋ชฉ๋“ค์ด ํฌํ•จ์‹œ์ผœ ์ฃผ์„ธ์š”. node_modules ๋””๋ ‰ํ† ๋ฆฌ์™€ .env ํŒŒ์ผ์ด ์ €์žฅ์†Œ์— ํฌํ•จ๋˜์–ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

    /node_modules
    npm-debug.log
    /*.env
    

    ์ฐธ๊ณ : typescript ๋‚˜ webpack ์„ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ ์ปดํŒŒ์ผ์˜ ๊ฒฐ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ (/dist ๋“ฑ)๋„ ํฌํ•จ๋˜์–ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

  • console.log ๋“ฑ stdout์œผ๋กœ ์ถœ๋ ฅ๋œ ๋กœ๊ทธ๋Š” ํ™”๋ฉด์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  • programmers์—์„œ ์‹คํ–‰๋œ ์„œ๋ฒ„๋Š” ์ตœ๋Œ€ 10๋ถ„ ๋’ค์—๋Š” ์ž๋™์œผ๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ ๋ฐ ์ œ์ถœ ๋ฐฉ๋ฒ•

  1. ๋ณธ์ธ์˜ github ๊ณ„์ •์˜ private ์ €์žฅ์†Œ๋ฅผ ์ƒ์„ฑํ•ด์„œ ๊ณผ์ œ๋ฅผ master ๋ธŒ๋žœ์น˜์— push ํ•ด์ฃผ์„ธ์š”.

    ์ฃผ์˜!: ์ €์žฅ์†Œ๊ฐ€ public์œผ๋กœ ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” programmers์—์„œ ๊ณผ์ œ๋ฅผ ์‹คํ–‰/์ œ์ถœํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  2. github ์ €์žฅ์†Œ ํŽ˜์ด์ง€์˜ Setting > Collaborators ์—์„œ programmers-gitbot ์„ Collaborator๋กœ ์ถ”๊ฐ€ ํ•ด์ฃผ์„ธ์š”.

  3. ์‹คํ–‰์‹œ github ์ €์žฅ์†Œ์˜ url์„ ์ž…๋ ฅํ•˜์‹œ๊ณ  [๋นŒ๋“œ(build)] ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ž๋™์œผ๋กœ ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ์‹คํ–‰ ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ํ›„์—๋Š” [์ตœ์ข… ์ œ์ถœ] ๋ฒ„ํŠผ์ด ํ™œ์„ฑํ™”๋˜์–ด ๊ณผ์ œ๋ฅผ ์ œ์ถœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  4. [์ตœ์ข… ์ œ์ถœ] ํ•˜๋ฉด ํ…Œ์ŠคํŠธ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉฐ, ์ดํ›„ ๋‹ค์‹œ ์ œ์ถœ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ˆ ์ถฉ๋ถ„ํžˆ ์‹คํ–‰์„ ํ•ด๋ณด์‹œ๊ณ  ์ œ์ถœํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค!!

    ์ฃผ์˜!: [์ตœ์ข… ์ œ์ถœ] ๋˜๋ฉด ์ œ์ถœ ๋‹น์‹œ์˜ master ๋ธŒ๋žœ์น˜์˜ commit์œผ๋กœ ์ œ์ถœ์ด ๊ณ ์ •๋˜๋ฏ€๋กœ ์ œ์ถœ ์ดํ›„ ์ €์žฅ์†Œ์— commit์„ push ํ•ด๋„ ์ œ์ถœ๋ฌผ์—๋Š” ๋ฐ˜์˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์—๋Ÿฌ ๋กœ๊ทธ ๋ฐœ์ƒ ์‹œ ์ฐธ๊ณ ์‚ฌํ•ญ

  • git fetch failed! please check your repository.

    ์ž˜๋ชป๋œ ์ €์žฅ์†Œ ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ force commit์œผ๋กœ ํ•ด๋‹น commit์ด ์—†์–ด์ง„ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  • -----> Unable to select a buildpack

    ์ €์žฅ์†Œ root ๋””๋ ‰ํ† ๋ฆฌ์— package.json ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. package.json ํŒŒ์ผ์„ ํ™•์ธํ•ด์ฃผ์„ธ์š”.

  • npm ERR! ํ˜น์€ error An unexpected error occurred

    npm install ํ˜น์€ yarn install ์ค‘ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์— ํ‘œ์‹œ๋œ ํ•ด๋‹น ๋ชจ๋“ˆ์„ ํ™•์ธํ•ด์ฃผ์„ธ์š”.

  • ERROR: connect ECONNREFUSED 127.0.0.1:3306

    MySQL host๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. MySQL host๋Š” MYSQL_ROOT_HOST ํ™˜๊ฒฝ๋ณ€์ˆ˜ ํ˜น์€ "mysql-server" ์ด์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ์ฃผ์˜!: programmers์—์„œ ๊ณผ์ œ ์‹คํ–‰ ์‹œ MySQL host๋Š” 127.0.0.1(localhost)๊ฐ€ ์•„๋‹ˆ๋ผ mysql-server์ž„์„ ์œ ์˜ํ•ด์ฃผ์„ธ์š”.

  • ERROR: Access denied for user 'root'@'172.17.0.3' (using password: YES)

    MySQL ์œ ์ € ํ˜น์€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž˜๋ชป ์ž…๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ์œ ์ €๋Š” MYSQL_USER ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํ˜น์€ "root", ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” MYSQL_ROOT_PASSWORD ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํ˜น์€ "password" ์ด์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    ์ฃผ์˜!: ์ด ๋กœ๊ทธ์—์„œ ๋‚˜์˜ค๋Š” ip ์ฃผ์†Œ๋ฅผ ๊ณ ์ •์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”. MySQL host์˜ ip ์ฃผ์†Œ๋Š” ๋™์ ์œผ๋กœ ๋ณ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ERROR: Unknown database

    database๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. database๋Š” MYSQL_DATABASE ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํ˜น์€ "my_database" ์ด์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • Proc entrypoint migrate does not exist. Please check your Procfile

    ์ €์žฅ์†Œ root ๋””๋ ‰ํ† ๋ฆฌ์— Procfile ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†๊ฑฐ๋‚˜ Procfile์˜ migrate๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  • ํŽ˜์ด์ง€๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ์„œ๋ฒ„ ์‹คํ–‰์— ์‹คํŒจํ–ˆ๊ฑฐ๋‚˜ ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋œ์ง€ 10๋ถ„์ด ์ง€๋‚˜ ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Procfile์˜ web์„ ํ™•์ธํ•˜์—ฌ ์„œ๋ฒ„ ์‹คํ–‰์˜ ์ด์ƒ์ด ์—†๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ์ด์ƒ์ด ์—†์œผ๋ฉด [์ดˆ๊ธฐํ™”] ํ›„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์„ธ์š”.

programmers ๊ณผ์ œ ์‹คํ–‰ ์‹œ์Šคํ…œ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ ํ™˜๊ฒฝ

programmers์—์„œ ์‹คํ–‰๋œ ๊ณผ์ œ๋Š” ๋‹ค์Œ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

OS ๋ฒ„์ „: ubuntu 16.04
๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ: 1024 MiB
MySQL ๋ฒ„์ „: 8.0.17
node.js ๋ฒ„์ „: 10.14.1
npm ๋ฒ„์ „: 6.4.1
yarn ๋ฒ„์ „: 1.12.3