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

Retrospect

์›”๊ฐ„ ํ‚ค์›Œ๋“œ - 2021๋…„ 11์›”

 

 

 

๐Ÿ’ป  ํŒจํ„ด

Week 1

ํ•˜์ดํผ๋งํฌ์˜ ํž˜ ๋•๋ถ„์— ์šฐ์—ฐํžˆ VACํŒจํ„ด์„ ์†Œ๊ฐœํ•˜๋Š” ๊ธ€์„ ๋งŒ๋‚ฌ๋‹ค. UI์™€ ๋กœ์ง์„ ์‚ด์งœ์ฟต ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
๊ทธ๋™์•ˆ ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์—์„œ ๋กœ์ง์ด 50์ค„~100์ค„ ๋„˜์–ด๊ฐ€๋ฉด ํœ ์„ ์œ„์•„๋ž˜๋กœ ๋‚ด๋ฆฌ๋‹ค๊ฐ€ '๋„ˆ๋ฌด ๊ธด๋ฐ?'ํ•˜๊ณ  ๋ณ„ ๊ณ ๋ฏผ ์—†์ด ์ปค์Šคํ…€ ํ›…์„ ๋งŒ๋“ค์–ด์„œ ๋นผ๊ณคํ–ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ๋ณดํ†ต ์ปค์Šคํ…€ํ›…์€ hooks ๋””๋ ‰ํ† ๋ฆฌ์— ๋ชจ์•„๋†“๊ธฐ ๋•Œ๋ฌธ์— ์ ‘๊ทผ์„ฑ์ด ์ข‹์ง€๋Š” ์•Š์•˜๋‹ค. VACํŒจํ„ด ๋Œ€๋กœ ์ž‘์„ฑํ•˜๋ฉด ์ด ๋ฐฉ์‹๋Œ€๋กœ ํ•˜๋ฉด ๋ถ„๋ฆฌ๋งŒ์„ ์œ„ํ•œ ๋ถ„๋ฆฌ ์šฉ๋„์˜ ์ปค์Šคํ…€ํ›…์„ ์ง€๊ธˆ๋ณด๋‹ค ๋งŽ์ด ์•ˆ ๋งŒ๋“ค์–ด๋„ ๋  ๊ฒƒ ๊ฐ™๋‹ค.

๋‹จ์ ์„ ๋ฏธ๋ฆฌ ์˜ˆ์ƒํ•ด๋ณด์ž๋ฉด ์—„์ฒญ ๊ฐ„๋‹จํ•œ ๋กœ์ง์ด ์งค๋ง‰ํ•˜๊ฒŒ ๋“ค์–ด๊ฐ„ ์ปดํฌ๋„ŒํŠธ์ด๋”๋ผ๋„ ํŒŒ์ผ์„ 2๊ฐœ์”ฉ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋Š” ์ ์ด ๋ฒˆ๊ฑฐ๋กœ์šธ ์ˆ˜ ์žˆ๊ฒ ๋‹ค. ๊ทธ๋Ÿผ jsx๋ฅผ ์Šคํƒ€์ผ๋“œ ์ปดํฌ๋„ŒํŠธ ์ •์˜ํ•ด ๋‘๋Š” style.js๋ž‘ ํ†ตํ•ฉํ•ด์„œ ์ตœ์ƒ๋‹จ์—๋Š” view ๋จผ์ € ์ •์˜ํ•˜๊ณ  ํ•˜๋‹จ์—๋Š” ์Šคํƒ€์ผ๋“œ ์ปดํฌ๋„ŒํŠธ๋ฅผ function ํ‚ค์›Œ๋“œ๋กœ ํ˜ธ์ด์ŠคํŒ… ์‹œ์ผœ์„œ ์“ฐ๋ฉด ์–ด๋–จ๊นŒ ์‹ถ๋‹ค.

Week 2

