객체지향프로그래밍 REST API

마동찬·2023년 7월 19일

취업대비Study

목록 보기
1/1

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

  • 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법

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

  • 장점
  1. 코드 재사용이 용이

    남이 만든 클래스를 가져와서 이용할 수 있고 상속을 통해 확장해서 사용할 수 있다.

  2. 유지보수가 쉬움

    절차 지향 프로그래밍에서는 코드를 수정해야할 때 일일이 찾아 수정해야하는 반면 객체 지향 프로그래밍에서는 수정해야 할 부분이 클래스 내부에 멤버 변수혹은 메서드로 존재하기 때문에 해당 부분만 수정하면 된다.

  3. 대형 프로젝트에 적합

    클래스 단위로 모듈화시켜서 개발할 수 있으므로 대형 프로젝트처럼 여러 명, 여러 회사에서 프로젝트를 개발할 때 업무 분담하기 쉽다.

  • 단점
  1. 처리 속도가 상대적으로 느림

  2. 객체가 많으면 용량이 커질 수 있음

  3. 설계시 많은 시간과 노력이 필요


KeyWord : 클래스,객체, 추상화, 캡슐화, 상속, 다형성

📑 클래스와 인스턴스(객체)는 무엇인가요?

  • 클래스 : 어떤 문제를 해결하기 위한 데이터를 만들기 위해 추상화를 거쳐 "집단에 속하는 속성(attribute)과 행위(behavior)를 변수와 메서드로 정의한 것"으로 객체를 만들기 위한 메타정보라고 볼 수 있다.

  • 인스턴스(객체) : 클래스에서 정의한 것을 토대로 실제 메모리에 할당된 것으로 실제 프로그램에서 사용되는 데이터

📑 추상화란 무엇인가요?

  • 추상 클래스나 추상 클래스가 갖는 추상 메서드를 의미하기보다는 클래스를 설계하는 것 자체를 의미한다.

    즉, "공통의 속성이나 기능을 묶어 이름을 붙이는 것"

📑 캡슐화란 무엇인가요?

  • 기능과 특성의 모음을 "클래스"라는 "캡슐"에 분류해서 넣는것
  • 목적 2가지
    • 코드를 재수정없이 재활용
    • 접근제어자를 통한 정보은닉

📑 상속은 무엇인가요?

  • 부모클래스의 속성과 기능을 그대로 이어받아 사용할 수 있게하고 기능의 일부분을 변경해야 할 경우 상속받은 자식클래스에서 해당 기능만 다시 수정(정의)하여 사용할 수 있게 하는 것

📑 다형성은 무엇인가요?

  • 오버라이딩 : 부모클래스의 메서드와 같은 이름, "매개변수를 재정의" 하는것.
  • 오버로딩 : 같은 이름의 함수를 여러개 정의하고, "매개변수의 타입과 개수를 다르게" 하여 매개변수에 따라 다르게 호출할 수 있게 하는 것.

REST API

REST API란 REST를 기반으로 만들어진 API를 의미합니다. REST API를 알기 위해 REST부터 알아봅시다.


REST

Representational State Transfer의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미

  1. HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
  2. HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해
  3. 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것.

REST의 장점과 단점

  • 장점

    • REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
    • 여러 가지 서비스 디자인에서 생길 수 있는 문제를 최소화한다.
    • 서버와 클라이언트의 역할을 명확하게 분리한다.
  • 단점

    • 표준이 자체가 존재하지 않아 정의가 필요하다.
    • HTTP Method 형태가 제한적이다.
    • 구형 브라우저에서 호환이 되지 않아 지원해주지 못하는 동작이 많다.(익스폴로어)

REST API

RESPT API란 REST의 원리를 따르는 API를 의미합니다.

하지만 REST API를 올바르게 설계하기 위해서는 지켜야 하는 몇가지 규칙이 있으며 해당 규칙을 알아봅시다.

REST API 설계

1.URI는 동사보다는 명사를, 대문자보다는 소문자를 사용하여야 한다.
http://mdc53.com/Running/
⭕️ http://mdc53.com/run/

2.마지막에 슬래시 (/)를 포함하지 않는다.
http://mdc53.com/test/
⭕️ http://mdc53.com/test

3.언더바 대신 하이폰을 사용한다.
http://mdc53.com/test blog
⭕️ http://mdc53.com/test-blog

4.파일확장자는 URI에 포함하지 않는다.
http://mdc53.com/photo.jpg
⭕️ http://mdc53.com/phto

5.행위를 포함하지 않는다.
http://mdc53.com/delete-post/1
⭕️ http://mdc53.com/post/1

profile
새내기개발자 성장기록

2개의 댓글

comment-user-thumbnail
2023년 7월 19일

이 글은 저에게 많은 도움이 되었습니다.

1개의 답글