๊ฐ๋ฐ7 [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 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] ์ฌ์ ์ฝ๋ ์ดํดํ๊ธฐ ๊ฐ์ฌ๋์ด ๋ฏธ๋ฆฌ ๊ตฌํํด ๋ ์๋น์ค branch : ready/scaffodingIn Memory DB์ถ์ฒ ๊ฒ์์ด, ๊ฒ์ ๊ธฐ๋ก, ์ํ ๋ฐ์ดํฐUtility์๊ฐ๊ด๋ จ UtilDOM Event๋ฅผ ํ์ฉํ Util๊ธฐ๋ณธ์ ์ผ๋ก JS์์ ์ ๊ณตํ๋ ๊ธฐ์ ๋ค์ ๋ชจ๋ํํ๋ค๊ณ ๋ณด์ธ๋ค.Model์ดํ์ ๋น์ฆ๋์ค ๋ก์ง ๋ฐ ์ค์ ๋ก์ง์ด ๋ด๊ธธ ๊ฒ์ผ๋ก ๋ณด์.View์ ์ ํ์ด์ง ์ ๋ณด๋ฅผ ๋ ๋๋ง(์์ )ํ๋ ํ์ด์งUtility๋ฅผ ํ์ฉํด ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ์ด ์ ๊ณต๋๋ค.ControllerView์ ์์ฑ๋ ๋ด์ฉ์ ์ ์ดModel์ ๋น์ฆ๋์ค ๋ก์ง์ ํ์ฉํ๊ฑฐ๋ ๋ฐ๋ก ์๋น์ค ๋ก์ง์ ์์ฑํ ๋ฏ 2024. 7. 31. 9. ๋ฐ๋ณต๋ฌธ - while ๋ฌธ, do while ๋ฌธ while ๋ฌธ ์ด๋? while๋ฌธ๋ for๋ฌธ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ~๋์ ์ด๋ผ๋ ๋ป์ ๊ฐ์ง๊ณ ์๋ ๋ฐ๋ณต๋ฌธ์ ๋๋ค. ์ด์ ํฌ์คํธ์์ for๋ฌธ์์ ~๋์์ ์๋ฏธํ๋ ๊ณณ์ด ์กฐ๊ฑด์์ด๋ผ๊ณ ์ค๋ช ํ์ต๋๋ค. while๋ฌธ๋ ๋ง์ฐฌ๊ฐ์ง๋ก '์กฐ๊ฑด์' ๋์ ๋ฐ๋ณต์ ํ๊ฒ ๋ค๋ ์๋ฏธ๊ฐ ๋ฉ๋๋ค. ์กฐ๊ธ ๋ ์์ธํ ์๊ธฐ ์ํด์ for๋ฌธ์ ์ํ ๊ณผ์ ์ ๋ณต์ตํด๋ณด๊ฒ ์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์ํ (์ด๊ธฐ๊ฐ), ๋จผ์ , '์ด๊ธฐ๊ฐ'์ ๋ค์ด๊ฐ๋ ๋ด์ฉ์ 0๊ฐ ์ด์ ์์ฑํ๋ฉด ๋ฉ๋๋ค. ์ด๊ธฐ๊ฐ์ ์ค์ ํ์ง ์์๋ ์ํ๋๋ ๊ฒ์ด์ฃ . ์ ๋ 3๊ฐ์ ๋ณ์ i, j, cnt๋ฅผ ์ด๊ธฐ๊ฐ์ผ๋ก ํน์ ๊ฐ์ ํ ๋น ํ์ต๋๋ค. ๋ ๋ฒ์งธ ์ํ (์กฐ๊ฑด์), ์กฐ๊ฑด๋์ for๋ฌธ์ ์ํํ ์ ์๋์ง ํ์ธํฉ๋๋ค. ์กฐ๊ฑด์ i < j ์ด๋ฏ๋ก, (i : 10) < (j : 20) ๋ฅผ ๋ง์กฑํฉ๋๋ค. ๋ ๋ฒ์งธ ์ํ์์ ์กฐ๊ฑด.. 2024. 2. 10. 8. ๋ฐ๋ณต๋ฌธ - for ๋ฌธ ๋ฐ๋ณต๋ฌธ์ด๋? ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋ฐ๋ณต๋ฌธ์ด๋ ๋ง ๊ทธ๋๋ก ๋ฐ๋ณตํ๋ ๊ณผ์ ์ ์ํํ ์ ์๋ ๋ฌธ๋ฒ์ ๋ปํ๋ค.๋ฐ๋ณต๋ฌธ์๋ ์ ์๋ ค์ง for๋ฌธ๊ณผ while๋ฌธ์ด ์กด์ฌํ๋ค.์ถ๊ฐ๋ก do while๋ฌธ๋ ์กด์ฌํ๋๋ฐ ์์ง ๊น์ง๋ ํน๋ณํ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ๋ ์ฌ์ฉ์ ํ์ง ์์๋ค. for๋ฌธ for๋ฌธ์ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ์ผ๋ก ๋๋ถ๋ถ์ ์ฌ๋์ด ์ ์๊ณ ์๋ค.ํ์ง๋ง, ์๊ฐ๋ณด๋ค ํท๊ฐ๋ คํ๋ ํฌ์ธํธ๋ค์ด ์์ด์ ๊ทธ๊ฒ์ ์ง๊ธฐ ์ํด์ ๊ฐ์ ธ์๋ค. ์ฐ์ , ์ฌ๋งํ ์ฑ ์์ ์ค๋ช ํ๋ for๋ฌธ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ์ ์๋์ ๊ฐ๋ค.for (int i = 0; i ๋๋ถ๋ถ ์ฌ๊ธฐ์ int i = 0 ์ ์ด๊ธฐ๊ฐ, i for (์ด๊ธฐ๊ฐ; ์กฐ๊ฑด์; ์ฆ๊ฐ์)๊ทผ๋ฐ ์ ๋ ํท๊ฐ๋ฆฌ๋ ๋ถ๋ถ์ด ์ข ์์์ต๋๋ค.๋งจ ์ฒ์ for๋ฌธ์ ์ ํ์ ๋, ์กฐ๊ฑด์์ด ' i ' ์ด๋ฉด i ์ธ๊ฐ? ๋ผ๋ ์๊ฐ ๋๋ฌธ์ ์กฐ๊ธ.. 2024. 2. 10. 2024. ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ๊ณต๋ถ ์์ 2024๋ ์ ๊ธฐ ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ํ๊ธฐ ์ํ ์๋ ํ์ธ์. ์ด๋ฒ์ ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์๊ฒฉ์ฆ์ ๋ํด ํฌ์คํธ๋ฅผ ์์ฑํ๊ฒ ๋๋ค์. ์ ๋ ์ ๊ณต์ด ์ปดํจํฐ ๊ณตํ์ด๊ณ ํฌ๋ง ์ ๋ฌด๊ฐ IT ์ ๋ฌด๋ค๋ณด๋.. ์๊ฒฉ์ฆ ๊ณต๋ถ๋ฅผ ํ ํ์๊ฐ ์์๊น? ๊ทธ๋ฅ ํ๋ก์ ํธ ๊ฒฝํ์ด๋ CS ๊ณต๋ถ๋ฅผ ํ๋๊ฒ ๋ ์ข์ง ์์๊น? ์ฌ๋ฌ ์๊ฐ์ด ๋ง์๋๋ฐ ์ด๋ฒ์ ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ํ๊ธฐ ์ํ์ ๋์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. Why? ์ ๋ ๊ต๋ด ์ ๊ณต ์์ ์ ๋ฐํ์ผ๋ก ์ด๋์ ๋ ๊ณต๋ถํ๋ค๊ณ ์๊ฐํ CS ์ง์์ด ๋ถ์กฑํ๋ค๋ ๊ฒ์ ๊นจ๋ซ๊ณ ์ทจ์ ์ ์ํด์ CS ๊ณต๋ถ๋ฅผ ํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ๊ฐ CS ๋ด์ฉ์ ๋ง์ด ๋ด๊ณ ์๋๋ผ๊ตฌ์?? ๊ทธ๋ผ, ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ๊ณต๋ถ๋ฅผ ํ๋ฉด์ ์กฐ๊ฐํํ๋ฏ์ด ์ด๋ ์ ๋์ ์ง์์ด ๋ ์ฑ์์ง ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ๋ฌผ๋ก , ์๊ฒฉ์ฆ ์ทจ๋์ด ๋ชฉ์ ์ด๊ณ CS ๊ณต๋ถ์ ์ด์ ์ด .. 2024. 1. 27. ์ด์ 1 ๋ค์