일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 캐시 초기화
- 개발자 성장 과정
- 백엔드 역할과 중요성
- rest api 면접 질문
- 면접관 경험 공유
- 2024회고
- aws 인프라 면접
- aop(aspect-oriented programming)
- redis캐시
- 취향공동체
- 실력 있는 개발자 특징
- 커리어기록
- 근근히먹고살기
- 개발자 채용 기준
- 데이터베이스 인덱스 면접
- http 면접 정리
- msa 설계 면접
- 마당보수
- 백엔드 면접 질문
- 문제 해결력 면접 질문
- 백엔드 개발자 기술면접
- techlog
- 개발자 사고방식 중요성
- 데이터 일관성
- 좋은 개발자 뽑는 법
- 기술 면접 질문 예시
- spring 면접 대비
- 기술 스택보다 중요한 것
- 백엔드 개발자 면접
- jpa 면접 질문
Archives
- Today
- Total
기록해야 성장한다
백엔드 기술면접 질문 리스트 본문
HTTP 에 관하여
1. RESTful API 설계 기본 원칙
질문: RESTful URI를 설계할 때 가장 중요하게 고려해야 할 점은 무엇인가요?
모범 답안:
- 자원을 명사 중심으로 표현할 것.
- 소문자와 하이픈(-)을 사용해 가독성을 높일 것.
- 명확한 계층 구조를 유지할 것 (ex: /children/{childId}/books).
- 컬렉션과 단일 리소스를 구분할 것 (복수형 사용).
꼬리 질문:
- GET 요청에 Body를 추가해도 될까요? 된다면 어떤 상황에서 허용할 수 있나요?
- 원칙적으로, HTTP/1.1 명세(RFC 7231)에 따르면 GET 요청은 Body를 포함하지 않는 것이 표준입니다. 하지만 기술적으로는 일부 서버와 클라이언트(예: 일부 API Gateway, 커스텀 시스템)는 GET 요청에 Body를 지원할 수 있습니다. 다만, 표준이 강제하지 않고 대부분의 HTTP 서버, 프록시, 캐시 시스템이 GET Body를 무시하거나 문제를 일으킬 수 있기 때문에,실제 서비스에서는 사용하지 않는 것이 권장됩니다.
2. HTTP Status Code 이해
질문: 200, 201, 204, 400, 401, 403, 404, 409, 422는 각각 어떤 상황에서 사용해야 하나요?
모범 답안:
- 200 OK: 요청이 성공하고 응답 데이터가 있을 때.
- 201 Created: 새로운 리소스가 성공적으로 생성되었을 때.
- 204 No Content: 요청 성공했지만 반환할 데이터가 없을 때.
- 400 Bad Request: 잘못된 요청 (예: 유효성 검증 실패).
- 401 Unauthorized: 인증 실패.
- 403 Forbidden: 인증은 되었지만 권한이 없을 때.
- 404 Not Found: 요청한 리소스를 찾을 수 없을 때.
- 409 Conflict: 리소스 충돌 (예: 중복 데이터 생성 시).
- 422 Unprocessable Entity: 서버가 요청을 이해했지만 처리할 수 없을 때 (주로 유효성 오류).
Spring에 관하여
1. Spring Framework 개념
질문: Spring Framework과 Spring Boot의 차이점을 구체적으로 설명해주세요.
목표 답안:
- Spring Framework는 DI, AOP, Transaction Management 등 기능을 제공하는 기본 프레임워크이며, 개발자가 XML 파일이나 Java Config을 통해 자유롭게 설정해야 합니다.
- Spring Boot는 Spring Framework 기능을 기본으로, 필요한 설정을 자동적으로 차원하고, embedded Tomcat 등을 포함해 구조 설정 및 복소 과정을 느낌적으로 간소화한 형태입니다.
2. Spring Bean이란 무엇인가요?
- Spring Container(ApplicationContext)가 관리하는 자바 객체를 의미합니다.
- 일반적인 자바 객체와의 차이는,
- 생성 시점, 의존성 주입(DI) 처리, 생명주기 관리(초기화/소멸),AOP 적용 등
- Annotation 기반으로는 @Component, @Service, @Repository, @Controller 등이 Bean 등록을 의미합니다.
3. Spring Bean 생명주기는 어떻게 되나요?
- Spring Container는 Bean을 생성하고, 의존성 주입(DI)을 수행한 후 초기화 과정을 거쳐 사용 가능 상태로 만든다.
- 일반적인 생명주기 단계는 다음과 같다:
- 객체 생성 (new)
- 의존성 주입 (DI)
- 초기화 콜백 (@PostConstruct, InitializingBean#afterPropertiesSet)
- 사용
- 소멸 전 콜백 (@PreDestroy, DisposableBean#destroy)
- Bean 생명주기 중 커스터마이징이 필요한 경우, @PostConstruct/@PreDestroy 어노테이션이나 InitializingBean, DisposableBean 인터페이스를 활용할 수 있다.
4. Spring DI/IoC
질문: Spring에서 DI(Dependency Injection)와 IoC(Inversion of Control)의 관계를 설명해주세요.
목표 답안:
- IoC는 객체의 생성, 초기화, 소멸 등 생명주기 제어를 개발자가 직접 하지 않고, Spring 프레임워크가 대신 담당하는 설계 원칙입니다.
- DI는 Spring이 객체 간의 의존성을 자동으로 주입하여 객체 간 결합을 낮추고 관계를 관리해주는 방식입니다.
5. Spring Boot, JPA
1차 질문:
“JPA 사용 시 N+1 문제를 발견하고 해결한 경험이 있나요?”
꼬리 질문:
- 그 문제를 사전에 예방하기 위한 코드 작성 습관이나 설계 방법은 무엇인가요?
- Fetch Join을 무조건 사용하는 것이 최선이 아닐 수도 있는데, 어떤 경우 문제가 될 수 있을까요?
DB 설계 및 최적화
1차 질문:
“PostgreSQL 인덱스 튜닝을 해본 경험이 있나요?”
꼬리 질문:
- 인덱스가 오히려 쿼리 성능을 저하시키는 경우가 있는데, 어떤 경우를 말하나요?
- 복합 인덱스를 설계할 때 주의해야 할 점은 무엇인가요?
AWS 및 인프라
1차 질문:
“AWS ECS, EC2를 조합하여 서비스를 배포해 본 경험이 있나요?”
꼬리 질문:
- EC2 단독 배포와 ECS를 이용한 배포를 비교했을 때, 운영/확장성 관점에서 가장 큰 차이점은 무엇인가요?
- ECS 서비스 배포 시 롤링 업데이트가 실패할 경우 어떤 대응이 필요할까요?
코드 품질 및 아키텍처
1차 질문:
“MSA에서 서비스 경계를 나눌 때 기준은 무엇인가요?”
꼬리 질문:
- 만약 잘못 나눈 서비스 경계로 인해 시스템 장애가 발생했다면, 리팩터링을 어떻게 접근하겠습니까?
- MSA로 나누면서 데이터 정합성을 어떻게 유지할 계획인가요? (ex. eventual consistency?)
문제 해결력
1차 질문:
“운영 서버 장애가 발생했을 때 문제를 어떻게 추적하고 해결했나요?”
꼬리 질문:
- 만약 장애 재현이 불가능한 경우, 어떤 방식으로 원인을 좁혀나가시겠습니까?
- 서버 로그 외에 추가적으로 참고할 수 있는 데이터는 어떤 것들이 있을까요?
🤖 AI 활용 관련 기술 질문 추가
1. AI 활용에 대한 중립적 질문
질문: 최근 개발 현장에서 AI 코드를 보조 도구로 사용하는 경우가 많아졌습니다. AI가 작성해준 코드를 무조건 배척하거나 맹신하는 것은 바람직하지 않은데, 어떻게 하면 AI가 작성한 코드를 효율적이고 안전하게 검증하며 개발에 도움이 되는 방향으로 사용할 수 있다고 생각하시나요?
기대 답변 방향:
- 코드의 의도와 동작을 직접 이해하려는 노력
- 보안, 성능, 코드 스타일 관점에서 리뷰와 테스트
- AI 코드를 참고 자료로 활용하되, 최종 결정은 스스로 검토
- 잘못된 전제나 패턴을 비판적으로 분석
- AI는 생산성 향상 도구이지, 책임 전가 수단이 아님을 인식
2. AI 활용에 대한 개인적 노하우 질문
질문: AI 도구를 개발에 활용하면서 본인만의 노하우나 팁이 있다면 소개해 주실 수 있나요?
기대 답변 방향:
- AI를 어떤 시점(예: 초안 작성, 코드 리뷰, 테스트 케이스 보완 등)에 주로 활용하는지
- AI의 답변을 신뢰하기 위해 어떤 기준이나 추가 검증 절차를 거치는지
- 반복 작업 자동화, 코드 아이디어 탐색 등에 어떻게 효과적으로 AI를 활용하는지
- AI가 제시한 결과를 자기 스타일에 맞게 수정하거나 최적화하는 방법
반응형
'Review > Proj' 카테고리의 다른 글
🚀 백엔드 개발자 영입에 대한 생각 (0) | 2025.05.08 |
---|---|
User Migration ISSUE Report (0) | 2023.02.27 |
KB-Queen 3차 고도화 (0) | 2021.11.10 |
성과 관리 (0) | 2021.11.10 |
kms 리뷰 (0) | 2019.05.08 |
Comments