Skip to content
@Manidle

Manidle

PlannerGram

00. ํŒ€๋ช…

๐Ÿ‹๏ธโ€โ™‚๏ธMan I-dle๐Ÿ‹๏ธโ€โ™‚๏ธ

4๋ช…์˜ ๋‚จ์ž๋“ค๋งŒ ๋ชจ์—ฌ ๋‹ค์†Œ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋”ฑ๋”ฑ ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ

์–ด๋А ํŒ€ ๋ถ€๋Ÿฝ์ง€ ์•Š์€ ๋š๋”ฑ์ด๋“ค์ด ๋ชจ์˜€์Šต๋‹ˆ๋‹ค.

์—ด์ •๊ณผ ๋ฐฐ์›€์— ๋Œ€ํ•œ ์—ด์˜๋งŒํผ์€ ๋‚จ๋“ค์—๊ฒŒ ๋–ต๋–ต ๊ฑฐ๋ฆด์ˆ˜ ์žˆ๋Š” Man I-dle ์ž…๋‹ˆ๋‹ค.

01. ํŒ€์›๋ช…๋‹จ

๐Ÿ‘จ ๊น€์˜๊ด‘ : ๋ฐฑ์—”๋“œ, ์‹œํ๋ฆฌํ‹ฐ, ์ถ”๊ฐ€๊ธฐ๋Šฅ๊ฐœ๋ฐœ, ์œ ์ง€๋ณด์ˆ˜

๐Ÿ‘ฆ ๊น€๋™ํ˜„ : ๋ฐฑ์—”๋“œ, ์‹œํ๋ฆฌํ‹ฐ, ์›นํผ๋ธ”๋ฆฌ์…”

๐Ÿ‘จ ๊น€๋„ํ˜„ : ํ”„๋ก ํŠธ์—”๋“œ ์ด๊ด„

๐Ÿง‘ ์ด์„ธ์šด : ๋ฐ๋ธŒ์˜ต์Šค

02. ํ”„๋กœ์ ํŠธ ์ฃผ์ œ

[PlannerGram]

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

[PlanerGram ๋กœ๊ณ ]

logo (1)

03. ํ”„๋กœ์ ํŠธ ์„ ์ •์ด์œ 

ํŒ€์›๋“ค๊ณผ ๋ชจ์—ฌ ์š”์ฆ˜ ๊ฐ์ž์˜ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๋งํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง€๋˜ ์ค‘, ๊ณตํ†ต ๊ด€์‹ฌ์‚ฌ๊ฐ€ โ€˜์—ฌํ–‰โ€™์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ ์˜€๊ณ , โ€˜์—ฌํ–‰โ€™ ๊ด€๋ จ์œผ๋กœ ์–ด๋–ค ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด ์ข‹์„ ์ง€ ๊ณ ๋ฏผํ•˜์˜€๋‹ค.

์šฐ๋ฆฌ๋Š” ๋ณธ์ธ์˜ ์ผ์ƒ์„ ๊ฒŒ์‹œํ•˜๋ฉฐ ์‚ฌ๋žŒ๋“ค๊ณผ ์†Œํ†ตํ•˜๋Š” FaceBook ํ˜น์€ Instagram ๊ฐ™์€ SNS ํŽ˜์ด์ง€๋Š” ๋งŽ์ง€๋งŒ ์–ด๋– ํ•œ ์ฃผ์ œ์— ๊ตญํ•œ๋˜์–ด ์‚ฌ๋žŒ๋“ค๊ณผ ์†Œํ†ตํ•˜๋Š” ์‚ฌ์ดํŠธ๊ฐ€ ํ˜„์žฌ ๋ฏธ๋น„ํ•˜๋‹ค๊ณ  ๋А๊ปด์ง€๊ฒŒ ๋˜์—ˆ๋‹ค.

๋•Œ๋ฌธ์—, ์šฐ๋ฆฌ๋Š” ์—ฌํ–‰๊ณ„ํš์„ ์„ธ์šธ ๋•Œ ๊ณ ๋ คํ•ด์•ผ ํ•  ์ˆ™์†Œ, ๊ตํ†ต์ˆ˜๋‹จ, ๊ด€๊ด‘์ง€, ๋ ŒํŠธ์นด ์ •๋ณด๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•ด์ฃผ๊ณ , ์‚ฌ์šฉ์ž๋“ค์ด ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œํŒ์— ๊ธ€์„ ์˜ฌ๋ฆฌ๋ฉด์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ด์šฉํ•œ ๋ ŒํŠธ์นด, ์ˆ™์†Œ, ๊ตํ†ต์ˆ˜๋‹จ, ๊ด€๊ด‘์ง€ ์ •๋ณด๋ฅผ ํ•œ ๋ˆˆ์— ๋ณด๊ธฐ ํŽธํ•˜๋„๋ก ๊ณต์œ ํ•˜๋ฉฐ ์‚ฌ์šฉ์ž๋“ค๊ฐ„ ์†Œํ†ต์„ ๋ชฉ์ ์œผ๋กœ ํ•œ ๊ฒŒ์‹œ๊ธ€ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์–ด๋ณด๊ณ ์ž โ€˜PlannerGramโ€™ ์ด๋ผ๋Š” ์ฃผ์ œ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ์ •ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

03. ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„

  • 2022.08.15 ~ 2022.09.28

04. ํ”„๋กœ์ ํŠธ ์ผ์ •๊ด€๋ฆฌ

[๋…ธ์…˜์„ ํ†ตํ•œ ์ฃผ์ฐจ๋ณ„ ๊ณ„ํš&๊ฒฐ๊ณผ ์ •๋ฆฌ]

image ์ž์„ธํžˆ ๋ณด๊ธฐ

05. ๊ธฐ์ˆ ์Šคํƒ

06. ํฌ์ง€์…˜๋ณ„ ๊ธฐํš

  • ํ”„๋ก ํŠธ์—”๋“œ

    • React๋ฅผ ์‚ฌ์šฉํ•œ ํŽ˜์ด์ง€ ๊ตฌํ˜„
    • ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•œ component ํ™”
    • ReactRouter๋ฅผ ์‚ฌ์šฉํ•œ ๋ผ์šฐํŒ…
    • ๋ฐ”๋‹๋ผ CSS๊ฐ€ ์•„๋‹Œ MeterialUI๋ฅผ ์‚ฌ์šฉํ•œ ํ™”๋ฉด ๊พธ๋ฏธ๊ธฐ
  • ๋ฐฑ์—”๋“œ

    • Java + Spring + SpringBoot ๋ฅผ ์‚ฌ์šฉํ•œ CRUD ๊ตฌํ˜„
    • ๊ทธ์ € CRUD๊ฐ€ ์•„๋‹Œ RESTfulํ•œ API๋ฅผ ๋งŒ๋“ค๊ธฐ
    • RDB์„ ์‚ฌ์šฉํ•œ ์งœ์ž„์ƒˆ ์žˆ๋Š” ํ…Œ์ด๋ธ” ์—ฐ๊ด€ ๊ด€๊ณ„ ๊ตฌํ˜„
    • ๋ฌธ์„œํ™”๋ฅผ ์œ„ํ•ด Swagger ์‚ฌ์šฉ
    • ๋กœ๊ทธ์ธ์ด ์ค‘์š”ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋•Œ๋ฌธ์— SpringSecurity + JWT ๋ฅผ ์‚ฌ์šฉ
  • ์—”์ง€๋‹ˆ์–ด

    • web hook๊ณผ jenkins๋ฅผ ์ด์šฉํ•œ ์ž๋™ compile,deploy๋ผ์ธ ๊ตฌ์ถ•
    • hadoop๊ณผ docker๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ ๋ถ„์‚ฐ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ
    • MQ, cron tab์„ ์ด์šฉํ•œ ๋ฐ์ดํ„ฐ batch์ฒ˜๋ฆฌ

07. ํ˜‘์—…๋ฐฉ์‹

  1. ์• ์ž์ผ ํ”„๋กœ์„ธ์Šค

    • check in / check out ground Role ๋ฐฉ์‹์„ ํ†ตํ•œ ๋ฉค๋ฒ„๋ณ„ ํ•˜๋ฃจ ๊ณผ์—…๋Ÿ‰, ์ถœ/ํ‡ด๊ทผ์‹œ๊ฐ„, ํšŒ๊ณ  ๋“ฑ์„ ๊ธฐ๋ก.

    • BackLog๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ์ด ์†Œ์š” StoryPoint๋ฅผ ์ง‘๊ณ„ํ•˜์—ฌ ๊ฐœ๋ฐœ ๊ณ„ํš๊ด€๋ฆฌ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ์Šคํฌ๋Ÿผ(Scrum) ๊ฐœ๋ฐœ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ ์ง„ํ–‰.

      ์Šคํฌ๋Ÿผ(Scrum) ๊ฐœ๋ฐœ๋ฐฉ๋ฒ•๋ก 

      final project * Manidle

      check in / check out

  2. GitHub

    • Git์„ ํ™œ์šฉํ•œ ์ฝ”๋“œ ํ˜•์ƒ๊ด€๋ฆฌ.
    • ์ด์ŠˆTab์„ ํ™œ์šฉํ•˜์—ฌ ํŒ€์›๋“ค๊ฐ„์˜ ๊ธฐ์ˆ ๊ณต์œ  ๋ฐ Exception ๊ณต์œ .
    • Project Tab์„ ํ™œ์šฉํ•˜์—ฌ BackLog, Sprint ํ‹€ ํ™œ์šฉ.
  3. Notion

    • ์ฃผ๊ฐ„์ผ์ •๊ด€๋ฆฌ ๊ณ„ํš & ๊ฒฐ๊ณผ ๊ณต์œ 
    • ํ”„๋กœ์ ํŠธ ์ •๋ฆฌ & ๋ฐœํ‘œ ์ฐธ๊ณ ์ž๋ฃŒ ์ž‘์„ฑ
  4. Figma

    • ์ดˆ๊ธฐ ํ™”๋ฉด๋‹จ WireFrame ์ž‘์„ฑ๋‹น์‹œ ๋ฉค๋ฒ„๋“ค๊ณผ์˜ ํ™”๋ฉด๋‹จ ๊ตฌ์ถ• ํ˜‘์—…์ž‘์—….

