배열과 연결 리스트는 어떤 상황에서 각각 유리한가요?
핵심배열은 인덱스 접근과 연속 메모리 순회에, 연결 리스트는 위치를 이미 아는 노드의 연결 변경에 강점이 있어요.
답변 예시와 꼬리질문 보기
말로 풀어 설명하면
배열은 순서대로 붙어 있어서 인덱스로 바로 접근하기 좋습니다. 연결 리스트는 중간 연결을 바꾸기 편하지만, 그 위치까지 찾는 비용은 따로 들어요. 그래서 삽입이 있다는 이유만으로 연결 리스트를 고르지는 않겠습니다.
답변할 때 주의할 점
연결 리스트의 임의 위치 삽입을 탐색 비용까지 포함해 항상 O(1)이라고 말하기
예상 꼬리질문
- 동적 배열이 가끔 전체 복사를 하는데도 append를 평균 O(1)이라고 하는 이유는요?
- 캐시 지역성은 실제 실행 시간에 어떤 영향을 주나요?
해시 테이블 조회는 항상 O(1)인가요?
핵심평균적인 기대 비용과 충돌이 몰리는 최악의 경우를 구분해야 해요.
답변 예시와 꼬리질문 보기
말로 풀어 설명하면
잘 분산되고 적재율이 관리되면 평균적으로 빠르게 찾을 수 있어요. 다만 같은 버킷에 키가 몰리면 더 많은 비교가 필요합니다. 해시 함수, 충돌 처리 방식, 리사이즈 정책까지 함께 보겠습니다.
답변할 때 주의할 점
평균 복잡도를 모든 입력에 대한 보장으로 설명하기
예상 꼬리질문
- 같은 해시값이면 같은 키인가요?
- 적재율을 낮추면 어떤 비용이 늘어나나요?
프로세스와 스레드는 무엇을 공유하고 무엇이 다른가요?
핵심일반적으로 프로세스는 주소 공간이 분리되고, 같은 프로세스의 스레드는 메모리 자원을 공유해요.
답변 예시와 꼬리질문 보기
말로 풀어 설명하면
스레드는 같은 프로세스의 힙 같은 자원을 함께 쓰기 때문에 데이터를 나누기 편해요. 반대로 동시에 값을 바꿀 때 경쟁 조건이 생길 수 있습니다. 프로세스는 격리 측면의 이점이 있지만 통신 비용과 방식도 고려해야 해요.
답변할 때 주의할 점
스레드가 모든 메모리와 실행 상태를 완전히 공유한다고 단정하기
예상 꼬리질문
- 스레드마다 별도로 갖는 실행 상태는 무엇인가요?
- 공유 변수 증가 연산에 락이 필요한 이유는요?
뮤텍스만 사용하면 데드락이 사라지나요?
핵심상호 배제는 경쟁을 막을 수 있지만, 자원 획득 순서에 따라 교착을 만들 수도 있어요.
답변 예시와 꼬리질문 보기
말로 풀어 설명하면
락은 한 번에 하나만 접근하게 해주는 장치지, 데드락 방지 장치는 아닙니다. 두 작업이 서로 상대의 락을 기다릴 수 있어요. 자원을 같은 순서로 잡거나 보유 시간을 줄이는 방식부터 검토하겠습니다.
답변할 때 주의할 점
동시성 버그와 데드락을 같은 현상으로 설명하기
예상 꼬리질문
- 락 순서를 통일할 수 없다면 어떤 방법이 있나요?
- 타임아웃을 넣어도 재시도 설계가 필요한 이유는요?
인덱스를 많이 만들면 조회가 무조건 빨라지나요?
핵심조회 패턴·선택도·정렬 조건과 쓰기·저장 비용을 함께 봐야 해요.
답변 예시와 꼬리질문 보기
말로 풀어 설명하면
인덱스는 필요한 행을 좁히는 데 도움이 되지만, 테이블의 대부분을 읽는 쿼리에서는 이점이 작을 수 있어요. 추가와 수정 때 인덱스도 관리해야 합니다. 실행 계획과 실제 부하를 보고 필요한 인덱스를 고르겠습니다.
답변할 때 주의할 점
인덱스 유무만으로 모든 쿼리의 성능을 판단하기
예상 꼬리질문
- 복합 인덱스에서 열 순서가 중요한 이유는요?
- 실행 계획의 추정과 실제 시간이 다르면 무엇을 확인하나요?
트랜잭션을 쓰면 동시성 문제가 모두 해결되나요?
핵심격리 수준과 읽기·쓰기 방식에 따라 허용되는 이상 현상이 달라요.
답변 예시와 꼬리질문 보기
말로 풀어 설명하면
트랜잭션은 작업의 경계를 잡아주지만 격리 수준에 따라 같은 데이터를 본 작업들이 충돌할 수 있어요. 재고 차감이라면 읽고 계산한 값을 덮어쓰기보다 조건부 갱신이나 적절한 잠금을 검토하겠습니다. 충돌 시 재시도도 필요합니다.
답변할 때 주의할 점
ACID라는 이름만으로 모든 비즈니스 불변식이 자동 보장된다고 말하기
예상 꼬리질문
- 낙관적 잠금이 실패했을 때는 어떻게 하나요?
- 직렬화 가능한 격리에서도 오류 처리가 필요한가요?
TCP를 쓰는데도 요청 중복 처리가 필요한 이유는요?
핵심전송 연결의 신뢰성과 애플리케이션 작업의 정확히 한 번 실행은 다른 문제예요.
답변 예시와 꼬리질문 보기
말로 풀어 설명하면
클라이언트가 응답을 받기 전에 연결이 끊기면 서버가 작업을 끝냈는지 알기 어려워요. 이때 같은 요청을 다시 보낼 수 있습니다. 결제처럼 중복 실행이 위험한 작업은 요청 키와 처리 결과를 묶어 재사용하도록 설계하겠습니다.
답변할 때 주의할 점
TCP가 신뢰할 수 있으므로 결제도 정확히 한 번 처리된다고 설명하기
예상 꼬리질문
- 요청 키를 언제까지 보관해야 하나요?
- 서로 다른 본문에 같은 키를 쓰면 어떻게 처리하나요?
BFS와 다익스트라는 어떤 조건에서 선택하나요?
핵심간선 비용이 동일한 최단 경로는 BFS, 음수가 없는 가중치는 다익스트라를 검토해요.
답변 예시와 꼬리질문 보기
말로 풀어 설명하면
모든 이동 비용이 같으면 BFS로 거리 순서대로 탐색할 수 있어요. 이동마다 비용이 다르면 우선순위 큐로 누적 비용이 작은 정점부터 보는 다익스트라를 검토합니다. 음수 간선이 있다면 그 전제를 쓸 수 없습니다.
답변할 때 주의할 점
가중치의 부호와 동일 여부를 확인하지 않고 알고리즘 이름부터 고르기
예상 꼬리질문
- 방문 처리를 큐에 넣을 때와 꺼낼 때 하면 어떤 차이가 있나요?
- 음수 간선이 있으면 어떤 알고리즘을 검토하나요?
내 과제·프로젝트와 연결하기
위 개념을 실제로 사용한 적이 있다면 입력·조건·본인 역할·확인한 결과를 적어 보세요. 배운 원리와 직접 수행한 경험은 구분하고, 아직 적용하지 않았다면 일반적인 접근으로 설명하면 됩니다.
전공 면접 준비 방법 읽기 ↗개념 학습과 말하기 연습용 자료입니다. 최신 법규·설계·안전 기준이나 실무 절차를 대신하지 않습니다.
앱 다운로드 ↓