서론 앞에서는 객체지향 프로그래밍을 구성하는 클래스, 추상 클래스, 인터페이스 등을 알아봤습니다. 이는 객체지향 프로그래밍 구현을 위한 내용이고 조금 더 거시적인 측면에서 역할, 책임, 협력을 바라봐야할 필요가 있습니다. 객체지향의 본질은 협력하는 객체들의 공동체를 구성하는 것입니다. 객체지향 설계의 핵심은 협력을 구성하기 위해 적절한 객체를 찾고, 적절한 책임을 할당하는 과정에서 드러난다고 합니다. 클래스, 추상클래스, 인터페이스는 책임과 협력이 어느정도 자리잡은 후에 사용할 수 있는 구현 매커니즘입니다. 애플리케이션의 기능을 구현하기 위해 어떤 협력이 필요하고, 협력을 위해 어떤 역할과 책임이 필요한지 먼저 우선적으로 생각해야 합니다. 그렇지 않으면 변경하기 어렵고 유연하지 못한 코드를 낳을 수 있습..
영화 예매 시스템 이번에 다룰 예제는 영화 예매 시스템입니다. 영화의 상영시간을 예매하는 예매자는 1개의 할인 정책과 N개의 할인 조건에 만족한다면 요금을 할인 받을 수 있습니다. 할인 정책은 금액 할인 정책과 비율 할인 정책으로 구체화할 수 있습니다. 할인 조건은 순번 조건, 기간 조건 등으로 구체화할 수 있습니다. 앞서 구체화 한다는 말은 나눌 수 있다는 의미를 가집니다. 객체지향 프로그래밍을 향해 💡협력, 객체, 클래스 앞서 나온 예제를 중심으로 영화 예매 시스템을 프로그래밍할 때 가장 처음 할 일은 각 역할에 맞는 클래스를 선언하고 역할에 맞게 속성을 세팅하는 것입니다. 하지만 이는 객체지향의 본질과는 거리가 멀다고 합니다.(그럼 어떻게 구성해,,,?) 진정한 객체지향 패러다임으로서의 전환은 클래..
서론 해당 챕터를 읽다 보니 예전에 면접에서 함수형 프로그래밍이란 어떤 것이고, 어떻게 생각하느냐라는 질문을 받은 적이 있었습니다. 그때 제대로 된 답변을 못했는데... 라는 생각이 스쳐 지나갔고 사실 지금도 다시 물어본다면 제대로 된 답변을 하기 어려울 거 같습니다. 그래서 이번 내용 정리를 토대로 개념을 가지고 갈 필요성이 있는 것 같습니다. 시스템 구현과 유지보수 시스템 구현 및 유지보수 중 우리는 예상치 못한 변수값으로 인해 많은 문제를 겪고 있습니다. 왜 예상치 못한 변수값으로 인해 우리는 힘들어할까요? 여기서 함수형 프로그래밍이 제공하는 부작용 없음과 불변성이라는 개념이 이 문제를 해결하는데 도움을 준다고 합니다. 💡 공유된 가변 데이터 변수값이 예상치 못한 값을 갖는 이유는 우리가 사용중인 ..
리액티브 매니패스토 리액티브 매니패스토는 2013년 ~ 2014년에 걸쳐 개발되었으며 리액티브 애플리케이션과 시스템 개발의 핵심 원칙을 공식적으로 정의하고 있습니다. 반응성 리액티브 시스템은 빠를 뿐 아니라 더 중요한 특징으로 일정하고 예상할 수 있는 반응 시간을 제공합니다. 결과적으로 사용자가 기대치를 가질 수 있습니다. 즉 리액티브 시스템은 빠르고, 일정하고 예측할 수 있는 반응 시간을 통해 사용자의 기대치를 높이는것 같습니다. 회복성 장애가 발생해도 시스템은 반응해야 합니다. 탄력성 애플리케이션의 생명주기 동안 다양한 작업 부하를 받게 되는데, 이러한 부하로 인해 애플리케이션의 반응성이 위협받을 수 있습니다. 리액티브 시스템에서는 무거운 작업 부하가 발생하면 자동적으로 관련 컴포넌트에 할당된 자원수..
- Total
- Today
- Yesterday
- java userThread와 DaemonThread
- redis sorted set으로 대기열 구현
- spring boot excel download paging
- spring boot redisson destributed lock
- 자바 백엔드 개발자 추천 도서
- polling publisher spring boot
- pipe and filter architecture
- 공간 기반 아키텍처
- redis sorted set
- pipeline architecture
- service based architecture
- transactional outbox pattern spring boot
- spring boot redis 대기열 구현
- spring boot poi excel download
- 레이어드 아키텍처란
- @ControllerAdvice
- space based architecture
- spring boot redisson sorted set
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- 서비스 기반 아키텍처
- transactional outbox pattern
- 람다 표현식
- JDK Dynamic Proxy와 CGLIB의 차이
- spring boot excel download oom
- 트랜잭셔널 아웃박스 패턴 스프링부트
- redis 대기열 구현
- spring boot 엑셀 다운로드
- microkernel architecture
- spring boot redisson 분산락 구현
- java ThreadLocal
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |