๋ฆฌ์กํธ6 [React] Intro ๋ฆฌ์กํธ๋ ํฌ๊ฒ ์ธ๊ฐ์ง ๊ฐ๋ ์ด ์ค์ํ๋ค.1. Reactive2. Virtual DOM3. Component Reactive๋ ํน์ ๊ฐ์ ์์กดํด ์๋์ผ๋ก ๋ฐ์ํ๋ ๊ฒ์ ์๋ฏธํ๋ค.Vanila js๋ก ๊ฒ์ ์๋น์ค๋ฅผ ๋ง๋ค๋ฉด์ ๊ฐ์ ๋ณ๊ฒฝํ๊ฒ ๋๋ฉด(๊ฒ์ ๋ฑ) ๋ค์ rendering์ ํ๋ ๊ณผ์ ์ด ํ์ํ์๋ค.ํ์ง๋ง ๋ฆฌ์กํธ๋ ๊ฐ์ ๋ณ๊ฒฝํ๋ฉด ๋ค์ rendering ํ ํ์๊ฐ ์๋๋ก ์ค๊ณ๋์๋ค. react๋ DOM API๋ฅผ ํธ์ถํ๋ฉด์ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Virtual DOM์ ์ ๊ณตํ๋ค.Virtual DOM์์ ๋ณ๊ฒฝ๋ ๋ถ๋ถ์ ํ์ธํ๊ณ ๋ฐ๋ ๋ถ๋ถ๋ง ํ์ธํ์ฌ DOM์ ์ ๊ณตํ๋ค.์ด๋ฐ ํน์ฑ ๋๋ฌธ์ reactive ํ๋ค๊ณ ํ ์ ์๋ค. ์๋๋ ์ฐธ๊ณ ํ๋ฉด ์ข์ ์์ ์์์ด๋ค.https://www.youtube.co.. 2024. 8. 3. [Vanila js] ์ต๊ทผ ๊ฒ์ ๊ตฌํํ๊ธฐ ResultViewexport default class HistoryListView extends KeywordListView { constructor() { super(qs("#history-list-view"), new Template()); } bindEvents() {} handleClickRemoveButton() {}} HistoryListView๋ฅผ ๋ณด๋ฉด KeywordListView ์ ๋งค์ฐ ์ ์ฌํ๋ค.์ถ์ฒ๊ฒ์๊ณผ ์ฐจ๋ณ์ ์ ์๊ฐํ๋ฉด, ๊ฒ์๊ธฐ๋ก์ ์ง์ฐ๋ ์์ ์ด ์ถ๊ฐ๋ก ์ํ๋๋๊น. ์๋ก์ด ์ด๋ฒคํธ๋ฅผ ๋ฐ์ธ๋ฉ ํด์ค๋ค.๋, KeywordListView๋ฅผ ์์๋ฐ์ผ๋ฏ๋ก KeywordListView์ ์์ฑ์์ ๊ตฌ์กฐ ๋ณ๊ฒฝ์ด ๋ฐ์ํ๋ค.Controllerexport defaul.. 2024. 8. 2. [Vanila js] ํค์๋ ๊ฒ์ ๊ตฌํํ๊ธฐ ResultViewexport default class KeywordListView extends View { constructor() { super(qs('#keyword-list-view')); this.template = new Template(); this.bindEvents(); } show(data = []) { } bindEvents() { } handleClick(event) { }} ์์ ๊ธฐ๋ฅ๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก keyword-list-view์ ์ ์ฉํ interface๋ค.Result๋ฅผ ๋ณด๋ฉด ํค์๋๋ฅผ ํด๋ฆญํ๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋๊น ์ด๋ฒคํธ๋ฅผ ๋ฐ์ธ๋ฉํด์ฃผ๋ ๊ฒ์ด ํ์ํ๊ณ keyword ๋ชฉ๋ก๋ค์ ๋ณด์ฌ์ฃผ์ด์ผ ํ๋ฏ๋ก show().. 2024. 8. 2. [Vanila js] ํญ ๊ตฌํํ๊ธฐ ResultViewexport default class TabView extends View { constructor() { super(qs('#tab-view')); this.template = new Template(); } show() {} bindEvents() {} } ์ ์ ํ์ด์ง์ tab-view id๋ฅผ ๊ฐ์ง ํ๊ทธ์ ์์ ์ ์ํํ๋ค.Result์ ๊ฐ์ด ํญ์ ๋ณด์ฌ์ค ๊ธฐ๋ฅ๊ณผ, ํญ์ ๋๋ฅด๋ ํ์๋ฅผ ํ๋ ๊ธฐ๋ฅ์ด ํ์Controllerexport default class Controller { constructor(store, {searchFormView, searchResultView, tabView}) { this.store.. 2024. 8. 1. [Vanila.js] ํ๊ฒฝ์ ํ 1 ์ฐ์ํ ํ์ ๋ค์์ ๊ทผ๋ฌด ์ค์ด์ ํ๋ก ํธ ๊ฐ๋ฐ์ ๊น์ ํ๋์ ๊ฐ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑํฉ๋๋ค.์ธํ๋ฐ ๊ฐ์ ์ ๋ชฉ์ '๋ง๋ค๊ณ ๋น๊ตํ๋ฉฐ ํ์ตํ๋ ๋ฆฌ์กํธ'์ ๋๋ค. ํด๋น ๊ฐ์๋ ๊น์ ์ฌ์ฉํ๋ฉฐ Branch๋ณ๋ก ๊ฐ์๋ฅผ ํด์ฃผ์ญ๋๋ค. ํ์ต์ ํ๊ธฐ ์ํด ๋จผ์ git์ forkํฉ๋๋ค. fork๊ฐ ์๋์๋ค๋ฉด, ๊ฐ์ฌ๋์ด ๋ง๋ค์ด ๋ branch๋ก ์ด๋ํ ์ ์์ต๋๋ค.์ฐ์ forkํ ๋ด ๋ ํ์งํ ๋ฆฌ๋ฅผ cloneํ๊ณ ํด๋น ํด๋๋ก ์ด๋ํด์ git bash๋ฅผ ์คํํฉ๋๋ค.๊ทธ๋ฆฌ๊ณ ์๋์ ๊ฐ์ ๋ช ๋ น์ ์์ฑํฉ๋๋ค. 1. git remote add upstream https://github.com/jeonghwan-kim/lecture-react.git2. git fetch upstream3. git checkout -f upstream/ready/scaf.. 2024. 7. 30. [Vanila.js] ํ๊ฒฝ์ ํ 2 1. VS ์ฝ๋๋ฅผ ์ค์นํ๋ค.2. Node.js๋ฅผ ์ค์นํ๋ค.2-1. npm --version ์ผ๋ก ํ๊ฒฝ๋ณ์ ์ค์น๊ฐ ์๋์๋์ง ํ์ธํ๋ค.3. Git Bash๋ฅผ ์ค์นํ๋ค. (์ ํ, ํ๋ก์ ํธ ๊ด๋ฆฌํ๋ ค๋ฉด ์ค์น)4. npx lite-server --baseDir "ํด๋๋ช " or npx lite-server โป ์ฃผ์ (windows ํ๊ฒฝ)Node.js์ ๊ฒฝ๋ก๋ฅผ ์ปค์คํ ์์ญ์ ์ค์น ์, ์คํ์ด ์๋๋ค.1. Ctrl + r -> %appdata% -> ์ํด๋ ์์ฑ(์ด๋ฆ: npm) 2. System ํ๊ฒฝ๋ณ์์์ ํด๋น node js์ custom ์์ญ์ path ๋ณ์์ ์ถ๊ฐํ๋ค.๋๋ ์ฌ์ฉ์ ์์ญ์ ์ถ๊ฐํ๋ค. โป TipVsCode์์ code . ์ผ๋ก ์คํํ๋ ค๋๋ฐ ์๋๋ค.Ctrl + shift + p ๋ก๋ code ๋ฅผ ๊ฒ์ํด.. 2024. 7. 30. ์ด์ 1 ๋ค์