알아두면 좋을 것들
이전에 Voyagerx 대표님이 facebook에 개발자 기초 질문 20선 게시글을 올렸었다. 그 질문들 중 아예 모르는 것들도 있었고 실제로 코드로 활용해봤는데도 설명을 못하겠는 것들도 있어서 공부할 겸 정리를 해봤다.
- 1바이트는 몇 비트인가요?
- 내가 아는 건 8비트 뿐이었는데 옛날에는 1바이트를 4비트, 6비트로 하는 컴퓨터들도 있었다고 한다.
2. 1픽셀은 몇 바이트인가요?
- 채널마다 다르다. 보통 픽셀 1개를 표현하기 위해 1바이트가 필요하다. 예를 들어 RGB 채널 같은 경우는 3바이트가 필요하다.
3. 2의 10제곱은 얼마인가요?
- 1024
4. Stack 과 Queue 의 차이가 뭔가요?
- Stack은 LIFO(Last In First Out) 후입선출, Queue 는 FIFO(First In First Out) 선입선출.
5. Binary Tree의 시간복잡도가 어떻게 되나요?
- Binary Search Tree의 경우 노드가 n개 일 경우 평균적으로 O(log(n)) 이고 최악일 경우(단일 경사트리일 경우) O(n)이다. 근데 이게 Binary Tree라고 물어봤을 때 맞는 답변인지는 잘 모르겠다.
6. DNS의 역할이 무엇인가요?
- DNS 서버는 도메인 이름과 이에 대응하는 IP 주소에 관한 데이터베이스를 유지하고 있다가 원하는 컴퓨터에 제공한다.
7. HTTP 와 HTTPS의 차이는 뭔가요?
- HTTP + S(Secure Socket) 으로 HTTP에 보안 한 스푼을 더해준 것이다. HTTP 는 인터넷에서 Hypertext를 전송(Transfer)하기 위해 사용되는 통신규약(Protocol)인데 네트워크에서 전송 신호를 인터셉트하는 경우 데이터 유출 발생하기 때문에 Secure Socket을 사용해 모든 통신 내용을 암호화시킨다.
8. 스마트폰 카메라 해상도가(대강) 어떻게 되나요?
- 해상도란 이미지 안에 얼마나 많은 픽셀이 들어가 있는지 나타낸 것이다. 나는 아이폰을 쓰기에 아이폰 기준으로 이야기하면 대강 12백만 정도 된다. 가로 4032 X 세로 3024 픽셀.
9. 왜 사진에는 jpg를 쓸까요?
- jpg는 압축 형식으로 일부 디테일을 희생시켜 파일 크기를 줄인다. 이는 카메라 메모리 카드 저장 공간을 절약하고 사진을 온라인에 게시하거나 이메일을 통해 공유할 때 유리하다.
10. 칼라값 ffffff 는 무슨 색인가요?
- 흰색이다. 000000은 검정색이다.
11. <a href> 가 무슨 뜻인가요?
- a 태그는 문서를 링크시키기 위해 사용하는 태그로 href 뒤에 연결할 주소를 지정해 준다.
12. call by reference 가 무슨 말인가요?
- 실매개변수 자체가 형식매개변수 자리를 취해서 함수 안에서 형식매개변수에 행해진 모든 조작이 그대로 실매개변수에 가해지는 형식이다.
13. Event Listener가 무슨 말인가요?
- MDN에 따르면 Event Target 객체로부터 발생한 이벤트 처리 방법이다. 내가 아는 Event Listener는 해당 이벤트에 대해 대기 중이다가 이벤트 발생 시 등록했던 Event Listener가 실행된다.
14. OOP 에서 상속이 무슨 말인가요?
- 계층관계를 사용하여 클래스 간의 속성 및 함수를 공유할 수 있도록 지원하는 개념이다.
15. non-blocking call 이 뭔가요?
- 유저 프로세스가 커널에게 요청(system call)했을 때 커널이 해당 작업이 완료될 때까지 결과를 안 주는 게 blocking이고(그러면 유저 프로세스가 작업 중단하고 기다리고 있음) 그거 상관없이 바로 결과를 반환해주는게 non-blocking이다.
16. 버전관리에서 commit이 뭔가요?
- 변경 이력 관리이다.
17. try/catch는 무슨 뜻인가요?
- 예외처리 방법 중 하나로 try 블록엔 예외가 발생할 수 있는 부분을 catch 블록에는 발생한 예외를 처리하는 부분을 넣으면 된다.
18. 디버깅할 때 breakpoint 가 뭔가요?
- 프로그램 실행을 중단시키는 것인데 그 뒤에 코드를 한 줄 씩 실행되도록 할 수 있다.
19. 패스워드는 서버에 어떻게 보관되나요?
- plaintext 또는 해시값으로 보관되는데 plaintext는 보안에 취약하다.
20. SSD가 HDD보다 빠른 이유가 뭔가요?
- HDD(Hard Disk Drive)는 물리적 저장 장치라서 물리적 탐색 시간이 병목현상을 일으킨다. 그에 비해 SSD(Solid State Drive)는 플래시 메모리를 이용해 정보를 처리하기 때문에 더 빠르다.
이 20선을 정리해보면서 아직 갈 길이 멀었다고 느꼈다.