분류 전체보기 (308) 썸네일형 리스트형 6장 스트림으로 데이터 수집 ❗ 본 포스팅은 타이핑 공부법으로 작성하였습니다. 그렇기에 부족한 점이 존재할 수 있습니다.6.1 컬렉터란 무엇인가?일종의 reduce이라고 생각을 해도 될듯 하다.컬렉터의 요소를 다루는 메소드6.2 리듀싱과 요약기존의 filter, reduce메소드로 스트림 연산이 가능하지만 리듀싱을 이용하면 더 간단하게 데이터를 요약할 수 있다.메서드 참조로 가능하며 미리 만들어둔 연산들이 존재한다.(joining()같은 메소드들)6.3 그룹화stream의 요소를 특정 기준으로 그룹으로 나누는 것을 의미groupingBy이며 첫번째 인자로는 무엇을 기준으로 나눌지를 의미하고 두번째 인자는 나눈 요소들을 어떻게 할지을 의미한다.ex)첫 번째 요소는 isVegeterian, 두 번째 요소는 toList(), toSet(.. 5장 스트림 활용 ❗ 본 포스팅은 타이핑 공부법으로 작성하였습니다. 그렇기에 부족한 점이 존재할 수 있습니다.5.1 필터링Predicate 람다식으로 stream에 filter를 할 수 있다.distinct()로 중복된 요소를 없앨 수 있다.5.2 스트림 슬라이싱stream은 takeWhile(), dropWhile(), limit()로 개수를 제한할 수 있다.5.3 매핑steam에 map(Predicate)를 통해 각 요소에 Predicate 를 적용할 수 있다.map의 반환 타입은 Stream(T)형식을 가진다. 이때 Stream의 각 요소가 List 와 같은 형식에서 map() 메서드를 거치면 반환값의 타입은 Stream >의 형식을 가진다. 그러나 flatMap(Predicate )은 Stream의 요소가 List.. 4장 스트림 소개 ❗ 본 포스팅은 타이핑 공부법으로 작성하였습니다. 그렇기에 부족한 점이 존재할 수 있습니다.4.1 스트림이란 무엇인가?스트림은 데이터에 대한 질의를 통해 연산할 수 있으며 내부반복과 게으른 연산을 지원하는, 컬렉션과는 다른 방법이다.4.2 스트림 시작하기스트림은 '데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소'이다.데이터 처리 연산은 데이터 베이스의 질의와 비슷하게 구현을 고려하지 않고 질의을 하여 데이터 처리 연산을 하는 것을 의미한다.연속된 요소는 컬렉션 처럼 연속된 요소를 가지고 있는 것을 의미한다.소스는 컬렉션이나 데이터 I/O와 같이 연속된 데이터를 의미한다.파이프 라이닝을 지원하고 내부반복을 수행한다.스트림은 매우 비싼 연산이다.4.3 스트림과 컬렉션스트림은 데이터를 딱 한번만 순.. 3장 람다 표현식 ❗ 본 포스팅은 타이핑 공부법으로 작성하였습니다. 그렇기에 부족한 점이 존재할 수 있습니다.3.1 람다란 무엇인가익명 함수를 단순화한 것람다함수에는 파라미터, 바디, 리턴값, 발생할 수 있는 예외 리스트를 가질 수 있다.3.2 어디에, 어떻게 람다를 사용할까함수형 인터페이스를 이용해서 람다를 이용할 수 있다.함수형 인터페이스는 추상메소드 하나만을 가지는 인터페이스를 말한다.함수 디스크럽터는 추상메소드의 시그니처를 의미한다.람다(함수)를 함수형 인터페이스의 인스턴스라고 생각하면 된다.3.3 람다 활용: 실행 어라운드 패턴함수형 인터페이스를 선언하고(혹은 미리 만들어져 있는 Predicate, Function, Supplier, Consumer와 같은 함수형 인터페이스를 이용해도 좋다.) 람다를 인자로 받고.. 6부 세부사항 30 데이터베이스는 세부사항이다.아키텍처 관점에서 볼 떄 데이터베이스는 엔티티가 아니다. 즉, 데이터베이스는 세부사항이라서 아키텍처의 구성요소 수준으로 끌어올릴 수 없다. 관계형 데이터베이스많은 데이터 접근 프레임워크가 테이블과 행이 객체 형태로 시스템 여기저기에서 돌아다니게 허용하는데, 아키텍처적으로 잘못된 설계다.디스크가 없다면 어떻게 될까?데이터를 파일이나 테이블 형태로 그대로 두는 경우는 거의 없다.하지만 성능은?성능은 시스템의 전반적인 아키텍처와는 아무런 관련이 없다.32장 프레임 워크은 세부사항이다.프레임워크 제작자물론 당신의 문제는 프레임워크가 풀려는 문제와 꽤 많이 겹칠 것이다.겹치는 영역이 크면 클수록 프레임워크는 실제로 더 유용해진다.해결책프레임워크를 사용할 수는 있다. 다만 프레임워크.. 4. batch메서드 컨트리뷰션 (실패) 목차개요사전지식문제점제안레퍼런스결과📣 개요작년 6월 즈음, 우연히 학우가 컨트리뷰션에 도전을 하였고 성공하였다는 발표를 듣게 되었습니다. 당시 저는 '그렇구나...' 정도의 감상이 전부였으나 올해 초 학교생활도 마무리되는 시점에서 이때 들었는 컨트리뷰션을 한 번쯤 해보고 싶다는 생각을 하게 되었습니다. 당시 저는 쿼리 최적화에 관심이 있었기에 제가 자주 사용하는 data jpa의 컨트리뷰션에 도전하게 되었습니다. 📣 사전 지식개요에서 이미 언급하였다시피 저는 ORM의 쿼리 최적화에 관심이 많았습니다. 제가 자주 사용하는 Data JPA의 deleteAll은 엔티티를 하나씩 삭제를 하는 문제가 존재했습니다. 그리고 이러한 문제를 data jpa에서는 'batch'키워드가 들어간 메서드로 지원해주고 있.. Spring Security Session, Redis직렬화 문제, 근데 이제 Seriallizable 인터페이스를 곁들인 ❗ 해당 포스팅은 사진과 내용이 많습니다! 상황현재 진행하고 있는 프로젝트에서 Spring Security를 도입하였습니다. 인증및 인가 방식은 session방식을 선택하였고 session저장소는 In memory가 아닌 Redis에 저장하고자 하였습니다. In memory방식을 통해 구현을 하였을때는 정상적으로 동작하였지만 @EnableRedisHttpSession을 통해 Redis에 session을 저장하려하니 다음과 같은 에러가 발생하였습니다. 원인(추측)인프런를 통해 Spring Security를 공부하였고 해당 강의에서는 @EnableRedisHttpSession을 통해 손쉽게 session 저장소를 변경하는 것으로 보아 저만 이러한 문제가 발생하는 듯 합니다... 하지만 에러가 터진다고 안.. 5부 아키텍처 15장 아키텍처란?소프트웨어 아키텍트라면 코드에서 탈피하여 고수준의 문제에 집중해야 한다는 거짓말에 절대로 속아 넘어가서는 안 된다.소프트웨어 시스템의 아키텍처란 시스템을 구축했던 사람들이 만들어낸 시스템의 형태다. 그 모양은 시스템을 컴포넌트로 분할하는 방법, 분할된 컴포넌트를 배치하는 방법, 컴포넌트가 서로 의사소통하는 방식에 따라 정해진다.아키텍처의 주된 목적은 시스템의 생명주기를 지원하는 것이다.아키텍처의 궁극적인 목표는 시스템의 수명과 관련된 비용은 최소화하고, 프로그래머의 생산성은 최대화하는 데 있다.개발시스템 아키텍처는 개발팀이 시스템을 쉽게 개발할 수 있도록 뒷받침해야만 한다.팀별 단일 컴포넌트 아키텍처가 시스템을 배포, 운영, 유지보수하는데 최적일 가능성은 거의 없다.배포소프트웨어 시스템.. 4부 컴포넌트 원칙 12장 컴포넌트컴포넌트는 시스템의 구성 요소로 배포할 수 있는 가장 작은 단위다. 13장 컴포넌트 응집도이 장에서는 컴포넌트 응집도와 관련된 세 가지 원칙을 논의한다.REP: 재사용/릴리스 등가 원칙CCP: 공통 폐쇄 원칙CRP: 공통 재사용 원칙REP: 재사용/릴리스 등가 원칙이 원칙을 소프트웨어 설꼐와 아키텍처 관점에서 보면 단일 컴포넌트는 응집성 높은 클래스와 모듈들로 구성되어야 함을 뜻하다. CCP: 공통 폐쇄 원칙동일한 이유로 동일한 시점에 변경되는 클래스르 같은 컴포넌트로 묶어라. 서로 다른 시점에 다른 이유로 변경되는 클래스는 다른 컴포넌트로 분리하라.이 원칙은 단일 책임 원칙을 컴포넌트 관점에서 다시 쓴 것이다.단일 컴포넌트는 변경의 이유가 여러 개 있어서는 안 된다고 말한다.SRP와의 유.. 3부 설계원칙 들어가며코드 수준부다는 조금 상위에서 적용되며 모듈과 컴포넌트 내부에서 사용되는 소프트웨어 구조를 정의하는 데 도움을 준다.3부에서는 각 원칙을 더 면밀하게 살펴본다. 아래는 이들 원칙의 개략적인 설명이다.SRP: 단일 책임 원칙OCP: 개방-폐쇄 원칙LSP: 리스코프 치환 원칙ISP: 인터페이스 분리 원칙DIP: 의존성 역전 원칙 7장 SRP: 단일 책임 원칙이제 SRP의 최종 버전은 아래와 같다. "하나의 모듈은 하나의, 오직 하나의 액터에 대해서만 책임져야 한다."'응집된'이라는 단어가 SRP를 암시한다. 단일 액터를 책임지는 코드를 함께 묶어주는 힘이 바로 응집성이다.징후1: 우발적 중복이러한 문제는 서로 다른 액터가 의존하는 코드를 너무 가까이 배치했기 때문에 발생한다. SRP는 서로 다른 액터.. 이전 1 2 3 4 5 6 ··· 31 다음