절차지향 프로그래밍 (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 |