์ ์ฒด ๊ธ105 [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. Day1. Ai์์ ๋ํ ์ค๋์ ์ง๋ฌธ ai: What is your favorite hobby and why do you enjoy it? me: I like watching youtube, because i can not thinking in watching youtube. -> “I like watching YouTube because I don’t have to think while watching it.” 1. can ๋ค์๋ ๋์ฌ ์ํ์ด ์์ผํ๋ค. 2. in ์ ๋ฌธ๋ฒ์ ์ณ์ง ์๋ค ~ ๋์ ์ด๋ผ๋ while์ ์ฌ์ฉํ์. 3. dont' have to think ๋ ์๊ฐํ ํ์๊ฐ ์๋ค๋ ์๋ฏธ๋ฅผ ๋ช ํํ ์ ๋ฌํ๋ค. 4. ์์ Youtube๋ผ๋ ๊ฒ์ ์ค๋ช ํ์ผ๋ฏ๋ก it์ผ๋ก ํํํด๋ ๋๋ค. ai: What kind of video.. 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. ์ด์ 1 2 3 4 5 ยทยทยท 12 ๋ค์