CS_1

Updated:

절차와 객체지향 프로그래밍

절차지향 프로그래밍

  • 물이 위에서 아래로 흐르는 것처럼 순차적인 처리를 중요시하는 프로그래밍 기법
  • C언어
  • 컴퓨터의 처리속도와 유사해 실행 속도가 빠르다
  • 코드의 순서가 바뀌면 동일한 실행 결과를 보장하기 어렵다

객체지향 프로그래밍

  • 실제 세계의 사물들을 객체로 모델링하여 개발을 진행하는 프로그래밍 기법
  • Java언어
  • 캡슐화, 상속, 다형성 등과 같은 기법을 이용할 수 있다.
    • 다형성: 하나의 메소드나 클래스가 다양한 방법으로 동작
  • 절차지향 언어보다 실행속도가 느리다

MSA

모든 시스템의 구성요소가 한 프로젝트에 통합되어 있는 Monolithic Architecture(모놀리식 아키텍쳐)의 한계점을 극복하고자 등장

1개의 시스템을 독리접으로 배포가능한 각각의 서비스로 분할합니다. 각각의 서비스는 RESTful API를 통해 데이터를 주고받으며 1개의 큰 서비스를 구성
  • Microservice Architecture
  • 장점
    • 일부 서비스에 장애가 발생하여도 전체 서비스에 장애가 발생하지 않는다.
    • 각각의 서비스들은 서로 다른 언어와 프레임워크로 구성될 수 있다.
    • 서비스의 확장이 용이하다.
  • 단점
    • 서비스가 분리되어 있어, 테스팅이나 트랜잭션 처리 등이 어렵다.
    • 서비스 간에 RESTful API로 통신하기 때문에 그에 대한 비용이 발생한다.
    • 서비스간의 호출이 연속적이기 때문에 디버깅이 어렵다.

# Parameter와 Argument의 차이

  • Parameter: 함수를 선언할 때 사용된 변수
  • Argument: 함수가 호출되었을 떄 함수의 파라미터로 전달된 실제 값

# 프레임워크와 라이브러리 차이

  • 라이브러리: 사용자가 흐름에 대한 제어를 하며 필요한 상황에 가져다가 쓸 수 있다
  • 프레임워크: 전체적인 흐름을 자체적으로 제어한다
 프레임워크와 라이브러리는 실행 흐름에 대한 제어 권한이 어디 있는지에 따라 달라진다. 프레임워크를 사용하면 사용자가 관리해야 하는 부분을 프레임워크에 넘김으로써 신경써야 할 것을 줄이는 제어의 역전(IoC, Inversion Of Control)이 적용

Tags:

Categories:

Updated:

Leave a comment