πŸ“ƒ Front-End

πŸ“ƒ Front-End/TypeScript

Interface ( μΈν„°νŽ˜μ΄μŠ€ )

μΈν„°νŽ˜μ΄μŠ€λŠ” μƒν˜Έ 간에 μ •μ˜ν•œ 약속 ν˜Ήμ€ κ·œμΉ™μ„ μ˜λ―Έν•©λ‹ˆλ‹€. νƒ€μž…μŠ€ν¬λ¦½νŠΈμ—μ„œ λ°˜λ³΅λ˜λŠ” νƒ€μž…λ“€μ„ λͺ¨μ•„μ„œ ν•˜λ‚˜μ˜ μΈν„°νŽ˜μ΄μŠ€λ‘œ μ •μ˜λ₯Ό ν•˜μ—¬ μ‚¬μš© ν•©λ‹ˆλ‹€. βœ” λ³€μˆ˜μ— ν™œμš©ν•œ μΈν„°νŽ˜μ΄μŠ€ μ‚¬μš©ν•  λ•Œ λ°˜λ“œμ‹œ μΈν„°νŽ˜μ΄μŠ€μ— μžˆλŠ” 속성을 μ •μ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. // μΈν„°νŽ˜μ΄μŠ€ μ„ μ–Έ interface User { age: number; name: string; } let hyunho: User = { age: 26, name: 'ν˜„ν˜Έ' } βœ” ν•¨μˆ˜μ— ν™œμš©ν•œ μΈν„°νŽ˜μ΄μŠ€ μΈμžμ— μΈν„°νŽ˜μ΄μŠ€λ₯Ό 적용 -> νŠΉμ • ν˜•μ‹μ„ μ€€μˆ˜ν•˜λŠ” λ°μ΄ν„°λ§Œ λ°›κ² λ‹€κ³  μ •μ˜ ν•©λ‹ˆλ‹€. interface User { age: number; name: string; } function getUser(user: User){ console.log(user); } cons..

πŸ“ƒ Front-End/TypeScript

νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ ν•¨μˆ˜

βœ” ν•¨μˆ˜μ˜ νŒŒλΌλ―Έν„°(λ§€κ°œλ³€μˆ˜) νƒ€μž… function sum(a: number, b: number){ return a + b; } sum(10,20); βœ” ν•¨μˆ˜μ˜ λ°˜ν™˜ κ°’ 에 νƒ€μž…μ„ μ •μ˜ν•˜λŠ” 방식 function add(): number{ return 10; } βœ” ν•¨μˆ˜μ˜ 기본적인 νƒ€μž… μ„ μ–Έ // JS function sum(a, b) { return a + b; } // TS function sum(a: number, b: number): number { return a + b; } βœ” ν•¨μˆ˜μ˜ μ˜΅μ…”λ„ νŒŒλΌλ―Έν„° (선택적 νŒŒλΌλ―Έν„°) νƒ€μž…μŠ€ν¬λ¦½νŠΈμ—μ„œλŠ” ν•¨μˆ˜μ˜ 인자λ₯Ό λͺ¨λ‘ ν•„μˆ˜ κ°’μœΌλ‘œ κ°„μ£Όν•©λ‹ˆλ‹€. 즉, μ •μ˜λœ λ§€κ°œλ³€μˆ˜ κ°’λ§Œ 받을 수 있고 μΆ”κ°€λ‘œ 인자λ₯Ό 받을 수 μ—†λ‹€λŠ” μ˜λ―Έμž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ ν•„μš”μ— λ”°λΌμ„œ μ„ νƒμ μœΌλ‘œ..

πŸ“ƒ Front-End/TypeScript

νƒ€μž…μŠ€ν¬λ¦½νŠΈ κΈ°λ³Έ νƒ€μž…

νƒ€μž…μŠ€ν¬λ¦½νŠΈλ‘œ λ³€μˆ˜λ‚˜ ν•¨μˆ˜μ™€ 같은 μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œμ— νƒ€μž…μ„ μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. βœ” νƒ€μž… ν‘œκΈ°(Type Annotation) : λ₯Ό μ΄μš©ν•˜μ—¬ μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œμ— νƒ€μž…μ„ μ •μ˜ν•˜λŠ” 방식 βœ” String // κΈ°λ³Έ JS μ„ μ–Έ const str = 'hello'; // TS λ¬Έμžμ—΄ μ„ μ–Έ const str: string = 'hello'; βœ” Number let num: number = 10; βœ” Array let arr: Array = [1,2,3]; let heroes: Array = ['captin','thor','hulk'] // 숫자λ₯Ό λ„£μœΌλ©΄ μ—λŸ¬ let items : number[] = [1,2,3]; βœ” Tuple λ°°μ—΄μ˜ 길이가 κ³ μ •λ˜κ³  각 μš”μ†Œμ˜ νƒ€μž…μ΄ μ§€μ •λ˜μ–΄ μžˆλŠ” λ°°μ—΄ ν˜•μ‹ μž…λ‹ˆλ‹€. let a..