JSX ๊ตฌ์กฐ๋ฅผ view์— ์˜ฎ๊ฒจ๋†“์œผ๋‹ˆ, ์Šคํƒ€์ผ ๋”๋ฏธ์— ๊ฐ€๋ ค์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์Šคํƒ€์ผ๊ณผ JSX๋Š” ๋‘ ๊ฐœ์˜ ์ฐฝ์œผ๋กœ ๋ณ‘๋ ฌ์ ์œผ๋กœ ๋ณด๋Š”๊ฒŒ ๋” ํŽธํ•ด์„œ ์›๋ž˜ ๊ตฌ์กฐ๋Œ€๋กœ ๋Œ์•„๊ฐ”๋‹ค...

Week 4

์ง€๊ธˆ๊นŒ์ง€ ๋ชจ๋“  ์ƒ์ˆ˜๋ฅผ constants/ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๊ด€๋ฆฌํ•ด ์™”๋Š”๋ฐ, ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ๋Š๊ปด์ ธ์„œ ์Šคํƒ€์ผ ๊ด€๋ จ ์ƒ์ˆ˜๋Š” styels/ ๋””๋ ‰ํ† ๋ฆฌ์— api ๊ด€๋ จ ์ƒ์ˆ˜๋Š” service/ ๋””๋ ‰ํ† ๋ฆฌ์— ๋„ฃ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝํ•ด๋ณด์•˜๋‹ค. ์ด ๋ฐฉ๋ฒ•์ด ๋” ํŽธ์˜์„ฑ์ด ์ข‹์€์ง€๋Š” ์•ž์œผ๋กœ ๋” ๊ณ ๋ฏผํ•ด๋ด์•ผ๊ฒ ๋‹ค.

 

 

๐Ÿ’ป TypeScript

Week 1

๋‚˜์˜ ์ตœ๋Œ€ ๊ธฐ์ˆ ๋ถ€์ฑ„ TypeScript๋ฅผ ์ฒญ์‚ฐํ•˜์ž. ๋งˆ์šฐ์Šค ํ˜ธ๋ฒ„๋งŒ์œผ๋กœ ์–ด๋–ค prop์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ๋Š” ํ˜œํƒ๋„ ๋ˆ„๋ ค๋ณด์ž. ์ดํŽ™ํ‹ฐ๋ธŒ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ‹ˆํ‹ˆ์ด ๋ณด์ž.

Week 2

๊ฐœ์ธ ํ”„๋กœ์ ํŠธ์—์„œ JS to TS ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•˜๊ณ  ์žˆ๋‹ค. ์ฝ”๋“œ ์ž‘์„ฑํ•˜๋Š” ์ค‘์— ๋ฐ”๋กœ ์—๋””ํ„ฐ ์ƒ์—์„œ ์—๋Ÿฌ๋ฅผ ํ‘œ์‹œํ•ด์ฃผ๋‹ˆ๊นŒ ๋‡Œ๊ฐ€ ๋ง‘์•„์ง€๋Š” ๋Š๋‚Œ์ด ๋“ ๋‹ค. '์ฐธ์กฐํ•˜๋ ค๋Š” ๊ฐ์ฒด๊ฐ€ undefined' ๋ผ๋Š” ์—๋Ÿฌ์™€ ์ด์ œ ํ—ค์–ด์งˆ ์ˆ˜ ์žˆ๋Š”๊ฑธ๊นŒ? ์ƒ์‚ฐ์„ฑ์ด ๋ฌด์ง„์žฅ ํ–ฅ์ƒ๋  ๊ฒƒ ๊ฐ™๋‹ค.

Week 3

props๋ฅผ destructuring ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ถ”๊ฐ€ํ•œ readonly ๋Š” ํšจ๊ณผ๊ฐ€ ์—†๋‹ค. destructuring ์ค‘ let color = 'primary' ์™€ ๊ฐ™์ด ์‹๋ณ„์ž๋ฅผ ์ƒˆ๋กœ ์„ ์–ธํ•˜๋Š” ๊ณผ์ •์ด ์ผ์–ด๋‚˜๊ณ , ์ด๋•Œ๋ถ€ํ„ฐ ๋” ์ด์ƒ Prop.color๊ฐ€ ์•„๋‹ˆ๊ณ  ๊ทธ๋ƒฅ color๊ฐ€ ๋˜์–ด ์ง€์ •ํ•œ ํƒ€์ž…๊ณผ์˜ ๋งํฌ๊ฐ€ ๋Š๊ธฐ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค.

