본문 바로가기

반응형

면접질문[CS]/알고리즘 & OS

(18)
프로세스(Process)와 스레드(Thread)의 차이점. [ 운영체제(OS) 면접 질문 1] Why 운영체제 관련 면접 질문으로 첫 번째로 물어볼 수 있는 질문이다. 프로세스라는 개념은 상당히 중요한데 OS의 관점에서 하나의 "작업"단위가 되기 때문이다. 프로세스와 관련된 정보(혹은 정책)들만으로도 다른 면접 질문으로 빠르게 뻗어나갈 수 있다. 1. 프로세스의 상태 2. CPU 스케줄링 정책 3. 스레드 4. 멀티 프로세스와 멀티 스레드 5. 프로세스에 대한 세부적인 정보(PCB) 6. 컨텍스트 스위칭 등등 등등.. 그렇기에 해당 질문을 통해 프로세스가 무엇인지, 스레드는 무엇인지 잘 설명할 수 있어야 한다. 해당 질문에 아쉬운 답변을 한다면 OS 파트에서 더 이상의 질문이 들어오지 않고 다음 섹션(프로그래밍, 네트워크, 보안, DB 등등으로 넘어가게 될 수 있다.) 나의 답변 프로세스와 스레드..
프로시저(procedure) 함수(function) 메서드(method)의 차이점 [프로그래밍 면접 질문 1] why 크게 중요한 질문은 아닐 수 있다. "기능"과 관련해서 같은 의미를 가지는게 아닌가? 싶은 용어들이다. 3개의 용어가 비슷비슷하게 사용되는 것 같지만 맥락에 따라서 다르게 사용된다. 3가지 용어를 어떤 관점에서 구분하는지에 대해서 물어볼 수 있는 좋은 질문이라 생각한다. [ 다만 중요성은 낮다고 생각하는 편 ] Subprogram & Subroutine 세 가지 용어 모두 "프로그램의 일부"라는 개념에서 묶어낼 수 있다. 시스템을 구성하는 일부의 로직을 의미하는 것이다. 시스템의 작은 기능이라는 관점에서 보면 3가지 용어 모두 같지만 기능이 가지는 특성들로 파악하면 3가지 용어 모두 다르게 사용될 수 있다. 서브 프로그램, 서브루틴, 자료구조 등등은 복잡한 문제를 해결하기 위해 더 작은 문제로 분..
this에 대하여... [ java & OOP 면접질문 2] why this는 객체지향 개발론 언어인 Java의 중요한 키워드 중 하나이다. 자바 스크립트에서의 단골 질문으로 뽑히는 키워드인데 개인적으로 java에서도 꽤나 중요한 키워드라 생각한다. 면접 질문으로 나오는 비중은 적지만 클래스 내에서의 활용성이 높기에 뽑아보았다. this와 this()의 차이점이 무엇인지로 질문을 할 수 있다. [ 깊게 들어가면 JVM까지도 접근하게 될 수 있다. ] this란 : 메서드와 생성자에서 현재 객체를 가리킨다. [3가지 용도] this는 자기 자신(클래스 혹은 객체)을 가리킨다. 객체의 경우 인스턴스 자신을 가리키는 참조 변수로 인스턴스의 주소(heap 메모리) 참조로 저장된다. 생성자와 메서드는 자기 자신을 가리키는 변수를 가지는데 이러한 숨겨진 성질로 인해서 thi..
클래스(class), 객체(Object), 인스턴스(Instance)의 차이점. [ Java & OOP 면접 질문1] Why 대부분의 시스템이 객체지향 개발론을 통해 개발된다. 그 이유는 복잡성을 제어하면서 유지보수성을 높여야 하기 때문이다. 유지보수성을 왜 높여야 할까? 그 이유는 소프트웨어를 다루는 프로그래머의 가치가 컴퓨터의 가치보다 높기 때문이다. 기존의 시스템을 이해하고 수정 및 확장하기가 쉬울수록 해당 시스템에 들어가는 유지보수 비용이 낮게 측정된다. OOP는 비즈니스의 관점에서 보면 프로그래머로 하여금 비용 효율적으로 시스템을 개발하게 해주는 방법이다. OOP는 유지보수성을 위해서 기존의 개발 패러다임(절차지향 패러다임)에서 한 단계 발전한 패러다임이다. 객체지향 개발론에도 절차지향적인 부분이 존재하지만 "객체"를 중심으로 사고해야 한다는 점에서 기존의 절차지향적인 개발 방법론과는 다른 사고방식으로 이끌어준..
HTTPS와 HTTP의 차이점. 핵심은 SSL/TLS [ 네트워크 면접질문 6 ] WHY CS에서 보안 질문을 직접적으로 하는 편은 드문데 그 이유는 네트워크에서 질문할 수 있기 때문이라고 생각한다. 대부분의 보안은 네트워크와 연관된 경우가 많기에 네트워크 분야를 공부하다 보면 자연스럽게 보안 지식도 마주하게 된다. 해당 질문은 보안 + 네트워크 두마리 토끼를 잡을 수 있는 질문으로 상황에 따라 HTTP로 깊게 들어가는 질문으로 나아갈지 보안으로 깊게 들어가는 질문으로 나아갈지 선택할 수 있다. 다음의 질문으로 한 단계 더 깊게 들어갈 수도 있다. 1. SSL/TLS 인증 절차의 과정. [ 상당히 깊게 들어간 질문이다. ] 2. 비대칭 암호와와 대칭 암호화가 TLS에서 사용되는 이유. 3. HTTP에 어떤 문제점이 있는지 등등.. 다양한 스펙트럼으로 나아갈 수 있다. 그만큼 해당 질문..
HTTP1.1과 HTTP2.0 [ 네트워크 면접 질문5 ] Why HTTP1.1은 현재까지도 활발하게 쓰이는 HTTP 프로토콜 버전이지만 대부분의 웹 서버와 클라이언트가 HTTP 2.0으로 넘어오고 있다. HTTP2.0은 HTTP1.1과 호환이 되지 않을 정도로 변화했는데 어떤 부분에서 변화한 것일까? 어떤 등장 배경이 있고 어떻게 효율성이 증가되었는지, 왜 호환이 안되는지 등등의 측면에서 HTTP 1.1과 HTTP 2.0을 비교할 수 있는지 물어보기 좋은 질문이라 생각한다. 면접을 진행하는 회사가 HTTP의 활용성이 높다면 해당 질문에 답변할 수 있을 경우 좋은 점수를 받을 수 있다고 생각한다. 복잡하고 어려운 질문이라고 생각하며 난이도가 높은 편!! HTTP의 전체적인 발전 과정을 알지 못한다면 기억이 휘발되어버리기 쉬운 지식이지 아닐까 한다. [ 면접질문으..
HTTP 1.0과 HTTP 1.1 [ 네트워크 면접 질문4] WHY 웹 서비스를 기반으로 하는 회사에서는 충분하게 물어볼 수 있는 면접 질문이다. HTTP의 경우 웹 서비스의 핵심 프로토콜이기 때문에 알면 알수록 다양한 영역과 결합한 이해를 얻을 수 있다. [ 네트워크, 브라우저, 서버, 보안 등등 필수적인 지식들과 연결되기에... ] HTTP의 버전이 업그레이드되면서 변경된 특징들과 해당 특징들이 왜 필요한지를 들어보면서 각 버전의 주요 특징들을 체크해나갈 수 있는 동시에 HTTP의 주요 특징들을 잘 알고 있는지 확인할 수 있어서 면접 질문으로 상당히 퀄리티 높은 질문이라고 생각된다. [ 필수 질문은 아니겠으나... ] 나의 답변 HTTP에 대한 면접 질문은 받지 못했다. 해당 질문이 면접 질문으로 나왔다는 후기도 그리 많지는 않다. 그리 높은 빈도의 질문은 아..
연결지향 TCP 프로토콜의 세션 연결과 세션 종료 [ 네트워크 면접 질문3 ] TCP 3-way handshake(세션 연결) & 4-way handshake(세션 종료) why TCP/IP는 인터넷 그 자체라고 봐도 무방할 정도로 전 세계의 네트워크를 지탱하는 프로토콜이다. 그래서 네트워크의 전반적인 질문들은 응용(HTTP) 아니면 TCP/IP로 나뉜다고 봐도 무방할 정도이다. 해당 질문은 TCP의 세션 연결과 세션 종료에 대한 질문으로 답변에 따라서 TCP의 성질을 잘 이해하고 있는지 TCP의 중요한 헤더 정보들을 알고 있는지 등등을 확인해볼 수 있다. 대학교에서도 꽤나 긴 시간의 강의를 진행하는 파트이기도 하고.. 시간이 지나면 정보가 흐릿해지는 부분이기도 해서 수월하게 답변하기가 까다로울 수 있다. [ 개인적으로는 중간 난이도 이상의 질문이다. ] 과거 나의 면접 답 메시지..

반응형