08. ์™€์ด์–ด ํ”„๋ ˆ์ž„

  1. Figma Tool์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—…
  2. ํ•ด๋‹น tool ์‚ฌ์šฉ์„ ํ†ตํ•ด ์†์‰ฌ์šด ํ™”๋ฉด๋‹จ ๊ตฌ์„ฑ
  3. ํ”„๋ก ํŠธ & ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ์‚ฌ์ด์—์„œ์˜ ์›ํ™œํ•œ ๊ฐœ๋ฐœ๊ด€๋ จ ์˜์‚ฌ์†Œํ†ต์ด ์šฉ์ดํ•ด์ง

[Figma๋ฅผ ํ™œ์šฉํ•œ PlanerGram์˜ ์™€์ด์–ดํ”„๋ ˆ์ž„]

image ์ž์„ธํžˆ ๋ณด๊ธฐ

07. ERD (Entity Relationship Diagram)

image (3)

06. ๋„๋ฉ”์ธ ๊ด€๋ จ ์šฉ์–ด

  • User(์œ ์ €) : ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž.
  • Rentcar(๋ ŒํŠธ์นด) : ์ฐจ๋Ÿ‰์„ ์ผ์ •๊ธฐ๊ฐ„ ์œ ์ƒ์œผ๋กœ ๋Œ€์—ฌํ•˜๋Š” ์‚ฌ์—… ๋ฐ ๊ทธ ์‚ฌ์—…์„ ํ†ตํ•ด ๋Œ€์—ฌ๋œ ์ฐจ๋Ÿ‰์„ ๋œปํ•œ๋‹ค
  • Attraction(๊ด€๊ด‘์ง€) : ๊ด€๊ด‘, ์—ฌํ–‰, ์œ ๋žŒ์—์„œ ์—ญ์‚ฌ, ๋ฌธํ™”, ์ž์—ฐ ๊ฒฝ๊ด€ ๋“ฑ์˜ ๊ด€๊ด‘์ž์‚ฐ์„ ๊ฐ€์ง„ ์ง€์—ญ์„ ๋œปํ•œ๋‹ค.
  • Stay(์ˆ™๋ฐ•) : ์—ฌํ–‰์ž์™€ ๊ด€๊ด‘๊ฐ๋“ค์ด ์ˆ™๋ฐ•์„ ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์„ค์ด ์žˆ๋Š” ์—…์†Œ์ด๋‹ค.
  • TRAIN(๊ธฐ์ฐจ) : ์‚ฌ๋žŒ์„ ์‹ค์–ด๋‚˜๋ฅด๋Š” ์—ฌ๊ฐ์ฐจ๋ฅผ ๋œปํ•œ๋‹ค.
  • Post(๊ฒŒ์‹œ๊ธ€) : ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์„œ๋น„์Šค๋˜๋Š” ์„œ๋ฒ„์— ์œ ์ €(User)๊ฐ€ ์—…๋กœ๋“œ ํ•œ ํ…์ŠคํŠธ๋ฅผ ๋งํ•œ๋‹ค.
  • REPLY(๋Œ“๊ธ€) : ์„œ๋ฒ„์— ์—…๋กœ๋“œ ๋œ ๊ฒŒ์‹œ๊ธ€(POST)์— ์œ ์ €(USER)๊ฐ€ ์งง๊ฒŒ ๋ง๋ถ™์ธ ํ…์ŠคํŠธ๋ฅผ ๋งํ•œ๋‹ค.

ATTRACTION ํ…Œ์ด๋ธ”

column data type ์„ค๋ช…
attraction_id (PK) BIGINT ๊ด€๊ด‘์ง€ ์‹๋ณ„์ž
name VARCHAR ๊ด€๊ด‘์ง€ ์ด๋ฆ„
address VARCHAR ๊ด€๊ด‘์ง€ ์ฃผ์†Œ
description VARCHAR ๊ด€๊ด‘์ง€ ์†Œ๊ฐœ๊ธ€
price INT ๊ด€๊ด‘์ง€ ์ž…์žฅ๋ฃŒ
likeCount INT ๊ด€๊ด‘์ง€ ์ข‹์•„์š” ์ˆซ์ž
  • ๊ด€๊ด‘์ง€์— ๊ด€ํ•œ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” ํ…Œ์ด๋ธ”