interface Props extends ButtonHTMLAttributes<HTMLButtonElement> {
  readonly color?: 'primary' | 'secondary' | 'gradient'; 
}

const Button = ({
  color = 'primary',
  ...rest
}: Props) => {
  color = 'secondary'; // can be assigned
  ...
}
interface Props extends ButtonHTMLAttributes<HTMLButtonElement> {
  color?: 'primary' | 'secondary' | 'gradient'; 
}

const Button = ({
  color = 'primary',
  ...rest
}: Readonly<Props>) => {
  color = 'secondary'; // can be assigned
  ...
}

Week4

๋ฆฌ์•กํŠธ Portal ์„ ์ด์šฉํ•ด Modal ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค. ๋งŒ๋“ค๋ฉด์„œ ์ฑ ํฌ๋ผ, ์—”ํŠธ๋”” ๋“ฑ UI ์˜คํ”ˆ์†Œ์Šค๋ฅผ ์ฐธ๊ณ ํ–ˆ๋Š”๋ฐ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์œ ์šฉํ•œ prop ์„ ์ง€์›ํ•˜๊ณ  ์žˆ์–ด์„œ ์ข‹์€ ์ฐธ๊ณ ๊ฐ€ ๋˜์—ˆ๋‹ค. ์ด๋ฅผ ์ฐธ๊ณ ํ•ด์„œ slideDirection์„ ์ฃผ๋ฉด Modal ์ด ๋‚˜ํƒ€๋‚˜๊ณ  ์‚ฌ๋ผ์งˆ ๋•Œ ์Šฌ๋ผ์ด๋“œ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ๋“ฑ์˜ prop์„ ์ถ”๊ฐ€๋กœ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค. transtion ํšจ๊ณผ ๋„ฃ๋Š”๊ฒŒ ์žฌ๋ฐŒ์—ˆ๋‹ค.

useModal ํ›…๊ณผ Modal UI๋ฅผ ์–ด๋–ป๊ฒŒ ์—ฎ์„์ง€ ๊ณ ๋ฏผํ•˜๋‹ค useModal ์ด  Modal UI๋„ ๋ฆฌํ„ดํ•ด์ฃผ๋„๋ก ํ–ˆ๋‹ค. ๊ณ„์† ์‚ฌ์šฉํ•ด๋ณด๋ฉด์„œ ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์žˆ์„์ง€ ๊ณ ๋ฏผํ•ด๋ณด์ž. useModal์€ hooks/ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ณ„๋„๋กœ ๋นผ์ง€ ์•Š๊ณ  components/Modal/ ํ•˜์œ„์— ๊ทธ๋Œ€๋กœ ๋‘์—ˆ๋‹ค.

 

 

๐Ÿ’ป ์ปดํฌ๋„ŒํŠธ ์ž˜ ๋งŒ๋“ค๊ธฐ

Week 1

์ปดํฌ๋„ŒํŠธ๋ฅผ ์ž˜ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค. ์•„์ฃผ ์ž˜ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค. ์ตœ๊ทผ FE Conf 2021 ์˜์–ด์ž๋ง‰ ์ž‘์—…์— ์ฐธ์—ฌํ•˜๋ฉด์„œ ์ด๋ณ‘์ฒ  UX Engineer๋‹˜์˜ ๋ฐœํ‘œ ์˜์ƒ์„ ๋ฐ˜๋ณตํ•ด์„œ ๋ดค๋‹ค. (100๋ฒˆ์€ ๋„˜๊ฒŒ ๋ดค๋‹ค.) ์ข‹์€ ๋””์ž์ธ ์ˆ˜์ •์‚ฌํ•ญ์ด ์ƒ๊ฒจ๋„ ํฐ ์ˆ˜์ • ์—†์ด ๋ฐ”๋กœ๋ฐ”๋กœ ๋Œ€์‘์ด ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋Š” ์š•์‹ฌ์ด ์ปค์กŒ๋‹ค.

