전체 글
-
챕터[4] 스트림모던자바인액션 2020. 10. 21. 15:56
서론 자바 8에서 추가된 스트림은 무엇인지 컬렉션과 무엇이 다른지 등 스트림의 대해서 설명 스트림이란? Java 8 API에 새로 추가된 기능으로 스트림을 이용하면 선언형(데이터를 처리하는 임시 구현 코드 대신 질의로 표현)으로 컬렉션 데이터를 처리할 수 있다. 또한 멀티스레드 코드를 구현하지 않아도 데이터를 투명하게 병렬로 처리할 수 있다. 특징으로는 선언형(간결 및 가독성 증가), 조립가능(유연성 증가), 병렬화(성능 증가) 가 존재한다. (스트림은 계속해서 챕터에 나오므로 순차적으로 배워가면 된다.) 스트림 == 데이터 처리 연산을 지원하도록 소스에서 추출된 연속된 요소 요소의 정의 연속된 요소 컬렉션과 동일하게 스트림은 특정 요소 형식으로 이루어진 연속된 값 집합의 인터페이스를 제공한다. 컬렉션은..
-
챕터[3] 람다모던자바인액션 2020. 10. 21. 15:55
서론 람다가 무엇인지 람다는 어떤 조건에 사용할 수 있는지 등을 설명하는 챕터이다. 람다란? 람다란 (파라미터) -> {바디} 로 구현되어있으며, 메서드를 전달할 수 있는 익명 함수를 단순화한 것 어디에 람다를 사용하는지? 1. 함수형 인터페이스 함수형 인터페이스를 인수로 받는 메서드에만 람다 표현식을 사용할 수 있는지는 추후 20, 21 챕터에 설명예정 함수 디스크립터 : 함수형 인터페이스의 추상 메서드 시그니처는 람다 표현식의 시그니처를 가리킨다. 람다 표현식의 시그니처를 서술하는 메서드를 함수 디스크립터라고 부른다. 실행 어라운드 패턴 자원 처리에 사용하는 순환 패턴은 자원을 열고, 처리한 다음에, 자원을 닫는 순서로 이루어진다. 설정과 정리 과정 은 대부분 비슷하다. 즉 실제 자원을 처리하는 코드..
-
챕터[2] 동작 파라미터화모던자바인액션 2020. 10. 21. 15:55
제너릭이란 클래스에서 사용할 타입을 클래스 외부에서 선택하여 사용한다. 제네릭 타입은 참조형 타입만 가능하다 (기본형 사용 불가능) ->Wrapper Class 사용 동작 파라미터화란? 자주 바뀌는 요구사항에 효과적으로 대응할 수 있는 방법으로 아직은 어떻게 실행할 것인지 결정화지 않은 코드 블럭을 의미한다. 동작 파라미터화 변화는 요구사항에 대응하기 위하여 기존에는 메서드를 제작하여 구현하였다. 아래와 같이 2가지의 일을 하는 2개의 메서드를 구현하여 판단했다. -> 사과의 색이 빨간색인 사과만 거르는 필터링 메서드 -> 사과의 색이 초록색인 사과만 거르는 필터링 메서드 매 요구사항마다 메서드가 하나씩 생길 수 있는 반면 동작 파라미터화를 이용하여 참 또는 거짓만 반환하는 함수인 프리디케이트를 정의해보..
-
메서드 메모리관리Java 2020. 6. 17. 14:50
다른 클래스의 메서드를 사용을 해야할때 new로 생성 후 사용하는게 올바를지? 아니면 static으로 메서드를 구현 후 사용하는게 올바를지??? 자주 사용을 하는지 여부로 결정한다. 자주 라는 단어의 정의는 동작을 하면서 자신이 원하는 메서드가 실행이 얼마나 되는지로 구분한다. 하나의 동작을 하면서 메서드가 무조건 실행될 경우 1:1 임으로 1000번 작업중 1000번이 호출을 시도하기에 static 으로 구성하는게 올바르다. 반면 하나의 동작을 하면서 메서드가 실행될 수도 안될 수도 있으며 평균 실행될 확률이 낮다면 new로 새로운 객체를 생성 후 사용하는게 올바르다. 하지만 실행될 확률이 높고 낮음은 본인이 판단하여 사용한다. ( 10번중 3번 이상 사용되면 static으로 사용한다 )
-
Kafka 알아보기Dev 2020. 5. 14. 17:52
대표적으로 메시징 시스템은 Kafka, RabbitMQ, Active MQ가 존재한다고 하고 그중 Kafka를 사용하기 위해 정리했습니다. 간단한 장점 메세징 큐의 일종말 그대로 분산형 스트리밍 플랫폼이다. 대용량의 실시간 로그 처리에 특화되어 설계된 메시징 시스템, 기존 범용 메시징 시스템대비 TPS가 매우 우수 1. Kafka Kafka가 어떻게 구성되어 있는지 아래 그림을 통해 먼저 보도록 하겠습니다. Zookeeper ( Apache Zookeeper ) 본래 Zookeeper의 용도는 클러스터 최신 설정정보 관리 및 동기화, 리더 채택 등 클러스터의 서버들이 공유하는 데이터를 관리 하기 위하여 사용된다. ( Borker에 분산 처리된 메시지 큐의 정보를 관리 ) 클러스터를 관리하는 Zookeep..
-
Elasticsearch 설치Dev 2020. 5. 14. 16:32
1. 설치 https://www.elastic.co/downloads/elasticsearch 자신의 OS 기준으로 Elasticsearch 파일을 설치 후 압축을 풀어주면 된다. 실행 방법은 bin/Elasticsearch.bat 파일을 실행시켜주면 되고, Elasticsearch가 실행되면 9200, 9300 포트가 오픈이 되어 앞에서부터 HTTP, TCP로 바인딩 된다. [http://localhost:9200] 에 접속하게 되면 자신의 클러스터 및 버전 등 정보를 확인할 수 있다. 그 밖의 클러스터, 노드 등의 이름 및 정보를 바꾸기 위해서는 config/elasticsearch.yml 파일을 수정하여 변경할 수 있다. 2. Elasticsearch(2) ( 1링크 ) Elasticsearch 에..
-
Elasticsearch 알아보자Dev 2020. 5. 13. 17:58
1. Elasticsearch란? Elasticsearch는 Apache Lucene 기반의 Java OpenSource 분산 검색 엔진이다. Elasticsearch를 통해 Lucene 라이브러리를 단독으로 사용할 수 있게 되었으며, 방대한 양의 데이터를 신속, 실시간( NRT, Near Real Time ) 으로 저장, 검색, 분석할 수 있다. Elasticsearch는 검색을 위해 단독으로 사용되기도 하며, ELK( Elasticsearch / Logstatsh/ Kinana ) 스택으로 사용되기도 한다. Logstash: 다양한 소스(DB, csv파일 등)의 로그 또는 트랜잭션 데이터를 수집, 집계, 파싱하여 Elasticsearch로 전달한다. Elasticsearch: Logstash로 받은 ..
-
jMeter 사용하기 (with MQTT)Java 2020. 5. 12. 14:35
1. jMeter? jMeter는 부하 테스트, 성능 평가를 위해 설계된 자바 기반의 옾느소스 데스크톱 어플리케이션이다. jMeter을 이용하면 Open API 서버의 대한 기능 점검(1), 수용량 측정(2) 및 부하 테스트(3)가 가능하다. 기능 점검 기능 점검은 Open API의 사용자 정보, 게임 정보, 채널 정보 및 컨텐츠 정보 서비스에 포함도니 각각의 API에 대한 정상 동작 유무를 테스트하는 테스트 케이스를 작성한다. 기능 테스트의 목적은 품질 확보이다. 수용량 측정 수용량 측정은 사용자의 서비스 사용 시나리오를 예측하여 시나리오 기반의 테스트 케이스를 작성하고, 이를 이용해 서비스 환경을 시물레이션 한다 . 다수의 가상 사용자가 접속하여 소규모 서버에서 수용 가능한 동시 사용자 수를 산출한다..