무지개곰
article thumbnail

목차

  1. 구조적 프로그래밍
  2. 함수형 프로그래밍
  3. 객체지향 프로그래밍

구조적 프로그래밍

데이크스트라가 무분별한 goto문장은 프로그램 구조에 해롭다는 사실을 제시하였고 모든 프로그램을 순차적, 분기, 반복이라는 세 가지 구조만으로 표현할 수 있다는 사실을 증명하였습니다.

분기는 if문, 반복은 for문, 순차적은 goto를 사용하지 않는 top-down 방식


함수형 프로그래밍

함수형 프로그래밍 특징

  • 순수함수
    • 함수 외부의 상태 값을 참조하거나 외부의 상태를 변경하지 않음
    • 함수 내부에서 인자의 값을 변경하거나 프로그램 상태를 변경하는 Side Effect가 없는 것
  • 비상태, 불변성
    • 함수에 인자로 전달된 데이터를 변경하지 않고 새로운 오브젝트를 만들어 반환

거의 모든 것을 순수 함수로 나누어 문제를 해결하는 기법, 작은 문제를 해결하기 위한 함수를 작성하여 가독성을 높이고 유지보수를 용이하게 해 준다.

이벤트 소싱

상태가 아닌 트랜잭션을 저장하는 전략
상태 값이 필요한 경우 상태의 시작점부터 모든 트랜잭션을 처리
CRUD를 하는 것이 아닌 CR만 진행하는 방법

모나드

함수형 프로그래밍에서 부수 효과를 처리하거나 값을 감싸는 데 사용되는 디자인 패턴

 

참고 자료


객체 지향 프로그래밍

객체 지향 프로그래밍 특징

  • 캡슐화
    • 객체의 상태를 외부에서 직접 접근하지 못하도록 은닉하고, 일부 함수만 외부에 노출하는 방법
  • 상속
    • 기존의 클래스의 특성을 그대로 받아 새로운 클래스를 만드는 방법
  • 다형성
    • 동일한 인터페이스를 사용하여 여러 객체를 다르게 처리하는 방법

'아키텍처' 카테고리의 다른 글

[아키텍처] 설계 원칙 SOLID  (2) 2023.12.25
profile

무지개곰

@무지개곰

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!