๐Ÿ“ ํ™˜์ƒ์˜ ์ผ๊ธฐ์žฅ

thumbnail

  • ํ•˜๋ฃจ๋ฅผ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์ผ๊ธฐ์žฅ์ž…๋‹ˆ๋‹ค.
  • ์ผ๊ธฐ์žฅ์— ๋‹ด๊ธด ๊ฐ์ •์„ ๊ตฌ๊ธ€ ์ž์—ฐ์–ด API๋กœ ๋ถ„์„ํ•˜๊ณ , ๊ฐ์ •์„ ์‹œ๊ฐํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•˜๋ฃจ์˜ ์ผ๊ธฐ์žฅ์„ ๋ฐ˜๋Œ€ ๋ง๋กœ ๋ฐ”๊พธ์–ด, ํ™˜์ƒ์˜ ์ผ๊ธฐ์žฅ๊ณผ ํ˜„์‹ค์ผ๊ธฐ์žฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐ŸŒฑ Link

๐Ÿƒโ€โ™‚๏ธ How to run

  1. Local ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ ํ•˜๊ธฐ ์œ„ํ•ด์„ , ๋‹ค์Œ ์‚ฌํ•ญ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    1-1. Firebase API Key
    1-2. MongoDB Atlas
    1-3. Google GNL API

  2. 1์ด ์ค€๋น„๋˜์—ˆ๋‹ค๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํ•ด์ฃผ์„ธ์š”.

* Frontend

1. git clone

git clone https://github.com/manymanyhappy/fantasiaDiary-Frontend.git

2. 1-1 Firebase API Key ๋งํฌ๋กœ ์ ‘์†ํ•˜์—ฌ Key๋ฅผ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”.

3. Root ๋””๋ ‰ํ† ๋ฆฌ์— .envํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ , ๋‹ค์Œ๊ณผ ๊ฐ™์ด Firebase API Key๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.

REACT_APP_API_KEY=<Your Firebase API Key>
REACT_APP_AUTH_DOMAIN=<Your Firebase Auth Domain>
REACT_APP_PROJECT_ID=<Your Firebase Project Id>
REACT_APP_STORAGE_BUCKET=<Your Firebase Storage Bucket>
REACT_APP_MESSAGING_SENDER_ID=<Your Firebase Messaging Sender Id>
REACT_APP_APP_ID=<Your Firebase App Id>

4. cd fantasiaDiary-Frontend

5. npm install

6. npm start

* Backend

1. git clone

git clone https://github.com/manymanyhappy/fantasiaDiary-Backend.git

2. 1-2 MongoDB Atlas์— ์ ‘์†ํ•˜์—ฌ URI๋ฅผ ์ƒ์„ฑํ•˜์„ธ์š”.

3. Secret Key๋ฅผ ์„ค์ •ํ•˜์„ธ์š”.

4. Root ๋””๋ ‰ํ† ๋ฆฌ์— .envํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ , ๋‹ค์Œ๊ณผ ๊ฐ™์ด 2,3๋ฒˆ์„ ์ฐจ๋ก€๋Œ€๋กœ ์ž…๋ ฅํ•˜์„ธ์š”.

MONGODB_ATLAS_URI=<Your MongoDB Atlas URI>
SECRET_KEY=<Your Secret Key>

5. 1-3 Google GNL๋งํฌ๋กœ ๋“ค์–ด๊ฐ€ JSONํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”.

6. Root ๋””๋ ‰ํ† ๋ฆฌ์— credentials ํด๋”๋ฅผ ๋งŒ๋“ค๊ณ , 5.์—์„œ ๋งŒ๋“ค์–ด์ง„ JSON ํŒŒ์ผ์„ ๋„ฃ์–ด์ฃผ์„ธ์š”.

7. .env ํŒŒ์ผ์— ๋‹ค์Œ ์‚ฌํ•ญ์„ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”.

GOOGLE_APPLICATION_CREDENTIALS='credentials/<Your JSON Filename>'

3. cd fantasiaDiary-Backend

4. npm install

