JavaScript11 [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. [React] ํ๊ฒฝ์ค์ ์๋ ๋ฆฌ์กํธ๋ ์นํฉ์ด๋ผ๋ Bundler๋ก ์คํํ๋ค.์ด ๊ฐ์๋ ๋ฆฌ์กํธ ๋ฌธ๋ฒ๊ณผ ๋ฆฌ์กํธ๋ฅผ ์ดํดํ๊ธฐ ์ํจ์ด๋ฏ๋ก React๋ฅผ ์ค์ ๋ก ์ฌ์ฉํ๋ ํ๊ฒฝ์ค์ ์ ํ์ง ์๋๋ค. 1. React ๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๊ฒฝ์ค์ ์ด ๋์ด์ผํ๋๋ฐ ๋ฆฌ์กํธ์์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ฉ cdn ๋งํฌ๊ฐ ์๋ค. ๋ฆฌ์กํธ์์๋ ์ง์ ๊ฐ๋ฐ์ฉ์ผ๋ก๋ง ์ฐ๋ผ๊ณ ๋ช ์๋์ด์๊ณ ๋ฐฐํฌ์ฉ์ผ๋ก๋ ์ถ์ฒํ์ง ์๋๋ค. CDN ๋งํฌ – ReactA JavaScript library for building user interfacesko.legacy.reactjs.org ๋๋ ๋ฐฐํฌ๊น์ง ํ ๋ด์ฉ์ด ์๋๋ฏ๋ก ๊ฐ์์ ๋์ผํ๊ฒ cdn์ ์ด์ฉํ๋ค.react.js ๋ react ๊ธฐ๋ฅ์ธ ์ปดํฌ๋ํธ, ๊ฐ์๋ ๋ฑ์ ์ง์ํ๋ค. 2. React-Dom React Dom์ ๊ฐ์ DOM์ ์ค.. 2024. 8. 4. [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] ๊ฒ์ ๊ฒฐ๊ณผ ๊ธฐ๋ฅ ๊ตฌํ 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. ์ด์ 1 2 ๋ค์