Skip to content

20210118

Han edited this page Jan 18, 2021 · 1 revision

회고

Han

  • 스터디 궤도에 올라가는 데 시간이 좀 걸릴 것 같다
  • 저번주에 눈이 너무 많이 와서, 나가질 않았다.

David

  • 다음주 개강
  • 알고리즘 푸는 중.
  • 쉬운거 부터 풀자..
  • 이펙티브 자바 좀 어려운 게 있었음.

Pyro

  • CS 공부하던 거랑 아이템이 좀 겹쳐서 좋았음.

Roach

  • 함수형 프로그래밍 공부하면서, 이번주 아이템이랑 겹쳐서 이해하는 데 도움을 받은 듯.
  • Database 기초 공부중
  • CS 5주안에 기초 정리.

Items

item46

  • Side effect가 없다.
    • 작성한 코드로 인해서, 정상적으로 작동하던 코드에 영향을 미치면 안된다.
    • 방지하기 위해서, 클로저 써라
    • 그것 보다는 함수에서 사용하는 변수나, 참조하는 외부 변수가 불변이어야 사이드 이펙트가 없을 것
  • Side effect를 방지하기 위한 방법?
    1. 사용되는 변수가 Immutable
    2. 상태가 아예 존재하지 않거나
  • Pure Function 순수 함수
    • 그렇지만 순수함수만 가지고 개발하기는 어렵다
  • Closure
    function counter() {
        let count == 0;
        
        function realCounter() {
            return ++count;
        }
        return realCounter();
    }
    • realCounter는 외부에서 접근할 수 없기 때문에
    • 이 함수를 감싸는 counter() 클로저로 감싸면, 이 counter()는 순수 함수이다.
    • 클로저는 함수를 일컫는 게 아님.
  • enclosure
  • 하스켈

item47

  • 비어있는 부분에서 어떤 부분을 구현해줘야할까?
  • AbstractList에 get을 구현해주면, Iterator가 정상적으로 동작한다.
  • Generator
    • 메모리에 할당을 하지 않고, 순서대로 반환할 수 있도록 해주는 것
  • 비트 연산
  • AbstractList를 반환할 수 있다는 것이 Generator 같이 동작할 수 있다는 점이 중요한 점.
  • Intellij command -> Go to...를 이용

item48

  • ForkJoinPool
    • static commonPool() , 자바 시작될 때, 기본적으로 생성되는 친구임.
    • 기본적으로 병렬적인 연산을 할때 이 pool에 있는 스레드를 가지고 사용함.

item49

  • assert하는 것은 export 하지 않는 unpublic한 library에서만 사용하는 게 좋다.
  • spring 에서 제공하는 @valid를 사용하는 게 낫다.

item50

  • setter에 대한 사용을 주의해야할 듯.
  • 공격을 도대체 누가하는 거냐?
    • 외부에서 일어나는 공격보다는,
    • 내가 작성한 코드에 대해, 다른 팀원이 잘못 사용하는 경우...
  • item39
    • reflection을 이용한 부분.

마무리

  • 다음주 진행은 David
Clone this wiki locally