5. npm run dev

๐Ÿ‘€ ํ”„๋กœ์ ํŠธ ๋™๊ธฐ

์ผ๊ธฐ์—๋Š” ์ข‹์€ ์ผ๋„, ๋‚˜์œ ์ผ๋„ ๋ชจ๋‘ ๋‹ด๊น๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ํ˜•์‹์— ๊ตฌ์•  ๋ฐ›์ง€ ์•Š๊ณ , ๋‚ด๊ฐ€ ์“ฐ๊ณ ์‹ถ์€ ๋Œ€๋กœ ์“ธ ์ˆ˜ ์žˆ์ฃ . ๊ทธ๋ ‡๋‹ค๋ณด๋ฉด ์ž์‹ ์˜ ์ง„์งœ '๊ฐ์ •' ์ด ๋“œ๋Ÿฌ๋‚ฉ๋‹ˆ๋‹ค.

๊ทธ ๊ฐ์ •๋“ค์€ ํ•œ ์žฅ ํ•œ ์žฅ์— ๋‹ด๊ฒจ ํ•œ ๊ถŒ์ด ๋˜๊ณ  ํ•œ ๊ถŒ, ํ•œ ๊ถŒ์ด ์Œ“์ด์ง€๋งŒ,
๊ฒฐ๊ตญ์—” ๋จผ์ง€๊ฐ€ ์Œ“์ด๊ณ  ๋‹ค ์‚ดํŽด๋ณผ ์ˆ˜๋„ ์—†๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

์ œ ๋™์ƒ์ด ์ดˆ๋“ฑํ•™๊ต ์ผ๊ธฐ์žฅ์„ 27์‚ด์ด ๋  ๋™์•ˆ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์ง€๋งŒ,
์„ฑ์ธ์ด ๋˜๊ณ  ํ•œ ๋ฒˆ๋„ ํŽผ์ณ๋ณด์ง€ ์•Š์€ ๊ฒƒ์ฒ˜๋Ÿผ์š”.

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

๊ทธ๋Ÿฌ๋˜ ์ค‘ ๋ฉ˜ํ† ๋‹˜์ด

'์ผ๊ธฐ์˜ ๋‚ด์šฉ์„ ๋ฐ˜๋Œ€๋กœ ๋ฐ”๊ฟ”์„œ ๋ณด์—ฌ์ฃผ๋Š” ๊ฑด ์–ด๋–จ๊นŒ์š”?'

๋ผ๋Š” ์•„์ด๋””์–ด๋ฅผ ๋˜์ ธ์ฃผ์…จ์Šต๋‹ˆ๋‹ค.

์˜ค?
์ด๋ ‡๊ฒŒ ์ €์˜ ๋‘ ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ,
ํ™˜์ƒ์˜ ์ผ๊ธฐ์žฅ์ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿงฉ STACK

Frontend Bakcend
React Node.js
Redux Express
Styled Component MongoDB
Axios Mongoose
Firebase JWT
Date-Fns Puppeteer
ES2015+

๐Ÿค“ ํ”„๋กœ์ ํŠธ ์„ค๋ช…

1. ์ผ๊ธฐ๋Š” ๋ฏธ๋ฃจ๋ฉด ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

writeDiary

๋ฐฉํ•™ ๋•Œ, ์ผ๊ธฐ ์“ฐ๊ธฐ๋ฅผ ๋ฏธ๋ฃจ์—ˆ๋‹ค๊ฐ€ ๊ฐœํ•™ ์ „๋‚  ํ•œ ๊บผ๋ฒˆ์— ์“ด ๊ฒฝํ—˜ ์žˆ์œผ์‹œ์ฃ ?
ํ™˜์ƒ์˜ ์ผ๊ธฐ๋Š” ๋งค์ผ ๋”ฑ ํ•œ ๋ฒˆ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๊ธฐ๋Š” ๊ทธ ๋‚ ์˜ ๊ฐ์ •์— ์ถฉ์‹คํ•ด์•ผํ•˜๋‹ˆ๊น์š”!