Attraction_Like ํ…Œ์ด๋ธ”

column data type ์„ค๋ช…
attraction_like_id (PK) BIGINT ์œ ์ €๊ฐ€ ์ข‹์•„์š” ๋ˆ„๋ฅธ ๊ด€๊ด‘์ง€ ์‹๋ณ„์ž
user_id BIGINT ์œ ์ €์‹๋ณ„์ž
attraction_id BIGINT ๊ด€๊ด‘์ง€ ์‹๋ณ„์ž2
  • Attraction(๊ด€๊ด‘์ง€)์˜ ์ข‹์•„์š”๋ฅผ ์œ ์ €์ •๋ณด์™€ ์—ฐ๊ฒฐ์‹œ์ผœ์ฃผ๋Š” ํ…Œ์ด๋ธ”.

Board ํ…Œ์ด๋ธ”

column data type ์„ค๋ช…
board_id (PK) BIGINT ๊ฒŒ์‹œํŒ ์‹๋ณ„์ž
board_name VARCHAR ๊ฒŒ์‹œํŒ ์ด๋ฆ„
  • POST(๊ฒŒ์‹œ๊ธ€)์„ ํ•˜์œ„ ์—”ํ‹ฐํ‹ฐ๋กœ ๊ฐ€์ง€๋Š” ๊ฒŒ์‹œํŒ ํ…Œ์ด๋ธ”

PLATFORM ํ…Œ์ด๋ธ”

column data type ์„ค๋ช…
platform_id (PK) BIGINT ํ”Œ๋žซํผ ์‹๋ณ„์ž
city_Code VARCHAR ๋„์‹œ์ฝ”๋“œ
city_Name VARCHAR ๋„์‹œ์ด๋ฆ„
nodeId VARCHAR ๊ธฐ์ฐจ์—ญ์ฝ”๋“œ
nodeName VARCHAR ๊ธฐ์ฐจ์—ญ์ด๋ฆ„
  • ๊ธฐ์ฐจ(OPEN API) ์—ญ์ฝ”๋“œ ๋ณ€ํ™˜ ํ…Œ์ด๋ธ”

POST ํ…Œ์ด๋ธ”

column data type ์„ค๋ช…
post_id (PK) BIGINT ๊ฒŒ์‹œ๊ธ€ ์‹๋ณ„์ž
user_id BIGINT ์œ ์ € ์‹๋ณ„์ž
board_id BIGINT ๊ฒŒ์‹œํŒ ์‹๋ณ„์ž2
title VARCHAR ์ œ๋ชฉ
contents VARCHAR ๋ณธ๋ฌธ
like_count INT ์ข‹์•„์š” ์ˆซ์ž
read_count INT ์กฐํšŒ์ˆ˜
boardName VARCHAR ๊ฒŒ์‹œํŒ ์ด๋ฆ„(DTO)
nickname VARCHAR ์ž‘์„ฑ์ž ๋‹‰๋„ค์ž„(DTO)
  • BOARD(๊ฒŒ์‹œํŒ)์˜ ํ•˜์œ„ ์—”ํ‹ฐํ‹ฐ, ๊ฒŒ์‹œ๊ธ€์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํ…Œ์ด๋ธ”

POST_ATTRACTION ํ…Œ์ด๋ธ”

column data type ์„ค๋ช…
post_attraction_id (PK) BIGINT ์ฐธ๊ณ ๋œ ๊ด€๊ด‘์ง€ ์‹๋ณ„์ž
attraction_id BIGINT ๊ด€๊ด‘์ง€ ์‹๋ณ„์ž
post_id BIGINT ๊ฒŒ์‹œ๊ธ€ ์‹๋ณ„์ž
name(DTO) VARCHAR ์ด๋ฆ„
address(DTO) VARCHAR ์ฃผ์†Œ
description(DTO) VARCHAR ์†Œ๊ฐœ๊ธ€
price(DTO) INT ์ž…์žฅ๋ฃŒ
likeCount(DTO) INT ์ข‹์•„์š” ์ˆซ์ž
  • POST(๊ฒŒ์‹œ๊ธ€)์— ์ž…๋ ฅ๋˜๋Š” ์ •๋ณด

POST_LIKE ํ…Œ์ด๋ธ”

column data type ์„ค๋ช…
post_like_id (PK) BIGINT ์œ ์ €๊ฐ€ ์ข‹์•„์š” ๋ˆ„๋ฅธ ๊ฒŒ์‹œ๊ธ€ ์‹๋ณ„์ž
post_id BIGINT ๊ฒŒ์‹œ๊ธ€ ์‹๋ณ„์ž2
user_id BIGINT ์œ ์ € ์‹๋ณ„์ž
  • POST(๊ฒŒ์‹œ๊ธ€)์˜ ์ข‹์•„์š”์™€ ์œ ์ €์ •๋ณด๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ํ…Œ์ด๋ธ”

