부트캠프

69일차 TIL ( 면접 카타 3일차 )

ohs020105 2025. 2. 12. 21:14

면접 카타 4,5 답

질문 : Arrow Function 이란 무엇인지 설명해주세요.

답 : "Arrow Function은 ES6에서 도입된 JavaScript 함수 표현식의 한 형태로, 더 간결한 문법을 제공하며, this 바인딩이 기존 함수와 다르게 동작하는 것이 특징입니다."

Arrow Function은 기존의 function 키워드를 사용하는 함수보다 문법이 짧고, this가 선언된 스코프를 유지하는 특징이 있습니다."


// 일반적인 함수 표현식
const add = function (a, b) {
  return a + b;
};

// Arrow Function
const addArrow = (a, b) => a + b;
특징
1️⃣ 더 간결한 문법 → 중괄호 {}와 return 키워드를 생략 가능
2️⃣this 바인딩 유지 → Arrow Function 내부의 this는 선언될 당시의 this를 그대로 사용
3️⃣ 자동 return → 한 줄짜리 함수라면 return 생략 가능


const obj = {
  value: 10,
  normalFunc: function () {
    console.log(this.value); // 10
  },
  arrowFunc: () => {
    console.log(this.value); // undefined (this가 obj가 아닌 상위 스코프를 참조)
  }
};

obj.normalFunc();
obj.arrowFunc();
"이처럼 Arrow Function은 this가 기존 함수와 다르게 동작하기 때문에, 객체의 메서드로 사용하기보다는 콜백 함수나 고차 함수에서 많이 활용됩니다."

🎯 면접관이 추가 질문할 가능성이 높은 부분
"Arrow Function을 사용할 때 주의해야 할 점이 있을까요?"
→ "this"가 동적으로 바뀌지 않기 때문에, 객체 메서드에서는 사용하지 않는 것이 좋습니다.
"Arrow Function과 일반 함수의 차이점은 무엇인가요?"
→ 문법이 더 짧고, "this" 바인딩이 다르게 동작합니다.
"Arrow Function을 어디서 주로 사용하나요?"
→ 콜백 함수, 이벤트 핸들러, 고차 함수(map, filter, reduce) 등에서 자주 사용됩니다.


질문 : Express란 무엇이고 왜 필요하며 대안은 무엇이 있는지 설명해주세요.

답 : "Express는 Node.js를 위한 경량 웹 프레임워크로, 빠르게 웹 서버를 구축할 수 있도록 도와줍니다. 미들웨어, 라우팅, 에러 핸들링 등의 기능을 제공하며, REST API와 웹 애플리케이션 개발에 널리 사용됩니다."

Express란?
Express는 Node.js 기반의 웹 애플리케이션 프레임워크입니다.
HTTP 요청을 처리하는 라우팅 시스템, 요청-응답 처리를 위한 미들웨어 등의 기능을 제공하여 백엔드 서버 개발을 쉽게 만들어 줍니다.

const express = require('express');
const app = express();

// 기본 라우트 설정
app.get('/', (req, res) => {
  res.send('Hello, Express!');
});

// 서버 실행
app.listen(3000, () => {
  console.log('서버가 3000번 포트에서 실행 중...');
});

왜 Express가 필요한가?
✅ Node.js의 기본 HTTP 모듈보다 더 쉽게 서버 개발 가능
✅ 미들웨어를 활용하여 요청/응답을 효율적으로 처리
✅ 라우팅 시스템 제공 (REST API 설계 용이)
✅ 템플릿 엔진, 정적 파일 제공 기능 지원
✅ 커뮤니티가 크고 생태계가 잘 구축됨

xpress의 대안은?
Express 말고도 Node.js에서 사용할 수 있는 다양한 웹 프레임워크가 있습니다.

프레임워크 특징
Fastify Express보다 빠르고 저메모리 사용, JSON 스키마 기반
Koa Express보다 가벼운 프레임워크, 미들웨어 체인 구조
NestJS TypeScript 기반, Angular와 비슷한 구조, 대규모 프로젝트 적합
Hapi.js 보안 기능 강화, 플러그인 기반 확장 가능
💡 추가 설명:

Fastify는 Express보다 성능이 뛰어나지만, 학습 곡선이 있음.
NestJS는 대규모 프로젝트에 적합하며, TypeScript를 기본 지원.
Koa는 Express 제작 팀에서 개발한 차세대 프레임워크로, 미들웨어 활용 방식이 다름.

면접관이 추가 질문할 가능성이 높은 부분
"Express에서 미들웨어란 무엇인가요?"
→ 미들웨어는 요청과 응답 사이에서 특정 기능을 수행하는 함수로, 인증, 로깅, 요청 데이터 파싱 등에 사용됩니다.
"Express와 Fastify 중 어느 것을 선택하겠습니까?"
→ 속도가 중요한 프로젝트라면 Fastify, 확장성과 편리함이 중요하다면 Express를 선택할 것입니다.
"Express에서 REST API를 만들 때 고려해야 할 점은?"
→ 보안, 데이터 검증, 요청 속도 최적화, 에러 핸들링 등을 고려해야 합니다.

'부트캠프' 카테고리의 다른 글

70일차 TIL (면접카타 4일차)  (0) 2025.02.13
class - transfomer 사용법 ( NestJS )  (0) 2025.02.13
NEST.js 에 대한 정리  (0) 2025.02.11
68일차 TIL (면접카타 2일차)  (0) 2025.02.11
67일차 TIL (면접카타 1일차)  (0) 2025.02.10