[면접공부하기/OOP]

suye 22·2023년 2월 21일

기술면접 준비하기

목록 보기
4/16

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

Object Oriented Programming

  • 제품을 만들 때 부품들을 조립하여 제품을 만들 듯이 소프트웨어를 개발할 때에도 객체들을 하나 하나를 조립해서 작성할 수 있는 기법이다.

객체지향 프로그래밍의 특성

  • 캡슐화 : 객체는 상태와 동작을 가지며 객체 스스로 상태를 책임지도록 한다.

  • 상속 : 상위 객체를 상속 받을 수 있도록 한다.

  • 추상화 : 공통된 특성을 파악하고 불필요한 특성은 제거한다.

  • 다형성 : 동일한 요청에 다른 방식으로 처리할 수 있도록 한다.

객체지향 프로그래밍의 5가지 설계 원칙 ->SOLID 원칙

  • SRP(Single Responsibility Principle)단일 책임 원칙
    하나의 클래스는 하나의 책임만을 수행하게 하자는 뜻이다.

  • OCP(Open-Closed Principle) 개방-폐쇄 원칙
    소포트웨어 구성요소는 확장에는 열려있고, 변경에는 닫혀있어야 한다는 원칙이다.

  • LSP(Liskov Substitution Principle) 리스코프 치환 원칙
    상속받은 하위 클래스는 어디서나 상위 클래스로 교체할 수 있어야 한다는 원칙이다.

  • ISP(Interface Segregation Principle) 인터페이스 분리 원칙
    클라이언트가 사용하지 않는 인터페이스 때문에 영향을 받아서는 안된다는 원칙이다.

  • DIP(Dependency Inversion Principle) 의존 역전 원칙
    의존성 관계를 맺을 때 변화하기 쉬운 것보다는 변화가 없는 것에 의존관계를 맺어야 한다는 원칙이다.

REST API란 무엇인가요? (Representational State Transfer)

  • 자원을 이름으로 구분해 해당 자원의 정보를 주고 받는 것
  • API(Application Progoraming Interface)란 프로그램과 프로그램을 연결해주는 역할을 한다. REST 기반으로 서비스 API를 구현한 것 이다. -> HTTP 요청을 보낼 때 URI에 어떤 메소드를 사용할지 개발자들 사이에 널리 지켜지는 약속이다.

프로젝트에 REST API를 사용한 이유가 무엇인가요? (프로젝트에 REST API를 사용하셨을 경우에만 추가 답변)

  • application분리 및 통합에 사용된다.
  • 다양한 클라이언트들이 등장하면서 커스트마이징 하는 것보다 공수가 편하기 때문에 사용한다.

REST API 말고 다른 비교할만한 것을 알고 있나요?

  • graphql(클라이언트에서 서버로 데이터를 요청하는 하나의 방식으로 REST API를 대체할 수 있다)
  • soapapi

참고문헌
https://velog.io/@hygoogi/%EA%B8%B0%EC%88%A0%EB%A9%B4%EC%A0%91-%EC%A4%80%EB%B9%84%ED%95%98%EA%B8%B0#java

개발면접 : 동일한 요청에 다른 방식으로 처리할 수 있도록 한다.
https://velog.io/@heumheum2/%EA%B8%B0%EC%88%A0%EB%A9%B4%EC%A0%91-%EC%A4%80%EB%B9%84%ED%95%98%EA%B8%B0-2

0개의 댓글