์˜์ƒ ์ค‘์— ํ•œ ์˜ˆ์‹œ๋กœ, ์นด๋“œ ์•ˆ์— 2๊ฐœ์˜ ๋ฒ„ํŠผ์ด ๊ฐ€๋กœ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋‹ค๊ฐ€, ํ•œ ๋ฒ„ํŠผ์˜ ํ…์ŠคํŠธ prop์ด ๊ธธ์–ด์ ธ์„œ ์ „์ฒด ๋„ˆ๋น„์˜ 50%๊ฐ€ ๋„˜์–ด๊ฐ€๋ฉด "์•Œ์•„์„œ" ์„ธ๋กœ ์ •๋ ฌ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๊ตฌํ˜„๋œ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์†Œ๊ฐœ๋˜์—ˆ๋‹ค. ์ž˜ ๋งŒ๋“  ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ค๋ช…ํ•ด์ฃผ์‹œ๊ธฐ ์œ„ํ•œ ์˜ˆ์‹œ๋Š” ์•„๋‹ˆ์—ˆ๋Š”๋ฐ, ์ด ์ปดํฌ๋„ŒํŠธ์˜ ๊ตฌํ˜„ ์ž์ฒด์— ๊ฝ‚ํ˜”๋‹ค. ์ฃผ๋ณ€ ๋™๋ฃŒ๋“ค์ด๋ž‘ ์–˜๊ธฐํ•˜๋ฉด์„œ getComputedStyle ๋“ฑ์œผ๋กœ width๋ฅผ ์ฝ์–ด์™€์„œ ์นด๋“œ์˜ 50% ๋ณด๋‹ค ๋ฒ„ํŠผ์ด ํฌ๋ฉด ๋™์ ์œผ๋กœ ์Šคํƒ€์ผ์„ ๋ณ€๊ฒฝํ•ด์ฃผ๋Š” ๊ตฌํ˜„๋ฐฉ์‹์„ ์ƒ๊ฐํ–ˆ์—ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ •๋‹ต์€ ๊ฐ„๋‹จํ•˜๊ฒŒ flex-wrap์„ ๊ฑธ์–ด์ฃผ๋Š” ๊ฒƒ์ด์—ˆ๋‹ค... ์ผ๋‹จ ์˜คํ”ˆ์†Œ์Šค๋ฅผ ๋” ์ ๊ทน์ ์œผ๋กœ ์‚ดํŽด๋ณด๋ฉด์„œ ์ข‹์€ ์‚ฌ๋ก€๋“ค์„ ๋งŽ์ด ์ตํ˜€์•ผ๊ฒ ๋‹ค.

์˜คํ”ˆ์†Œ์Šค๋ฅผ ๋ณด๋ฉด์„œ ๊ฐ UI๋ณ„๋กœ ์–ด๋–ค props๋ฅผ ์ง€์›ํ•˜๋Š”์ง€๋„ ์ž˜ ๊ธฐ๋กํ•ด๋†”์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Input์ด๋‚˜ Button ๊ฐ™์€ ๊ฒฝ์šฐ์— ์˜ค๋ฅธ์ชฝ์— icon์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ๋‚˜๋ฉด, ์–ธ์  ๊ฐ€ ๋˜ ์™ผ์ชฝ์— icon์„ ๋„ฃ๊ณ ์‹ถ์„ ์ˆ˜๋„ ์žˆ๋‹ค. ํ˜น์€ ์–‘์ชฝ ๋‹ค ๋„ฃ๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ๋‹ค. ์ฃผ์†Œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒ€์ƒ‰์ฐฝ์ด๋ผ๋ฉด, ์™ผ์ชฝ์—๋Š” ์ง‘๋ชจ์–‘ ์•„์ด์ฝ˜์„ ์˜ค๋ฅธ์ชฝ์—๋Š” ๋‹๋ณด๊ธฐ ์•„์ด์ฝ˜์„ ๋„ฃ๊ณ  ์‹ถ์„ ์ˆ˜ ์žˆ๋‹ค.
์ด๋Ÿฐ ์ผ€์ด์Šค๋“ค์„ ๋‚ด ๊ฒฝํ—˜์ˆ˜์ค€์—์„œ ๋ฏธ๋ฆฌ ๋‹ค ์•Œ ์ˆ˜๋Š” ์—†์œผ๋‹ˆ, ์†Œ์Šค๋ฅผ ๊ด€์ฐฐํ•  ๋•Œ ๋ˆˆ์—ฌ๊ฒจ ๋ณด๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