2. ์ผ๊ธฐ ์† ๊ฐ์ •์„ "์ƒ‰"์œผ๋กœ ๋‹ฌ๋ ฅ์— ์‹œ๊ฐํ™”ํ•˜๊ณ  ๊ทธ๋ž˜ํ”„๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

calendar

d3graph

๋‚ด๊ฐ€ ์“ด ์ผ๊ธฐ๋ฅผ ๊ตฌ๊ธ€ ์ž์—ฐ์–ด API๊ฐ€ ๋ถ„์„ํ•˜๊ณ , ๊ทธ ์ˆ˜์น˜์— ๋”ฐ๋ผ ๋‹ฌ๋ ฅ์— ์ƒ‰์œผ๋กœ ํ‘œ๊ธฐ๋ฉ๋‹ˆ๋‹ค.
๊ทธ ๋‹ฌ์— ๋‚ด๊ฐ€ ์–ด๋–ค ๊ฐ์ •์„ ๋Š๊ผˆ๋Š”์ง€ ๋‹ฌ๋ ฅ์—์„œ ํ•œ ๋ˆˆ์— ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋ž˜ํ”„๋กœ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ๋‚ด๊ฐ€ ์“ด ์ผ๊ธฐ๋ฅผ ๋ฐ˜๋Œ€๋กœ ๊ธฐ๋กํ•œ "ํ™˜์ƒ์˜ ์ผ๊ธฐ"๋ฅผ ๊ฒฝํ—˜ํ•˜์„ธ์š”!

calendar

d3graph

d3graph

๊ธฐ๋ถ„์ด ๋‚˜์œ ๋‚  ์“ด ์ผ๊ธฐ๋Š” ๋‹ค์Œ์— ๋ด๋„ ๊ทธ ๊ธฐ๋ถ„์ด ์‚ด์•„๋‚˜์ž–์•„์š”?
๊ทธ๋Ÿด ๋•, ๋ฐ˜๋Œ€๋ง๋กœ ์“ฐ์—ฌ์ง„ ํ™˜์ƒ์˜ ์ผ๊ธฐ๋ฅผ ๋ณด๊ณ , ์–ด์ฒ˜๊ตฌ๋‹ˆ์—†์–ด์„œ ์›ƒ์–ด๋ณด์‹œ๋Š”๊ฑฐ ์–ด๋–จ๊นŒ์š”?

๐Ÿ“† ์ž‘์—…๊ธฐ๊ฐ„

๐Ÿ”ฅ ์•„์ด๋””์–ด ๋ธŒ๋ ˆ์ธ ์Šคํ† ๋ฐ ๋ฐ ๊ธฐ์ˆ  ์Šคํƒ ์„œ์น˜(11์›” 30์ผ ~ 12์›” 5์ผ (1์ฃผ))

์•„์ด๋””์–ด ๋ธŒ๋ ˆ์ธ ์Šคํ† ๋ฐ

11์›” 30์ผ ~ 12์›” 2์ผ(3์ผ)

๊ธฐ์ˆ  ์Šคํƒ ์„œ์น˜
12์›” 3์ผ ~ 12์›” 5์ผ (3์ผ)

๐ŸŒช ๊ฐœ๋ฐœ (12์›” 6์ผ ~ 12์›” 19์ผ (2์ฃผ))