POST_RENTCAR ํ…Œ์ด๋ธ”

column data type ์„ค๋ช…
post_rentcar_id (PK) BIGINT ์ฐธ๊ณ ๋œ ๋ ŒํŠธ์นด ์‹๋ณ„์ž
rentcar_id BIGINT ๋ ŒํŠธ์นด ์‹๋ณ„์ž2
post_id BIGINT ๊ฒŒ์‹œ๊ธ€ ์‹๋ณ„์ž
address(DTO) VARCHAR ์—…์ฒด์ฃผ์†Œ
companyName(DTO) VARCHAR ์—…์ฒด์ด๋ฆ„
carSort(DTO) VARCHAR ์ฐจ๋Ÿ‰์ข…๋ฅ˜
carName(DTO) VARCHAR ์ฐจ๋Ÿ‰์ด๋ฆ„
likeCount(DTO) INT ์ข‹์•„์š” ์ˆซ์ž
  • POST(๊ฒŒ์‹œ๊ธ€)์— ์ž…๋ ฅ๋˜๋Š” ์ •๋ณด

POST_STAY ํ…Œ์ด๋ธ”

column data type ์„ค๋ช…
post_stay_id (PK) BIGINT ์ฐธ๊ณ ๋œ ์ˆ™์†Œ ์‹๋ณ„์ž
stay_id BIGINT ์ˆ™์†Œ ์‹๋ณ„์ž
post_id BIGINT ๊ฒŒ์‹œ๊ธ€ ์‹๋ณ„์ž
name(DTO) VARCHAR ์ด๋ฆ„
address(DTO) VARCHAR ์ฃผ์†Œ
price(DTO) INT 1๋ฐ•๋‹น ๊ฐ€๊ฒฉ
checkIn(DTO) DATETIME ์ฒดํฌ์ธ ์‹œ๊ฐ„
checkOut(DTO) DATETIME ์ฒดํฌ์•„์›ƒ ์‹œ๊ฐ„
likeCount(DTO) INT ์ข‹์•„์š” ์ˆซ์ž
  • POST(๊ฒŒ์‹œ๊ธ€)์— ์ž…๋ ฅ๋˜๋Š” ์ˆ™์†Œ์ •๋ณด

POST_TRAIN ํ…Œ์ด๋ธ”

column data type ์„ค๋ช…
post_train_id (PK) BIGINT ์ฐธ๊ณ ๋œ ๊ธฐ์ฐจ ์‹๋ณ„์ž
post_id BIGINT ๊ฒŒ์‹œ๊ธ€ ์‹๋ณ„์ž
depplacename VARCHAR ์ถœ๋ฐœ์—ญ
arrplacename VARCHAR ๋„์ฐฉ์—ญ
depplan VARCHAR ์ฃผ์†Œ
price(DTO) INT 1๋ฐ•๋‹น ๊ฐ€๊ฒฉ
checkIn(DTO) DATETIME ์ฒดํฌ์ธ ์‹œ๊ฐ„
checkOut(DTO) DATETIME ์ฒดํฌ์•„์›ƒ ์‹œ๊ฐ„
likeCount(DTO) INT ์ข‹์•„์š” ์ˆซ์ž
  • POST(๊ฒŒ์‹œ๊ธ€)์— ์ž…๋ ฅ๋˜๋Š” ์ •๋ณด

RENTCAR ํ…Œ์ด๋ธ”

column data type ์„ค๋ช…
rentcar_id (PK) BIGINT ๋ ŒํŠธ์นด ์‹๋ณ„์ž
address VARCHAR ์—…์ฒด์ฃผ์†Œ
companyName VARCHAR ์—…์ฒด์ด๋ฆ„
carSort VARCHAR ์ฐจ๋Ÿ‰์ข…๋ฅ˜
carName VARCHAR ์ฐจ๋Ÿ‰์ด๋ฆ„
likeCount INT ์ข‹์•„์š”์ˆซ์ž
  • ๋ ŒํŠธ์นด์— ๊ด€ํ•œ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” ํ…Œ์ด๋ธ”

RENTCAR_Like ํ…Œ์ด๋ธ”

column data type ์„ค๋ช…
rentCar_like_id (PK) BIGINT ์œ ์ €๊ฐ€ ์ข‹์•„์š” ๋ˆ„๋ฅธ ๋ ŒํŠธ์นด ์‹๋ณ„์ž
rentcar_id BIGINT ๋ ŒํŠธ์นด ์‹๋ณ„์ž
user_id BIGINT ์œ ์ € ์‹๋ณ„์ž
  • RENTCAR(๋ ŒํŠธ์นด)์˜ ์ข‹์•„์š”์™€ ์œ ์ €์ •๋ณด๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ํ…Œ์ด๋ธ”