πŸ“ƒ Front-End/TypeScript

TypeScript

νƒ€μž…μŠ€ν¬λ¦½νŠΈλž€ ❓ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ ν™•μž₯된 언어라고 λ³Ό 수 있으며, μžλ°”μŠ€ν¬λ¦½νŠΈμ— νƒ€μž…μ„ λΆ€μ—¬ν•œ μ–Έμ–΄ μž…λ‹ˆλ‹€. λΈŒλΌμš°μ €μ—μ„œλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό μ‹€ν–‰ ν•  수 μ—†κΈ° λ•Œλ¬Έμ— 컴파일(complile) 과정을 거쳐야 ν•©λ‹ˆλ‹€. TypeScript vs JavaScript ❓ TypeScript JavaScript λ™μ νƒ€μž… μ–Έμ–΄ μ •μ νƒ€μž… μ–Έμ–΄ 인터프리터 μ–Έμ–΄ 컴파일 μ–Έμ–΄ μžλ°”μŠ€ν¬λ¦½νŠΈμ— μ˜μ‘΄μ μž„ λ…λ¦½μ μœΌλ‘œ μ‚¬μš© κ°€λŠ₯ 더 λ‚˜μ€ ꡬ쑰와 간결함, 일관성, μž¬μ‚¬μš©μ„± μ’€ 더 μœ μ—°ν•¨ (νƒ€μž…μ— μ œν•œμ„ 받지 μ•ŠμœΌλ―€λ‘œ) .ts ν™•μž₯자 .js ν™•μž₯자 λ³΅μž‘ν•œ ν”„λ‘œμ νŠΈμ— 적합함 μž‘κ³  κ°„λ‹¨ν•œ ν”„λ‘œμ νŠΈμ— 적합함 νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ“°λŠ” 이유 ❓ βœ” μ—λŸ¬μ˜ 사전 방지 // math.js function sum(a, b) { return a + b; } // ..

πŸ“ƒ Front-End/JavaScript

Spread μ—°μ‚°μž

객체의 값을 μƒˆλ‘œμš΄ 객체에 νŽΌμ³μ£ΌλŠ” μ—­ν• , λ°°μ—΄μ—μ„œλ„ μ‚¬μš© κ°€λŠ₯ μ€‘λ³΅λœ 속성을 μž‘μ„±ν•΄μ•Ό ν•˜λŠ” 상황 const cookie = { base : "cookie", madeIn : "korea" }; const chocoCookie = { base : "cookie", madeIn : "korea", toping : "choco" }; const bananaCookie = { base : "cookie", madeIn : "korea", toping : "banana" }; Spread μ—°μ‚°μž μ‚¬μš© const cookie = { base : "cookie", madeIn : "korea" }; const chocoCookie = { ...cookie, toping : "choco" }; const banana..

πŸ“ƒ Front-End/JavaScript

λ°°μ—΄ λ‚΄μž₯ν•¨μˆ˜ - 2

배열을 필터링 ν•˜κΈ° filter μ „λ‹¬ν•œ 콜백 ν•¨μˆ˜κ°€ Trueλ₯Ό λ°˜ν™˜ν•˜λŠ” λͺ¨λ“  μš”μ†Œλ₯Ό μƒˆλ‘œμš΄ λ°°μ—΄λ‘œ λ°˜ν™˜ λ°°μ—΄μ—μ„œ μ–΄λ– ν•œ νŠΉμ •ν•œ 쑰건을 λ§Œμ‘±ν•˜λŠ” μš”μ†Œλ“€μ„ λ‹€μ‹œκΈˆ μƒˆλ‘œμš΄ λ°°μ—΄λ‘œ λ°˜ν™˜ λ°›κ³  싢을 λ•Œ μ‚¬μš© ν•©λ‹ˆλ‹€. const arr = [ { num: 1, color : "red" }, { num: 2, color : "black" }, { num: 3, color : "blue" }, { num: 4, color : "green" }, { num: 5, color : "blue" } ] // color = blue 만 κ°€μ Έμ˜€κΈ° const.log(arr.filter((elm) => elm.color === "blue")); // 3번과 5λ²ˆμ„ λ°°μ—΄λ‘œ λ°˜ν™˜ λ°°μ—΄ 자λ₯΄κΈ° slice(μ‹œμž‘μ§€μ , λ§ˆμ§€λ§‰μ§€μ ) 인자λ₯Ό μ „..

πŸ“ƒ Front-End/CSS

Sass(SCSS)