โœ‚๏ธ ์•„์ด๋””์–ด ๋ณ€์ฒœ์‚ฌ

  • ์ดˆ๊ธฐ
  1. ์ผ๊ธฐ์žฅ์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค.
  2. ์ผ๊ธฐ์žฅ์— ์“ฐ์—ฌ์ง„ ๊ฐ์ •์„ ๋น„๊ต/๋ถ„์„ํ•ด์„œ ๋ณด์—ฌ์ค„์ˆ˜๋Š” ์—†์„๊นŒ?
  3. ๊ทธ ๋‚ ์˜ ์ผ๊ธฐ ์† ๊ฐ์ •์„ ์ƒ‰์œผ๋กœ ํ‘œ๊ธฐํ•ด์ฃผ์ž!
  • ์ค‘๊ธฐ
  1. ๊ฐ์ •๋งŒ ํ‘œ๊ธฐํ•˜๋ ค๋‹ˆ๊นŒ ๋„ˆ๋ฌด ๋‹จ์ˆœํ•ด ์ง€๋Š”๊ฑฐ ๊ฐ™์€๋ฐ?
  2. ๋ฉ˜ํ† ๋‹˜ ์™ˆ ' ์ผ๊ธฐ๋ฅผ ๋ฐ˜๋Œ€๋กœ ๋ฐ”๊พธ๋Š”๊ฑด ์–ด๋•Œ์š”?'
  3. ์ผ๊ธฐ ์† ๋‹จ์–ด๋ฅผ ๊ธ์ • โ‡’ ๋ถ€์ •, ๋ถ€์ • โ‡’ ๊ธ์ •์œผ๋กœ ๋ฐ”๊ฟ”๋ณด๋Š”๊ฑฐ์•ผ!
  • ๊ฒฐ๋ง
    ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ์นœ ์†Œ๊ฐ์—์„œ ํ™•์ธํ•˜์„ธ์š”!

๐ŸŒบ MOCK UP VS ์ตœ์ข…๋ณธ

compare

๐Ÿ† ์Šค์Šค๋กœ ๋‚ด๋ฆฌ๋Š” ํ™˜์ƒ์˜ ์ผ๊ธฐ์žฅ ์ด ํ‰

ํ™˜์ƒ์˜ ์ผ๊ธฐ์žฅ. . .ํ™˜์žฅ์ด ๋  ๋ป” ํ•˜๋‹ค.

๐Ÿ”ฅ ์„œ๋ก 

ํ”„๋กœ์ ํŠธ๊ฐ€ ๋๋‚˜๊ณ  ์ €๋Š” ํ™˜์ƒ์˜ ์ผ๊ธฐ์žฅ ๋ถ€์ œ๋ฅผ ์ง€์—ˆ์Šต๋‹ˆ๋‹ค. ๋ถ€์ œ๋Š” ๋ฐ”๋กœ ํ™˜์žฅ์˜ ์ผ๊ธฐ์žฅ..์ž…๋‹ˆ๋‹ค.

์™œ๋ƒํ•˜๋ฉด ๊ธฐ์กด์˜ ๊ณ„ํšํ•œ ๊ฒƒ์„ ๊ตฌํ˜„ํ•  ๋•Œ๋งˆ๋‹ค ์˜ˆ๊ธฐ์น˜ ๋ชปํ•œ ๋ฌธ์ œ์— ๋ด‰์ฐฉํ•ด,
์ƒˆ๋กœ์šด ๊ธฐ์ˆ ๊ณผ ์•„์ด๋””์–ด๋ฅผ ์ ‘๋ชฉ์‹œ์ผœ์•ผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .

์ œ ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ€์žฅ ํฐ ํฌ์ธํŠธ๋Š” ๋‹จ์–ด๋ฅผ ์–ด๋–ค์‹์œผ๋กœ ์น˜ํ™˜ํ•  ๊ฒƒ์ธ๊ฐ€? ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.
์‹ค์ œ๋กœ ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„์˜ ์ ˆ๋ฐ˜์„ ๊ทธ ๋ถ€๋ถ„์— ํ• ์• ํ•˜๊ธฐ๋„ ํ–ˆ๊ตฌ์š”.

