늦은 프로그래밍 이야기

230327 TIL (기술면접 스터디) 본문

내일배움캠프/기술면접

230327 TIL (기술면접 스터디)

한정규 2023. 3. 28. 15:06
객체지향 프로그래밍(OOP)에 대해 설명해주세요. 알고있는 원칙이나 키워드를 언급해주세요

1. SOLID 원칙

  • SRP (단일 책임 원칙, Single Responsibility Principle)
    클래스는 하나의 책임만 가지며, 그 책임을 완전히 캡슐화 해야 합니다.
  • OCP (개방-폐쇄 원칙, Open-Closed Principle)
    클래스는 확장에 대해 열려 있어야 하지만, 변경에 대해서는 닫혀 있어야 합니다.
  • LSP (리스코프 치환 원칙, Liskov substitution Principle)
    자식 클래스는 언제나 부모 클래스의 자리에 사용될 수 있어야 합니다.
  • ISP (인터페이스 분리 원칙, interface Segregation Principle)
    인터페이스는 클라이언트가 필요로 하는 메서드만 포함해야 합니다.
  • DIP (의존성 역전 원칙, Dependency Inversion Principle)
    추상화에 의존해야 하며, 구체화에는 의존하면 안됩니다.

2. 키워드

  • 상속성(Inheritance)
    이미 정의된 클래스에서 속성과 메서드를 물려받아 새로운 클래스를 만드는 것을 말합니다.
  • 다형성(polymorphism)
    같은 이름의 메서드나 연산자를 여러가지 방법으로 구현하고, 실행 시점에 어떤 구현을 사용할지 결정하는 것을 말합니다.
  • 추상화(Abstraction)
    복잡한 시스템에서 핵심적인 개념 또는 기능만 추출해서 모델링하는 것을 말합니다.
  • 캡슐화(Encapsulation)
    관련 있는 데이터와 메서드를 하나의 클래스에 묶고, 외부에서 직접 접근하지 못하도록 보호하는 것을 말합니다.

REST API란 무엇인가요?

Representational State Transfer API의 약자로, 웹 애플리케이션에서 클라이언트와 서버 간의 통신을 위한 아키텍처 스타일 중 하나입니다. 특징으로는

  • 자원(Resource)
    모든 자원에 고유한 ID가 존재하고, 이를 이용하여 자원을 구분합니다.
  • 행위(Verb)
    HTTP 프로토콜의 메서드를 사용하여 자원에 대한 행위를 정의합니다. (GET, POST, PUT, DELETE 등)
  • 표현(Representation)
    클라이언트가 서버로 요청을 보내면, 서버는 요청에 대한 응답으로 적절한 데이터를 보내줍니다. 이때 데이터의 표현 방식은 JSON, XML, HTML 등 다양한 형태로 제공됩니다.
프로젝트에 REST API를 사용한 이유가 무엇인가요?
  • 분리된 클라이언트-서버 아키텍처를 사용하므로, 서버와 클라이언트 간의 의존성이 줄어듭니다.
  • HTTP 프로토콜을 사용하므로, 기존의 웹 인프라를 사용하여 구현이 용이합니다.
  • 다양한 클라이언트에서 사용 가능하며, 클라이언트와 서버 간의 상호작용이 유연합니다.
REST API 말고 다른 비교할만한 것을 알고 있나요?
  • SOAP(Simple Object Access Protocol)
    XML 기반으로 데이터를 전송하며, 서비스 인터페이스의 기능이나 메시지를 기술하기 위해 WSDL(Web Services Description Language)이라는 언어를 사용합니다. SOAP는 보안, 트랜잭션 처리 등 기능적인 측면에서 강력하며, 메시지 기반의 통신이 가능합니다. 하지만 SOAP는 복잡하고 무겁고, 대용량의 데이터 처리에는 부적합 합니다.

'내일배움캠프 > 기술면접' 카테고리의 다른 글

230330 TIL (기술면접 스터디)  (0) 2023.03.30
230329 TIL (기술면접 스터디)  (0) 2023.03.29
Comments