์ „์ฒด ๊ธ€

์ „์ฒด ๊ธ€

    [Git] ์—…๋ฌด์šฉ, ๊ฐœ์ธ์šฉ ๊นƒ ๊ณ„์ • ๋ถ„๋ฆฌ

    https://www.daleseo.com/git-config/ git config ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ• Engineering Blog by Dale Seo www.daleseo.com https://awesometic.tistory.com/128 ๊นƒ(git) - ํ”„๋กœ์ ํŠธ/์ €์žฅ์†Œ๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ณ„์ • ์ •๋ณด ์‚ฌ์šฉํ•˜๊ธฐ ์ €์žฅ์†Œ๋ณ„ ๊ณ„์ • ์„ค์ • Command line ์—์„œ git์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด, git ์„ค์น˜ ํ›„ ๊ฐ„๋‹จํ•œ ์„ค์ • ๋‘ ๊ฐ€์ง€ ์ •๋„๋Š” ํ•ด์ค˜์•ผ ํŽธํ•ด์š”. ๊ณ„์ •๊ณผ ์ด๋ฆ„ ์„ค์ •์„ ํ•ด์ฃผ๋ฉด git commit, git push ํ•  ๋•Œ๋งˆ๋‹ค ๊ณ„์ • ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์•„๋„ awesometic.tistory.com ๋ ˆํฌ๋งˆ๋‹ค ์•„๋ž˜์™€ ๊ฐ™์ด ๊ธ€๋กœ๋ฒŒ๊ณผ ๋กœ์ปฌ์„ ์ž˜ ๊ตฌ๋ถ„ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. //๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ์œ„์น˜์—์„œ $ git config user.email mim..

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (4) ์œ„์น˜ ๋„์‹œ ๊ธฐ๋ฐ˜ ๋‚ ์”จ ์•ฑ (api ์—ฐ๊ฒฐ ๊ธฐ์ดˆ์ž‘์—…, UI์ž‘์—… )

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (4) ์œ„์น˜ ๋„์‹œ ๊ธฐ๋ฐ˜ ๋‚ ์”จ ์•ฑ (api ์—ฐ๊ฒฐ ๊ธฐ์ดˆ์ž‘์—…, UI์ž‘์—… )

    1. ๊ธฐ๋Šฅ ๋ช…์„ธ์„œ //1. ์•ฑ์ด ์‹คํ–‰๋˜์ž๋งˆ์ž ํ˜„์žฌ ์œ„์น˜ ๊ธฐ๋ฐ˜์˜ ๋‚ ์”จ๊ฐ€ ๋ณด์ธ๋‹ค. //2. ๋‚ ์”จ ์ •๋ณด์—๋Š” ๋„์‹œ, ์„ญ์”จ, ํ™”์”จ ๋‚ ์”จ ์ƒํƒœ //3. 5๊ฐœ์˜ ๋ฒ„ํŠผ์ด ์žˆ๋‹ค (1๊ฐœ๋Š” ํ˜„์žฌ ์œ„์น˜, 4๊ฐœ๋Š” ๋‹ค๋ฅธ ๋„์‹œ) //4. ๋กœ๋”ฉ ์Šคํ”ผ๋„ˆ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ 2. weather api https://openweathermap.org/api Weather API - OpenWeatherMap Please, sign up to use our fast and easy-to-work weather APIs. As a start to use OpenWeather products, we recommend our One Call API 3.0. For more functionality, please consider our products, ..

    [๋ฆฌํŒฉํ„ฐ๋ง 2ํŒ] 12.11 ์Šˆํผํด๋ž˜์Šค๋ฅผ ์œ„์ž„์œผ๋กœ ๋ฐ”๊พธ๊ธฐ

    1. ์Šˆํผํด๋ž˜์Šค๋ฅผ ์œ„์ž„์œผ๋กœ ๋ฐ”๊พธ์–ด์•ผ ํ•  ๋•Œ ๊ธฐ๋Šฅ์„ ์˜จ์ „ํžˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ณ  ์–ด์šธ๋ฆฌ์ง€ ์•Š์€ ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ–ˆ์„ ๋•Œ, ์ƒ์†์„ ๋จผ์ € ์ ์šฉํ–ˆ๋‹ค๊ฐ€ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ๊ฐ์ฒด ์ง€ํ–ฅ์—์„œ ์ƒ์†์ด ํ˜ผ๋ž€๊ณผ ๋ณต์žก๋„๋ฅผ ํ‚ค์šธ ์ˆ˜๋„ ์žˆ๋‹ค. ์ƒ์†์„ ์ž˜๋ชป ์ ์šฉํ•œ ์˜ˆ๋กœ๋Š” ์ž๋ฐ”์˜ ์Šคํƒ ํด๋ž˜์Šค๊ฐ€ ์œ ๋ช…ํ•˜๋‹ค. ์ž๋ฐ”์˜ ์Šคํƒ์€ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์†ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์กฐ์ž‘ํ•˜๋Š” ๋ฆฌ์ŠคํŠธ์˜ ๊ธฐ๋Šฅ์„ ์žฌํ™œ์šฉํ•˜๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ์ดˆ๋ž˜ํ•œ ๊ฒฐ๊ณผ๋‹ค. ์ตœ์•…์€ ๋ฆฌ์ŠคํŠธ(์Šˆํผํด๋ž˜์Šค)์˜ ์—ฐ์‚ฐ ์ค‘ ์Šคํƒ(์„œ๋ธŒํด๋ž˜์Šค)์—๋Š” ์ ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒŒ ๋งŽ์Œ์—๋„ ๊ทธ ๋ชจ๋“  ์—ฐ์‚ฐ์ด ์Šคํƒ ์ธํ„ฐํŽ˜์ด์Šค์— ๊ทธ๋Œ€๋กœ ๋…ธ์ถœ๋œ๋‹ค๋Š” ๊ฒƒ ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™ : ์„œ๋ธŒ ํด๋ž˜์Šค๋Š” ์Šˆํผ ํด๋ž˜์Šค ์ž๋ฆฌ๋ฅผ ๋Œ€์ฒดํ•˜๋”๋ผ๋„ ์ž˜ ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค. ์ž๋ฐ”์˜ ์Šคํƒ์ฒ˜๋Ÿผ, ์Šˆํผํด๋ž˜์Šค์˜ ๊ธฐ๋Šฅ๋“ค์ด ์„œ๋ธŒํด๋ž˜์Šค์— ์–ด์šธ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค๋ฉด ๊ทธ ๊ธฐ๋Šฅ๋“ค์„ ์ƒ์†์„ ํ†ตํ•ด..

    [๋””์ž์ธ ํŒจํ„ด] Repository Pattern

    [๋””์ž์ธ ํŒจํ„ด] Repository Pattern

    https://youtu.be/x6C20zhZHw8 ๋ฆฌํŒฉํ† ๋ง 2ํŒ์„ ๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€ Repository ํŒจํ„ด์ด ๋‚˜์™€์„œ ๋”ฐ๋กœ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. Repository ํŒจํ„ด์ด๋ž€ ๋ฐ์ดํ„ฐ์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋…ผ๋ฆฌ๋ฅผ ์บก์Аํ™”ํ•˜๋Š”๋ฐ ์ค‘์ ์„ ๋‘” ํด๋ž˜์Šค ๋ชจ์Œ์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ์„ค๋ช…ํ•˜์ž๋ฉด, ๋ฐ์ดํ„ฐ ์ถœ์ฒ˜(๋กœ์ปฌ DB, ์„œ๋ฒ„ API ์‘๋‹ต ๋“ฑ)์™€ ๊ด€๊ณ„ ์—†์ด ๋™์ผ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ฐ์ดํ„ฐ์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ๋„์ž… ๋ฐฐ๊ฒฝ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Domain์—์„œ๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์—๋งŒ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ViewModel์€ ๋ฐ์ดํ„ฐ ์ถœ์ฒ˜๋ฅผ ์‹ ๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๊ณ  ์—ฌ๋Ÿฌ Repository๋ฅผ ๊ณต์œ ํ•˜๋”๋ผ๋„ ์ผ๊ด€๋œ Interface๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ํ”„๋กœ๊ทธ๋žจ์˜ ํ•ต..

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (3) ๋ฆฌ์•กํŠธ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ, ๋ผ์ดํ”„ ์‚ฌ์ดํด

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (3) ๋ฆฌ์•กํŠธ ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ, ๋ผ์ดํ”„ ์‚ฌ์ดํด

    0. ํ•œ๋ˆˆ์— ๋น„๊ตํ•˜๋Š” ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ vs ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ 1. ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ ์ƒ์„ฑ shortCut : rcc (ํ•จ์ˆ˜ ์ปดํผ๋„ŒํŠธ ์ƒ์„ฑ์€ : rafce : react arrow function component export) import React, { Component } from 'react' export default class AppClass extends Component { render() { return ( AppClass ) } } function์ด class๋กœ ๋ฐ”๋€ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. AppClass.js : ํด๋ฆญ์ˆ˜๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ฒ„ํŠผ ๊ทธ๋ฆฌ๋Š” ์˜ˆ์ œ import React, { Component } from 'react'; import './App.css'; export default class ..

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (2) ๋ฆฌ์•กํŠธ ๊ฐ€์œ„๋ฐ”์œ„๋ณด ๊ฒŒ์ž„

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (2) ๋ฆฌ์•กํŠธ ๊ฐ€์œ„๋ฐ”์œ„๋ณด ๊ฒŒ์ž„

    ๋ฆฌ์•กํŠธ ๊ฐ€์œ„๋ฐ”์œ„๋ณด ๊ฒŒ์ž„ Box 2๊ฐœ ๋งŒ๋“ค๊ธฐ(๋‚˜ ๋ฒ„์ „, ์ปดํ“จํ„ฐ ๋ฒ„์ „) src ์•„๋ž˜์— component ํด๋” ๋งŒ๋“ค๊ณ  Box.js ๋งŒ๋“ค์–ด์คŒ ์ปดํฌ๋„ŒํŠธ ์ƒ์„ฑ ๋‹จ์ถ•ํ‚ค : ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“œ๋Š” ๋‹จ์ถ•ํ‚ค : rafce ๋‹จ์ถ•ํ‚ค๊ฐ€ ์•ˆ๋‚˜์˜ฌ ๊ฒฝ์šฐ ์„ค์น˜ extention ์ปดํฌ๋„ŒํŠธ ๋งŒ๋“ค์‹œ ์ฃผ์˜์‚ฌํ•ญ: ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„์€ ๋ฐ˜๋“œ์‹œ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ ๋ฆฌ์•กํŠธ๊ฐ€ ์ปดํฌ๋„ŒํŠธ์™€ ์ผ๋ฐ˜ HTMLํƒœ๊ทธ(,๋“ฑ..)์„ ๊ตฌ๋ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํƒœ๊ทธ๊ฐ€ ๋Œ€๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•˜๋Š”์ง€ ์—ฌ๋ถ€์ด๋‹ค ๋”ฐ๋ผ์„œ ์†Œ๋ฌธ์ž๋กœ ์‹œ์ž‘์„ ํ•˜๋ฉด ์ผ๋ฐ˜ HTMLํƒœ๊ทธ๋กœ ๋ถ„๋ฅ˜ํ•ด๋ฒ„๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ ์ฒซ ๊ธ€์ž๋Š” ๋Œ€๋ฌธ์ž๋กœ! App.js / Box.js / App.css ์ฝ”๋“œ (1) ์œ ์ €๊ฐ€ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์œ„, ๋ฐ”์œ„, ๋ณด ๋ฒ„ํŠผ (2) ์œ ์ €๊ฐ€ ์„ ํƒํ•œ ๊ฐ€์œ„, ๋ฐ”์œ„, ๋ณด ์ด๋ฏธ์ง€๊ฐ€ ๋ณด์—ฌ์ง€๋Š” UI ์„ธํŒ… (3) ์ปดํ“จํ„ฐ ์ถœ๋ ฅ ๊ฐ€์œ„, ๋ฐ”์œ„, ..

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (1) ๋ฆฌ์•กํŠธ์˜ ์ปจ์…‰ state

    [React + Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ] (1) ๋ฆฌ์•กํŠธ์˜ ์ปจ์…‰ state

    React! ๋Š” ๊ฐ’์˜ ๋ณ€ํ™”์— react ๋ฐ˜์‘ํ•˜๋‹ค๋ž€ ์ปจ์…‰์— ๊ฑธ๋งž๊ฒŒ ๋ณ€์ˆ˜ ๊ฐ’์ด ๋ฐ”๋€” ๋•Œ ๋งˆ๋‹ค getElementById~ innerText~ ์ผ์ผํžˆ ํ•ด์ฃผ๋˜๊ฑธ ํ•ด์ฃผ์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ๊ฐ’์ด ๋ณ€ํ•˜๋ฉด UI๋„ ์ž๋™์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. -> State state๊ฐ€ ๋ณ€ํ•˜๋ฉด UI๊ฐ€ ๋ณ€ํ•˜๊ฒŒ ํ•œ๋‹ค. ํ„ฐ๋ฏธ๋„ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ํด๋” ์ƒ์„ฑ mkdir react-test cd react-test npx create-react-app ํด๋”๋ช… ๋‚˜๊ฐ™์€ ๊ฒฝ์šฐ๋Š” npx create-react-app rsp ๋กœ ํ•จ ์ƒ์„ฑํ•˜๋Š”๋ฐ ์‹œ๊ฐ„ ์ข€ ๊ฑธ๋ฆผ. cd rsp code . ํ•˜๋ฉด ๋ฐ”๋กœ ์„ธํŒ…๋œ ๋น„์ฅฌ์–ผ ์ŠคํŠœ๋””์˜ค ์ฝ”๋“œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์—ด๋ฆฐ๋‹ค. 1. App.js App.css ์ •๋ฆฌ App.css ํŒŒ์ผ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ๋‚ด์šฉ ์ง€์›Œ์ค€๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ์ •๋ฆฌํ•ด์ค€๋‹ค. impor..