Q1. 동기, 비동기에 대해 설명하고 장단점을 각각 설명해보세요.
A1.
동기 -> 프로그램이 순차적으로 진행됨, 안정적이고 속도가 느림 -> 어려운 언어들..
비동기 -> 기다려주지 않고, 일단 순서대로 모두 진행함, 속도가 빠르지만, 처리하기 까다로움 -> 대부분 언어들 JS, python, java
모범 답안.
동기 -> Call 하고 응답이 올때까지 기다렸다가 다음 로직을 실행한다.
비동기 -> Call 하고 응답이 오지 않아도 다음 로직을 실행한다.
Q2. HashMap 동작 방식에 대해서 설명하세요
A2.
한개의 Key에 대해서 1개의 대칭됨. 검색할때 O(1)이 걸림
모범답안.
객체를 Map에 넣음 -> 여기서 객체란 Key-Value쌍을 넣음
Key는 유니크해야됨
동일하지 않은 두 객체가 같은 위치에 들어가려고 하는 경우 Collision
Q3. Array vs List vs Vector의 차이점
A3.
Array -> 추가 삭제가 용이
List -> 리스트 -> 검색이 용이함
Vector -> 잘모르겠음
모범답안.
Array (배열)
크기가 정해져 있다 / 기능이 없다.
길이를 바꿀 수 없다.
List(리스트)
배열이 가지고 있는 인덱스라는 장점을 버리고 빈틈없는 데이터의 적재
엘리먼트들 간의 순서가 중요함 -> 몇번째 데이터 인가
크기를 추가하기 편함
데이터 갯수가 확실하게 정해져있고, 자주 사용되면 array가 나음
https://wayhome25.github.io/cs/2017/04/17/cs-18-1/
Vector (벡터)
연속적인 메모리
미래에 들어갈 요소들을 위해 선할당을 한다.
끝에 추가하는 것은 O(1), 다른곳은 O(n)
랜덤하게 vector요소에 접근 가능
https://theemeraldtablet.tistory.com/entry/list%EC%99%80-vector-%EC%B0%A8%EC%9D%B4%EC%A0%90
참조 : https://github.com/brave-people/brave-tech-interview/blob/main/contents/language.md
GitHub - brave-people/brave-tech-interview: 🙋 핵심을 질문하다. 그리고 용감하게 대답하다. 국내 IT기업부
🙋 핵심을 질문하다. 그리고 용감하게 대답하다. 국내 IT기업부터 실리콘밸리까지 "현직자가 해설해주는 기술면접" - GitHub - brave-people/brave-tech-interview: 🙋 핵심을 질문하다. 그리고 용감하게 대
github.com
'개발합시다. > BackEnd 공부' 카테고리의 다른 글
데이터베이스 관련 면접 질문 정리 ① (0) | 2021.09.28 |
---|---|
프로그래밍 언어 관련 면접 질문 정리 ② (0) | 2021.09.17 |
알고리즘 관련 면접 질문 정리 ① (0) | 2021.09.13 |
동기적 & 비동기적 프로그래밍이란 (0) | 2021.09.09 |
RDBMS vs NoSQL (간단 정리) (0) | 2021.09.03 |