일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링 스케쥴러
- 고차원 함수
- 영속 자료구조
- @EnableScheduling
- 모던 자바 인 액션
- 코딩 테스트
- 프로그래머스
- kubenetes
- 기능개발
- @configuration
- 검색 기능 확장
- H-index
- K번째수
- 알고리즘
- 가장 큰 수
- 루씬 인 액션
- 해시
- 다리를 지나는 트럭
- 커링
- 롬복 어노테이션
- 쿠버네티스
- @Data
- 완주하지 못한 선수
- 전화번호 목록
- @Setter
- 정렬
- Java
- @Getter
- 스택/큐
- 크론 표현식
- Today
- Total
목록JAVA & Spring (29)
Today I Learned
15.3 박스와 채널 모델 박스와 채널 모델은 동시성을 설계하고 계념화하기 위한 모델이다. 박스와 채널 모델을 이용하면 생각과 코드를 구조화할 수 있으며, 시스템 구현의 추상화 수준을 높일 수 있다. 박스로 원하는 연산을 표현하면 계산을 손으로 코딩한 결과보다 더 효율적일 것이다. 또한 병렬성을 직접 프로그래밍하는 관점을 콤비네이터를 이용해 내부적으로 작업을 처리하는 관점으로 바꿔준다. 위 태스크를 코드로 구현해보자. int t = p(x); System.out.println(r(q1(t), q2(t)); 위 방식은 q1, q2를 차례로 호출하여 하드웨어 병렬성 활용과는 거리가 멀다. int t = p(x); Future a1 = executorService.submit(() -> q1(t)); Futu..
이 장의 내용 Thread, Future, 자바가 풍부한 동시성 API를 제공하도록 강요하는 진화의 힘 비동기 API 동시 컴퓨팅의 박스와 채널 뷰 CompletableFuture 콤비네이터로 박스를 동적으로 연결 리액티브 프로그래밍용 자바 9 플로 API의 기초를 이루는 발행 구독 프로토콜 리액티브 프로그래밍과 리액티브 시스템 15.1 동시성을 구현하는 자바 지원의 진화 Runnable, Thread → ExecutorService, Callable, Future, 제네릭 → RecursiveTask → 람다 → 분산 비동기 프로그래밍 15.1.1 스레드와 높은 수준의 추상화 자바 스트림을 사용하면 외부반복(명시적 루프) 대신 내부반복을 통해 쉽게 병렬성을 달성할 수 있다. sum = Arrays.st..
14.1 압력 : 소프트웨어 유추 지금까지는 이해하고 유지보수하기 쉬운 코드를 구현하는 데 사용할 수 있는 새로운 언어 기능을 살펴봤다. 하지만 이러한 부분은 저수준의 영역에 해당하며, 소프트웨어 아키텍처에 해당하는 고수준의 영역에서는 생산성을 높일 수 있도록 추론하기 쉬운 소프트웨어 프로젝트가 필요하다. 14.1.1 관심사 분리(SoC, Separation of concerns) 컴퓨터 프로그램을 고유의 기능으로 나누는 동작을 권장하는 원칙이다. SoC는 다음과 같은 장점을 가진다. 개별 기능을 따로 작업할 수 있으므로 팀이 쉽게 협업할 수 있다. 개별 부분을 재사용하기 쉽다. 전체 시스템을 쉽게 유지보수할 수 있다. 14.1.2 정보 은닉 세부 구현을 숨김으로 코드를 관리하고 보호하는 데 유용한 원칙..
이 장의 내용 디폴트 메서드란 무엇인가? 진화하는 API가 호환성을 유지하는 방법 디폴트 메서드의 활용 패턴 해결 규칙 인터페이스를 구현하는 클래스는 인터페이스에서 정의하는 모든 메서드 구현을 제공하거나 슈퍼클래스의 구현을 상속받아야 한다. 하지만 인터페이스가 바뀌면 인터페이스를 구현했던 모든 클래스의 구현도 고쳐야하기 때문에 문제가 된다. 자바 8에서는 이 문제를 해결하기 위해 기본 구현을 포함하는 인터페이스를 정의하는 두 가지 방법을 제공한다. 정적 메서드 디폴트 메서드 디폴트 메서드를 사용하면 자동으로 인터페이스를 구현하는 클래스에 메서드가 상속된다. 다음은 List 인터페이스에 새로 추가된 sort 메서드이다. default void sort(Comparator