JavaScript/Vanila9 [Chrome Extension] ๊ตฌ๊ธ ๋ฅ๋ค์ด๋ธ ํฌ๋กฌ ํ์ฅ ํ๋ก๊ทธ๋จ ์ ์๊ธฐ ๊ตฌ๊ธ ํฌ๋กฌ ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ ์ํ์. ๋๋ ์ด๊ฑธ ์ ๋ง๋ค์์๊น?๊ตฌ๋ฆ ํ์คํ ๊ณผ์ 10๊ธฐ๋ฅผ ์ฐธ์ฌํ๋ฉด์ ๊ฐ์ ๋ฆฌ์คํธ ์ค ์ค๋ณต๋๋ ๊ฐ์ข๊ฐ ์์๋ค.์ค๋ณต๋๋ ๊ฐ์ข๋ฅผ ์๋ณํ๊ธฐ ์ํด์ ๋ง๋ค์ด๋ดค๋ค.ResultHow?์ฐ์ docs๋ฅผ ์ฐพ์๋ด์ผํ๋ค.https://developer.chrome.com/docs/extensions/get-started/tutorial/hello-world?hl=ko์ฌ๊ธฐ์ ์ ์ค๋ช ๋์ด์๋ค.์์ฝํด๋ณด์manifest.json ์ด๋ผ๋ ํ์ผ๊ณผbackground.js, ๊ทธ๋ฆฌ๊ณ ๋์์ ํ js๋ค์ด ํ์ํ๋ค. ์์ธํ ์ฝ๋๋ git์ ์์ฑํด๋์๋ค.์ด์ ๋ฆฌํฉํ ๋ง์ ํด๋ณด์.https://github.com/groom-study-team1-project/chrome-extension GitHub - groom-st.. 2024. 8. 7. [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] ๊ฒ์ ๊ฒฐ๊ณผ ๊ธฐ๋ฅ ๊ตฌํ Viewexport default class SearchResultView extends View { constructor() { super(qs("#search-result-view")); this.template = new Template(); } show(data = []) { if (data.length > 0) { this.element.innerHTML = this.template.getList(data); } else { this.element.innerHTML = this. template.getEmptyMessage(); } super.show(); }}.. 2024. 7. 31. [Vanila js] ๊ฒ์ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ Branch - ready/search-form-1์์ ํฌ์คํ ์ ์์ ์ด ์ ๋๋ก ๋์๋ค๋ฉด main ๋ธ๋์น์์1. git checkout -b ready/search-form-12. ์ฝ๋ ์์ฑ3. git add .4. git commit -m "feat: ๋ด์ฉ"5. git push origin ready/search-form-1์ดํ PR ๋ ๋ฆฌ๊ณ Rebase Merge ํ๊ธฐ.git bash์์ ์ฝ๋๋ก ํ ์๋ ์์ง๋ง, ํ์ ์ค ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํ๋ ๊ณผ์ ์ด ์์.๊ทธ๋์ ์ง์ github ์ฌ์ดํธ์์ Mergeํ๋ ๊ฒ์ ์ต์ํด์ง๊ธฐ ์์ผ๋ก ๋ชจ๋ ์์ ์ ์ ๊ณผ์ ์ ๋ฐ๋ณตํด์ branch๋ฅผ ์ ๋ฐ์ดํธ ํ ์์ // index.html // main.jsdocument.addEventListener("DOMContentL.. 2024. 7. 31. [Vanila.js] ์ฌ์ ์ฝ๋ ์ดํดํ๊ธฐ ๊ฐ์ฌ๋์ด ๋ฏธ๋ฆฌ ๊ตฌํํด ๋ ์๋น์ค branch : ready/scaffodingIn Memory DB์ถ์ฒ ๊ฒ์์ด, ๊ฒ์ ๊ธฐ๋ก, ์ํ ๋ฐ์ดํฐUtility์๊ฐ๊ด๋ จ UtilDOM Event๋ฅผ ํ์ฉํ Util๊ธฐ๋ณธ์ ์ผ๋ก JS์์ ์ ๊ณตํ๋ ๊ธฐ์ ๋ค์ ๋ชจ๋ํํ๋ค๊ณ ๋ณด์ธ๋ค.Model์ดํ์ ๋น์ฆ๋์ค ๋ก์ง ๋ฐ ์ค์ ๋ก์ง์ด ๋ด๊ธธ ๊ฒ์ผ๋ก ๋ณด์.View์ ์ ํ์ด์ง ์ ๋ณด๋ฅผ ๋ ๋๋ง(์์ )ํ๋ ํ์ด์งUtility๋ฅผ ํ์ฉํด ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ์ด ์ ๊ณต๋๋ค.ControllerView์ ์์ฑ๋ ๋ด์ฉ์ ์ ์ดModel์ ๋น์ฆ๋์ค ๋ก์ง์ ํ์ฉํ๊ฑฐ๋ ๋ฐ๋ก ์๋น์ค ๋ก์ง์ ์์ฑํ ๋ฏ 2024. 7. 31. [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 ๋ค์