- CS 기본 지식을 충분히 알고 있는 개발자인지를 판단함
- CS 기본 지식을 알고 있어야 다양한 기술을 익히고, 적응하고거나, 커뮤니케이션에 문제가 없음
- 필수 CS 기본 지식 항목
- 운영체제, 데이터베이스, 네트워크
- 자료구조/알고리즘(코딩 테스트를 통해 별도 검증)
- 컴퓨터 구조(참고)
- 정보검색(Information Retrieval)(빅데이터 기반 스타트업, 이커머스 업계 등)
- 프로세스와 스레드 차이 (운영체제)
운영체제와 운영체제 상에서 동작하는 프로그램의 기본 원리를 잘 알고 있다면, 어느 프로그램을 작성하든 직간접적으로 효과적인 구조를 만들수 있다고 생각함 주요 답변
- 프로세스는 운영체제로부터 자원을 받아 실행, 스레드는 프로세스로부터 자원을 할당
- 하나의 프로세스 안에서 여러 스레드 생성 가능
- 각 스레드는 개별 스택을 가지고 프로세스의 전역 메모리 공간을 공유하며 프로그램 실행
- 보통 프로세스는 코드/데이터/스택/힙 메모리 영역을 기반으로 실행
- 스레드는 프로세스 안에서, 개별적인 스택을 가지고, 코드/데이터/힙 영역을 공유하며 프로그램 실행
- 스크립트 언어와 컴파일 언어를 나열하고 차이점 설명
프로그래밍 언어와 컴파일러에 대해 알고 있는지, 더 나아가 컴퓨터 구조와 운영체제에 대해 기본적인 내용을 알고 있는지를 판단하기 위해 묻는 질문 주요 답변
- 스크립트 언어로는 python, ruby, PHP 등이 있으며, 컴파일 언어로는 C, C++, Java가 있습니다
- 컴파일 언어는 컴파일러를 통해 사전에 컴파일되어, 기계어 상태로 실행되므로 실행이 빠름
- 또한 컴파일 단계에서 전체 코드를 기계어로 변환할떄, 최적화 작업을 진행하며, 실행 시간을 보다 빠르게 할 수 있음
- 이에 반해 스크립트 언어는 컴파일 단계 없이, 실행 단계에서 한 줄씩 기계어로 번역 후, 실행되므로 통상 컴파일 언어보다 실행이 느림
- 또한 전체 코드에 대한 실행 코드 최적화가 어려움
- 동기식과 비동기식 차이점 / 장단점
동기식과 비동기식은 원리는 매우 간단하여, 설명하기가 애매할 정도임. 그럼에도 이런 질문을 하는 이유는 실무에서 막대한 요청, 데이터를 처리하려면, 동기식/비동기식을 고려해야 하기 때문임 주요 답변
- 차이점
- 동기식의 일처리는 요청에 대한 응답을 기다린 후, 응답이 오면 다음 요청을 하는 방식
- 비동기식의 일처리는 요청에 대한 응답을 기다리지 않고, 다음 동작을 진행하는 방식
- 장단점
- 동기식은 구성이 단순하고, 순서대로 실행 가능, 하지만 여러 일을 동시에 실행하는 멀티태스킹은 불가
- 비동기식은 동시에 여러 일을 수행할 수 있지만, 일정 시간당 요청량이 많아질 경우, 부하가 발생할 수 있으며, 이를 위한 추가적인 처리가 필요함
- 데이터베이스에서 인덱스를 사용하는 이유와 장단점
최근의 실무는 데이터의 양이 이전과 달리 막대하므로, 실무에서 DB의 인덱스는 필수임 주요 답변
- 인덱스는 데이터를 논리적으로 정렬하여 검색과 정렬 속도를 높이기 위해 사용
- 단, 데이터 삽입, 변경이 수시로 일어나면 매번 인덱스를 변경해야 하므로, 성능 저하를 막기 위한 고려가 필수임
- Redis와 mongodb에 대해 간략히 설명하세요
최신 기술을 알고 있는지를 판단하기 위한 질문 다양한 데이터베이스를 써보지 못 하더라도, 최신 기술에 관심이 많은 개발자라면 익히 들어봤을만한 기술을 물어보면서, 최신 기술에 대한 관심이 있는지 판단 주요 답변
- 둘다 No SQL 방식을 사용
- Mongodb가 document 형식으로 데이터를 저장하는 반면, Redis는 key-value 형식으로 데이터를 저장
- Redis는 인메모리DB로 데이터를 메모리에 저장하고 관리하기 때문에 성능이 좋지만, 데이터를 유한하게 저장하기 때문에, 캐쉬등과 같이 데이터 저장기한이 있고, 빠른 성능이 필요한 기능에 사용
- Mongodb는 mysql처럼 서버-클라이언트 방식으로 설치해서 사용
- MySQL과 같은 SQL 방식이 아니므롷, 가변적 데이터 구조를 다루는데 유용함
- TCP와 UDP의 차이점과 장단점
네트워크도 기본적으로 잘 알고 있어야 하는 지식중 하나임. OSI 7 layer를 말해보라는 등 질문은 단순 암기 질문이 될 수 있으므로, 가장 많이 사용하는 TCP/UDP에 대해 장단점 정도를 기술하도록 하면서, 기본 지식을 판단 주요 답변
- UDP는 비연결형 프로토콜로 흐름제어, 오류 제어를 하지 않는데 반해,
- TCP는 연결형 프로토콜로 프름제어와 오류제어를 함
- UDP는 TCP처럼 중단간 연결설정, 프름제어, 오류제어를 하지 않기 때문에,
- 송수신에 적은 데이터를 필요로 하는데, TCP는 데이터 송수신에 신뢰성을 가짐
- 현업에서 빅데이터/고성능 프로그램 작성시, 필요한 부분을 기본적으로 이해하고 있는지에 집중되는 것이 일반적
- 하지만 일지만 답하지 못하거나, 알더라도 막연하게 아는 경우가 다반사
- 따라서 답변을 미리 만들어서 실전 면접 연습을 여러 차례 해보는 것이 가장 좋음
- IT분야의 질문들에 대해 답을 할떄, 알고 있는 것과 문장으로 와운 것과는 큰 차이가 있기 떄문임
- 운영체제, 데이터베이스, 네트워크 중심
- 데이터베이스는 실제 데이터베이스를 다뤄보며 실무 기능 중심으로 히애
기본적으로 기술 면접 분제는 복불복이지만, 주요 내용은 정보처리기사 책을 통해 준비