Skip to content

Latest commit

ย 

History

History
133 lines (119 loc) ยท 5.94 KB

File metadata and controls

133 lines (119 loc) ยท 5.94 KB

ํ”„๋กœ์ ํŠธ ์ง์ง€ (Project Jikji)

Netlify Status GitHub

๐Ÿ“š์ €์ž‘๊ถŒ ์—†๋Š” ๋ฌด๋ฃŒ ์ „์ž์ฑ…๐Ÿ“–์„ ํ•œ๊ตญ์–ด ๋ฒˆ์—ญ์œผ๋กœ ๋งŒ๋‚˜๋ณด์„ธ์š”! ํ”„๋กœ์ ํŠธ ๊ตฌํ…๋ฒ ๋ฅดํฌ ์˜ ํ•œ๊ตญ์–ด ๋ฒˆ์—ญ ํ”Œ๋žซํผโœจ

โค๏ธ Member

๋” ๋ฆฌ๋”์Šค( The Leaders / The Readers ) ํŒ€์›๋“ค

Backend, Frontend, DB, Server Frontend, UX/UI
๊น€์—ฐํฌ(@devyeony) ๊ฐ•๋ฏผ์„œ(@Minseo-Gang)

๐Ÿค Collaboration Flow

  • ๋” ๋ฆฌ๋”์Šค์˜ Wiki
    • ์Šคํ”„๋ฆฐํŠธ ๊ณผ์ •, ํŒ€ ๊ทœ์น™์„ ๊ธฐ๋กํ•˜๋Š” ํ”„๋กœ์ ํŠธ ์•„์นด์ด๋ธŒ
    • ํ”„๋กœ์ ํŠธ์™€ ๊ด€๋ จํ•œ ์ƒ์„ธ ์ •๋ณด ๋ฐ ์„ค๋ช… ๊ธฐ์ˆ 

๐Ÿ“š Tech Stack

[๊ธฐ์ˆ ์Šคํƒ ์‹œ๊ฐํ™” ์ด๋ฏธ์ง€]

โš™๏ธ Usage

๋จผ์ € Repository๋ฅผ cloneํ•˜๊ณ , ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์ธ project-jikji ํด๋”๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

Backend

1) Profile๋ณ„ application-common.yml ํŒŒ์ผ ์ž‘์„ฑ

  • ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์•„๋ž˜์˜ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜์—ฌ resources-profiles ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
$ cd backend
$ mkdir src/main/resources-profiles
  • resources-profiles ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ๋กœ์ปฌ/๊ฐœ๋ฐœ/์šด์˜ ํ™˜๊ฒฝ์—์„œ์˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” application-common.yml ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ ๋’ค ๊ด€๋ จ ๋‚ด์šฉ์„ ์ž…๋ ฅํ•˜๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ๋“ค์€ ํ”„๋กœ์ ํŠธ ๋‚ด์— ์žˆ๋Š” ๊ฐ ๋ชจ๋“ˆ์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
$ nano src/main/resources-profiles/application-local-common.yml
$ nano src/main/resources-profiles/application-dev-common.yml
$ nano src/main/resources-profiles/application-prod-common.yml
spring:
  datasource:
    driver-class-name: org.mariadb.jdbc.Driver
    url: {๋กœ์ปฌ/๊ฐœ๋ฐœ/์šด์˜ ํ™˜๊ฒฝ DB์˜ URL}
    username: {๋กœ์ปฌ/๊ฐœ๋ฐœ/์šด์˜ ํ™˜๊ฒฝ DB์˜ ์•„์ด๋””}
    password: {๋กœ์ปฌ/๊ฐœ๋ฐœ/์šด์˜ ํ™˜๊ฒฝ DB์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ}
  jpa:
    database-platform: org.hibernate.dialect.MariaDBDialect

jwt:
  secret: {JWT ํ† ํฐ ์ธ์ฆ์„ ์œ„ํ•œ ๋น„๋ฐ€ํ‚ค}

