Skip to content

Latest commit

Β 

History

History
130 lines (121 loc) Β· 6.45 KB

22_01_18_Tue.md

File metadata and controls

130 lines (121 loc) Β· 6.45 KB

[22.01.18.Tue] - Day 06

λ°˜μ‘ν˜• μ›Ή μ‹€μŠ΅

  • 개인 μ›Ή 포트폴리였 ν…œν”Œλ¦Ώ 자율적 μ—°μŠ΅

JavaScript

  • JSλŠ” λ°˜λ“œμ‹œ HTML μ•ˆμ—μ„œ μž‘λ™ν•¨
  • JS μ‚¬μš© 방법
    • head νƒœκ·Έ μ•ˆμ— script νƒœκ·Έ μ•ˆμ— μž‘μ„±
    • body νƒœκ·Έ μ•ˆμ— script νƒœκ·Έ μ•ˆμ— μž‘μ„±
      (body νƒœκ·Έ μ•ˆμ— style νƒœκ·Έ μž‘μ„±μ€ λΆˆκ°€λŠ₯)
    • 별도 JS 파일 λΆ„λ¦¬ν•΄μ„œ head νƒœκ·Έ μ•ˆμ— import (script:src)
      • μƒλŒ€ 경둜 지정
      • λ‚΄κ°€ μ‹€ν–‰ν•  μˆœμ„œμ— λ§žκ²Œλ” μœ„μΉ˜ μž‘μ•„μ„œ κ°€λŠ₯
  • document.write
    • 화면에 write ν•˜λŠ” JS λ‚΄μž₯ ν•¨μˆ˜
  • html λ‹€ λ§Œλ“€μ–΄μ§€κ³  λ‚˜μ„œ κ·Έ 밑에 js μ½”λ“œ μ‹€ν–‰λ˜λŠ” 것이 μ’‹μŒ
    • μ•ˆκ·ΈλŸ¬λ©΄ λ„ˆλ¬΄ 느렀질 수 있음 (λΈŒλΌμš°μ € 엔진 해석기)
    • λΈŒλΌμš°μ € 해석기가 순차적으둜 μœ„μ—μ„œ μ•„λž˜λ‘œ 해석함
      • μ½”λ“œκ°€ 수백 ~ μˆ˜μ²œμ€„μ΄ 되면 μš°μ„  script μ½”λ“œλ₯Ό λ¨Όμ € ν•΄μ„ν•˜κ²Œ λ˜μ„œ
        κ·Έ λ‹€μŒμ— HTML μ½”λ“œλ₯Ό ν•΄μ„ν•˜λ©΄ κ·Έ μ‹œκ°„ μ°¨κ°€ 였래 걸릴 수 있음
      • μ‚¬μš©μž μž…μž₯μ—μ„œλŠ” νŠΉμ • μ‚¬μ΄νŠΈμ— μ ‘μ†ν–ˆμ„ λ•Œ 화면에 λΉ λ₯΄κ²Œ λ³΄μ—¬μ§€λŠ” 것이 μ€‘μš”
      • λ Œλ”λ§μ΄ μš°μ„ λ˜λŠ” 것이 μ‚¬μš©μž μž…μž₯μ—μ„œ 더 μ€‘μš”ν•¨
    • script νƒœκ·Έμ— defer 속성 μ£Όλ©΄ λ‚˜μ€‘μ— ν•΄μ„ν•˜λŠ” 걸둜 인식
      • HTML μ½”λ“œ λͺ¨λ‘ λ Œλ”λ§ ν•˜κ³  해석함 (비둝 μœ„μ— μžˆμ§€λ§Œ)
      • μ™ΈλΆ€ 파일둜 λ§Œλ“€μ—ˆμ„ λ•Œλ§Œ defer 속성 μ‚¬μš© κ°€λŠ₯
    • 무쑰건 html μ½”λ“œ λ‹€ λ§Œλ“€μ–΄μ§€κ³  λ‚˜μ„œ body νƒœκ·Έ ν•˜λ‹¨μ— script νƒœκ·Έ μž‘μ„±ν•˜λŠ” μŠ΅κ΄€ 듀이기!
  • 개발자 도ꡬ
    • μ½˜μ†” νƒ­
      • 디버그할 λ•Œ 유용
    • Elements νƒ­
      • μˆ˜μ •ν•˜λ €κ³  계속 μ™”λ‹€κ°”λ‹€ ν•˜λŠ” 것이 λΉ„νš¨μœ¨μ μΌ 수 있음
      • 그럴 κ²½μš°μ—λŠ” Elements νƒ­μ—μ„œ 직접 μˆ˜μ •ν•΄μ„œ λ°”λ‘œ 확인 κ°€λŠ₯
      • μˆ˜μ •ν•œ μ½”λ“œ λ³΅λΆ™ν•΄μ„œ λ‹€μ‹œ VS Code에 μ‚½μž…
      • λ¬Όλ‘  λ‹€λ₯Έ μ‚¬λžŒμ΄ μž‘μ„±ν•œ μ½”λ“œ 확인 κ°€λŠ₯
    • Network νƒ­
      • λ Œλ”λ§ λ˜λŠ” 속도, μ„œλ²„λ‘œλΆ€ν„° μ—¬λŸ¬ 파일 κ°€μ Έμ˜€λŠ” 속도 λ‹€ 체크 κ°€λŠ₯
      • μ–΄λ–€ 파일 κ°€μ Έμ˜€λŠ”μ§€λ„ λ‹€ 확인 κ°€λŠ₯
      • νŒŒμΌμ„ μ–΄λ–€ ν˜•μ‹μœΌλ‘œ λ°›μ•„μ˜€λŠ”μ§€λ„ 확인 κ°€λŠ₯
  • 데이터 λ‹΄λŠ” 그릇 => λ³€μˆ˜
    • λ³€μˆ˜ μ„ μ–Έμž
      • var
      • μ΅œκ·Όμ—λŠ” λŒ€λΆ€λΆ„ const, let μ‚¬μš©
        • var μ„ μ–ΈμžλŠ” μž¬μ„ μ–Έμ΄ κ°€λŠ₯ν•΄μ„œ μ˜λ„ν•˜μ§€ μ•Šμ€ μ½”λ“œ μž‘μ„± κ°€λŠ₯
        • let은 μž¬ν• λ‹Ή κ°€λŠ₯, ν•˜μ§€λ§Œ μž¬μ„ μ–Έμ€ λΆˆκ°€λŠ₯
        • constλŠ” μž¬ν• λ‹Ή, μž¬μ„ μ–Έ λΆˆκ°€
          • constλŠ” μ ˆλŒ€ λ³€ν•˜μ§€ μ•ŠλŠ” μƒμˆ˜ 값에 많이 ν™œμš©
          • constλŠ” 무쑰건 λŒ€λ¬Έμžλ₯Ό μ‚¬μš©ν•˜κ³  μŠ€λ„€μ΄ν¬ μΌ€μ΄μŠ€λ‘œ μ—°κ²°
    • λ³€μˆ˜λͺ… (λ³€μˆ˜ 이름)
      • ex. x
    • λ³€μˆ˜λͺ…에 ν• λ‹Ήλœ κ°’
      • ex. 'Hello, World!'
    • λ³€μˆ˜λ₯Ό μ΄μš©ν•˜λ©΄ μ½”λ“œ μž¬μ‚¬μš©μ„± 높일 수 있음
    • λ³€μˆ˜λͺ…μœΌλ‘œ μ˜ˆμ•½μ–΄(ν‚€μ›Œλ“œ) μ‚¬μš©ν•˜λ©΄ μ—λŸ¬ λ°œμƒ
      • JSκ°€ λ‚΄λΆ€μ μœΌλ‘œ 이미 μ‚¬μš©ν•˜κ³  μžˆλŠ” 단어
    • λ³€μˆ˜λͺ…이 맀우 μ€‘μš”ν•¨! (λͺ…ν™•ν•œ 이름)
      • ex. userName (μ‚¬μš©μž 이름)
      • 이름 μ§“λŠ”κ±° 맀우 어렀움
      • λ³€μˆ˜λͺ… λ§Œλ“œλŠ” κ·œμΉ™μ΄ 있음 (μ‹λ³„μž ν‘œκΈ°λ²•)
        • 카멜 μΌ€μ΄μŠ€
          • ex. userName
        • μŠ€λ„€μ΄ν¬ μΌ€μ΄μŠ€
          • ex. user_name
        • 파슀칼 μΌ€μ΄μŠ€
          • ex. UserName
        • 헝가리언 μΌ€μ΄μŠ€
          • ex. strUserName
          • 데이터 νƒ€μž… 힌트 같이 λ‹΄μŒ