Week 2

variant๊ฐ€ ๋งŽ๊ณ  ์—ฐ์Šต์ด ๋  ๋งŒํ•œ Button, Input ๋“ค์„ ๋งŒ๋“ค์–ด๋ณด์•˜๋‹ค. ์ด๋“ค์„ ์กฐํ•ฉํ•˜๋Š” ButtonGroup๊ณผ Form์„ ๋‹ค์Œ์— ๋งŒ๋“ค์–ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

Week 3

๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋„๋ก, Source ์ปดํฌ๋„ŒํŠธ๋ฅผ ์กฐํ•ฉํ•ด์„œ Picture ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

 

๐Ÿ’ป CSS

Week 1

์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ๋””์ž์ธ์„ ๋š-๋”ฑ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ๊ฐ–๊ณ ์‹ถ๋‹ค.

ํ”ผํ„ฐ์—๊ฒŒ ๋ฌผ์–ด๋ณด๋‹ˆ canvas๋ฅผ ํ™œ์šฉํ•ด์„œ ๊ณต์ด ํŠ€๊ธฐ๋Š” ํšจ๊ณผ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” 10๋ถ„์งœ๋ฆฌ ์œ ํŠœ๋ธŒ ์˜์ƒ์„ ์ถ”์ฒœํ•ด์ฃผ์—ˆ๋‹ค. ๊น€์ข…๋ฏผ ์—”์ง€๋‹ˆ์–ด๋‹˜์˜ ์ฑ„๋„์ด์–ด์„œ ๋ฐ”๋กœ ๊ตฌ๋…ํ–ˆ๋‹ค. ๊น€์ข…๋ฏผ ๋‹˜์ด ์“ฐ์‹  '์ผ์€ ๋ฐฐ์‹ ํ•˜์ง€ ์•Š๋Š”๋‹ค' ์ฑ…๋„ ์˜ฌํ•ด๊ฐ€ ๊ฐ€๊ธฐ ์ „์— ๊ผญ ์ฝ์–ด๋ด์•ผ๊ฒ ๋‹ค.
์ธํ”„๋Ÿฐ์— ์• ํ”Œ ๋žœ๋”ฉํŽ˜์ด์ง€ ์ธํ„ฐ๋ž™์…˜์„ ์žฌํ˜„ํ•ด๋ณด๋Š” ๊ฐ•์˜๋„ ์žˆ๋˜๋ฐ ๊ทธ๊ฒƒ๋„ ๋นจ๋ฆฌ ๊ตฌํ˜„๋Šฅ๋ ฅ์„ ํƒ‘์žฌํ•˜๋Š” ์ง€๋ฆ„๊ธธ ๊ฐ™์•„ ๋ณด์ธ๋‹ค.

Week 3

styled-components์„ ์“ฐ๋‹ค๊ฐ€ ๊ฐ€๋ฒผ์šด emotion์œผ๋กœ ๋„˜์–ด์˜ค๊ธด ํ–ˆ๋Š”๋ฐ, pure css๊ฐ€ ์•„๋‹ˆ๋ผ CSS-in-JS๋ฅผ ๊ผญ ์จ์•ผํ•˜๋Š” ์ด์œ ๊ฐ€ ์žˆ์„๊นŒ? ๋‚˜์˜ ์ด๋Ÿฐ ๊ณ ๋ฏผ์— ๋Œ€ํ•ด ์„ ๋ฐฐ ๊ฐœ๋ฐœ์ž๋‹˜(?)๊ป˜์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํžŒํŠธ๋ฅผ ์ฃผ์…จ๋‹ค.

'๋ชจ๋“  ์ผ์—๋Š” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์žˆ๋‹ค. ์„ฑ๋Šฅ์ด ์šฐ์„ ์ธ์ง€, ๊ฐœ๋ฐœ์†๋„์™€ ํŽธ์˜์„ฑ์ด ์šฐ์„ ์ธ์ง€์— ๋”ฐ๋ผ ๊ฒฐ์ •ํ•˜๋ฉด ๋œ๋‹ค.'

