기타

모 기업의 서술형 코딩 테스트 키워드를 기반으로 생성한 문제

Nhahan 2024. 10. 5. 16:25

(코테를 직접 본 것이 아니라 주워들은 내용을 기반으로 생성한 문제들이기에 기출과는 다름)

 



1. 실시간 맵리듀서 (Real-Time MapReduce)

문제: 당신은 대규모 데이터 스트림을 실시간으로 처리해야 하는 시스템을 설계하고 있습니다. 이 데이터를 분석하고 결과를 빠르게 제공하기 위해 맵리듀스를 사용할 계획입니다. 실시간 처리와 기존 맵리듀스 모델의 차이를 고려할 때, 시스템을 어떻게 설계해야 하며, 다음과 같은 조건들을 만족시킬 수 있습니까?


- 실시간 데이터 흐름을 처리하는 방법

- 높은 처리량(Throughput)을 유지하면서 낮은 지연(Latency)을 유지할 수 있는 방법
- 노드 장애 시에도 안정적으로 처리 작업을 이어갈 수 있는 방법


추가 질문

트러블 슈팅 문제로, 데이터 처리 도중 일부 노드가 고장이 나서 데이터가 누락되었습니다. 이 문제를 어떻게 해결할 수 있습니까?

 

2. 랭킹 시스템 (Ranking System)

문제: 당신은 수백만 명의 사용자가 참여하는 온라인 게임의 랭킹 시스템을 설계해야 합니다. 사용자 수와 랭킹 산정 규칙이 복잡해지는 상황에서, 다음과 같은 요구 사항을 만족하는 시스템을 설계하세요.


- 실시간으로 업데이트되는 랭킹을 지원
- 랭킹 계산 중 발생하는 성능 병목을 최소화
- 다양한 필터(지역별, 나이대별)로 랭킹을 조회할 수 있는 유연성

 

추가 질문

트러블 슈팅 문제로, 랭킹 시스템이 높은 부하 상태에서 비정상적으로 느려지는 현상이 발생했습니다. 이런 성능 병목을 어떻게 해결할 수 있습니까?

 

3. 서킷브레이커 (Circuit Breaker)

문제: 여러 개의 마이크로서비스로 구성된 시스템에서 특정 서비스의 장애로 인해 다른 서비스까지 영향을 받는 문제가 발생하고 있습니다. 서킷브레이커 패턴을 도입해 시스템의 안정성을 보장하려 합니다. 서킷브레이커를 사용해 다음 조건을 만족하는 시스템을 설계하세요.

 

- 서비스 A가 과부하 상태일 때 서비스 B에 대한 요청이 정상적으로 처리될 수 있도록 보장

- 서킷브레이커가 트립(Trip)되는 기준과, 서비스가 다시 복구되는 기준
- 장애 상태에서 가능한 빠르게 복구하는 방법

 

추가 질문:

트러블 슈팅 문제로, 서킷브레이커가 트립된 상태에서 예상보다 빠르게 요청을 받아들이는 현상이 발생하고 있습니다. 이 문제를 어떻게 해결할 수 있습니까?


4. 선착순 티케팅 시스템 (First-Come, First-Serve Ticketing System)

문제: 당신은 대규모 이벤트의 티켓 판매 시스템을 설계하고 있습니다. 티켓 판매는 선착순으로 진행되며, 사용자 수는 매우 많아 트래픽이 폭주할 수 있습니다. 다음 요구 사항을 만족하는 시스템을 설계하세요.


- 대규모 동시 접속을 처리할 수 있는 방법
- 사용자가 티켓을 성공적으로 구매했는지 여부를 신속하게 알릴 수 있는 방법
- 부정한 사용자가 자동화된 봇으로 티켓을 구매하는 것을 방지

 

추가 질문

트러블 슈팅 문제로, 티켓 판매 과정에서 일부 사용자들이 티켓 구매가 완료되지 않고 "구매 대기" 상태에서 계속 멈춰 있는 현상이 보고되었습니다. 이 문제를 해결하려면 어떻게 해야 합니까?


5. CAP 정리 (Consistency, Availability, Partition Tolerance)

문제: 분산 시스템에서 CAP 이론에 따라 일관성(Consistency), 가용성(Availability), 파티션 허용성(Partition Tolerance) 중 어느 하나를 포기해야 할 때가 있습니다. CAP 트레이드오프를 고려하여, 다음과 같은 상황에서 각 요소를 어떻게 선택할 것인지 설명하세요.


- 일관성을 우선해야 하는 상황
- 가용성을 우선해야 하는 상황
- 파티션 허용성을 고려해야 하는 상황

 

추가 질문

트러블 슈팅 문제로, 네트워크 분할(Network Partition) 상황에서 시스템이 일관성 문제로 인해 데이터 충돌을 일으키고 있습니다. 이 문제를 해결하기 위한 설계 전략을 설명하세요.