본문 바로가기

분류 전체보기56

[ch.15] 자바를 위한 함수형 접근 방식 OOP & FP 원칙 비교OOP 원칙현실 세계의 문제를 모델링하기 위해 비유를 기반으로 문제 해결 방식을 제공한다.객체는 인터페이스와 같은 공공 계약을 통해 상호작용하고, 자신의 상태를 관리하며 특정 책임을 가진다.OOP는 현실 세계를 반영하고 지속적인 변화를 처리하기 위해 코드를 구조화하고 조직화하는 데 효과적이다. FP 원칙수학적 원리와 람다 계산법에 기반을 두고 데이터 변환에 중점을 둔다.선언형 코드 스타일을 사용하며, 비유를 사용하는 대신 함수와 데이터 구조로 직접 모델링한다.FP로 변경 가능한 상태를 동시성 환경에서 처리하거나 예상치 못한 사이트 이펙트를 줄일 수 있다. OOP vs FPOOP는 현실 세계의 비유를 사용하며 복잡성을 캡슐화하는 반면, FP는 수학적 원칙을 따르면서 단순화를 추구한.. 2024. 8. 13.
[ch.14] 함수형 디자인 패턴 디자인 패턴생성패턴객체의 생성 방식을 결정하는 패턴 구조 패턴객체를 조합해 더 큰 구조나 강화된 객체를 만드는 패턴 행동패턴객체 간의 책임과 통신을 다루는 패턴 자주 사용되는 패턴1. 팩토리 패턴객체를 생성하는 방법의 세부 사항을 드러내지 않고 객체의 인스턴스를 생성한다. 도형 생성 예제Shape: 도형의 모서리, 색상, 타입을 정의하는 공통 인터페이스ShapeType: 도형의 타입과 색상을 식별하는 열거형ShapeFactory: 타입과 색상을 기반으로 도형을 생성하는 Factory객체 지향 접근 방식public interface Shape { int corners(); Color color(); ShapeType type();}public enum ShapeType { CIRCLE.. 2024. 8. 2.
[ch.13] 비동기 작업 동기 & 비동기동기(Synchronous)작업을 순차적으로 수행하며, 하나의 작업이 완료된 후에 다음 작업을 시작할 수 있다.호출한 작업이 완료될 때까지 호출자는 대기 상태에 있다.작업의 결과를 즉시 반환받는다.비동기(Asynchronous)작업의 완료 여부와 관계없이 다음 작업을 시작하는 방식이다.작업의 완료를 콜백이나 이벤트를 통해 알림 받는다.동기와 비동기는 데이터의 순서와 결과 처리에 관점을 둔다. Blocking자신의 작업을 진행하다가 다른 주체의 작업이 시작되면, 다른 작업이 끝날 때까지 기다렸다가 자신의 작업을 시작한다. Non-Blocking다른 주체의 작업에 관련없이자신의 작업을 하는 것Blocking과 Non-Blocking은 작업 제어에 관점을 둔다. Sync-Blocking: 메인 .. 2024. 8. 2.
[ch.12] 재귀 함수가 자기 자신을 호출하는 프로그래밍 기법으로문제를 작은 하위 문제들로 나누어 해결하는 데 유용하며,반복적으로 동일한 작업을 수행해야 하는 경우 사용된다. 재귀의 기본 구조기본 사례 (Base Case) : 재귀 호출을 멈추는 조건으로, 기본 사례가 없으면 재귀 호출이 무한 반복될 수 있다.재귀 사례 (Recursive Case) : 함수가 자기 자신을 호출하는 부분이다. 이 부분에서 문제를 더 작은 부분으로 나눌 수 있다.public class FactorialEx { public static void main(String[] args) { int number = 5; int result = factorial(number); System.out.println.. 2024. 7. 20.