
● 도입 디자인 패턴의 종류 - 디자인 패턴은 크게 3가지로 나눌 수 있다. 1. 생성 패턴(Creational Patterns) : 오브젝트의 생성에 관련된 패턴 2. 구조 패턴(Structural Patterns) : 상속을 이용해 클래스 / 오브젝트를 조합하여 더 거대한 & 발전된 구조로 만드는 패턴 3. 행동 패턴(Behavioral Patterns) : 필요한 작업을 여러 객체에 분배하여 객체간 결합도를 줄이게 해주는 패턴 Builder Pattern? - 대표적인 생성 패턴으로써 객체의 생성에 대한 로직과 표현에 대한 로직을 분리해준다. - 객체의 생성 과정을 유연하게 해준다. - 객체의 생성 과정을 정의하고 싶거나 객체의 필드가 많아 constructor가 복잡해질 때 유용하다. ● 실습 [..
● 도입 - 함수형 프로그래밍을 이용해 디자인 패턴을 구현하는 방법을 알아볼 것이다. 디자인 패턴이란? - 반복해서 등장하는 프로그래밍 문제들에 대한 해법들을 패턴화 해놓은 것 - 프로그래밍에서 자주 등장하는 문제들에 대한 최적의 해법들을 모아 패턴화한 것이다. - 이러한 패턴들을 숙지해놓으면 비슷한 문제가 생겼을 때 패턴들이 이정표가 될 수 있다. - 디자인 패턴은 한 번 구현을 해놓으면 이후에 기능 추가, 변경, 유지&보수를 편리하게 할 수 있다. - 그러나 대부분의 디자인 패턴들은 처음에 그것을 구현하기 위해 많은 인터페이스 / 클래스 / 메서드를 필요로 한다. (= 코드가 복잡해진다.) - 함수형 프로그래밍을 이용해 몇몇 디자인 패턴을 좀 더 간단하게 구현할 수 있다. 디자인 패턴의 종류 - 디자..

● 도입 - Lazy Evaluation : 말 그대로 계산을 게으르게 하는 것이다. 계산값이 필요할 때까지 미루고 미루다가 꼭 필요해지면 그때가서 계산을 하는 것이다.(Lambda의 계산은 그 결과값이 필요할 때가 되어서야 계산된다.) - 이를 이용하여 불필요한 계산을 줄이거나 해당 코드의 실행 순서를 의도적으로 미룰 수 있다. cf) Stream은 Lazy Evaluation을 한다. ● 실습 1. - if문 안의 조건들을 or(||)로 엮을 때 아래와 같은 경우라면 returnFlase method는 실행조차 되지 않는다. - 이미 전체 조건이 true로 결정났기 때문에 뒤에 false가 오든 true가 오든 상관없이 무조건 true가 되기 때문이다. package com.fastcampus.fun..

● 도입 1. Scope(스코프 / 유효범위) - Scope : 변수에 접근할 수 있는 범위 - 함수 안에 함수가 있을 때 내부 함수에서 외부 함수에 있는 변수에 접근이 가능하다.(lexical scope) - 그 반대는 불가능 - 내부에 있는 Lambda가 다른 함수의 return 값이 되어도(다른 곳으로 넘어가더라도) 여전히 생성 당시의 상위 스코프에서 접근 가능했던 변수들에는 접근 가능하다. 이것을 lexical scope라고 한다. - Lambda 안에서는 Lambda 밖에 있는 변수에 접근 가능하다. 그 반대는 불가능 public static Supplier getStringSupplier() { String hello = "Hello"; Supplier supplier = () -> { Str..

● 도입 - Parallel Stream : 기존에 순차처리(Sequential) 하던 Stream을 병렬처리(Parallel) 하도록 만들어준다. List numbers = Arrays.asList(1, 2, 3); Stream parallelStream = numbers.parallelStream(); // 바로 병렬 Stream을 만들어준다. Stream parallelStream2 = numbers.stream().parallel(); // 기존의 Stream을 중간에 parallel로 바꾸는 것도 가능 [ Sequential(순차처리) vs Parallel(병렬처리) ] - 여러개의 스레드를 이용하여 stream의 처리 과정을 병렬화(parallelize) = 여러개의 스레드를 이용하여 중간 처..
- Total
- Today
- Yesterday
- 운영체제
- Spring Boot
- 코테
- Phaser
- SpringBoot
- Phaser3
- MongoDB
- node.js
- Java8
- 알고리즘
- 빅데이터 분석기사
- java
- API
- Stream
- db
- spring
- SQL
- 프로세스
- 메모리
- 프로그래머스
- DART
- git
- 빅데이터
- 자료구조
- 코딩테스트
- OS
- jpa
- nosql
- Advanced Stream
- MySQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |