본문 바로가기

프로그래밍

(73)
java8 변경사항 - 스트림API 최종연산 스트림의 최종연산 스트림 API에서 중간 연산으로 변환된 스트림은 아래의 최종연산을 통해 요소를 소모하여 결과를 표시합니다. 지연(lazy) 되어있던 모든 중개 연산들이 최종 연산싯에 모두 수행됩니다. 최종연산 이후 모든 요소를 소모하고 난 후에는 해당 스트림을 사용할 수 없게 됩니다. 1. 요소 출력 forEach(): 스트림의 각 요소를 소모하여 명시된 동작을 수행한다. 반환타입은 void여서 보통 출력하는 용도로 사용한다. Stream stream = Stream.of("A", "B", "C", "D"); stream.forEach(System.out::println); //ABCD 2. 요소 소모 reduce(): 첫번째와 두번째 요소로 연산을 수행 후 그결과와 세번째 요소로 연산을 수행하는식으로..
Java8 변경사항 - 스트림API 중간연산 스트림의 중간연산 스트림 API에의해 생성된 스트림은 아래의 중간연산을 통해 다른 스트림으로 변환됩니다. 스트림 필터링 스트림 변환 스트림 제한 스트림 정렬 스트림 연산 결과 확인 1. 스트림 필터링 스트림에서 중복된 요소를 제거하거나 조건에 맞지 않는 요소를 걸러낸다. filter(): 매개변수로 predicate가 필요한데 조건에 맞는 요소들로 새로운 스트림을 반환하며 필요에 따라 여러번 사용 가능하다. IntStream stream = IntStream.range(1,11); //1 ~ 10 stream.filter(i -> i % 2 == 0).forEach(System.out::println); // 2 4 6 8 10 짝수 출력 distinct(): 스트림에서 중복된 요소 제거 IntStrea..
Java8 변경사항 - 스트림API 특징과 생성 스트림이란? 자바 8에서 추가된 스트림 API에 대해 알아봅시다. 기존에 자바에서는 수많은 데이터를 다룰 떄 컬렉션이나 배열을 사용하였고 이 데이터에 접근하기 위해 for문과 Iterator를 사용하였습니다. 그러나 이렇게 작성된 코드는 길고 가독성도 떨어지며 재사용의 거의 불가능합니다. 이러한 문제를 해결하기 위해 자바8 부터 스트림 API가 도입되었습니다. 스트림은 데이터를 추상화하여 하루며 배열이나 컬렉션 뿐만 아니라 파일에 저장된 데이터도 모두 같은 방법으로 다룰수 있도록 해줍니다. 스트림 API의 특징 스트림은 작업을 내부 반복으로 처리한다. for(String str : list){ System.out.println(str); } //use stream stream.forEach(System...
Java8 변경사항 - 람다 표현식 람다표현식이란? 자바 8에서 추가된 람다표현식에 대해 알아봅시다. 람다표현식(Lambda expression)은 간단히 말해 메소드를 하나의 식(expression)으로 표현한 것으로 메서드의 이름과 반환값이 없어지므로 익명함수(anonymous function) 라고도 부릅니다. 자바에서는 자바 8 버전부터 람다식을 사용하여 함수형 프로그래밍을 할 수 있게 되었습니다. //java7 int max(int a, int b){ return a > b ? a : b; } //java 8 (a, b) -> a > b ? a : b; 이러한 람다식은 메소드의 매개변수로 전달될 수도 있고, 메서드의 결과로 반환될 수도 있습니다. 따라서 람다식을 사용하면 기존의 불필요한 코드를 줄여 코드의 가독성을 높여줍니다. 람..
docker를 활용한 CI 구축 팀 내에서 아직 한 땀 한 땀 공들여서 배포를 하고 있기에... 이에 불편함을 느끼고 있었는데 이와 관련해서 자료를 찾아보다 CI / CD에 대해 알게 되었습니다. 이번에는 젠킨스를 통한 빌드 연습을 할 예정이며 이를 바탕으로 업무에서도 적용할 수 있도록 해보겠습니다. 잘못된 내용이 있을 수 있으니 잘못됐거나 더 좋은 방법이 있으시다면 댓글 부탁드립니다. 프로젝트 생성 테스트를 위해 스프링 부트 프로젝트를 생성하고 이를 Githhub에 push 하였습니다. IDE나 빌드도구는 원하시는 것을 사용하시면 되겠습니다. 도커를 통해 젠킨스 컨테이너 설치 다음 링크에서 Docker for mac을 설치 후 Kitematic을 실행합니다. Kitematic이 설치되어 있지 않으면 아래와 같은 화면이 나오는데 her..
[Github] 크롬 플러그인 Octotree Github에서 파일들을 이동할 때 디렉토리를 직접 하나씩 눌러 들어가야 하는 번거로움이 있다. 이를 보완해주는? 크롬 플러그인이 존재하는데 바로 Octotree이다. 아래 이미지에서처럼 Repository에 들어갈 때마다 왼쪽에 IDE에서 프로젝트 탭을 연 것처럼 보여줘서 한 번에 다른 경로의 파일로 이동할 때 도움이 된다.
IntelliJ에서 Find Action 기능 사용시 터미널이 켜질때 이번에 Intellij를 처음 사용하면서 Find Action기능(Shift-Command-A)을 유용하게 사용하고 있는데 아래 사진과 같이 터미널이 계속 실행되었습니다. 이 문제는 macOS에서 바로가기가 변경되어서 발생하는 문제라고 합니다. (https://intellij-support.jetbrains.com/hc/en-us/community/posts/360003367639-2019-1-Find-Action-shortcut-opens-terminal-securityuploadd-) 해결법은 Mac 환경설정에서 바로가기 기능을 off 하시면 됩니다. 시스템-환경설정 - 키보드 - 단축키 - 서비스 - 터미널에서 man 페이지 인덱스 검색 체크박스 해제
Apache 서버 2.2.x 에서 2.4.x로 변경시 변경점 서버 변경을 하면서 아파치도 상위 버전을 설치하였는데 로그에 AH01630: client denied by server configuration: 에러가 발생하고 있었습니다. 원인은 아파치 2.4버전부터 설정 파일의 구문이 변경되여서 발생한 현상입니다. -기존 2.2버전 설정 -변경된 2.4버전 설정 Order allow, deny Allow from all을 Require all granted 로 변경해주면 됩니다. Require all denied: 모든 요청 거부 Require all granted: 모든요청 허용 Require host example.org: example.org 도메인의 모든 호스트에 액세스 허용 더 자세한 내용은 아래 2.2에서 2.4로 업그레이드하는 공식문서가 있으니 참조하시..