Skip to content

LEEJaeHyeok97/backend-interview-question

Repository files navigation

개발자 필수 지식 정리 & 디자인 패턴 정리 Quiz ✅ 1. JSON과 직렬화/역직렬화

JSON의 구조와 데이터 타입은 무엇인가요? 예시와 함께 설명해주세요.

JSON에서 직렬화와 역직렬화란 무엇이며, 각각 어떤 메서드를 사용하나요?

JSON이 XML에 비해 가지는 장점은 무엇인가요?

✅ 2. XML과 JSON 비교

XML과 JSON의 차이점을 설명하고, 각각 어떤 상황에서 더 적합할지 설명해주세요.

HTML과 XML의 차이점을 설명해주세요.

sitemap.xml이란 무엇이며 왜 필요한가요?

✅ 3. API 개념과 활용

API란 무엇이며 왜 필요한가요? 인터페이스라는 키워드를 포함해 설명해주세요.

Public API와 Private API의 차이를 설명해주세요.

API를 통해 데이터를 수집하고 집계할 수 있는 구조를 설명해주세요.

✅ 4. 클라우드 개념 및 분류

IaaS, PaaS, SaaS의 차이점을 설명해주세요. 각각의 예시도 함께 들어주세요.

온프레미스와 오프프레미스의 차이를 설명해주세요.

PaaS를 사용하면 어떤 운영상 이점이 있는지 설명해주세요.

✅ 5. 가상화와 컨테이너

가상 머신과 컨테이너의 차이를 설명해주세요.

도커 이미지와 도커 컨테이너의 차이는 무엇인가요?

도커파일이란 무엇이며 어떤 정보를 담고 있나요?

✅ 6. CI/CD

CI, CD의 의미와 각 단계에서 이루어지는 일을 설명해주세요.

CI/CD 파이프라인이 충돌 방지에 어떻게 기여하는지 설명해주세요.

✅ 7. 클래스, 객체, 인스턴스

클래스, 객체, 인스턴스의 차이를 설명해주세요.

Java에서 객체를 생성하고 인스턴스화하는 방법을 예시와 함께 설명해주세요.

✅ 8. static 키워드

static 키워드의 역할과 장점은 무엇인가요?

static 키워드 사용 시 발생할 수 있는 문제점은 무엇인가요?

✅ 9. 오버로딩 vs 오버라이딩

오버로딩과 오버라이딩의 차이점은 무엇인가요? 예제를 들어 설명해주세요.

오버라이딩이 불가능한 메서드에는 어떤 제어자가 붙어 있나요?

✅ 10. 추상화

데이터 추상화와 프로세스 추상화의 차이를 설명해주세요.

추상화가 객체지향 프로그래밍에서 중요한 이유는 무엇인가요?

✅ 11. 컴파일러와 인터프리터

컴파일러 언어와 인터프리터 언어의 차이점을 설명해주세요.

JIT 컴파일러란 무엇이고, 어떤 장단점을 가지고 있나요?

✅ 12. 디자인 패턴

전략 패턴과 의존성 주입은 어떻게 다른가요?

싱글톤 패턴의 장단점은 무엇이며, 추천되는 구현 방식은 어떤 것인가요?

프록시 패턴이 보안이나 성능 측면에서 어떻게 사용될 수 있는지 예시를 들어 설명해주세요.

네트워크 ✅ 1. 네트워크 전반 네트워크에서 트래픽과 처리량의 차이점을 설명해주세요.

대역폭이 높을수록 사용자 입장에서 어떤 장점이 있는지 예를 들어 설명해주세요.

RTT가 높은 상황에서 어떤 문제가 발생할 수 있을까요?

✅ 2. 네트워크 구조와 토폴로지 버스 토폴로지의 장점과 단점을 설명해주세요.

트리 토폴로지는 어떤 상황에서 병목현상이 생기기 쉬운 구조인가요?

메시 토폴로지와 스타 토폴로지의 차이점을 비교해주세요.

✅ 3. TCP/IP 계층 및 패킷 흐름 TCP/IP 4계층 각각에서 데이터가 어떤 단위(PDU)로 다뤄지는지 설명해주세요.

캡슐화와 비캡슐화 과정이 어떻게 일어나는지, 실제로 어떤 계층에서 어떤 정보가 붙는지 예시로 설명해주세요.

MTU와 MSS의 차이는 무엇이며, PMTUD가 필요한 이유는 무엇인가요?

✅ 4. HTTP와 버전 차이 HTTP/1.0과 HTTP/1.1의 가장 큰 차이점은 무엇인가요?

HTTP/2에서 멀티플렉싱이란 무엇이며, 어떤 문제를 해결하기 위한 기술인가요?

HTTP/3가 TCP 대신 UDP를 선택한 이유는 무엇인가요?

✅ 5. 보안 프로토콜과 통신 흐름 HTTPS와 TLS의 관계를 설명해주세요.

TLS 핸드셰이크는 어떤 과정을 통해 안전한 연결을 확립하나요?

TCP와 UDP의 차이를 신뢰성, 속도, 용도 관점에서 설명해주세요.

데이터베이스 1. 엔터티와 약한 엔터티

Q. 데이터베이스 설계 시 강한 엔터티와 약한 엔터티를 구분하는 이유는 무엇인가요? 예를 들어, 학생과 강의 등록의 관계를 설계할 때 왜 강의 등록을 약한 엔터티로 정의해야 할까요?

  1. VARCHAR vs TEXT

Q. VARCHAR와 TEXT 타입은 모두 긴 문자열을 저장할 수 있습니다. 하지만 MySQL에서 TEXT 타입보다는 VARCHAR를 권장하는 경우가 많습니다. 이 두 타입의 저장 방식 차이를 설명하고, 어떤 상황에서 각각을 선택해야 하는지 설명해 주세요.

  1. 정규화와 비정규화

Q. 정규화 과정을 거치면 데이터의 중복이 줄고 무결성을 높일 수 있습니다. 하지만 실제 서비스에서는 비정규화를 적용하기도 합니다. 정규화를 통해 얻을 수 있는 장점과, 비정규화가 오히려 필요한 상황을 예시와 함께 설명해 주세요.

  1. 트랜잭션과 격리 수준

Q. MySQL InnoDB의 기본 트랜잭션 격리 수준은 REPEATABLE READ입니다. 이 격리 수준에서 발생할 수 있는 팬텀 리드(Phantom Read) 현상을 구체적인 시나리오로 설명해 주실 수 있나요? 그리고 이를 방지하려면 어떤 방법을 사용할 수 있을까요?

  1. 인덱스 최적화

Q. 인덱스는 조회 성능을 높여주지만, 삽입/수정/삭제 시에는 오히려 성능 저하를 유발할 수 있습니다. 서비스 운영 중 불필요한 인덱스를 만들었을 때 어떤 문제가 발생할 수 있고, 이를 점검·최적화하기 위해 어떤 방법(EXPLAIN 등)을 사용할 수 있을까요?

  1. 데드락 해결

Q. 운영 중인 서비스에서 데드락이 자주 발생한다면 어떤 방식으로 원인을 분석하고 해결 방안을 적용하시겠습니까? 예를 들어 wait-for graph, timeout, wait-die / wound-wait 같은 접근법 중 한 가지를 선택해 구체적으로 설명해 주세요.

About

면접 대비 모의 면접 스터디

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published