CS_1
Updated:
절차와 객체지향 프로그래밍
절차지향 프로그래밍
- 물이 위에서 아래로 흐르는 것처럼 순차적인 처리를 중요시하는 프로그래밍 기법
- C언어
- 컴퓨터의 처리속도와 유사해 실행 속도가 빠르다
- 코드의 순서가 바뀌면 동일한 실행 결과를 보장하기 어렵다
객체지향 프로그래밍
- 실제 세계의 사물들을 객체로 모델링하여 개발을 진행하는 프로그래밍 기법
- Java언어
- 캡슐화, 상속, 다형성 등과 같은 기법을 이용할 수 있다.
- 다형성: 하나의 메소드나 클래스가 다양한 방법으로 동작
- 절차지향 언어보다 실행속도가 느리다
MSA
모든 시스템의 구성요소가 한 프로젝트에 통합되어 있는 Monolithic Architecture(모놀리식 아키텍쳐)의 한계점을 극복하고자 등장
1개의 시스템을 독리접으로 배포가능한 각각의 서비스로 분할합니다. 각각의 서비스는 RESTful API를 통해 데이터를 주고받으며 1개의 큰 서비스를 구성
- Microservice Architecture
- 장점
- 일부 서비스에 장애가 발생하여도 전체 서비스에 장애가 발생하지 않는다.
- 각각의 서비스들은 서로 다른 언어와 프레임워크로 구성될 수 있다.
- 서비스의 확장이 용이하다.
- 단점
- 서비스가 분리되어 있어, 테스팅이나 트랜잭션 처리 등이 어렵다.
- 서비스 간에 RESTful API로 통신하기 때문에 그에 대한 비용이 발생한다.
- 서비스간의 호출이 연속적이기 때문에 디버깅이 어렵다.
# Parameter와 Argument의 차이
- Parameter: 함수를 선언할 때 사용된 변수
- Argument: 함수가 호출되었을 떄 함수의 파라미터로 전달된 실제 값
# 프레임워크와 라이브러리 차이
- 라이브러리: 사용자가 흐름에 대한 제어를 하며 필요한 상황에 가져다가 쓸 수 있다
- 프레임워크: 전체적인 흐름을 자체적으로 제어한다
프레임워크와 라이브러리는 실행 흐름에 대한 제어 권한이 어디 있는지에 따라 달라진다. 프레임워크를 사용하면 사용자가 관리해야 하는 부분을 프레임워크에 넘김으로써 신경써야 할 것을 줄이는 제어의 역전(IoC, Inversion Of Control)이 적용
Leave a comment