์ฒ˜์Œ์—๋Š”

  1. ์ผ๊ธฐ์† ๋ฌธ์žฅ์„ ๋‹จ์–ด๋กœ ์ชผ๊ฐœ๊ณ ,
  2. ๋‹จ์–ด๋ฅผ ๊ตญ์–ด์‚ฌ์ „์— ๊ฒ€์ƒ‰ํ•˜์—ฌ, ๋ฐ˜์˜์–ด ํ•ญ๋ชฉ์— ์žˆ๋Š” ๋‹จ์–ด๋กœ ์น˜ํ™˜

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋กœ์ง์ด ์™„์„ฑ๋˜๊ฒ ๋‹ค! ๋นจ๋ฆฌ ๋๋‚˜๋ฉด ๋‹ค๋ฅธ ๊ธฐ๋Šฅ๋“ค๋„ ์ถ”๊ฐ€ํ•ด์•ผ๊ฒ ๋‹ค๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ, ์ด ์ƒ๊ฐ์ด ์ •๋ง ๋‹จ์ˆœํ•˜๊ณ , ๋‹จ์ˆœํ•œ ์ƒ๊ฐ์ด์—ˆ์Œ์„ ์•„์ฃผ ๋นจ๋ฆฌ ๊นจ๋‹ซ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


***

๐ŸŒช ๋ณธ๋ก  - Challenges 1

๐Ÿ’ก ํ…์ŠคํŠธ๋ฅผ ๋ฐ์ดํ„ฐ๋กœ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์€ ์ œ๊ฐ€ ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ํฐ ๋ถ„์•ผ์˜€์Šต๋‹ˆ๋‹ค.

ํ…์ŠคํŠธ๋ฅผ ๋ฐ์ดํ„ฐ๋กœ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์„ ํ…์ŠคํŠธ ๋งˆ์ด๋‹(Text Mining) ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ ํ…์ŠคํŠธ๋Š” "์ธ๊ฐ„์˜ ๋ง"์—์„œ ๋น„๋กฏ๋ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ "์ธ๊ฐ„์˜ ๋ง"์€ ํ˜•ํƒœ๊ฐ€ ๋งค์šฐ ๋‹ค์–‘ํ•˜๊ณ  ๋ณต์žกํ•ด์„œ ์ผ๊ด€๋œ ๊ทœ์น™์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ํ•œ๊ตญ์–ด๋Š” ๊ต์ฐฉ์–ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ์š”.
๋ฐ‘์— ์˜ˆ์‹œ๋ฅผ ๋ณด์‹œ๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ง‘์— ๊ฐ„๋‹ค.
I go to my home.

๋‚˜๋Š” ํ”ผ์ž๋ฅผ ๋จน์—ˆ๋‹ค
I eat pizza.

์˜์–ด์™€ ๋‹ค๋ฅด๊ฒŒ ์กฐ์‚ฌ๊ฐ€ ๋‹จ์–ด์— ๋ถ™์–ด์žˆ์ฃ .
์ฆ‰, ๋‹จ์ˆœํžˆ ๋ฌธ์žฅ.split(' ')ํ•œ๋‹ค๊ณ  ํ•ด์„œ ํ•ด๊ฒฐ๋  ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ์—ˆ๋‹ค. ์ด๊ฒƒ์ž…๋‹ˆ๋‹ค.....!

โœ…  ๊ทธ๋ž˜์„œ ์ €๋Š” ์ด ์น˜ํ™˜๋กœ์ง์—์„œ *์„ ํƒ๊ณผ ์ง‘์ค‘*์„ ํ•˜์—ฌ  
    ๋ชจ๋“  ๋‹จ์–ด๋ฅผ ๋ฐ˜๋Œ€๋ง๋กœ ๋ฐ”๊พธ๊ธฐ ๋ณด๋‹ค๋Š”, ํ˜•์šฉ์‚ฌ์™€ ๋™์‚ฌ๋ฅผ ๋ฐ˜๋Œ€๋กœ ๋ฐ”๊พธ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.  

    ํ•˜์ง€๋งŒ ๋ฌธ์žฅ์—์„œ ํ˜•์šฉ์‚ฌ์™€ ๋™์‚ฌ๋ฅผ ๋ฝ‘์•„๋‚ด๋Š” ๊ฒƒ ๋˜ํ•œ ์‰ฌ์šด์ผ์€ ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค.  
    ๋ฌธ์žฅ์„ ์˜๋ฏธ๊ฐ€ ์—†์–ด์งˆ ๋•Œ๊นŒ์ง€ ์ชผ๊ฐœ๋Š” "ํ˜•ํƒœ์†Œ ๋ถ„๋ฆฌ"๋ผ๋Š” ๊ฒƒ์„ ํ•ด์•ผํ–ˆ๊ณ ,  
    ํ˜•ํƒœ์†Œ ๋ถ„๋ฆฌ๋ฅผ ํ†ตํ•ด ๋„˜์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ผ€์ด์Šค๋ณ„๋กœ ๋‚˜๋ˆ„์–ด, ๋‹จ์–ด๋ฅผ ๋ฝ‘์•„๋‚ด์—ˆ์Šต๋‹ˆ๋‹ค.



