본문 바로가기

Life/TIL

20210814 TIL

Facts

  • 토스 NEXT 코딩테스트
  • 코드스피츠 CSS 랜더링 강의 1-1, 1-2 수강  

Feeling

  • 어렵다... 어렵구나,,,, 코딩테스트가 결코 만만하지 않았다. 그냥 알고리즘만 보는게 아니고 기본 자바스크립트 개념들을 합쳐서 보는데 쉽지 않더라. 시간도 촉박하기도 하고 이런 유형의 문제를 접해보지 않아서 어려웠던거 같다. 서술형은 근데 반대로 술술 잘 풀었다. 
  • css 관련 강의에 또 꽂혀서 (브라우저 랜더링 공부하다가 이 길로 또 새고있다ㅎㅎ... 두서없지만 필요한 공부는 맞으니깐 ㅎㅎ) 코드스피츠 강의를 듣고 있다. 와 근데 진짜 나는 얕게 알고 있었구나 하는 깨달음을 얻게 됐다. CSS세계는 무궁 무진하고 웹 최적화를 위한 방법으로도 CSS를 잘 알아야겠다는 생각이 든다.  

Finding

  • 그래픽스: 점 찍는 방법
  • 랜더링: 어떠한 대상을 내가 원하는 모습으로 변환하는 것, 보다 구체적이고 시각적으로 변화시켜주는것 (사람 혹인 기계가 인식하기 쉡게 바꾸거나 목적에 부합하게 바꾸는 것) -> 데이터를 어떻게 그림으로 바꿔낼 수 있을까? 
  • 리플로우: 위치를 계산하여 영역(레이아웃)을 나누는것 ( geometry calculate ) 
  • 리페인트: 영역에 구체적으로 그려주는것 ( Fragment fill )
  • 랜더링 시스템이란? 리플로우된 영역에 리페인트 한다.
  • 포지셔닝 스키마 
  • 포지션: 어떤 지오메트리 영역에 x, y, width, height 등 추상적인 위치를 결정하는 시스템 (계산 공식)
    • static, relative: normal flow 적용, absolute, fixed : normal flow 가 일어나지 않음
  • normal flow: block formatting context, inline formatting context, relative(이건 포지션으로 취급) 
    • 그래서 총 2가지의 계산 공식이 있다. 
    • bfc: 부모의 가로길이를 가득채운 한 줄, 안에있는 블록요소의 height의 합이 나의 height이다 (다음 블록의 y좌표는 자연스럽게 기존 블록의 height이 된다.)
    • ifc: 나의 컨텐츠 크기 만큼 차지, inline요소의 width의 합이 부모의 width보다 넘어가면 다음줄로 넘어가는데 한 줄의 height는 가장 큰 컨텐츠의 height이 line-height가 된다. 
    • 암묵적으로 html이 그림을 그릴때 공백문자가 없는 문자를 하나의 ifc 섹션으로 본다. 
    • 공백문자없이 붙어있는 문자열을 하나 하나 인라인으로 처리하는 것이 word-break이다 (개별로 영역이 잡혀 브라우저가 느려짐) 
  • 랜더링 시스템과 돔 구조는 무관하다. (돔의 포함 관계와 랜더링을 평가할 때 포함관계는 다르다. -> 태그의 구조가 랜더링의 구조와 일치하는 것은 아니다.  
  • float: 라인박스 공식으로 그려짐 (추가적인 bfc 영역을 만듦 )
    • 영역: float영역 + inline영역 전체를 다 차지한다. 
    •  인라인 요소의 가드로 작동해 다른 인라인 요소가 가드 바깥쪽에 위치하게 한다 (박스는 그대로 다 차지한다. 인라인요소만 바깥으로)
    • 가용영역(float가 차지한 영역을 제외한 영역)에서 float영역을 차지한다. 단 기존의 float 방향보다 더 이전으로 들어갈 수 없다.) 
    • overflow의 hidden과 scroll에는 새로은 bfc를 즉시생성하는 규약이 생겼다.
    • Linebox 때문에 inline 요소가 밀려서 가드 작동으로 늘어날 때는 안들어나고 묻혀버린다.  

'Life > TIL' 카테고리의 다른 글

20210817 TIL  (0) 2021.08.17
20210816 TIL  (0) 2021.08.17
20210813 TIL  (0) 2021.08.14
20210812 TIL  (0) 2021.08.13
20210811 TIL  (0) 2021.08.12