CSS μ „μ²˜λ¦¬κΈ°λ‘œμ„œ CSS의 ν•œκ³„λ‚˜ 단점을 λ³΄μ™„ν•˜κΈ° μœ„ν•΄ λ§Œλ“€μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€. SASS 에 SCSSκ°€ ν¬ν•¨λ˜μ–΄ μžˆλŠ”λ°, SCSSλŠ” SASS 3번째 λ²„μ „μ—μ„œ μΆ”κ°€λ˜μ—ˆκ³ , SASS의 λͺ¨λ“  κΈ°λŠ₯을 μ§€μ›ν•˜λ©΄μ„œ CSS ꡬ문과 μ™„μ „νžˆ ν˜Έν™˜λ˜λ„λ‘ λ§Œλ“€μ–΄μ‘ŒμŠ΅λ‹ˆλ‹€. μ£Όμš” κΈ°λŠ₯ λ³€μˆ˜ μ„€μ • $ν‘œμ‹œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ³€μˆ˜λͺ…을 지정할 수 μžˆμŠ΅λ‹ˆλ‹€. $hongsi-1: 1; $HONGSI_2 : 2; $hongsi: 'hongsi'; 반볡적으둜 μ‚¬μš©λ˜λŠ” ν°νŠΈλ‚˜ 색상 등을 λ³€μˆ˜λ‘œ 지정해 κ°„λ‹¨ν•˜κ²Œ μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ·œμΉ™ 문자λ₯Ό 넣을 λ•Œ '' μ‚¬μš© μœ μ˜μ‚¬ν•­ : μ•ŒνŒŒλ²³, -, _, 123 μ‚¬μš© κ°€λŠ₯ λŒ€μ†Œλ¬Έμž ꡬ뢄 숫자둜 λ³€μˆ˜λͺ… μ‹œμž‘ X Nesting(쀑첩) SASSμ—μ„œλŠ” Nesting κΈ°λŠ₯을 μ‚¬μš©ν•΄ μƒμœ„ μ„ νƒμžμ˜ λ°˜λ³΅μ„ ν”Όν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ..

πŸ“ƒ Front-End/CSS

background-img 경둜

ν”„λ‘œμ νŠΈ 진행 쀑 경둜 문제 발견 배경에 이미지λ₯Ό λ„£μ–΄μ•Ό ν•˜λŠ”λ° λœ¨μ§€ μ•Šμ•„μ„œ μ˜€νƒ€μΈκ°€, μ•„λ‹ˆλ©΄ 크기 지정인가 문제λ₯Ό μ°Ύλ‹€κ°€ 경둜 λ¬Έμ œλΌλŠ” 사싀을 μ•Œκ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 경둜 μ„€μ • 방법 μ ˆλŒ€κ²½λ‘œ μ§€μ •λ˜μ–΄ μžˆμ–΄ λ³€κ²½ ν•  수 μ—†λŠ” 경둜 νŽ˜μ΄μ§€ μ•ˆμ— λ‹€λ₯Έ μ„œλ²„μ— μžˆλŠ” μ΄λ―Έμ§€λ‚˜ νŽ˜μ΄μ§€ λ“±μ˜ νŒŒμΌμ„ μ—°κ²° ν•  λ•Œ μ‚¬μš© ν•©λ‹ˆλ‹€. λ°”λ‘œκ°€κΈ° μƒλŒ€κ²½λ‘œ μƒλŒ€μ μœΌλ‘œ λ³€κ²½ 될 수 μžˆλŠ” 경둜 1. ν˜„μž¬ νŒŒμΌμ„ κΈ°μ€€μœΌλ‘œ 동일 μœ„μΉ˜λ‘œ μ—°κ²°λ˜λŠ” 경우 index.html 파일이 μ €μž₯된 μœ„μΉ˜λ₯Ό κΈ°μ€€μœΌλ‘œ background.png νŒŒμΌμ€ λ™μΌν•œ μœ„μΉ˜μ— 있기 λ•Œλ¬Έμ— 파일λͺ…κ³Ό ν™•μž₯자λ₯Ό ν•¨κ»˜ μ“°λ©΄ λ©λ‹ˆλ‹€. 2. ν˜„μž¬ νŒŒμΌμ„ κΈ°μ€€μœΌλ‘œ ν•˜μœ„ ν΄λ”λ‘œ μ—°κ²°λ˜λŠ” 경우 index.html 파일이 μ €μž₯된 μœ„μΉ˜λ₯Ό κΈ°μ€€μœΌλ‘œ logo.png νŒŒμΌμ„ μ°Ύμ•„κ°ˆ 수 μžˆλ„λ‘ κ²½..

HoHo.dev
'πŸ“ƒ Front-End' μΉ΄ν…Œκ³ λ¦¬μ˜ κΈ€ λͺ©λ‘ (12 Page)