๐ŸŒช ๋ณธ๋ก  - Challenges 2


๐Ÿ’ก ๋‹จ์–ด๋ฅผ ๋ฝ‘์•„๋‚ด๋Š” ๊ณผ์ •์„ ๋๋‚ด๊ณ , ์‚ฌ์ „์— ๊ฒ€์ƒ‰์„ ํ•ด์•ผํ•  ์ฐจ๋ก€๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.  

๊ทธ๋Ÿฐ๋ฐ, ๋„ค์ด๋ฒ„๋‚˜ ๋‹ค์Œ ์‚ฌ์ „๋“ค์ด API๋ฅผ ์ค‘๋‹จํ–ˆ๋‹ค๋„ค์š”!?
๊ทธ๋งˆ๋‚˜ API๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ตญ๋ฆฝ๊ตญ์–ด์›์€ ๋ฐ˜์˜์–ด๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๋„ค์š”?!

โœ…  ๊ทธ๋ž˜์„œ ์ €๋Š” ํ•ด๊ฒฐ์ฑ…์œผ๋กœ ์“ธ๊ฑฐ๋ผ๊ณ  ์˜ˆ์ƒํ•˜์ง€๋„ ์•Š์•˜๋˜ *ํฌ๋กค๋ง*์„ ํ•˜๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

๊ฐ”๋‹ค์˜ ๋ฐ˜์˜์–ด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋ ค๋ฉด ๊ฐ”๋‹ค์˜ ์›ํ˜•์ธ '๊ฐ€๋‹ค'๋ฅผ ์ž…๋ ฅํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

โœ…  ๊ทธ๋ž˜์„œ ํฌ๋กค๋ง์„ ํ†ตํ•ด *๋ฐ˜์˜์–ด๊ฐ€ ๋‚˜์˜จ ๊ฒƒ๋“ค์€ ๊ทธ๋Œ€๋กœ ์ด์šฉ*ํ•˜๊ณ ,  
    ํฌ๋กค๋ง์„ ํ†ตํ•ด ๋ฐ˜์˜์–ด๊ฐ€ *๋‚˜์˜ค์ง€ ์•Š์€ ๊ฒƒ๋“ค์€ ํ•œ๊ตญ์–ด์˜ ๋ถ€์ • ๋ถ€์‚ฌ '์•ˆ / ๋ชป'์„ ๋ถ™์ด๊ธฐ๋กœ* ํ–ˆ์Šต๋‹ˆ๋‹ค.



๐Ÿ’ฅ ๊ฒฐ๋ก  - ๋‚˜์—๊ฒŒ ํ™˜์ƒ์ผ๊ธฐ์žฅ์ด๋ž€?

