<TIL> 121. Study / OOP, REST API

YUJIN LEE·2023년 5월 30일
0

개발log

목록 보기
111/149

객체지향 프로그래밍(OOP)에 대해 설명해주세요. (알고있는 원칙이나 키워드를 언급)

객체지향 프로그래밍(Object-Oriented Programming, OOP)은 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법.

객체?
객체는 프로그램에서 사용되는 데이터 or 식별자에 의해 참조되는 공간을 의미.
값을 저장할 변수와 작업을 수행할 메소드를 서로 연관된 것들끼리 묶어서 만든 것.

객체지향 프로그래밍의 특징
-> 추상화, 캡슐화, 상속, 다형성

  1. 추상화
  • 객체에서 공통된 속성과 행위를 추출 하는 것
  • 공통의 속성과 행위를 찾아서 타입을 정의하는 과정
  • 추상화는 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단하게 만드는 것.
  1. 캡슐화
  • 데이터 구조와 데이터를 다루는 방법들을 결합 시켜 묶는 것(변수와 함수를 하나로 묶는 것을 뜻함)
  • 낮은 결합도를 유지할 수 있도록 설계하는 것

속성과 기능을 정의하는 변수와 메소드를 클래스라는 캡슐에 넣어서 분류하는 것으로 재활용이 원활하다는 장점이 있고, 캡슐화를 통해 정보은닉을 활용할 수 있다.(접근제어자 활용)

  1. 상속
  • 클래스의 속성과 행위를 하위 클래스에 물려주거나 하위 클래스가 상위 클래스의 속성과 행위를 물려받는 것을 말함.
  • 새로운 클래스가 기존의 클래스의 데이터와 연산을 이용할 수 있게 하는 기능

상속의 장점

  • 재사용으로 인한 코드가 줄어듬
  • 범용적인 사용 가능
  • 자료와 메서드의 자유로운 사용 및 추가 가능

상속의 단점

  • 상위 클래스의 변경이 어려워짐
  • 불필요한 클래스 증가
  • 상속이 잘못 사용될 수 있다.
  1. 다형성
  • 하나의 변수명, 함수명이 상황에 따라 다른 의미로 해석될 수 있는 것.
  • 어떠한 요소에 여러 개념을 넣어 놓는 것

객체지향 프로그래밍은 하나의 클래스 내부에 같은 이름의 행위를 여러개 정의하거나 상위 클래스의 행위를 하위 클래스에서 재정의하여 사용할 수 있기 때문에 다형성이라는 특징을 갖게된다.

  • 오버라이딩?
  • 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의해서 사용하는 것
  • 오버로딩?
  • 같은 이름의 메서드가 인자의 개수나 자료형에 따라 다른 기능을 하는 것

객체지향 프로그래밍의 장단점

장점

  • 클래스 단위로 모듈화시켜 개발하기 때문에 업무 분담이 편리하고 대규모 소프트웨어 개발에 적합
  • 클래스 단위로 수정이 가능해 유지 보수가 편리
  • 클래스를 재사용하거나 상속을 통해 확장해 코드 재사용이 용이.

단점

  • 처리속도가 상대적으로 느리다
  • 객체 수가 많아짐에 따라 용량 커짐
  • 설계시 많은 시간과 노력이 필요

REST API란 무엇인가요?

**REST는 HTTP 프로토콜을 통해 API를 설계하기 위한 아키텍처 스타일입니다. 주요 이점은 뛰어난 유연성입니다.

개발자는 서버에서 직접 웹 애플리케이션이나 사이트의 사용자에게 데이터를 제공해야 하는 모든 곳에서 REST API를 사용합니다.
**
“Representational State Transfer”의 약자, 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다.

REST API란 핵심 컨텐츠 및 기능을 외부 사이트에서 활용할 수 있도록 제공되는 인터페이스입니다.

REST API는 URI 및 HTTP 프로토콜을 기반으로 하며 슈퍼 브라우저와 호환되는 데이터 형식에 JSON 사용

프로젝트에 REST API를 사용한 이유가 무엇인가요?
리소스 제한, 봏안 요구 사항 감소,

여러 시스템들도 REST 기반으로 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 할 수 있습니다.
REST는 HTTP 표준을 기반으로 구현하므로, HTTP를 지원하는 프로그램 언어로 클라이언트, 서버를 구현할 수 있다.
즉, REST API를 제작하면 델파이 클라이언트 뿐 아니라, 자바, C#, 웹 등을 이용해 클라이언트를 제작할 수 있스빈다.

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

SOAP는
우리가 흔히 하는 HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜입니다.
REST보다 더 많은 표준을 정의해 조금 더 복잡합니다.
SOAP API를 사용하여 애플리케이션을 개발하려는 이유에는 더 높은 수준의 보안과 안정적인 통신이 필요한 메시징 앱, 레거시 시스템과의 통신 또는 ACID 준수를 위함입니다.

profile
인정받는 개발자가 되고싶습니다.

0개의 댓글