반응형
- Java Functional하게 사용하기 - 32022-02-12 22:04:01Optional을 사용해봅시다. null인지 아닌지 , null이 될 수 있는지 그럴 수 없는지, empty인지 아닌지 등을 편리하게 나타낼 수 있는 클래스죠 Optional.of를 사용해 Null이 아닌 오브젝트릴 이용해서 Optional을 만들고 Empty를 사용해서 빈 Optional을 만들고 ofNullable을 사용해서 Null인지 아닌지 모르는 오브젝트로 Optional을 만들 수 있는데 이렇게 만든 Optional을 가지고 이런식으로 Optional의 안에 있는 값을 확인하고 꺼내는 다양한 메서드를 사용할 수 있는데 isPresent()로 값의 존재 여부를 확인, get()으로 값을 꺼내고, orElse로 null인 경우 supplier로 공급되는 값을 리턴시키고, orElseThrow로 n..
- Java Functional하게 사용하기 - 22022-02-07 22:08:23Stream Colletion 형태로 구성된 데이터를 람다를 이용해 간결하고 직관적으로 프로세스하게 해준다. Stream을 사용해 기존의 반복문을 간결한 형태로 표현 가능하고 병렬 처리를 쉽게 할 수 있다. Stream이을 사용해 Data를 흐름의 형태로 처리한다고 생각했을 때 이 흐름을 처음, 중간, 끝으로 볼 수 있는데 각각 source를 stream으로 흐르게 하는 처음 filter, map 등의 intermediate operations (중간 처리) collect, reduce 등의 terminal operation (종결 처리) 으로 볼 수 있다. 우선 중간 처리에서 자주 사용하는 filter와 map을 보자면 filter는 predicate이 true를 반환하는 데이터만 존재하는 stream..
- Java Functional하게 사용하기 - 12022-02-03 21:20:14자바에서도 functional programming을 지원하고자 jdk1.8부터 java.util.function 패키지를 활용해서 함수를 객체의 형태로 풀어내 프로그래밍이 가능해졌습니다. 기존의 "문제를 어떻게 풀어갈까?"에 대해 집중했던 객체 지향 프로그래밍은 명령형 프로그래밍의 범주이고 "무엇을 할까?"에 집중하는 함수형 프로그래밍은 선언형 프로그래밍의 범주로 봅니다. 함수형 프로그래밍 관련하여 글을 보면 많은 사람이 함수를 1급 시민으로서 사용하게 된다는 글을 작성하였는데 이는 함수/메서드의 매개변수로서 전달할 수 있는가? 함수/메서드의 반환값이 될 수 있는가? 변수에 담을 수 있는가? 위의 조건을 충족하는 것을 말합니다. 우선 java.util.function 패키지를 보면 @Functional..
- Read Write Query 분리2021-11-28 21:32:33프로젝트를 진행하는 과정에서 MySQL DB를 replication을 진행했는데 이는 추후 서버 증설을 가정했을 때 가용성이나 다수의 서버가 한 대의 데이터베이스를 바라보는 구조에서 트래픽이 한 개의 DB에 몰릴 때 해당 DB가 죽어버리면 앞단의 모든 서버까지 다 죽을 위험이 있기 때문이다. 요청당 스레드가 서버의 cpu,메모리, db connection 등을 가지고 요청을 보내는데 뒷단에 DB가 죽었으니 time out으로 에러가 발생할때까지 대기하게 되고 이 과정에서 서버에 동시 접속자 수가 늘어나고 요청의 수가 많아지면 서버의 자원을 계속해서 잡아먹으며 무조건 실패하게될 요청을 죽은 DB로 보내게 되므로 서킷 브레이커를 붙여주거나 replication으로 다중화를 해주는게 좋다고 생각했다. 밑에 구..
반응형