์ด๋ ‡๊ฒŒ ์ €์˜ ํ™˜์ƒ์˜ ์ผ๊ธฐ์žฅ ๋กœ์ง์ด ์™„์„ฑ(?)๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋กœ์ง์„ ์งœ๋Š” ๊ณผ์ •์—์„œ ๋Š์ž„์—†์ด ์ƒ๊ฒจ๋‚˜๋Š” ์˜ˆ๊ธฐ์น˜๋ชปํ•œ ์ผ€์ด์Šค๋“ค์„ ๋‹ค๋ฃจ๊ณ ,
์ผ์ • ๊ทœ์น™์œผ๋กœ ํŽธ์ž…์‹œํ‚ค๋Š” ๊ณผ์ •์ด 1์ฃผ์ผ์ •๋„ ๋˜๋‹ค๋ณด๋‹ˆ ์Šค์Šค๋กœ ๋ถˆ์•ˆํ•จ์„ ๋งŽ์ด๋Š๊ผˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์นœ๊ตฌ๋“ค์€ ์ด๋Ÿฐ๊ธฐ๋Šฅ ์ €๋Ÿฐ๊ธฐ๋Šฅ ์™„์„ฑํ•ด๋‚˜๊ฐ€๊ณ  ์žˆ๋Š”๋ฐ,
์ €๋Š” ์ด ๋กœ์งํ•˜๋‚˜์—๋งŒ 1์ฃผ์ผ์„ ๋งค๋‹ฌ๋ ค์žˆ์—ˆ๊ธฐ๋•Œ๋ฌธ์ด์ฃ .

ํ”„๋กœ์ ํŠธ๋ฅผ ๋๋‚ด๊ณ  ๋“  ์ƒ๊ฐ์€ ์ด๊ฒƒ์„ ๊ตฌํ˜„ํ•ด ๋‚˜๊ฐ€๋Š” ๊ณผ์ •์—์„œ
์Šค์Šค๋กœ ๋ฌด์—‡์„ ์ƒ๊ฐํ–ˆ๊ณ , ๋ฌด์—‡์„ ๊นจ๋‹ฌ์•˜๋Š”์ง€๊ฐ€ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์ œ ํ™˜์ƒ์ผ๊ธฐ์žฅ ์น˜ํ™˜์€ ์™„๋ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋ง์ด ์•ˆ๋˜๊ฒŒ ์น˜ํ™˜์ด ๋  ๋•Œ๋„ ์žˆ๊ณ , ์–ด๋–จ ๋•Œ๋Š” ์•Œ ์ˆ˜ ์—†๋Š” ๋‹จ์–ด๋“ค์ด ๋‚˜์˜ค๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ๋ฌด์—‡์— ์„ ํƒ๊ณผ ์ง‘์ค‘์„ ํ–ˆ๋Š”์ง€,
์–ด๋–ค ๋ฌธ์ œ์— ๋ถ€๋”ชํ˜”์„ ๋•Œ ์ด๋ ‡๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋‹ค๊ณ  ๋‹น๋‹นํ•˜๊ฒŒ ๋งํ•  ์ˆ˜ ์žˆ๊ณ ,

์ „์—๋Š” ์‚ฌ์šฉํ•ด ๋ณด์ง€ ๋ชปํ–ˆ๋˜ ๊ฒƒ ๊ธฐ์ˆ ๋“ค์„ ์‚ฌ์šฉํ•ด๋ณธ ๊ฒฝํ—˜์œผ๋กœ ์ธํ•ด

์˜ˆ์ „์—๋Š” "์ƒˆ๋กœ์šด ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”"๋ผ๋Š” ๋ง์— "์•„๋ƒ ๋‚˜๋Š” ๋ชปํ•ด"๋ผ๋Š” ๋ง์ด ๋จผ์ € ๋‚˜์™”์ง€๋งŒ,
์ด์ œ๋Š” "ํ•ด ๋ณผ๊ฒŒ์š”. ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„์š”" ๋ผ๋Š” ๋ง์ด ๋จผ์ € ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ์ž์‹ ๊ฐ์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

ํ™˜์ƒ์˜ ์ผ๊ธฐ์žฅ์ด ํ™˜์žฅ์˜ ์ผ๊ธฐ์žฅ์ด๋ผ๋Š” ๋ถ€์ œ๋ฅผ ์–ป์—ˆ์ง€๋งŒ,
ํ™˜์ƒ์˜ ์ผ๊ธฐ์žฅ์€ ์ €์—๊ฒŒ "ํ™˜์ƒ์˜ ๊ธฐํšŒ"์˜€๋‹ค๊ณ  ์ •์˜ ๋‚ด๋ฆฌ๋ฉฐ ํŽ˜์ด์ง€๋ฅผ ๋งˆ์นฉ๋‹ˆ๋‹ค.