기술면접준비

Intro

면접을 위해 따로 공부하는 것 보다는, 열심히 공부한 내용을 바탕으로 면접에서 내 능력을 잘 보여주는 것을 더 선호한다. 면접을 위한 공부가 취업 말고는 무슨 필요가 있겠냐는 생각을 가지고 있었다. 그런데 개발자로 이직하기 위해서 면접을 준비하면서 느낀점은 기술면접의 경우 면접준비 자체가 내 실력을 향상시키는 데에 도움이 되겠다는 생각을 가질 수 있었다. 단편적으로 ‘A는 B입니다.’라고 답변할 수도 있겠지만 한단계씩 더 깊이 물어보는 질문에 답변할 수 있으려면 기술에 대한 더 깊은 지식이 필요하기 때문이다.

면접 준비를 단순히 면접만 준비하기 위한 것이 아니라, 개발자로서 일하기 위해 알고 있어야할 기본 지식들을 잘 공부할 수 있는 기회로서 면접준비 시간을 가져갈 생각이다. 그렇게 되기를 희망하면서 시작한다!

개별 항목 설명에 참고한 책, 사이트

OOP (객체지향 프로그래밍)

Overloading vs Overriding

MVC 패턴

Thread와 Process

Socket

Stack, Queue, Deque

Docker

IaaS, PaaS, SaaS

참고그림

Database Index

OSI 모델

객체지향개발(OOP) 4가지 특성

  1. 추상화
    • 공통의 속성이나 기능을 묶어 이름을 붙이는 것
    • OOP 에서 클래스를 정의하는 것을 추상화라고 할 수 있다.
  2. 캡슐화
    • 변수와 함수를 하나로 묶어서 외부에서의 접근을 막고, 함수를 통해서만 접근 가능하도록 하는 것
    • 객체가 맡은 역할을 수행하기 위한 데이터를 하나로 묶는다 (은닉화)
  3. 상속
    • 상위 개념의 특징을 하위 개념이 물려 받는 것
  4. 다형성
    • 부모 클래스로부터 물려받은 가상 함수를 자식 클래스 내에서 오버라이딩 하여 사용하는 것
    • 다형성의 쉬운 예제는 Java의 오버로딩이다. 오버로딩은 같은 의미지만 매개변수의 데이터타입이 무엇이냐에 따라서 다른 메소드가 호출되는 방식이다. 참고 (참고로 파이썬은 오버로딩을 허용하지 않는다.)