프로그래밍

sumi Yoo·2022년 9월 7일

💡 절차지향 프로그래밍 VS 객체지향 프로그래밍
절차지향 프로그래밍

  • 순차적인 처리를 중요시하는 프로그래밍 기법입니다.
  • 가장 대표적인 언어로 C언어가 있습니다.
  • 컴퓨터의 처리구조와 유사해 실행속도가 빠릅니다.
  • 코드의 순서가 바뀌면 동일한 결과를 보장하기 어렵습니다.

객체지향 프로그래밍

  • 현실 세계의 사물을 객체로 만들고, 그 객체에서 필요한 특징들만 뽑아 프로그래밍 하는 기법입니다.
  • 가장 대표적인 언어로 자바가 있습니다.
  • 추상화, 캡슐화, 상속성, 다형성의 특징을 가집니다.
  • 절차지향 프로그래밍 보다 실행속도가 느립니다.

💡 Call By Value와 Call By Reference 차이
Call By Value

  • 인자로 받은 값을 복사하여 처리하는 방식입니다.
  • Call By Value에 의해 넘어온 값을 증가시켜도 원래의 값이 보존됩니다.
  • 값을 복사하여 넘기기 때문에 메모리 사용량이 늘어납니다.

Call By Reference

  • 인자로 받은 값의 주소를 참조하여 직접 값에 영향을 주는 방식입니다.
  • 값을 복사하지 않고 직접 참조하기 때문에 속도가 빠릅니다.
  • 원래의 값에 영향을 주는 리스크가 존재합니다.

💡 Parameter와 Argument의 차이
Parameter(매개변수): 함수를 선언할 때 사용된 변수
Argument(인자): 함수가 호출되었을 때 함수의 파라미터로 전달된 실제 값

💡 Restful API에 대해 설명해주세요.
HTTP 통신을 위해 Rest 설계 규칙을 잘 지켜 설계된 API를 Restful한 API라고 합니다.

Rest 설계 규칙은 URI는 정보의 자원만 표현해야 하고, 자원의 행위는 HTTP Method로 표현해야 합니다.

따라서, Restful API 어떤 자원에 대해 CRUD 연산을 수행하기 위해 URI(리소스)로 Get, POST 등의 방식(Method)을 사용하여 요청을 보내며, 요청을 위한 자원은 JSON, XML 등의 특정한 형태(Representation of Resource)로 표현됩니다.

장점

  • HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용이 가능합니다.

단점

  • HTTP 프로토콜만 사용 가능합니다.

💡 프레임워크와 라이브러리 차이
제어 흐름에 대한 주도권이 어디에 있는가입니다.
라이브러리: 사용자가 흐름에 대한 제어를 하며 필요한 상황에 가져다 쓸 수 있습니다.
프레임워크: 전체적인 흐름을 자체적으로 제어합니다.

프레임워크를 사용하면 사용자가 관리해야 하는 부분을 프레임워크에 넘김으로써 신경써야 할 것을 줄일 수 있는데, 이것을 제어의 역전이라고 합니다.

💡 객체지향 프로그래밍 특징

  • 추상화: 공통의 속성이나 기능을 묶는 것입니다.
  • 캡슐화: 객체의 속성과 함수를 하나로 묶고, 실제 구현 내용 일부를 내부에 감추어 은닉합니다.
  • 상속성: 상위 클래스를 상속하여 새로운 클래스를 만들 수 있습니다.
  • 다형성: 같은 이름의 메소드가 상황에 따라 다른 동작을 할 수 있습니다. 오버라이딩과 오버로딩으로 구현합니다.

0개의 댓글