Don't be afraid of challenges
기술면접 준비 본문
스레드 - 일꾼
여러 작업을 동시에 수행할 수 있다.
작업을 동시에 수행할 수 있기 때문에 응답속도도 빠르다.
컨텍스트 스위칭이나 동기화 등의 이유로, 싱글 코어로 멀티 스레딩을 한다면 스레드 생성 속도가 느리다
여러 스레드가 동시에 진행되고, 데이터와 힙 영역을 공유하기 때문에 상호 간섭이 일어날 수 있다.
- 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 + ) 동적타입언어와 정적타입언어는 ?
- 동적타입언어는 변수의 타입이 실행시간에 결정됩니다. 프로그램이 실행될 때 변수에 어떤 타입의 값이 할당될지 결정되며, 변수의 타입이 런타임에 동적으로 변경될 수 있습니다.
- 정적타입언어는 변수의 타입이 컴파일시간에 결정됩니다. 변수의 타입이 코드가 컴파일되는 시점에 정해지며, 변수의 타입은 코드 작성 시 명시해야합니다. 타입이 변겨오디면 컴파일 오류가 발생할 수 있습니다.
- Javascript 의 객체지향에 대해 설명해주세요.
- JavaScript는 프로토타입 기반 상속을 통해 객체지향 프로그래밍을 지원하지만, ES6 이후부터는 class 문법이 도입되어 더 직관적이고 쉽게 객체지향 스타일의 프로그래밍이 가능해졌습니다. OOP의 핵심 개념인 상속, 다형성, 캡슐화, 추상화 등을 지원하며, 이를 통해 재사용성, 유지보수성 높은 코드를 작성할 수 있습니다
- 동기처리와 비동기처리의 차이점에 대해 설명해주세요. (예시를 제시하며, 코드로 직접 표현해주세요. )
- 동기처리는 작업이 순차적으로 진행되며, 현재 작업이 완료될 때까지 다음 작업이 시작되지 않습니다.
- 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에서 비동기 작업의 결과를 처리하기 위한 객체입니다. 비동기 작업이 완료될때까지 기다리거나, 실패하거나 성공한 결과를 처리하는데 사용됩니다. 프로미스는 비동기 작업의 상태를 추적하고, 결과를 관리하는데 도움을 줍니다.
- 프레임워크와 라이브러리의 차이점에 대해 이야기해주세요.
- 프레임워크는 전체 애플리케이션의 제어를 관리하며, 애플리케이션의 구조와 흐름을 프레임워크가 주도합니다. ex) Next.js
- 라이브러리는 특정 기능을 제공하고, 개발자가 이를 호출하여 사용하며, 애플리케이션의 제어 흐름과 구조는 개발자가 관리합니다. ex) React
- 무한 스크롤 기능 구현에 대해 설명해주세요.
- 보통 useInfiniteQuery와 intersection observer 라이브러리를 사용하여 사용자의 스크롤이 어디 위치에 있는지 감지하여 데이터를 페이지단위로 가져오게 합니다 여기서 데이터를 패칭하고 있을때 로딩표시를 넣어줘서 UX를 높이면 더 좋을 것 같습니다.
- 반응형 웹과 사이즈 처리에 대해 설명해주세요.
- 프로젝트에 적용한 스타일 관련 라이브러리가 있다면 알려주세요. 왜 그 라이브러리를 적용/선택했나요?
- 해당 라이브러리를 사용하지 않고 직접 구현할 수 있는지, 구현하려면 어떻게 접근해야할지 설명해주세요.
- 웹 브라우저의 렌더링 과정에 대해 설명해 주세요.
- 렌더링 효율을 위한 본인만의 노하우나 고민 및 문제 해결을 해본 경험이나 생각을 이야기해주세요.
- CSS / SASS, SCSS 에 대해 설명해주세요.
- React와 Angular의 주요 차이점을 설명해 주세요.
- 이벤트 버블링(Event Bubbling)과 이벤트 캡처링(Event Capturing)을 설명해 주세요.
- 상태 관리 라이브러리(Redux, MobX 등)의 역할을 설명해 주세요.
- Semantic Tag, Flex, Grid, Padding, Margin에 대해 각각 설명해주세요.
- 클래스형 컴포넌트 / 함수형 컴포넌트에 대해 설명해주세요.
'웹서비스' 카테고리의 다른 글
| prisma가 무엇인가 (3) | 2024.12.26 |
|---|---|
| 브라우저의 렌더링 원리 (3) | 2024.09.11 |
| 프론트엔드 에러모니터링, 로그 데이터 수집의 필요성 (1) | 2024.09.08 |
| 유닛테스트 기술분석 (1) | 2024.09.08 |
| [usg] 디자인패턴 (1) | 2023.10.18 |