2) ๊ฐ ๋ชจ๋“ˆ์˜ Profile๋ณ„ ํฌํŠธ๋ฒˆํ˜ธ ์„ค์ •

  • ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ main ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์‹คํ–‰๋˜๋Š” application ๊ด€๋ จ ๋ชจ๋“ˆ์€ jikji-web๊ณผ jikji-batch์ž…๋‹ˆ๋‹ค.
  • ๊ฐ ๋ชจ๋“ˆ์˜ ๋กœ์ปฌ/๊ฐœ๋ฐœ/์šด์˜ ํ™˜๊ฒฝ์—์„œ ์“ฐ์ผ ํฌํŠธ๋ฒˆํ˜ธ๋Š” ํ•ด๋‹น ๋ชจ๋“ˆ์˜ src/main/resources ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์— ์žˆ๋Š” application-local.yml, application-dev.yml, application-prod.yml์—์„œ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ˜„์žฌ ์„ค์ •๋˜์–ด ์žˆ๋Š” ๊ฐ ๋ชจ๋“ˆ์˜ Profile๋ณ„ ํฌํŠธ๋ฒˆํ˜ธ
    • jikji-web
      • local : 7000
      • dev : 7001
      • prod : 7002
    • jikji-batch
      • local : 9000
      • dev : 9001
      • prod : 9002

3) ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ

  • ์•„๋ž˜์˜ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜์—ฌ gradlew ํŒŒ์ผ์— ์‹คํ–‰ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ณ  ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.
$ chmod +x ./gradlew
$ ./gradlew build

4) jikji-web ๋ชจ๋“ˆ ์‹คํ–‰

  • ์•„๋ž˜์˜ ๋ช…๋ น์œผ๋กœ ๊ฐ๊ฐ์˜ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
$ JIKJI_WEB_JAR=$(ls -tr build/libs/jikji-web-*.jar | tail -n 1)

$ java -jar -Dspring.profiles.active=local $JIKJI_WEB_JAR
$ java -jar -Dspring.profiles.active=dev $JIKJI_WEB_JAR
$ java -jar -Dspring.profiles.active=prod $JIKJI_WEB_JAR

5) jikji-batch ๋ชจ๋“ˆ ์‹คํ–‰

  • ์•„๋ž˜์˜ ๋ช…๋ น์œผ๋กœ ๊ฐ๊ฐ์˜ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
$ JIKJI_BATCH_JAR=$(ls -tr build/libs/jikji-batch-*.jar | tail -n 1)

$ java -jar -Dspring.profiles.active=local $JIKJI_BATCH_JAR
$ java -jar -Dspring.profiles.active=dev $JIKJI_BATCH_JAR
$ java -jar -Dspring.profiles.active=prod $JIKJI_BATCH_JAR

Frontend

1) .env ํŒŒ์ผ ์ž‘์„ฑ

  • ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์•„๋ž˜์˜ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜์—ฌ env ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
$ cd frontend
$ mkdir env
  • env ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ๋กœ์ปฌ/๊ฐœ๋ฐœ/์šด์˜ ํ™˜๊ฒฝ์—์„œ์˜ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” .env ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ ๋’ค ๊ด€๋ จ ๋‚ด์šฉ์„ ์ž…๋ ฅํ•˜๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
$ nano env/.env.local
$ nano env/.env.development
$ nano env/.env.production
PORT={๋กœ์ปฌ/๊ฐœ๋ฐœ/์šด์˜ ํ™˜๊ฒฝ์—์„œ์˜ ํฌํŠธ๋ฒˆํ˜ธ}
REACT_APP_URL={๋กœ์ปฌ/๊ฐœ๋ฐœ/์šด์˜ ํ™˜๊ฒฝ์—์„œ์˜ ํ”„๋ก ํŠธ์—”๋“œ URL}
REACT_APP_API_URL={๋กœ์ปฌ/๊ฐœ๋ฐœ/์šด์˜ ํ™˜๊ฒฝ์—์„œ์˜ ๋ฐฑ์—”๋“œ URL}
REACT_APP_GOOGLE_KEY={๊ตฌ๊ธ€ OAuth Key}
REACT_APP_KAKAO_KEY={์นด์นด์˜ค OAuth Key}

2) ํ”„๋กœ์ ํŠธ ์‹คํ–‰

  • ์•„๋ž˜์˜ ๋ช…๋ น์œผ๋กœ package.json ํŒŒ์ผ์˜ ์˜์กด์„ฑ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
$ npm install
  • ์•„๋ž˜์˜ ๋ช…๋ น์œผ๋กœ ๊ฐ๊ฐ์˜ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
$ npm run start:local
$ npm run start:dev
$ npm run start:prod
  • ์•„๋ž˜์˜ ๋ช…๋ น์œผ๋กœ ๊ฐ๊ฐ์˜ ํ™˜๊ฒฝ์— ๋งž๊ฒŒ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.
$ npm run build:local
$ npm run build:dev
$ npm run build:prod