-
Notifications
You must be signed in to change notification settings - Fork 38
20210118
Han edited this page Jan 18, 2021
·
1 revision
- 스터디 궤도에 올라가는 데 시간이 좀 걸릴 것 같다
- 저번주에 눈이 너무 많이 와서, 나가질 않았다.
- 다음주 개강
- 알고리즘 푸는 중.
- 쉬운거 부터 풀자..
- 이펙티브 자바 좀 어려운 게 있었음.
- CS 공부하던 거랑 아이템이 좀 겹쳐서 좋았음.
- 함수형 프로그래밍 공부하면서, 이번주 아이템이랑 겹쳐서 이해하는 데 도움을 받은 듯.
- Database 기초 공부중
- CS 5주안에 기초 정리.
- Side effect가 없다.
- 작성한 코드로 인해서, 정상적으로 작동하던 코드에 영향을 미치면 안된다.
- 방지하기 위해서, 클로저 써라
- 그것 보다는 함수에서 사용하는 변수나, 참조하는 외부 변수가 불변이어야 사이드 이펙트가 없을 것
- Side effect를 방지하기 위한 방법?
- 사용되는 변수가 Immutable
- 상태가 아예 존재하지 않거나
- Pure Function 순수 함수
- 그렇지만 순수함수만 가지고 개발하기는 어렵다
- Closure
function counter() { let count == 0; function realCounter() { return ++count; } return realCounter(); }
- realCounter는 외부에서 접근할 수 없기 때문에
- 이 함수를 감싸는 counter() 클로저로 감싸면, 이 counter()는 순수 함수이다.
- 클로저는 함수를 일컫는 게 아님.
- enclosure
- 하스켈
- 비어있는 부분에서 어떤 부분을 구현해줘야할까?
- AbstractList에 get을 구현해주면, Iterator가 정상적으로 동작한다.
-
Generator
- 메모리에 할당을 하지 않고, 순서대로 반환할 수 있도록 해주는 것
- 비트 연산
- AbstractList를 반환할 수 있다는 것이 Generator 같이 동작할 수 있다는 점이 중요한 점.
- Intellij command -> Go to...를 이용
- ForkJoinPool
- static
commonPool()
, 자바 시작될 때, 기본적으로 생성되는 친구임. - 기본적으로 병렬적인 연산을 할때 이 pool에 있는 스레드를 가지고 사용함.
- static
- assert하는 것은 export 하지 않는 unpublic한 library에서만 사용하는 게 좋다.
- spring 에서 제공하는
@valid
를 사용하는 게 낫다.
- setter에 대한 사용을 주의해야할 듯.
- 공격을 도대체 누가하는 거냐?
- 외부에서 일어나는 공격보다는,
- 내가 작성한 코드에 대해, 다른 팀원이 잘못 사용하는 경우...
- item39
- reflection을 이용한 부분.
- 다음주 진행은 David