[Note]

  • flex-direction default 값은 rowμž„
  • λͺ¨λ°”일 μ‚¬μ΄μ¦ˆλ‘œ μ€„μ–΄λ“€μ—ˆμ„ λ•Œ λ―Έλ””μ–΄ 쿼리 μ„€μ •κ³Ό
    flex-direction만 column으둜 λ³€κ²½ν•˜λ©΄ 됨
  • λ°˜μ‘ν˜• μ›Ήμ—μ„œ κ°€μž₯ μ€‘μš”ν•œ 것은 μ»¨ν…μΈ μ˜ λ°°μΉ˜μž„
  • νšŒμ‚¬ λ°–μ—μ„œ λͺ¨λ°”일 μ•±μœΌλ‘œ μ ‘μ†ν–ˆμ„ λ•Œ
    νŠΉμ • μ˜μ—­ μ»¨ν…μΈ λŠ” 보여주지 μ•Šκ²Œ ν•˜λŠ” 경우 있음
    • ex. About νŽ˜μ΄μ§€; λͺ¨λ°”일 μ‚¬μ΄μ¦ˆμΌ λ•Œ μ•ˆλ³΄μ΄κ²Œ ν•˜κ³  μ‹ΆμŒ
      • display: none;
    • λͺ¨λ°”일 μ•±μ—μ„œ μ‚¬μš©μžκ°€ 컨텐츠 λ³Όλ €κ³  계속 슀크둀 λ‚΄λ¦¬λŠ” 것도 맀우 λΆˆνŽΈν•  수 있음
    • λ³΄μ•ˆμƒ λͺ¨λ°”일 μƒμœΌλ‘œ μ ‘μ†ν•˜μ§€ μ•Šμ„ 컨텐츠 λ˜λŠ”
      μ€‘μš”λ„ λ–¨μ–΄μ§€λŠ” μ»¨ν…μΈ λŠ” λͺ¨λ°”μΌλ‘œ 듀어왔을 λ•Œ 감좰버릴 수 있음
    • λͺ¨λ°”일 μ•±μœΌλ‘œ νŒŒμ•…ν•˜κΈ° νž˜λ“  컨텐츠λ₯Ό ꡳ이 넣을 ν•„μš” μ—†μŒ
    • λͺ¨λ°”일에 λ§žλŠ” 컨텐츠 λ°°μΉ˜μ™€ κ°€μ‹œμ μœΌλ‘œ 보기 쒋은 컨텐츠 제곡
    • 글씨 μ‚¬μ΄μ¦ˆλ„ 잘 κ³ λ €ν•΄μ•Ό 함!
      해상도 쀄어듀면 글씨 폰트 μ‚¬μ΄μ¦ˆ 쀄여주고
      글씨 λ„ˆλ¬΄ μž‘μœΌλ©΄ 크게 λ§Œλ“€μ–΄ μ£Όκ³  λ“±...
    • 이미지 같은 κ²½μš°λ„ 해상도 μ€„μ—ˆμ„ λ•Œ 쒌/우둜 슀크둀 ν•  수 μžˆμœΌλ―€λ‘œ
      이미지 μ‚¬μ΄μ¦ˆλ„ 잘 κ³ λ €ν•΄μ•Ό 함!
  • 컨텐츠 λ°°μΉ˜λŠ” display flex μ‚¬μš©,
    컨텐츠 λ³΄μ•ˆμƒ display none 숨기기,
    κ°€μ‹œμ μœΌλ‘œ 보기 쒋은 컨텐츠 제곡,
    이미지 μ‚¬μ΄μ¦ˆ 쑰절
  • 보톡 nav - ν™”λ©΄ μŠ€ν¬λ‘€ν•΄μ„œ 이동될 λ•Œ λ°”λ‘œ 뚝 떨어지지 μ•Šκ³  λΆ€λ“œλŸ½κ²Œ λ„˜μ–΄κ°!
    • scroll-behavior: smooth; μ„€μ •
    • 메뉴 λ„˜μ–΄κ°€μ§€ μ•Šκ³  상단에 고정은 position: sticky;
      • top: 0;
    • flex μ„€μ •ν•˜κ³  justify-content: center ν•˜λ©΄ 쀑앙 정렬됨
  • λ―Έλ””μ–΄ 쿼리
    • λΆ€νŠΈμŠ€νŠΈλž© κΈ°μ€€ 보톡 small은 576ν”½μ…€ λ“± 체크 (breakpoint)
    • κΈ°κΈ° μ‚¬μ΄μ¦ˆμ— 맞게 거의 ν‘œμ€€ν™”λœ μ‚¬μ΄μ¦ˆ 있음
  • flex: no-wrap
  • 라이브 μ„œλ²„ μ‚¬μš©ν•˜λ©΄ μ €μž₯ν•  λ•Œλ§ˆλ‹€ λ°”λ‘œ μ—…λ°μ΄νŠΈ 됨
    • 가끔 refresh ν•  경우 μžˆμ§€λ§Œ λŒ€λΆ€λΆ„ μžλ™μœΌλ‘œ λ°˜μ˜ν•΄μ€Œ
  • JS 주석 μ²˜λ¦¬ν•˜λŠ” 이유
    • μ½”λ“œ μ„€λͺ… λͺ©μ 
    • μ–΄λ””μ„œ μ—λŸ¬ λ‚˜λŠ”μ§€ μ°ΎκΈ° νž˜λ“€ λ•Œ μž μ‹œ μ½”λ“œ μ‹€ν–‰ λ§‰λŠ” μš©λ„λ‘œ μ‚¬μš© κ°€λŠ₯
  • DOMContentLoaded 차이?
    • λΉ„μŠ·ν•œ 걸둜 load λΌλŠ” μ΄λ²€νŠΈλ„ 있음
    • 가끔 DOM λ‘œλ“œλ˜λŠ” 것보닀 JS μ½”λ“œκ°€ λ¨Όμ € μ‹€ν–‰λ˜λŠ” κ²½μš°λ„ 있음
    • λ Œλ”λ§ 이미 λ‹€ λλ‚˜μ§€ μ•Šμ•„μ„œ μ—λŸ¬ λ°œμƒν•  μˆ˜λ„ 있음
    • ν™”λ©΄ λ Œλ”λ§ 되자마자 νŠΉμ • HTML μš”μ†Œ μ ‘κ·Όν•΄μ„œ JS μ½”λ“œ λ™μž‘ν•΄μ•Ό ν•œλ‹€λ©΄
      addEventListener둜 직접 μ„€μ •ν•˜λ©΄ κ°€μž₯ μ•ˆμ „ν•¨!
    • μ½”λ“œμ˜ μ•ˆμ •μ„± 높이기!
  • μ½”λ“œλ₯Ό μ§œλŠ” 것은 κ²°κ΅­ 데이터λ₯Ό μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ λͺ©μ !
    • 데이터λ₯Ό μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄μ„œλŠ” 데이터λ₯Ό 담을 그릇이 ν•„μš”
    • 데이터λ₯Ό λ‹΄λŠ” κ·Έλ¦‡μœΌλ‘œ λ³€μˆ˜ 이용
  • ECMA Script (ν‘œμ€€ JS)
    • μ½”λ“œλ₯Ό λͺ¨λ‘ 카멜 μΌ€μ΄μŠ€λ‘œ μž‘μ„±ν•¨
  • ꡳ이 var μ‚¬μš©ν•  ν•„μš”λŠ” μ—†μŒ
  • undefined도 ν•˜λ‚˜μ˜ 데이터 νƒ€μž…μž„
  • μ˜ˆμŠ΅λ³΄λ‹€ 볡슡이 μ€‘μš”!