2월 27일 TIL

jini·2023년 2월 27일
0

TIL🌱

목록 보기
86/95
post-thumbnail

1. 스로틀링과 디바운스에 대해 설명해주세요.

스로틀링 - 버튼 클릭시, 연속으로 버튼이 눌리지않도록 하는.
짧은 시간내에 과도한 이벤트 실행으로 인해 발생하는 성능 저하를 막기 위해 일정한 time slice를 주기로 이벤트가 한 번만 실행되도록 제한하는것.

디바운스 - 적용하면 좋은 예시는 검색기능의 인풋, 검색버튼을 누르지 않아도 사용자가 입력한 값이 변경될 때마다 자동으로 검색 요청을 보내는 기능을 만든다고 하면 사용자가 검색어를 다 입력하지 않았을때에도 요청이 보내지게 되므로 비효율적임.
-> 이 경우에 디바운싱을 적용하면 사용자의 입력이 끝나면 일정시간이 지난 후에 검색 요청이 1번만 보내지므로 성능을 향상시킬수있다.
(setTimeout함수 ,time이 필요)

2. css in js와 css in css에 대해 설명해주세요.

css in css

  • css코드를 모듈화하여 사용하는 방식.

  • Css와 클래스 이름을 만들어 스코프를 지역적으로 제한하면서 모듈을 불러온다. 이 과정에서 내가 지정했던 클래스 이름과 객체가 반환되는 방식으로 작동함.

  • 모듈화 되지않은 css를 사용하게 된다면 협업과정에서 클래스 이름이 겹치게 되었을때 스코프 오염이 일어날수있는데, 모듈화에선 css클래스 이름이 중복되어도,새로운 이름이 입쳐서 중복 및 관리의 위험성이 적어지게 됩니다. 그러나 여러 파일을 나누어 작성하기 때문에 많은 파일을 만들어 관리해야하는 단점이 존재함.

    css in js

자바스크립트 코드로 css를 작성하는 방식
대표적으로는 스타일 컴퍼넌트, 이모션 등의 라이브러리.

이 방법을 사용하면 css파일의 유지보수가 필요없어짐
컴포넌트 레벨로 추상화하기때문에 단일 파일에서 관리 가능
또한 자바스크립트 코드를 활용할수있음.
해당 DOM에서만 활용할수있는 것도 장점
자바스크립트와 css사이에 있는 상수,함수를 공유할수있고 스타일링을 위한 코드 사용량이 줄어들게 됨.

그러나 러닝커브가 높다는 장점이 있음(*러닝커브란, 무언가를 습득하는 데 드는 시간이다.)
별도의 라이브러리가 필요해서 크기가 커질수있고, 디자인 페이지를 작업한다면 css모듈 방식에 비해 느린 성능을 보여줄수있음.

그렇다면 css in js가 무조건 좋은것일까? 놉. 아무리 좋은 기술이라도 단점이 있음.

스타일 컴퍼넌트는 자바스크립트의 해석과정이 필요해서 성능면에서는 css 모듈을 읽어오는 것보다 시간이 조금더 걸린다.
하지만 그걸 생각해서도 효율성과 컴포넌트 위주의 프로젝트라면 더 좋은 점은 스타일 컴퍼넌트는 필요한 부분의 스타일 요소만 렌더링하기 때문이다.

캡슐화 할수잇다.
클래스가 원치않는 곳에 적용되는,,
유지하기가 쉽다.

3. 타입스크립트를 사용하며 좋았던 점을 말씀해주세요.

타입스크립트의 사용이유는
어떤 타입으로 지정할것인지 미리 작성함에 따라 프로그램 실행 전에 미리 에러를 잡을수있음. 즉 에러를 사전에 방지할수있다. 변수의 타입을 이미 알고있기때문에 해당타입에서 제공하는 기능(API) 자동완성이 가능하다. 개발 생산성을 향상시킬수있다. (코드 가이드 및 자동 완성 기능)

=>타입스크립트는 정적 타입, 동적타입,
런타임 에러 => 코드 실행될떄 시간
컴파일타입에러 =>코드 작성할때 시간
에러가 있는걸 개발 하면서 확인할수있다, 개발을 더 빨리 할수있도록 하는 방법,

런타임에러와 컴파일 타입 에러.

=>

profile
🌱

0개의 댓글