본문 바로가기

개발

프로그래밍 패러다임

절차지향 프로그래밍 (Procedural Programming)

  • 프로그램을 일련의 절차나 루틴의 순차적인 실행으로 보는 방식
  • 이 패러다임은 명령을 실행하고 데이터를 저장하는데 초점을 맞춤

객체지향 프로그래밍 (Object-Oriented Programming, OOP)

  • 데이터와 이 데이터를 처리하는 메소드를 하나의 단위, 즉 객체로 캡슐화
  • 특징 4가지
    • 추상화: 복잡한 자료, 모듈, 시스템 등으로부터 핵심적인 개념 또는 기능을 간추려 내는 것
    • 캡슐화: 데이터와 함수를 객체 내부에 포함시켜 외부로부터 숨김
    • 상속: 하나의 클래스가 다른 클래스의 속성과 행동을 상속
    • 다형성: 같은 인터페이스나 메소드 호출이 서로 다른 동작을 할 수 있게 함
      • 오버로딩(Overloading): 같은 이름의 함수를 매개변수를 다르게 하여 기능을 재정의
      • 오버라이딩(Overriding):  상속받은 자식 클래스에서 부모 클래스의 메서드를 재정의

함수형 프로그래밍 (Functional Programming, FP)

  • 계산을 수학적 함수의 평가로 취급하고
  • 상태 변경이나 가변 데이터를 피합니다. 
  • 특징:
    • 불변성: 데이터는 생성 후 변경할 수 없습니다. 변경이 필요한 경우 새로운 데이터를 생성
    • 순수 함수: 같은 입력에 대해 항상 같은 출력을 반환하며, 부작용(side effects)이 없
    • 고차 함수: 함수를 다른 함수의 인자로 전달하거나 결과로 반환

 

'개발' 카테고리의 다른 글

소스 코드 관리 전략(모노레포 vs 멀티레포)  (0) 2024.05.11
아키텍처(모놀리식 vs. MSA)  (0) 2024.05.11
TDD  (0) 2024.05.11
워터폴과 애자일  (0) 2024.05.11
브랜치 관리(Git Flow, GitHub Flow)  (0) 2024.05.11