CS

CS 정리 - 1

reasontaek 2021. 8. 13. 09:08

OOP(Object-Oriented Programming)

- 단일책임원칙

- 개방폐쇠원칙

- 리스코프 치환원칙

- 인터페이스 분리원칙

-의존역전법칙

 

특징

- 캡슐화

- 상속

- 다형성

   -오버로드: 메서드 이름은 같으나 매개변수가 다름

   - 오버라이딩: 부모클래스의 메서드 재정의

- 추상화

 

REST(Representation State Transfer) API

- Resource(자원, URI)

- Method(요청방식, GET, POST 등)

- Represetation of Resource(자원의 형태, JSON, XML 등)

 

함수형 프로그래밍

- Immutable data

- First class citizen

 

메모리 구조

- 코드 영역: 실행할 프로그램 코드

- 데이터 영역: 전역 변수, 정적 변수

- 힙 영역: 사용자의 동적 할당 - 런타임에 크기가 결정됨

- 스택 영역: 지역 변수, 매개 변수 - 컴파일 시간에 크기가 결정됨

 

Parameter: 함수를 선언할 때 사용된 변수

Argument: 함수가 호출되었을 때 파라미터로 전달된 실제 값

 

Call By Value: 함수 호출 시 인자 값을 복사하여 사용

Call By Reference: 함수 호출 시 인자의 주소 값을 사용

 

프레임워크: 전체적인 흐름을 자체적으로 제어

라이브러리: 사용자가 흐름에 대한 제어, 필요한 상황에 가져다 씀

 

동기 방식

- 장점: 순서에 맞춰 진행되어 제어가 쉽다.

- 단점: 효율이 떨어짐

비동기 방식

- 장점: 효율이 좋음

- 단점: 작업이 완료된 결과를 제어하기 어렵다.

 

메시지 큐: 비동기 프로토콜 제공, 생산자와 소비자로 구분됨

 

Docker

- 장점: 쉽고 빠른 환경 구축, 하드웨어 자원 절감, Docker Hub 지원

- 단점: 개발초기의 오버헤드, 리눅스 친화적

 

TDD(Test-Driven Development)

- 매우 짧은 개발 싸이클의 반복

DDD(Domain-Driven Development)

- 도메인(실제 세계에서 사건이 발생하는 집합)들이 서로 상호작용하며 설계

 

MSA(Microservice Architecture) (<=> Monolithic Architecture)

장점: 일부장애가 전체 서비스의 장애를 야기하지 않는다, 서로 다른 언어 및 프레임워크 사용 가능, 서비스의 확장 용이

단점: 테스팅이나 트랜잭션 처리 어려움, 서비스 간의 통신 비용 증가, 디버깅 어려움

'CS' 카테고리의 다른 글

CS정리 - 3  (0) 2021.08.15
CS정리 - 2  (0) 2021.08.14