나만보려고 만든 핸드북
개발 스킬과 관련된 질문과 답변 모음
총 156개의 질문
NestJS의 요청 처리 흐름(Request Lifecycle)을 설명해주세요.
DI(Dependency Injection)와 IoC(Inversion of Control)란?
Express와 NestJS의 핵심 차이점은?
Express.js와 Nest.js의 장단점은?
MSA(Microservices Architecture)란 무엇인가요?
Protobuf(Protocol Buffers)란? 숫자(1,2,3)의 의미는?
SQL(RDBMS)과 NoSQL의 차이점과 장단점은?
해시테이블이란? 시간복잡도가 항상 O(1)인가요?
해시테이블의 중복 저장을 해결하기 위한 방법은?
Docker Image와 Container의 차이점은?
Docker Network에서 Host와 Bridge의 차이점은?
AWS 배포를 어떻게 진행하는지 설명해주세요.
객체지향 프로그래밍(OOP)의 4가지 특징은?
쿠키(Cookie)와 세션(Session)의 차이는?
Package.json에서 dependencies와 devDependencies의 차이는?
Node.js 이벤트 루프 동작 원리를 설명해주세요.
Node.js는 싱글 스레드인데 어떻게 병렬 작업을 처리하나요?
동기(Synchronous)와 비동기(Asynchronous)의 차이는?
블로킹(Blocking)과 논블로킹(Non-blocking)의 차이는?
동시성(Concurrency)과 병렬성(Parallelism)의 차이는?
커스텀 데코레이터를 만든다면 어떻게 만드나요?
var, let, const의 차이와 호이스팅(Hoisting)이란?
JavaScript 가비지 컬렉터(GC) 동작 방식은?
JavaScript가 프로토타입 언어인데 장점은?
TypeScript의 Omit과 Partial의 차이점은?
서브넷(Subnet)과 서브넷마스크, CIDR란?
프로세스(Process)와 스레드(Thread)의 차이점은?
DDD(Domain-Driven Design)란?
Python의 List와 Tuple 차이점은?
Python의 List Comprehension과 GIL이란?
암호화와 무결성 검증을 동시에 제공하는 방식의 장점은?
암호화된 데이터와 해시값을 함께 저장하는 이유는?
엔티티 메서드에 암호화 서비스를 파라미터로 전달하는 이유는?
복합 인덱스에서 등호 조건 컬럼을 먼저 배치하는 이유는?
배치 작업 전체를 트랜잭션으로 묶거나, 실패 시 전체를 롤백하게 설계한 이유는?
외부 API 호출을 트랜잭션 밖에서 먼저 수행하고, DB 작업만 트랜잭션으로 묶는 이유는?
상태 변경과 리포트 생성을 트랜잭션으로 분리한 이유는?
리포지토리에 여러 메서드가 있지만 실제로는 일부만 사용하는 경우, 이는 과한 설계인가요?
엔티티에 상태 확인 시각을 기록하는 필드를 추가하는 이유는?
상태 필드를 nullable로 설계하는 이유는?
도메인이 다른 엔티티 간에 관계를 설정하지 않는 이유는?
리포지토리에서 EntityManager를 직접 반환하는 메서드를 제공하는 이유는?
리포지토리에 사용되지 않는 메서드가 있는 것은 과한 설계인가요?
엔티티에 인덱스를 추가하지 않는 경우는 언제인가요?
마스터 데이터와 통계 데이터를 별도 엔티티로 분리하는 이유는?
OOP 원칙을 실제 프로젝트에 어떻게 적용하나요?
API 폴더를 보안 레벨별로 분리하는 이유는?
엔티티에서 BeforeInsert 훅 대신 메서드 파라미터로 서비스를 전달하는 이유는?
유효성 검사를 라이브러리와 커스텀 함수로 이중으로 하는 이유는?
interface 대신 class로 DTO를 정의한 이유는 무엇인가요?
ConfigService를 쓸 때 process.env를 직접 쓰는 것과 비교해 어떤 장점이 있나요?
컨트롤러에서 try-catch를 쓰지 않고 전역 필터에 맡긴 이유는?
Promise.all을 사용할 때 주의할 점은 무엇이고, 실패 시 어떻게 처리했나요?
단위 테스트(Unit Test) 외에 E2E 테스트가 왜 필요한가요? Mocking만으로는 부족한가요?
OnModuleInit 같은 생명주기 훅(Lifecycle Hooks)은 실무에서 어떤 경우에 활용하나요?
Provider 정의 시 useClass 대신 useFactory를 써야 할 때는?
미들웨어(Middleware)와 가드(Guard)의 결정적인 차이는 무엇인가요?
인터셉터(Interceptor)로 응답 데이터를 조작할 때 스트림(Observable) 처리는 어떻게 하나요?
순환 참조(Circular Dependency) 발생 시 forwardRef 외의 해결책은?
Graceful Shutdown 처리는 어떻게 구현했나요?
Health Check API는 단순히 { status: "ok" }만 반환하면 되나요?
Redis 사용 시 자주 사용하는 명령어와 데이터 구조는?
API 버전 관리(Versioning)는 어떤 전략을 선호하나요?
TypeScript의 type과 interface 중 무엇을 선호하고 그 이유는?
비동기 에러 처리 시 unhandledRejection은 어떻게 대응하나요?
로깅(Logging) 시 console.log 대신 Logger 서비스를 쓰는 이유는?
map과 forEach의 비동기 처리 차이점은?
테스트 커버리지(Coverage)는 100%를 목표로 해야 할까요?
SQLite에서 PostgreSQL로 마이그레이션 시 가장 큰 리스크는?
대용량 배치 처리 시 메모리 문제를 어떻게 해결하나요?
오프셋(Offset) 페이지네이션을 쓰면 안 되나요? 왜 커서(Cursor) 방식을 언급했죠?
Node.js Stream 사용 시 Backpressure 처리는 어떻게 하나요?
암호화된 데이터와 해시값을 중복 저장하는 것은 스토리지 낭비 아닌가요?
트래픽이 급증해 DB 부하가 심할 때, 코드 수정 없이 대응할 수 있는 전략은?
트랜잭션 범위를 설정할 때 원칙은 무엇인가요?
NestJS 도입이 인건비와 채용 관점에서 주는 이득은?
암호화 키 유출 시 DR(재해 복구) 대책과 비용 효율적인 보안 강화책은?
기술 부채(Technical Debt)는 언제, 어떻게 갚아야 한다고 생각하나요?
동료가 any 타입을 남발할 때 어떻게 설득하겠습니까?
팀원 간 기술 스택 논쟁(MikroORM vs TypeORM) 시 해결 방법은?
일정이 촉박해 테스트 코드를 짤 시간이 없다면?
레거시 코드를 리팩토링하고 싶은데 비즈니스 일정 때문에 못하게 한다면?
AWS에서 EC2, Lambda, ECS 중 어떤 것을 선택해야 하나요?
RDS와 DynamoDB 중 어떤 것을 선택해야 하나요?
AWS VPC와 네트워크 구성은 어떻게 하나요?
AWS IAM 역할(Role)과 정책(Policy)의 차이는?
CloudFront CDN의 동작 원리와 최적화는?
Kubernetes란 무엇이고 왜 필요한가요?
Infrastructure as Code(IaC)란 무엇이고 왜 필요한가요?
프로세스(Process)와 스레드(Thread)의 차이를 설명해주시고, 멀티 스레드를 사용하는 이유는 무엇인가요?
파이썬이나 Node.js(Next.js)를 쓸 때, 멀티 스레드와 멀티 프로세스를 어떻게 다르게 접근해야 하나요?
온프레미스(On-Premise) 환경과 클라우드(Cloud) 환경의 차이점은 무엇인가요?
가상머신(VM)과 도커(Docker) 컨테이너의 아키텍처 상 가장 큰 차이점은 무엇인가요?
TCP 3-Way Handshake와 4-Way Handshake의 목적과 과정을 설명해주세요.
HTTP/1.1과 HTTP/2.0의 성능적 차이는 무엇인가요?
REST API 설계 시 멱등성(Idempotence)이란 무엇이며, 어떤 HTTP 메서드가 멱등성을 가지나요?
REST API와 GraphQL의 핵심적인 차이는 무엇인가요?
파이썬의 메모리 관리 기법과 가비지 컬렉션(GC)은 어떻게 동작하나요?
파이썬 웹 서버 환경에서 WSGI와 ASGI의 차이는 무엇인가요?
파이썬의 데코레이터(Decorator)에 숨겨진 CS 원리는 무엇인가요?
Spring의 핵심인 IoC(제어의 역전)와 DI(의존성 주입)를 설명해주세요.
Spring Bean은 싱글톤으로 생성됩니다. 멀티 스레드 환경에서 안전한가요?
스프링에서 AOP(관점 지향 프로그래밍)는 어떻게 동작하나요?
사용자가 급증하여 DB 병목 현상이 발생했습니다. 스케일 업 외에 어떤 조치를 취하시겠습니까?
세션(Session) 방식과 JWT(토큰) 방식의 핵심적인 차이점은 무엇인가요?
JWT의 단점과 보안을 고려한 저장 방식(Access/Refresh)은 무엇인가요?
데이터베이스가 있는데도 캐싱(Redis 등)을 별도로 도입하는 이유는 무엇인가요?
실무에서 가장 많이 쓰이는 캐싱 전략인 "Look-Aside(Cache Aside)" 패턴은 무엇인가요?
"캐시 스탬피드(Cache Stampede)" 현상은 무엇이고 어떻게 해결하나요?