TIL
-
람다와 StreamTIL 2021. 1. 19. 16:10
함수형 프로그래밍이란? 하나의 공정을 하는 함수를 만들어 사용하는 것이다. 단 여러 조건이 붙는(불변성, 1급 시민, 순수 함수 등..) gsmesie692.tistory.com/267 Java 8과 함수형 프로그래밍: Lambda, Stream, Functional Interface Intro. 왜 Java 8인가? Java 8 (=Java 1.8) 은 2014년에 발표된 자바 버전이다. 내가 대학에서 자바를 배웠던 것은 Java 8이 발표되기 전이었다. 당연히 Java 8의 신기능에 대해서 대학 수업에서는 배우지 못했 gsmesie692.tistory.com 람다식 이란? 기본 문법 (타입 매개변수,...) -> {실행문;...} , (int a)-> {System.out.println(a);} 지금..
-
2021.01.19 기록장TIL 2021. 1. 18. 22:13
To Do 문제 해결 책 읽기 Done 백기선 님 study 정리 문제 해결 Bad 책을 못 읽었다. Good stream 공부를 했고 study를 통해 thread도 조금 알았다. Feeling 오늘은 stream에 대해 공부했었다. 객체에서 값을 뽑아내는 것을 보고 멋져서 깊게 공부했는데 스트림을 병렬적으로 처리할 수 있게 해주는 것도 공부를 했다. 근데 성능 이슈가 잦아서 조심해서 사용하던가 사용하지 말던가 해야 된다. 그렇게 공부를 하고 study를 정리하는데 마치 주제가 멀티스레드라 여기서도 병렬 처리 관련 글들을 보게 됐었다. 예전에는 둘 다 잘 몰라서 연관 짓지 못했을 텐데 조금씩 알아가니 지식이 선을 잇는 느낌이 들었다. 아 또 Runnable도 열어보니 이번에 배운 함수 인터페이스였다. ..
-
함수형 프로그래밍TIL 2021. 1. 18. 20:27
함수형 프로그래밍 (Functional Programming) 함수형 프로그래밍(functional programming)은 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다. 프로그래밍 패러다임 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 프로그래밍 패러다임(programming paradigm)은 프로그래밍의 패러다임 형태이다. 소프트웨어 공학을 할 때의 패러다임 형태인 방법 ko.wikipedia.org 하나의 프로그래밍 패러다임, (패러다임 : 한 시대의 사람들의 견해나 사고를 근본적으로 규정하고 있는 인식의 체계) 소프트웨어에서의 패러다임은 방법론 -> 프로그래머에게 프로그래밍의 관점을..
-
2021.01.18 기록장TIL 2021. 1. 17. 21:23
To Do 문제 해결 책 읽기 Done 문제 해결 Bad 책 읽기를 하지 않았다. Good 함수형 프로그래밍에 대해 조금 알게 되었다. Feeling 함수형 프로그래밍 처음에는 감도 안 잡혔는데 끝날 때쯤 되니 조금 알 것 같다. 메서드와 비슷한 역할을 하는 거 같다. 단 리턴 타입이나 매개변수로 사용할 수 있다는 점이 plus 되었지만. 맨 처음에는 직접 함수 인터페이스를 만들었는데 이미 java에서는 지원하는 함수 인터페이스가 많았다. 그래서 후반에는 이미 있는 함수 인터페이스만 사용해서 문제를 해결했다.
-
Solid 란TIL 2021. 1. 17. 13:47
로버트 마틴이 2000년대 명명한 객체지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이클 페더스가 앞글자를 따서 소개한 것. 목적은 유지보수와 확장이 쉬운 시스템 개발을 위해. 두문자 약어 개념 S SRP 단일 책임 원칙 : 한 클래스는 하나의 책임만 가져야 한다. O OCP 개방-폐쇄 원칙 : 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. L LSP 리스코프 치환 원칙 : 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다. I LSP 인터페이스 분리 원칙 : 인터페이스는 분리가 되면 쪼개라 D DIP 의존관계 역전 원칙 : 프로그래머는 "추상화에 의존해야지, 구체화에 의존하면 안된다." 의존성 주입은 이 원칙을 따르는 방법 중..
-
2021.01.17 기록장TIL 2021. 1. 16. 22:37
To Do solid 학습 및 정리 알고리즘 문제 풀기 책 읽기 Done solid 학습 및 정리 백기선 님 study 하트 글 읽기 책 읽기 Bad 알고리즘 문제 풀기는 너무 어렵다. 쉬운 거부터 풀어야 하나 Good 책 읽음, 학습 정리함 Feeling 오늘은 전송계층에 대해 읽었다. 안전한 전송을 하기 위한 계층으로 연결형 통신과 비연결형 통신이 있다. 연결형 통신의 대표적인 프로토콜은 tcp로 안전한 통신을 하게 해 준다. 3 웨이 핸드 셰이크를 통해 연결을 확인하고 데이터 보내고 잘 도착했는지 확인하고. 데이터 양은 상대 컴퓨터의 버퍼를 확인해서 알맞게 보내주고 (윈도 사이즈) 포트번호도 앞에 포함한다. 네트워크 계층에서 ip를 통해 컴퓨터를 찾아가면 전송계층에서는 포트번호를 통해 해당 프로그램..
-
OOP에 관해서TIL 2021. 1. 16. 14:05
oop에 대해 공부하기 위해 자료를 찾던 중 재밌는 글을 봐서 공유한다. rinae.dev/posts/the-faster-you-unlearn-oop-the-better-for-you-and-your-software-kr [번역] OOP를 빨리 잊을 수록 여러분과 여러분의 소프트웨어에 좋습니다 OOP를 향한 신랄한 비판(?) 번역 (not about functional programming) - 비판적으로 읽어주세요 rinae.dev 중간에 '나는 바나나를 원했는데 결과는 바나나를 들고 있는 고릴라와 정글을 얻었다.'라는 글이 있는데 이번에 코드를 작성하면서 본인이 느낀 점에 딱 맞았던 거 같다. 설계자에게 중요한 것은 어디까지 세분화할 것인지 같다. 인간을 오장육부로 분리할 건지, 세포단위까지 분리할 ..
-
2021.01.16 기록장TIL 2021. 1. 15. 22:35
To Do 코쿼 학습 정리 작성 책 읽기 Done 코쿼 학습 정리 작성 책 읽기 Bad 학습 정리의 마지막인 solid 원칙을 정리하지 않았다. 오늘 유튜브를 많이 봤다. Good 코쿼 학습 정리 작성 책 읽기 Feeling oop를 학습 하기 위해서 우형의 객체지향에 관한 유튜브를 봤다. 의존성을 중요시 생각해서 의존성을 약하게 하는 여러 방법을 설명하는 것을 들었다. 리포지토리를 생성하여 인스턴스를 대체하거나 중간 객체를 만드는 모습들을 보았다. 책은 모두의 네트워크 책을 읽었다. osi 7 계층에서 각 계층이 하는 역할을 일단 물리, 데이터, 네트워크 계층까지 읽었다. 물리 계층은 비트를 전기신호로 바꾸고 데이터 링크 계층은 이더넷등을 활용해 랜선 네트워크를 할 수 있게 한다. 네트워크 계층은 더 ..