REPLY ํ…Œ์ด๋ธ”

column data type ์„ค๋ช…
reply_id (PK) BIGINT ๋Œ“๊ธ€ ์‹๋ณ„์ž
post_id BIGINT ๊ฒŒ์‹œ๊ธ€ ์‹๋ณ„์ž
user_id BIGINT ์œ ์ € ์‹๋ณ„์ž
contents VARCHAR ๋‚ด์šฉ
nickName(DTO) VARCHAR ์ž‘์„ฑ์ž ๋‹‰๋„ค์ž„
  • POST(๊ฒŒ์‹œ๊ธ€)์— ์ž…๋ ฅ๋˜๋Š” ๋Œ“๊ธ€์ •๋ณด

STAY ํ…Œ์ด๋ธ”

column data type ์„ค๋ช…
stay_id (PK) BIGINT ์ˆ™์†Œ ์‹๋ณ„์ž
name VARCHAR ์ด๋ฆ„
address VARCHAR ์ฃผ์†Œ
price INT 1๋ฐ•๋‹น ๊ฐ€๊ฒฉ
checkIn DATETIME ์ฒดํฌ์ธ ์‹œ๊ฐ„
checkOut DATETIME ์ฒดํฌ์•„์›ƒ ์‹œ๊ฐ„
likeCount INT ์ข‹์•„์š” ์ˆซ์ž
  • ์ˆ™์†Œ์— ๊ด€ํ•œ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” ํ…Œ์ด๋ธ”

stay_like ํ…Œ์ด๋ธ”

column data type ์„ค๋ช…
stay_like_id (PK) BIGINT ์œ ์ €๊ฐ€ ์ข‹์•„์š” ๋ˆ„๋ฅธ ์ˆ™์†Œ ์‹๋ณ„์ž
stay_id BIGINT ์ˆ™์†Œ ์‹๋ณ„์ž2
user_id BIGINT ์œ ์ € ์‹๋ณ„์ž
  • STAY(์ˆ™์†Œ)์˜ ์ข‹์•„์š”์™€ ์œ ์ €์ •๋ณด๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ํ…Œ์ด๋ธ”

USER ํ…Œ์ด๋ธ”

column data type ์„ค๋ช…
user_id (PK) BIGINT ์œ ์ € ์‹๋ณ„์ž
username VARCHAR ๋กœ๊ทธ์ธ ์•„์ด๋””
password VARCHAR ํŒจ์Šค์›Œ๋“œ
nickname VARCHAR ๋‹‰๋„ค์ž„
roles VARCHAR SECURITY๊ถŒํ•œ
  • ์„œ๋น„์Šค ์ด์šฉ์ž๋“ค์˜ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” ํ…Œ์ด๋ธ”

User_Info ํ…Œ์ด๋ธ”

column data type ์„ค๋ช…
user_info_id (PK) BIGINT ์œ ์ € ์ƒ์„ธ์ •๋ณด ์‹๋ณ„์ž
user_id BIGINT ์œ ์ € ์‹๋ณ„์ž
profileImg VARCHAR ์œ ์ € ํ”„๋กœํ•„ ์‚ฌ์ง„ URL
email VARCHAR ์œ ์ € ์ด๋ฉ”์ผ
  • ์„œ๋น„์Šค ์ด์šฉ์ž๋“ค์˜ ์ถ”๊ฐ€์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” ํ…Œ์ด๋ธ”

08. ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

  1. ๋ฌดํ•œ ๋ฃจํ”„ : ํ…Œ์ด๋ธ”๋“ค์„ ์„œ๋กœ ๋งคํ•‘ํ•ด์ฃผ๋Š” ๊ณผ์ •์—์„œ Entity๋ฅผ returnํ–ˆ์„ ๋•Œ ๊ฐ์ฒด ์•ˆ์— ๋‹ค๋ฅธ Entity๋ฅผ returnํ•ด์ฃผ๋Š” ๋ฌดํ•œ ์ˆœํ™˜ ์ฐธ์กฐ๊ฐ€ ๋ฐœ์ƒ๋จ. DTOํŒจํ„ด ์„ ์‚ฌ์šฉํ•˜์—ฌ Entity๋ฅผ ์ง์ ‘ ์ฐธ์กฐํ•˜์ง€ ์•Š๊ณ ๋„ returnํ•  ์ˆ˜ ์žˆ๊ฒŒ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ํ•ด๊ฒฐ.
  2. ํƒ€์ž… ์—๋Ÿฌ : ๋‚ด์žฅํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ• ๋•Œ ํƒ€์ž…์ด ๋ถˆ์ผ์น˜ํ•˜์—ฌ ์‚ฌ์šฉ ๋ชปํ•˜๋Š” ๋ฌธ์žฌ ๋ฐœ์ƒํ•˜์—ฌ .orElseThrow(Exception::new) ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐ.
  3. ์—๋Ÿฌ ๊ด€๋ฆฌ : ์—๋Ÿฌ๋ฐœ์ƒ์‹œ ์ถœ๋ ฅ๋˜๋Š” ์—๋Ÿฌ๋ฌธ์„ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ํ˜„์ƒ ๋ฐœ์ƒํ•˜์—ฌ log๋ฌธ์„ ๋”ฐ๋กœ ์ถœ๋ ฅํ•˜์—ฌ ์—๋Ÿฌ๋ฌธ์„ ๋ณด๊ธฐ์‰ฝ๊ฒŒ ๊ด€๋ฆฌ ๋ฐ ํ†ต์ œ
  4. ์ธ์Šคํ„ด์Šค ์„œ๋ฒ„ ์—ฐ๊ฒฐ : ๊ฐ์ž์˜ ๋กœ์ปฌ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ์„œ๋กœ ํ•„์š”ํ•œ ๋ถ€๋ถ„์— ๋ฐ์ดํ„ฐ๊ฐ€ ์•ˆ ๋“ค์–ด๊ฐ€๊ฑฐ๋‚˜ ํ…Œ์ด๋ธ”์ด ๋ฏธ์™„์„ฑ ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค ์„œ๋ฒ„๋กœ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ด์šฉ์„ ํ•˜์—ฌ ํ…Œ์ด๋ธ”์˜ ๋ถ€์žฌ๋ฅผ ๋ฐฉ์ง€.

09. ๋А๋‚€์ 

๐Ÿ‘จ๊น€๋™ํ˜„

๋“œ๋””์–ด 2๋‹ฌ์˜ ํ”„๋กœ์ ํŠธ. 6๋‹ฌ์˜ ๊ต์œก ๊ธฐ๊ฐ„์ด ๋๋‚ฌ์Šต๋‹ˆ๋‹ค.
์ •๋ง ๋‹คํˆฌ๊ธฐ๋„ ํ–ˆ๊ณ  ์›ƒ๊ธฐ๋„ ํ•˜๊ณ  ์„ฑ์žฅ์„ ๋งŽ์ดํ•œ ์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํ”„๋กœ์ ํŠธ๋Š” ํ›„๋ จํ•จ๋„ ์žˆ์ง€๋งŒ ์•„์‰ฌ์›€๋„ ๋‚จ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๊ธฐํš๋ถ€ํ„ฐ ์ƒ๋‹นํžˆ ์ด˜์ด˜ํ•˜๊ฒŒ ๋“ค์–ด๊ฐ”๋Š”๋ฐ ๋„ˆ๋ฌด ์žฌ๋ฐŒ์—ˆ์Šต๋‹ˆ๋‹ค. 2๋‹ฌ์ด ๊ฐ€๋Š” ์ค„ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค. 6๊ฐœ์›”๋™์•ˆ ๋งŽ์€ ์„ฑ์žฅ์„ ํ–ˆ๊ณ  ์กฐ๊ธˆ์ด๋ผ๋„ ๊ฐœ ๋ฐœ์ž ๋น„์Šทํ•œ๊ฒŒ ๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ๋ฟŒ๋“ฏํ•ฉ๋‹ˆ๋‹ค.

์‹ค๋ฌด ํ”„๋กœ์ ํŠธ์™€ ์ตœ๋Œ€ํ•œ ํก์‚ฌํ•˜๊ฒŒ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ Agile์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•˜๊ธฐ๋„ ํ•˜๊ณ  ํ˜‘์—… ์ „๋žต, ์ปจ๋ฒค์…˜์— ๋Œ€ํ•ด์„œ ๋งŽ์ด ๊ณ ๋ฏผํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์Šคํƒ์€ ํ˜ผ์ž์„œ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋Ÿฐ ํ˜‘์—…์˜ ๊ธฐํšŒ๊ฐ€, 2๋‹ฌ๋™์•ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ทจ์—… ์ „์— ํ•  ๊ธฐํšŒ๋Š” ์•„๋งˆ ์—†์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ตœ๋Œ€ํ•œ ํ›„ํšŒ์—†๋Š” ์ž‘์—…์„ ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ์žฌ๋ฏธ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์กฐ๊ธˆ๋งŒ ๋” ์‰ฌ๊ณ  ๋‹ค๋“ค ๋Œ์•„์™€์„œ ํ”„๋กœ์ ํŠธ ๋””๋ฒจ๋กญํ•ฉ์‹œ๋‹ค.


๐Ÿ‘จ๊น€๋„ํ˜„


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

