개발자 필수 지식 정리 & 디자인 패턴 정리 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. 데이터베이스 설계 시 강한 엔터티와 약한 엔터티를 구분하는 이유는 무엇인가요? 예를 들어, 학생과 강의 등록의 관계를 설계할 때 왜 강의 등록을 약한 엔터티로 정의해야 할까요?
- VARCHAR vs TEXT
Q. VARCHAR와 TEXT 타입은 모두 긴 문자열을 저장할 수 있습니다. 하지만 MySQL에서 TEXT 타입보다는 VARCHAR를 권장하는 경우가 많습니다. 이 두 타입의 저장 방식 차이를 설명하고, 어떤 상황에서 각각을 선택해야 하는지 설명해 주세요.
- 정규화와 비정규화
Q. 정규화 과정을 거치면 데이터의 중복이 줄고 무결성을 높일 수 있습니다. 하지만 실제 서비스에서는 비정규화를 적용하기도 합니다. 정규화를 통해 얻을 수 있는 장점과, 비정규화가 오히려 필요한 상황을 예시와 함께 설명해 주세요.
- 트랜잭션과 격리 수준
Q. MySQL InnoDB의 기본 트랜잭션 격리 수준은 REPEATABLE READ입니다. 이 격리 수준에서 발생할 수 있는 팬텀 리드(Phantom Read) 현상을 구체적인 시나리오로 설명해 주실 수 있나요? 그리고 이를 방지하려면 어떤 방법을 사용할 수 있을까요?
- 인덱스 최적화
Q. 인덱스는 조회 성능을 높여주지만, 삽입/수정/삭제 시에는 오히려 성능 저하를 유발할 수 있습니다. 서비스 운영 중 불필요한 인덱스를 만들었을 때 어떤 문제가 발생할 수 있고, 이를 점검·최적화하기 위해 어떤 방법(EXPLAIN 등)을 사용할 수 있을까요?
- 데드락 해결
Q. 운영 중인 서비스에서 데드락이 자주 발생한다면 어떤 방식으로 원인을 분석하고 해결 방안을 적용하시겠습니까? 예를 들어 wait-for graph, timeout, wait-die / wound-wait 같은 접근법 중 한 가지를 선택해 구체적으로 설명해 주세요.