Don't be afraid of challenges

기술면접 준비 본문

웹서비스

기술면접 준비

초아롱 2024. 9. 11. 16:06

스레드 - 일꾼

여러 작업을 동시에 수행할 수 있다.

작업을 동시에 수행할 수 있기 때문에 응답속도도 빠르다.

컨텍스트 스위칭이나 동기화 등의 이유로, 싱글 코어로 멀티 스레딩을 한다면 스레드 생성 속도가 느리다

여러 스레드가 동시에 진행되고, 데이터와 힙 영역을 공유하기 때문에 상호 간섭이 일어날 수 있다.

 

  1. Javascript 의 데이터 타입과 Typescript 데이터 타입에 대해 설명해주세요.
    • Javascript는 동적타입언어로 크게 원시 타입, 참조타입으로 나뉘어집니다.
    • 원시 타입 : String, Number, Boolean, Undefined, Null, Symbol, BigInt
    • 참조 타입 : Object
    • Typescript는 Javascript에 정적타입을 추가한 언어입니다.
    • 기본 타입 : String, Number, Boolean, Undefined, Null
    • 배열,Tuple, Enum, Any, Void,Never, Union Types
    • 인터페이스
    • PLUS + ) 동적타입언어와 정적타입언어는 ?
    • 동적타입언어는 변수의 타입이 실행시간에 결정됩니다. 프로그램이 실행될 때 변수에 어떤 타입의 값이 할당될지 결정되며, 변수의 타입이 런타임에 동적으로 변경될 수 있습니다.
    • 정적타입언어는 변수의 타입이 컴파일시간에 결정됩니다. 변수의 타입이 코드가 컴파일되는 시점에 정해지며, 변수의 타입은 코드 작성 시 명시해야합니다. 타입이 변겨오디면 컴파일 오류가 발생할 수 있습니다.
  2. Javascript 의 객체지향에 대해 설명해주세요.
    • JavaScript는 프로토타입 기반 상속을 통해 객체지향 프로그래밍을 지원하지만, ES6 이후부터는 class 문법이 도입되어 더 직관적이고 쉽게 객체지향 스타일의 프로그래밍이 가능해졌습니다. OOP의 핵심 개념인 상속, 다형성, 캡슐화, 추상화 등을 지원하며, 이를 통해 재사용성, 유지보수성 높은 코드를 작성할 수 있습니다
  3. 동기처리와 비동기처리의 차이점에 대해 설명해주세요. (예시를 제시하며, 코드로 직접 표현해주세요. )
    • 동기처리는 작업이 순차적으로 진행되며, 현재 작업이 완료될 때까지 다음 작업이 시작되지 않습니다.
    • const fs = require('fs'); // 동기적 파일 읽기
      console.log('작업 시작');
      const data = fs.readFileSync('example.txt', 'utf8'); // 파일 읽기가 완료될 때까지 대기
      console.log('파일 내용:', data);
      console.log('작업 끝');
    • 비동기처리는 작업이 시작된 후에 다른 작업을 진행할 수 있으며, 작업이 완료되면 콜백 함수나 프로미스를 통해 결과를 처리합니다.
    • const fs = require('fs'); // 비동기적 파일 읽기
      console.log('작업 시작');
      fs.readFile('example.txt','utf8', (err, data) => {
      // 파일 읽기 작업이 완료되면 콜백 함수 실행
      if(err) throw err;
      console.log('파일 내용:', data); });
      console.log('작업 끝');
    • PLUS + ) 프로미스는 무엇인가 ?
      • Javascript에서 비동기 작업의 결과를 처리하기 위한 객체입니다. 비동기 작업이 완료될때까지 기다리거나, 실패하거나 성공한 결과를 처리하는데 사용됩니다. 프로미스는 비동기 작업의 상태를 추적하고, 결과를 관리하는데 도움을 줍니다.
  4. 프레임워크와 라이브러리의 차이점에 대해 이야기해주세요.
    • 프레임워크는 전체 애플리케이션의 제어를 관리하며, 애플리케이션의 구조와 흐름을 프레임워크가 주도합니다. ex) Next.js
    • 라이브러리는 특정 기능을 제공하고, 개발자가 이를 호출하여 사용하며, 애플리케이션의 제어 흐름과 구조는 개발자가 관리합니다. ex) React
  5. 무한 스크롤 기능 구현에 대해 설명해주세요.
    • 보통 useInfiniteQuery와 intersection observer 라이브러리를 사용하여 사용자의 스크롤이 어디 위치에 있는지 감지하여 데이터를 페이지단위로 가져오게 합니다 여기서 데이터를 패칭하고 있을때 로딩표시를 넣어줘서 UX를 높이면 더 좋을 것 같습니다.
  6. 반응형 웹과 사이즈 처리에 대해 설명해주세요.
  7. 프로젝트에 적용한 스타일 관련 라이브러리가 있다면 알려주세요. 왜 그 라이브러리를 적용/선택했나요?
    • 해당 라이브러리를 사용하지 않고 직접 구현할 수 있는지, 구현하려면 어떻게 접근해야할지 설명해주세요.
  8. 웹 브라우저의 렌더링 과정에 대해 설명해 주세요.
  9. 렌더링 효율을 위한 본인만의 노하우나 고민 및 문제 해결을 해본 경험이나 생각을 이야기해주세요.
  10. CSS / SASS, SCSS 에 대해 설명해주세요.
  11. React와 Angular의 주요 차이점을 설명해 주세요.
  12. 이벤트 버블링(Event Bubbling)과 이벤트 캡처링(Event Capturing)을 설명해 주세요.
  13. 상태 관리 라이브러리(Redux, MobX 등)의 역할을 설명해 주세요.
  14. Semantic Tag, Flex, Grid, Padding, Margin에 대해 각각 설명해주세요.
  15. 클래스형 컴포넌트 / 함수형 컴포넌트에 대해 설명해주세요.

'웹서비스' 카테고리의 다른 글

prisma가 무엇인가  (3) 2024.12.26
브라우저의 렌더링 원리  (3) 2024.09.11
프론트엔드 에러모니터링, 로그 데이터 수집의 필요성  (1) 2024.09.08
유닛테스트 기술분석  (1) 2024.09.08
[usg] 디자인패턴  (1) 2023.10.18