๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€101

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.
[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.
[์‹ค๊ธฐ ํ›„๊ธฐ] ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ๊ฐ€์ฑ„์  ๊ฒฐ๊ณผ 3๋ฌธ์ œ๊ฐ€ ํ‹€๋ ธ๋‹ค. ์ด ๊ณต๋ถ€ ์‹œ๊ฐ„์€ ๋ธ”๋กœ๊ทธ์— ์ž‘์„ฑํ•œ ๋ชจ์˜๊ณ ์‚ฌ ๋์ด๋‹ค.์ „๊ณต์ž์˜ ๊ฒฝ์šฐ, ์ฝ”๋”ฉ๋งŒ ์ค€๋น„๊ฐ€ ๋˜์–ด์žˆ์œผ๋ฉด ํ•˜๋ฃจ๋งŒ ๊ณต๋ถ€ํ•ด๋„ ๋  ๊ฒƒ ๊ฐ™๋‹ค.  ๋‚˜๋Š” 22๋…„๋„๋ถ€ํ„ฐ 24๋…„๊นŒ์ง€ ๋ชจ์˜๊ณ ์‚ฌ๋ฅผ ํ’€์–ด๋ดค๋Š”๋ฐ ๊ฐœ์ธ์ ์œผ๋กœ 23๋…„ 2ํšŒ, 3ํšŒ์™€ ๋น„์Šทํ•œ ํ•ฉ๊ฒฉ๋ฅ ์„ ๋ณด์ด์ง€ ์•Š์„๊นŒ ์‹ถ๋‹ค. 1. ์ฝ”๋“œ๊ฐ€ ์ƒ๋‹นํžˆ ์–ด๋ ค์šธ ์ˆ˜๋„ ์žˆ๋‹ค.์žฌ๊ท€๋ฅผ ์ด์šฉํ•œ ๋ฉ”๋ชจ์ œ์ด์…˜ ๊ธฐ๋ฒ•์ด ๋‚˜์™”๋‹ค.๊ทธ ์™ธ ํฌ์ธํ„ฐ๊ฐ€ ๋‹ค์–‘ํ•˜๊ฒŒ ๋‚˜์™”๋‹ค. 2. ์ด๋ก ๋„คํŠธ์›Œํฌ, ๋ณด์•ˆ๋งŒ ๊ณต๋ถ€ํ–ˆ์œผ๋ฉด ๋์„ ๊ฒƒ ๊ฐ™๋‹ค. ์ด์ „ ํšŒ์ฐจ์— ๋น„ํ•ด ์ฝ”๋”ฉ : ์ƒ, ์ด๋ก  : ํ•˜์•„๋ฌด๋ž˜๋„ ๋น„์ „๊ณต์ž๊ฐ€ ๋งŽ์ด ์‘์‹œํ–ˆ๋‹ค๋ฉด ํ•ฉ๊ฒฉ๋ฅ ์ด ์ข€ ๋‚ฎ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋œ๋‹ค. 2024. 7. 30.