์ ์ฒด ๊ธ
[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์์ )
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
https://youtu.be/x6C20zhZHw8 ๋ฆฌํฉํ ๋ง 2ํ์ ๊ณต๋ถํ๋ค๊ฐ Repository ํจํด์ด ๋์์ ๋ฐ๋ก ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค. Repository ํจํด์ด๋ ๋ฐ์ดํฐ์ ์ํธ์์ฉํ๋ ๋ฐ ํ์ํ ๋ ผ๋ฆฌ๋ฅผ ์บก์ํํ๋๋ฐ ์ค์ ์ ๋ ํด๋์ค ๋ชจ์์ผ๋ก ์ ์ํ ์ ์๋ค. ๋ ๊ตฌ์ฒด์ ์ผ๋ก ์ค๋ช ํ์๋ฉด, ๋ฐ์ดํฐ ์ถ์ฒ(๋ก์ปฌ DB, ์๋ฒ API ์๋ต ๋ฑ)์ ๊ด๊ณ ์์ด ๋์ผ ์ธํฐํ์ด์ค๋ก ๋ฐ์ดํฐ์ ์ ์ํ ์ ์๋๋ก ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋ค์ด ๊ด๋ฆฌํ๋ ๊ฒ์ ๋งํ๋ค. ๋์ ๋ฐฐ๊ฒฝ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ Domain์์๋ ๋น์ฆ๋์ค ๋ก์ง์๋ง ์ง์คํ ์ ์์ผ๋ฉฐ ViewModel์ ๋ฐ์ดํฐ ์ถ์ฒ๋ฅผ ์ ๊ฒฝ ์ธ ํ์๊ฐ ์๊ณ ์ฌ๋ฌ Repository๋ฅผ ๊ณต์ ํ๋๋ผ๋ ์ผ๊ด๋ Interface๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์๋ค. ๋น์ฆ๋์ค ๋ก์ง์ ํ๋ก๊ทธ๋จ์ ํต..
[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) ๋ฆฌ์กํธ ๊ฐ์๋ฐ์๋ณด ๊ฒ์
๋ฆฌ์กํธ ๊ฐ์๋ฐ์๋ณด ๊ฒ์ 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! ๋ ๊ฐ์ ๋ณํ์ 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..