๐Ÿ“ŒLanguage/JavaScript

TIL) ์›น ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ, ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ

hellohailie 2022. 5. 18. 00:08

 

์œ ํšจ์„ฑ ๊ฒ€์‚ฌ

์‚ฌ์ดํŠธ์—์„œ ์›ํ•˜๋Š” ์กฐ๊ฑด์— ๋งž๊ฒŒ ๋ฐ˜๋“œ์‹œ ํ˜•์‹์„ ๋งž์ถฐ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

 

  • ํŠน์ • ๊ฐ’์€ ๋ฐ˜๋“œ์‹œ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (์•„์ด๋””, ์ด๋ฉ”์ผ, ๋น„๋ฐ€๋ฒˆํ˜ธ, ์ด๋ฆ„, ์ „ํ™”๋ฒˆํ˜ธ ๋“ฑ)
  • ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” n ์ž๋ฆฟ์ˆ˜ ์ด์ƒ์ด์–ด์•ผ ํ•˜๊ณ , ์ˆซ์ž๋‚˜ ํŠน์ˆ˜๋ฌธ์ž๋ฅผ ๋ฐ˜๋“œ์‹œ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ ํ™•์ธ๋ž€์— ์ž…๋ ฅ๋œ ๋ฌธ์ž๊ฐ€ ๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹ ์šฉ์นด๋“œ์˜ ๊ฒฝ์šฐ, ์ž…๋ ฅํ•œ ์‹ ์šฉ์นด๋“œ์˜ ๋ฒˆํ˜ธ๊ฐ€ ์œ ํšจํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์˜ ๋ชฉํ‘œ

์ž‘๋™์ด ๊ฐ€๋Šฅํ•œ MVP(Minimum Viable Product)๋ฅผ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๊ฒƒ

MVP : ์ตœ์†Œ ๊ธฐ๋Šฅ ์ œํ’ˆ(Minimum Viable Product, MVP)๋Š” ๊ณ ๊ฐ์˜ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•„ ์ตœ์†Œํ•œ์˜ ๊ธฐ๋Šฅ(features)์„ ๊ตฌํ˜„ํ•œ ์ œํ’ˆ

 

 

DOM ๊ธฐ์ดˆ ์‹ค์Šต์„ ํ†ตํ•ด, ๊ตฌ์ฒด์ ์ธ ์‚ฌ์šฉ๋ฒ•์„ ์ตํž ์ˆ˜ ์žˆ๋‹ค.
 - querySelector๋ฅผ ํ™œ์šฉํ•˜์—ฌ, HTML ์—˜๋ฆฌ๋จผํŠธ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
 - oncilck, onkeyup ์†์„ฑ์ด๋‚˜ addEventListener ๋ฉ”์„œ๋“œ๋กœ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๋ฅผ HTML ์—˜๋ฆฌ๋จผํŠธ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
 - ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜์—์„œ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ณณ์˜ ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
 - ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ํ•จ์ˆ˜๋กœ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ํ•„์š”ํ•œ ๊ธฐ์ˆ  ์š”์†Œ๋ฅผ ์ตํž ์ˆ˜ ์žˆ๋‹ค.
 - ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ํ•„์š”ํ•œ HTML ์—˜๋ฆฌ๋จผํŠธ, CSS ์†์„ฑ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
   - ์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ํ™”๋ฉด์— ํ‘œ์‹œ๋˜๊ฑฐ๋‚˜ ์‚ฌ๋ผ์ง€๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. (display: none)
 - ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ •๊ทœ ํ‘œํ˜„์‹์˜ ๊ธฐ์ดˆ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด ์ตํž ์ˆ˜ ์žˆ๋‹ค. (advanced)
๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ๋ฅผ ์ ์šฉํ•˜๊ฑฐ๋‚˜, ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํ•จ์ˆ˜๋ฅผ ๋”ฐ๋กœ ๋ถ„๋ฆฌํ•ด์„œ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค. (advanced)

 

 



css ํŒŒ์ผ๊ณผ class๋ฅผ ์กฐํ•ฉํ•˜๋Š” ๊ฒƒ์ด ํ˜„์—…์—์„œ ๋งŽ์ด ์“ฐ์ธ๋‹ค. 

 

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ์Šคํƒ€์ผ์„ ์ง์ ‘ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์™œ, ๋ณดํ†ต CSS ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐ„์ ‘์ ์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ• ๊นŒ??

๊ทธ ์ด์œ ๋Š”!

 

1.๋””์ž์ธ์˜ ๋””ํ…Œ์ผํ•œ ์š”์†Œ๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ์— ๋‹ด๊ธฐ๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด

2. ๋”ฐ๋กœ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜๋ฉด, ํ•ด๋‹น ๋””์ž์ธ์„ ๋””์ž์ด๋„ˆ๊ฐ€ ์‰ฝ๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—
3. CSS๋Š” ๋””์ž์ธ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋กœ์ง์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด

 

์ฆ‰, "๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ ๋•Œ๋ฌธ์ด๋‹ค"

 

Separation of concerns - Wikipedia

From Wikipedia, the free encyclopedia Jump to navigation Jump to search Design principle for computer programming In computer science, separation of concerns (SoC) is a design principle for separating a computer program into distinct sections. Each section

en.wikipedia.org

 

 

 

 

์ด๋ฒคํŠธ ์†์„ฑ(onclick)์— ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋“ฑ๋กํ•  ๋•Œ์—๋Š” ํ•จ์ˆ˜ ๊ทธ ์ž์ฒด๋กœ ๋“ฑ๋กํ•ด์•ผ ํ•œ๋‹ค. ํ•จ์ˆ˜ ์‹คํ–‰์„ ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.

 

x

function handler() {
  console.log('๋ฒ„ํŠผ์ด ๋ˆŒ๋ ธ์Šต๋‹ˆ๋‹ค!');
}

btn.onclick = handler();

o

function handler() {
  console.log('๋ฒ„ํŠผ์ด ๋ˆŒ๋ ธ์Šต๋‹ˆ๋‹ค!');
}

btn.onclick = handler;