21년 1월 18일
한 일
-
함수형 프로그래밍이 무엇인지 학습하고 정리하였다.
-
프로그램을 함수의 조합으로 바라보는 패러다임이다.
-
여기서 함수는 불변성과 순수함수라는 특징이 있어, 어떤 상태인지에 따른 side effect가 발생하지 않는다.
-
비동기 프로그래밍에 있어서도 side effect가 발생하지 않는다.
(인풋에 의해 결정되는 함수들의 조합이기 때문에 thread간에 공유되는 변수가 없다.)
-
자바에서 함수형 프로그래밍을 위해 인터페이스 생성자로 람다식을 사용하고, 메소드처럼 취급할 수 있는
여러 인터페이스를 구현해놓았다는 것을 알게 되었다.
-
-
프로그래머스의 길찾기 게임과 카펫 문제를 풀었다.
- 길찾기 게임:
- 단순한 구현 문제이다.
- y값으로 내림차순 정렬을 한 후 이진 탐색 트리에 삽입한다.
- pre-order, post-order 순서로 각각 탐색한 후 결과를 반환한다.
- 카펫:
- 단순한 완전탐색 문제이다.
- yellow의 형태에 따라 결정되는 brown갯수를 알면 쉽다.
- 주어진 yellow개수로 취할수 있는 yellow의 형태를 바꿔가며 brown개수가 일치하는 순간 답을 반환한다.
- 길찾기 게임:
-
TCP/IP 쉽게 30페이지까지 읽었다.
- 각각 계층이 자신의 역할만 하고 나머지는 다른 계층에 위임한다.
- 이런 위임을 통해 마치 자신의 계층만 있는 것처럼 통신할 수 있다.
- 애플리케이션 계층, 트랜스포트 게층, 인터넷 계층, 네트워크 인터페이스 계층에서 사용하는 프로토콜들을 확인하였다.
잘못한 것
잘한 것
느낌
-
자바에서 함수형 프로그래밍을 위해 꼭 Functional Interface를 사용해야하는 건지 모르겠다.
-
미션에서 주어진 조건을 만족하기 위해서는 굳이 Functional Interface가 필요한지 모르겠다.
-
함수형 프로그래밍으로 Refactoring하는 목적에 코드의 간소화도 있을텐데, Functional Interface를 남발하면
코드가 더 복잡해지는 것 같다.
-
-
TCP/IP 책을 읽었는데 엄청 꼼꼼하게 읽기보다 쓱쓱 여러번 읽는 방향으로 진행하려고 한다.
- 부담없이 쓱쓱 읽으니까 잘 읽히고, 좋다.
- 여러번 읽음으로써 체득하려고 한다.
할 일
- 코드스쿼드 마스터즈 수업듣기
- 코드스쿼드 미션 개선해보기
- 프로그래머스 문제 풀기
- TCP/IP 쉽게 더쉽게 읽기