객체지향 프로그래밍(OOP)
정의
- 데이터와 해당 데이터를 처리하는 데 필요한 프로시저들을
- 객체로 캡슐화하고,
- 해당 객체들 간의 상호작용을 통해 소프트웨어를 설계하고 구현하는 방법론
특징
- 클래스와 상속
- 인터페이스
- 캡슐화
- 다형성 등이 특징이다.
함수형 프로그래밍 (FP)
정의
- 계산을 수학적 함수의 평가로 간주
- 상태 변경과 가변 데이터를 피하는 프로그래밍 패러다임
- 상태 변경과 가변 데이터를 피한다?
- 가변 데이터
var count = 0 // 가변 변수 fun increment() { count += 1 // 상태 변경 }
- 변수에 대한 의도치않은 상태의 변경을..
val number = 5 // 불변 변수
val
키워드를 통하여 변수를불변으로
설정할수 있음.
- 가변 데이터
- 상태 변경과 가변 데이터를 피한다?
개념
- 일급 함수
- 함수를 일반 값처럼 다룬다.
- 변수에 할당, 다른 함수의 인자로 전달가능
- 불변성
- 데이터의 상태가 생성하고 변경되지 않음!
- 순수 함수
- 동일한 입력에 대해 항상 동일한 출력을 반환
- 참고
- 함수 VS 메서드
- 함수
- 동일한 입력 → 동일 출력
- 메서드
- 동일한 입력 → 상황에 따라 다른 값을 출력가능
- 함수
- 함수 VS 메서드
장점
- 간결성
- 함수를 값처럼 사용가능하여
- 강력한 추상화가 가능하다
- 코드의 중복도 제거가능
- 멀티스레드에 안전
- 불변데이터와 순수 함수의 사용으로 다중 스레드에 안전하다
- 테스트 쉽다
- 순수 함수는 독립적으로 테스트하기 쉬움
코틀린은 OOP 와 FP 동시 지원으로
상황에 맞게 대응이 가능하다,
물론 자바도 둘다 지원한다
Uploaded by N2T
'코틀린 > 코틀린인액션' 카테고리의 다른 글
[코틀린인액션] if 와 when 사용 (0) | 2023.11.23 |
---|---|
[코틀린인액션] 범위와 수 (0) | 2023.11.23 |
[코틀린인액션] Hello World (0) | 2023.11.23 |
[코틀린인액션] 코틀린 컴파일 (0) | 2023.11.21 |
[코틀린인액션] 코틀린 기초(1) (0) | 2023.11.21 |