본문 바로가기

개발공부

모던 자바인 액션 : 스트림 4.1 스트림 소개 : 자바 애플리케이션의 대부분은 컬렉션을 만들고 처리하는 과정을 포함 : 컬렉션으로 데이터를 그룹화 하고 처리할 수 있음 : 많은 요소를 포함하는 커다란 컬렉션의 경우 성능을 높이려면 멀티코어 아키텍처를 활용해서 병렬로 컬렉션의 요소를 처리해야한다. => 어렵고 복잡함 이를 해결하기 위한 : 스트림 등장! 스트림이란? 자바 8 API에 추가된 새로운 기능 스트림은 데이터 컬렉션 반복을 멋지고 간편하게 처리하는 기능 멀티스레드 코드를 구현하지 않아도 데이터를 투명하게 병렬로 처리할 수 있음. p136 기존의 코드와 자바 8비교 소스 코드 (.stream() / .parallelStream()) 스트림과 파라렐 스트림은 (멀티코어 아키텍쳐에서 병렬로 실행할 수 있음) 스트림의 장점 : 람.. 더보기
모던 자바인 액션 1장 자바8 - 스트림 API - 메서드에 코드를 전달하는 기법 - 인터페이스의 디폴트 메서드 자바8 기법은 함수형 프로그래밍에서 위력을 발휘한다. * 병렬성을 활용하는 코드, 간결한 코드를 구현 1.1 멀터코어 병렬성 1.2 코드를 메소드로 전달하는 기법의 강점 1.3 스트림API(병렬형 데이터를 표현하고 이들 데이터를 쉽게 병렬로 처리할 수 있음) 1.4 디폴트 메서드 1.5 JVM을 구성하는 자바 및 기타 언어에서 함수형 프로그래밍이라는 존재가 어떤 영향을 미치는지 1.2.2 스트림 처리 스트림이란 한 번에 한 개씩 만들어지는 연속적인 데이터 항목들의 모임 이론적으로 프로그램은 입력 스트림에서 데이터를 한 개씩 읽어 들이며 마찬가지로 출력 스트림으로 데이터를 한 개 씩 기록함. 자바 8에는 java.ut.. 더보기
[인프런강의] 더 자바, 자바8 : 2강 함수형 인터페이스란? - 함수형 인터페이스는 인터페이스 하나에 하나의 추상메소드가 있는것. 두개 있음 안됨 - @FuctionalInterface 사용(자바에서 제공해주는 어노테이션) 인터페이스에서 정의 할 수 있는 메소드의 형태가 다양해짐 - abstract 생략가능 - 인터페이스 안에서 static 메소드를 정의 가능 - default 메소드를 정의 가능 람다표현식이란? - 코드를 줄일 수 있음 - 함수형 인터페이스의 인스턴트를 만드는 방법으로 쓰일 수 있음 - 메소드 매개변수, 리턴타입, 변수로 만들어 사용할 수 있음 자바에서 함수형 프로그래밍 - 자바에서 first class object로 사용할 수 있음(?) - 고차함수 : 함수가 함수를 매개변수로 받거나, 함수를 리턴할 수 있음 - 순수함수:.. 더보기
Spring Initializr로 Spring Boot 프로젝트 생성하는 방법 Spring Initializr로 Spring Boot 프로젝트 생성하기 IntelliJ Community User 기준 1. Spring Boot Helper를 쓴다. => (유료임) 2. https://start.spring.io/ 를 이용한다. 이 페이지에서 프로젝트 만든 다음에 경로 설정해서 오픈하면 됨! 더보기
[인프런강의] 더 자바, 자바8 1강 * 자바 8 출시일 : 2014년 3월 주요기능 : - 람다 표현식 - 메소드 레퍼런스 - 스트림 API - Optional ... * 자바 최신 버전 및 관련 글 확인하기 https://www.oracle.com/java/technologies/java-se-support-roadmap.html Oracle Java SE Support Roadmap Oracle provides this Oracle Java SE Support Roadmap, to help you understand maintenance and support options and related timelines. If you are looking for the latest free JDK release from Oracle under .. 더보기
2022 상반기 개발일기 상반기라고 하기도 뭐한게 벌써 8월 마지막 주다;ㅎㅎ 드디어 이직을 했다! 꿈꾸던 회사라 감회가 새롭다 몇번이나 서류도 쓰고, 시험까지 봤었던 회사라 더더욱...! 내가 판교에 있을줄이야....... 대학교때 개발자라면 판교입성은 해야지ㅋ 하다가ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ현실의 벽에 판교쪽은 쳐다도 안보겠다며 광화문에 자리를 잡았었는데... 드디어 판교에 있는 직장을 다닌다......😎 급 모든 상황이 바뀌다 보니 입사 전에도 스트레스를 많이 받고 긴장을 했었다 지금? 계속 긴장중ㅠㅠㅠㅠ 부족함이 너무나 느껴지고 나중에 내가 왜 그런 질문을 했지 하고 이불찰 때도 있었음...ㅎㅎㅎ.. 모르는거 계속 공부해야지 해놓고 출퇴근 시간이 길어지다보니 전-혀 보지 못했다. 또 업무를 정말 간단한걸 주시는데도 내.. 더보기
스프링 부트와 AWS로 혼자 구현하는 웹 서비스 (~100p) 스프링부트에서 JPA로 데이터베이스를 다뤄보자! ORM이란 Object Relational Mapping (객체지향매핑) MyBatis는 ORM이 아닌 SQL Mapper. ORM은 객체를 매핑하는 것이고, SQL Mapper는 쿼리를 매핑합니다. 예전 : Spring & MyBatis 최근 동향 : Spring Boot & JPA SQL에 신경써야할 것이 너무 많아짐 관계형데이터베이스는 어떻게 데이터를 저장할지에 초점이 맞춰져있음. 객체지향프로그래밍은 기능과 속성을 한 곳에서 관리하는 기술. 객체를 데이터베이스에 저장하려하니 문제 발생 => 페러다임 불일치. 더이상 SQL에 종속적인 개발을 하지 않기 위해 JPA 사용 JPA는 인터페이스로서 자바 표준명세서. 인터페이스를 사용하기 위해서는 구현체가 필요.. 더보기
메세지큐란? (Message Queue) 메세지 큐란? - 프로세스 또는 프로그램 간에 데이터를 교환할 때 사용하는 통신 방법 중에 하나 - 메세지 지향 미들웨어(Message Oriented Middleware:MOM)를 구현한 시스템을 의미 메세지 지향 미들웨어란? 비동기 메세지를 사용하는 응용프로그램들 사이에서 데이터를 송수신하는것. 간단한 구조에서 쓰이는 건 이상하고, 많은 데이터 통신이 이루어지는 작업이 있을때 쓰인다. 부가적인 서비스를 행할때 던져놓고 되길 기다리며 다른작업을 하기 위함이다.(비동기적) 당장 실행해서 값을 얻어야하는 서비스들 보다는 부가적인 서비스를 제공할때 쓰인다. 예를 들면 1) 이메일보내기 2) 블로그에 이미지를 올려 포스팅할때 사진을 최적화시키는 서비스 3) 대용량 배치 작업 4) 채팅 서비스 다 당장 실행되어.. 더보기