๊ทธ๋ฆฌ๊ณ  zero-runtime ์ด๋ผ๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ ‘ํ–ˆ๋‹ค. CSS-in-JS๋กœ ์ธํ•œ ์„ฑ๋Šฅ ์ด์Šˆ๋ฅผ ๊ฒช๊ฒŒ๋˜๋ฉด stitches ๋˜๋Š” linaria ๋ฅผ ์ผ๋ถ€ ๋„์ž…ํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค. (์ฐธ๊ณ : CSS-in-JS ๋ฌด์—‡์ด ๋‹ค๋ฅธ๊ฐ€์š”?)

Week 4

์ข‹์€ ์œ ํŠœ๋ธŒ ์ฑ„๋„์„ ์ฐพ์•˜๋‹ค. Kevin Powell ์ด๋ผ๋Š” ์ฑ„๋„๊ณผ DesignCourse ๋ผ๋Š” ์ฑ„๋„์ด๋‹ค. ๊ตฌ๋… ํ›„ ์ถ”์ฒœ ๋ชฉ๋ก์— ๋œจ๋Š” ์˜์ƒ์„ ํ•˜๋‚˜์”ฉ ๋ณด๊ณ ์žˆ๋Š”๋ฐ ์˜์ƒ ํ€„๋ฆฌํ‹ฐ๋„ ์ข‹๊ณ  ๋‚ด์šฉ๋„ ๋งŽ์ด ์–ด๋ ต์ง€ ์•Š์œผ๋ฉด์„œ๋„ ๋ฌด์—‡๋ณด๋‹ค ์žฌ๋ฏธ์žˆ๋‹ค.

 

 

๐Ÿ’ป ํ•™์Šต ๋ฃจํ‹ด ๋งŒ๋“ค๊ธฐ

Week 1

JavaScript Weekly, FrontEnd Weekly, Kent ํ˜•๋‹˜์ด ๋ณด๋‚ด์ฃผ์‹œ๋Š” ๋‰ด์Šค๋ ˆํ„ฐ๋ฅผ ํ™œ์šฉํ•ด์„œ ๊พธ์ค€ํžˆ ํŠธ๋ Œ๋“œ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋Š” ํ™˜๊ฒฝ์ด ์žˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค. ๊ทธ๋Ÿฐ ์Šคํ„ฐ๋””๊ฐ€ ์žˆ์œผ๋ฉด  ์˜์–ด๊ณต๋ถ€๋„ ๋˜๊ณ  1์„ 2์กฐ ์•„๋‹๊นŒ.

์Šคํ„ฐ๋””๋ฅผ ๋‹น์žฅ ๋งŒ๋“ค๊ธฐ๋Š” ์กฐ๊ธˆ ๋ถ€๋‹ด๋˜๋‹ˆ ์šฐ์„ ์€ ์ž ์‹œ ์žŠ๊ณ ์žˆ๋˜ Feedly๋ฅผ ์ž˜ ์ด์šฉํ•˜์ž. ์Šคํ„ฐ๋””๋Š” 12์›”์— ๊ตฌํ•ด๋ด์•ผ๊ฒ ๋‹ค.

Week 3

์นด์นด์˜คํ”„๋กœ์ ํŠธ100 ์ด ์œ ์บ”๋‘๋กœ ๋ฐ”๋€Œ์—ˆ๋‹ค. 11์›” 29์ผ๊นŒ์ง€ ๊ฐœ์„ค์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ง€๊ธˆ ๋‹น์žฅ ์ฝ๊ณ  ์‹ถ์€ ์ฑ…์„ ์ฃผ์ œ๋กœ ์ •ํ•ด์„œ ํ•ด๋‹น ์ฑ…์„ ๊ฐ™์ด ์ฝ๋Š” ์Šคํ„ฐ๋””๋ฅผ ์—ด์ง€ ์•„๋‹ˆ๋ฉด ์ข€ ๋” ๋ฒ”์šฉ์ ์ธ ์ฑŒ๋ฆฐ์ง€๋ฅผ ์—ด์ง€ ๊ณ ๋ฏผ์ด๋‹ค. ์ฑŒ๋ฆฐ์ €์Šค์˜ ๋ฐฉ์‹์ด ๋” ์ข‹์€ ๊ฒƒ ๊ฐ™์€๋ฐ UI๊ฐ€ ์ฃ ํผ ์•„์‰ฝ๋‹ค...

