카테고리 없음

백엔드 면접 준비 질문 정리

땍땍 2025. 8. 30. 21:59

 

객체 지향 SOLID 원칙 (객체 지향 5원칙)

  1. SRP (단일 책임 원칙)
    • 하나의 클래스는 하나의 책임만 가져야 한다.
  2. OCP (개방-폐쇄 원칙)
    • 확장에는 열려 있고, 수정에는 닫혀 있어야 한다.
  3. LSP (리스코프 치환 원칙)
    • 상위 타입 객체를 하위 타입 객체로 대체해도 정상 동작해야 한다.
  4. ISP (인터페이스 분리 원칙)
    • 클라이언트는 필요한 메서드만 의존해야 한다.
  5. DIP (의존 역전 원칙)
    • 클래스는 상위(추상) 요소에 의존해야 한다.

 


객체 지향 특징

  • 추상화 : 공통적인 특성을 묶어 표현
  • 상속 : 부모의 기능을 자식 클래스가 활용
  • 다형성 : 동일한 메서드를 다양한 방식으로 구현
  • 캡슐화 : 상태와 행동을 묶고, 외부에서 직접 접근 제한

 


Spring Framework 특징

  • DI (Dependency Injection, 의존성 주입)
  • 객체를 직접 생성하지 않고 스프링 컨테이너가 주입
  • IoC (Inversion of Control, 제어 역전)
  • 객체의 생성/소멸 관리 주체를 스프링 컨테이너에 위임
  • AOP (Aspect Oriented Programming, 관점 지향 프로그래밍)
  • 핵심 기능부가 기능을 분리해 모듈화

 


HTTP Method 종류

  • GET : 리소스 조회 (멱등성 O, Query String 사용)
  • POST : 리소스 생성 (Body 사용, 보안적 이점 O)
  • PUT : 리소스 완전 대체 (멱등성 O, 전체 데이터 필요)
  • PATCH : 리소스 부분 변경
  • DELETE : 리소스 삭제 (멱등성 O)
  • HEAD : GET과 동일, body 제외
  • OPTIONS : 서버 지원 메서드 확인
  • CONNECT : 서버 연결 요청

 


RESTful 특징

  1. 인터페이스 일관성 (HTTP Method 기반)
  2. 무상태성 (서버는 클라이언트 상태 기억 X)
  3. 캐시 가능성
  4. 자체 표현 구조 (메시지만으로 기능 이해 가능)
  5. Client-Server 구조 (독립적 개발/배포)
  6. 계층형 구조 (중간 서버 존재 모름)

 


트랜잭션 특징 (ACID)

  • Atomicity (원자성) : 모두 성공 / 모두 실패
  • Consistency (일관성) : 데이터 일관성 유지
  • Isolation (독립성) : 다른 트랜잭션과 독립 실행
  • Durability (영속성) : 성공 결과는 영구 반영

 


트랜잭션 격리 수준

  • SERIALIZABLE : 순차 처리 (동시 접근 불가)
  • REPEATABLE READ : 동일 데이터 반복 조회 보장, 유령 읽기 발생 가능 (MySQL은 갭락으로 방지)
  • READ COMMITTED : 커밋된 데이터만 조회 (Postgres 기본 설정)
  • READ UNCOMMITTED : 커밋 전 데이터도 조회

 


JPA N+1 문제

  • 원인 : 연관 관계 객체 조회 시 추가 쿼리 다수 발생
  • 해결 방법
    • Eager Loading (즉시 로딩)
    • Fetch Join (영속성 컨텍스트에 캐시 가능)
    • Batch Size (추가 쿼리를 하나로 묶음)

 


HTTP 버전 차이

  • HTTP/1.1 : Persistent Connection (연속 요청 가능)
  • HTTP/2.0 : Multiplexing (한 커넥션에서 여러 요청 처리)
  • HTTP/3.0 : UDP 기반 (지연 시간 감소)

 


캐시 전략

— 읽기 전략

  1. Cache Aside (Look Aside)
  2. 캐시 → DB 순으로 조회
  3. Read Through
  4. 캐시에서만 읽음 (DB → 캐시 자동 갱신)

— 쓰기 전략

  1. Write Back (Behind) : 캐시에 저장 후 주기적으로 DB 반영
  2. Write Through : DB와 캐시에 동시에 기록
  3. Write Around : DB만 갱신, Cache Miss 시 캐시에 저장

 


TCP vs UDP

  • TCP (Transmission Control Protocol)
    • 연결 지향, 신뢰성 보장
    • 3-way Handshake (연결) / 4-way Handshake (해제)
  • UDP (User Datagram Protocol)
    • 비연결형, 빠름
    • 순서/신뢰성 보장 X