์งง์€ ์Šคํ”„๋ฆฐํŠธ๊ฐ€ ๊ธฐ๊ฐ•์„ ์žก์•„์ฃผ๊ณ , ๊ด€๋Œ€ํ•œ ๋งˆ์Œ์œผ๋กœ ์ž์ž˜ํ•œ ๊ธฐ๋Šฅ๊ณผ ๊ตฌ์„ฑ์„ ํ›„์ˆœ์œ„๋กœ ๋ฏธ๋ฃจ๊ฑฐ๋‚˜ ๋นผ๋‹ˆ, ๋ฉ”์ธ๊ธฐ๋Šฅ์— ์กฐ๊ธˆ ๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์–ด์ฐŒ๋๋“  ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ํ•จ๊นจํ•˜๋Š” ํŒ€์›๋“ค๋ณด๋‹ค ๋งŽ์ด ๋’ค์ฒ˜์ง€๋Š” ์‹ค๋ ฅ์ด๋ผ ์‹œ์ž‘ํ•  ๋•Œ ๋งŽ์ด ๋ฏธ์•ˆํ–ˆ๋Š”๋ฐ ๋๋‚  ๋•Œ๊นŒ์ง€ ๋ฏธ์•ˆํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋ชจ๋‘ ํ™”์ดํŒ…์ž…๋‹ˆ๋‹ค.

๐Ÿ‘จ์ด์„ธ์šด

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

๐Ÿ‘จ๊น€์˜๊ด‘

18๊ฐœ์˜ ํ…Œ์ด๋ธ”, ์ˆ˜๋งŽ์€ ์—ฐ๊ด€๊ด€๊ณ„, ์˜คํ”ˆ API ๋“ฑ๋“ฑ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ์„œ ์•ฝ 50์ผ๋™์•ˆ ๋งŽ์€๊ฑธ ๋ฐฐ์› ๊ณ , ๋งŽ์€ ๊ฑธ ๊ฒฝํ—˜ํ•˜์˜€๋‹ค. ์†”์งํžˆ ํž˜๋“  ์‹œ๊ฐ„์ด ์ฐพ์•„์˜ฌ ๋•Œ ๋งˆ๋‹ค ์ขŒ์ ˆ๋„ ๋งŽ์ด ํ•˜์˜€์ง€๋งŒ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•œ ๋กœ์ง๋Œ€๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ์ž˜ ๋Œ์•„๊ฐ”์„๋•Œ ๋А๋‚€ ์„ฑ์ทจ๊ฐ๊ณผ ํฌ์—ด๋กœ ์ง€๊ธˆ๊นŒ์ง€ ์ž˜ ๋‹ฌ๋ ค์™€์„œ ํ•ด๋‚ผ ์ˆ˜ ์žˆ์—ˆ์ง€ ์•Š์•˜๋‚˜ ์‹ถ๋‹ค.

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณ„๊ธฐ๋กœ Git ์‚ฌ์šฉ๋ฒ•์— ๋งค์šฐ ์นœ๊ทผํ•ด์กŒ๊ณ , Swagger, JWT, ์• ์ž์ผ ํ”„๋กœ์„ธ์Šค๋“ฑ ์ƒˆ๋กœ์šด๊ฑธ ๋งŽ์ด ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ๋˜ 50์ผ ์ด์˜€๋˜๊ฒƒ ๊ฐ™๋‹ค. ๋˜ํ•œ, APi๋ฅผ ๋งŒ๋“ค๊ณ  ๊ฒ€์ฆํ•˜๋Š” ๋‹จ๊ณ„๊ฐ€ ๊ท€์ฐฎ๋”๋ผ๋„ ๊ผญ ํ•ด์•ผํ•˜๋Š” ์ž‘์—…์ธ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๊ณ , ์•„๋ฌด๋ฆฌ ๋ณต์žกํ•œ ์ฝ”๋“œ๋ผ๋„ ๋‚ด๊ฐ€๋งŒ๋“  ์ฝ”๋“œ์ธ๋ฐ ์ดํ•ด๊ฐ€ ์•ˆ๋˜์—ˆ์„๋•Œ, ํด๋ฆฐ์ฝ”๋“œ๊ฐ€ ํ–ฅํ›„ ์œ ์ง€๋ณด์ˆ˜์— ์–ผ๋งˆ๋‚˜ ์ค‘์š”ํ•œ ์˜ํ–ฅ์„ ๋ผ์น˜๋Š”์ง€ ๋‹ค์‹œ ๊นจ๋‹ซ๊ฒŒ ๋˜๋Š” ์‹œ๊ฐ„์ด์˜€๋‹ค.

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


10. ์ฐธ๊ณ  ์ž๋ฃŒ

Popular repositories Loading

  1. final-front final-front Public

    JavaScript 1

  2. Final-BackEnd Final-BackEnd Public

    Java 2

  3. .github .github Public

Repositories

Showing 3 of 3 repositories
  • .github Public
    0 0 0 0 Updated Nov 8, 2022
  • final-front Public
    JavaScript 0 1 1 0 Updated Sep 28, 2022
  • Final-BackEnd Public
    Java 0 2 3 0 Updated Sep 28, 2022