Week 4

๊ณ ๋ฏผ ๋์— ์œ ์บ”๋‘๋„ ํ•˜๊ณ , ์ฑŒ๋ฆฐ์ €์Šค๋„ ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ๊ฐœ์„ค์€ ๊ณ ๋ง™๊ฒŒ๋„ ํŒŒ์›Œ ์ถ”์ง„๋ ฅ์„ ๊ฐ–์ถ˜ ์›จ์ง€๊ฐ€ ๋งก์•„ ์ฃผ์—ˆ๋‹ค. ์ฝ”์น˜๋‹˜๋“ค๊ณผ 1,2,3๊ธฐ ๋ถ„๋“ค๋„ ํ•จ๊ป˜ํ•ด์„œ ์žฌ๋ฐŒ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ๋งค์ผ ๊พธ์ค€ํžˆ ์ปจํ…์ธ ๋ฅผ ํ•™์Šตํ•˜๊ณ  ํก์ˆ˜ํ•˜๋Š” ์šฉ๋„๋กœ ํ™œ์šฉํ•˜๋ ค๊ณ  ํ•œ๋‹ค. 

์œ ์บ”๋‘ ๋ชจ์ง‘

 

๊ทธ๋ฆฌ๊ณ  ๋งค์ผ ์ธ์ฆํ•  ํ•„์š”๋Š” ์—†๊ฑฐ๋‚˜ ๋ถ€๋‹ด๋˜์ง€๋งŒ ๊พธ์ค€ํžˆ ํ•˜๊ณ ์‹ถ์€ ํ™œ๋™์„ ์ฑŒ๋ฆฐ์ €์Šค์— ๊ฐœ์„คํ–ˆ๋‹ค. '์ดํŽ™ํ‹ฐ๋ธŒ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ •์ฃผํ–‰', '์ž…ํŠธ์˜ ์ฑŒ๋ฆฐ์ง€' ๋‘ ๊ฐ€์ง€ ์•„์ดํ…œ์œผ๋กœ ๊ฐœ์„คํ–ˆ๋‹ค. ์ธํ”„๋Ÿฐ์ด๋ž‘ ์˜คํ”ˆ์นดํ†ก๋ฐฉ์— ํ™๋ณด ๊ธ€์„ ํ•œ๋ฒˆ์”ฉ ์˜ฌ๋ ธ๋Š”๋ฐ ๋‘ ์ฑŒ๋ฆฐ์ง€ ๋ชจ๋‘ ์˜ˆ์ƒ๋ณด๋‹ค ๋งŽ์€ ๋ถ„๋“ค์ด ํ•จ๊ป˜ํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ–ˆ๋‹ค.

'์ดํŽ™ํ‹ฐ๋ธŒ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ •์ฃผํ–‰' ์ด ๋๋‚˜๋ฉด, ๋ฆฌํŒฉํ„ฐ๋ง2ํŒ์ด๋‚˜ ๋„คํŠธ์›Œํฌ ๊ด€๋ จ ๋„์„œ ์ •์ฃผํ–‰์„ ์ด์–ด์„œ ํ•˜๊ณ  ์‹ถ๋‹ค. '์ž…ํŠธ์˜ ์ฑŒ๋ฆฐ์ง€'๋Š” ์ด๋ฆ„์„ 1๊ธฐ๋กœ ์ •ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์ด ๋งค๋‹ฌ ๊ธฐ์ˆ˜๋ฅผ ๋Š˜๋ ค๊ฐ€๋ฉด์„œ ์žฅ๊ธฐ์ ์ธ ์ฑŒ๋ฆฐ์ง€๋กœ ์ด์–ด๋‚˜๊ฐ€๊ณ  ์‹ถ๋‹ค.

์ฑŒ๋ฆฐ์ €์Šค ๋ชจ์ง‘