본문 바로가기

분류 전체보기

(104)
[kafka] Elastic Stack과 Kafka 실습해보자! - (3)(elk 설치) marrrang.tistory.com/40?category=927204 [kafka] Elastic Stack과 Kafka 실습해보자! - (1)(설치 및 구성) 카프카만 하기엔 아쉬운데? ES도 한번 도전해보자 카프카만 하기엔 시간이 아깝기에 ES도 함께 적용시켜보는 아주아주 간단한 실습을 진행해보려합니다. 우선은 카프카부터 시작해봅시다. 모든 marrrang.tistory.com marrrang.tistory.com/42 [kafka] Elastic Stack과 Kafka 실습해보자! - (2)(produce and consume) https://marrrang.tistory.com/40?category=927204 [kafka] Elastic Stack과 Kafka 실습해보자! - (1)(설치 및 ..
Java에서 외부 프로세스 실행하기 Apache Commons Exec 이용 1) dependency 추가 org.apache.commons commons-exec 1.3 2) 실행 예시 public void execute(String[] command) throws IOException,InterruptedException { DefaultExecutor executor = new DefaultExecutor(); CommandLine cmdLine = CommandLine.parse(command[0]); for (int i=1, n=command.length ; i
[프로그래머스] 3진법 뒤집기(Java) 카테고리 기본 알고리즘 나만의 카테고리 아이디어 짜기 문제 링크 programmers.co.kr/learn/courses/30/lessons/68935 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 요점 진법 변환 방법에 대해 알아야한다. String 뒤집는 방법에 대해 알아야한다. Integer.parseInt(String str, int radix) 참고 지식 [Java] Integer.parseInt(String str, int radix) 풀이 (Java..
Java 1.8 Optional Optional Optional을 사용하지 않을 때는 메서드의 결과값이 null일 경우를 체크하고 분기를 나눠서 처리해야 했습니다. 코드가 지저분해지고 길어졌죠. Optional을 사용하면 조금 더 직관적으로 표현할 수 있습니다. 메서드가 반환할 결과값이 '없음'을 명확하게 표현하고, null을 반환하면 에러를 유발할 가능성이 높은 상황에서 Optional을 반환 타입으로 사용하는 것이 목적이다. 위의 목적에 맞는 사용법을 추구하여 사용해야겠습니다. 1. 기본 사용 예시 //null이 반환된 메소드 String isNullString = testBO.getString(); //기존 null 체크 방식 String retValue = ""; if (isNullString == null) { retValue..
[kafka] Elastic Stack과 Kafka 실습해보자! - (2)(produce and consume) https://marrrang.tistory.com/40?category=927204 [kafka] Elastic Stack과 Kafka 실습해보자! - (1)(설치 및 구성) 카프카만 하기엔 아쉬운데? ES도 한번 도전해보자 카프카만 하기엔 시간이 아깝기에 ES도 함께 적용시켜보는 아주아주 간단한 실습을 진행해보려합니다. 우선은 카프카부터 시작해봅시다. 모든 marrrang.tistory.com 데이터 소통이 있어야 ES도 쓸곳이 생기겠지 앞서서 카프카를 설치했으니 사용을 해보겠습니다. 이번 실습에서는 Spring Boot 프로젝트를 생성하고 간단하게 Kafka로 메세지를 전송해보겠습니다. 1. SpringBoot 프로젝트로 시작 스프링 부트 프로젝트를 생성하고 시작하겠습니다. 이 실습에서 boot 프..
[kafka] 카프카 관련 라이브러리 or API 카프카를 하고 싶은데 너무 귀찮잖아..! 편하게 쓰고 싶다! 실사용에 앞서서 자주 사용하는 라이브러리나 API를 알아봐야겠다고 생각했습니다. 1. Kafka Client Kafka 구조에서 서버와 Application 사이에서 API로서 사용할 수 있는 Kafka Client입니다. Java 외 3rd party library를 제공합니다. (Python, C++ 등) broker 버전과 client 버전의 호환성 확인 필요 Kafka broker 버젼 Java client 호환성 Kafka stream 호환성 Kafka Connect 호환성 0.10.0 0.10.1을 제외 모든 버전 가능 0.10.0 버젼만 가능 0.10.1을 제외 모든 버전 가능 0.10.1 모든 버전 가능 모든 버전 가능 0.10...
[kafka] Elastic Stack과 Kafka 실습해보자! - (1)(설치 및 구성) 카프카만 하기엔 아쉬운데? ES도 한번 도전해보자 카프카만 하기엔 시간이 아깝기에 ES도 함께 적용시켜보는 아주아주 간단한 실습을 진행해보려합니다. 우선은 카프카부터 시작해봅시다. 모든 시작은 설치부터 해야겠죠? 0. 실습 구성 실습은 아래의 준비물들로 진행됩니다. 서버 2대 Java 11 (미리 설치!) Spring Boot 프로젝트 1. 카프카 서버 구성 및 설치 카프카를 하나의 서버에 구성하기에는 실무와 어울리지 않으므로 어떻게든 2개 이상의 서버로 구성해보려 했습니다. 카프카 서버 2대와 zookeeper 서버 1대로 구성을 하려고 합니다. 하지만 서버가 2대밖에 없네요. 그러므로 아래와 같이 구성했습니다. 1번 서버 - kafka broker(1), zookeeper 2번 서버 - kafka b..
[프로그래머스] 두 개 뽑아서 더하기(C++, Java) 카테고리 기본 알고리즘 나만의 카테고리 함수 활용 문제 문제 링크 programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 요점 중복제거에 대한 요령이 필요하다 (Set활용, Sort와 unique활용 등) 참고 지식 [C++] sort(start, end) [C++] unique(start, end) [Java] Set 컨테이너 풀이 (C++) #include #include #in..
Http와 Rest API에 대한 간단한 정리 1. HTTP - HyperText Transfer Protocol - 링크 기반의 데이터 교환 방식을 의미 - 클라이언트와 서버간의 데이터 교환하는 방식이다 1.2 HTTP 동작 방식 - 클라이언트 : 서버에 Request - 서버 : 클라이언트로부터 받은 요청을 처리한 후 Response를 돌려준다 1.3 HTTP 특징 1. 비연결성 (Connectionless) = 클라이언트와 서버가 연결을 한번 맺었다면 응답을 받으면 연결을 끊음 장점 : 클라이언트와 계속 연결을 유지하는 리소스를 줄일 수 있다. 단점 : 연결 및 해제에 대한 오버헤드가 발생, 이에 대한 선택적인 해결책으로 KeepAlive 속성이 존재 * KeepAlive : 이 속성을 On이라면 지정된 시간동안 클라이언트에게 주기적으로 패킷을..
Java 1.8 Default Method Default Method - 자바 1.8부터 도입된 문법으로 인터페이스 내부에 로직을 포함 시킬 수 있는 것이 특징 - 하위호환성을 위해 도입 Interface 라는 기능에 어울리지 않는 Default Method가 Java 1.8에서 추가 되었습니다. 하위호환성을 위한다는 것은 기존의 레거시 코드에 interface 메소드를 추가해야한다면 해당 interface를 상속받는 모든 클래스에서 추가된 메소드의 구현을 해줘야합니다. 하지만 Default Method를 사용하고 수정이 필요한 클래스에서만 메소드 오버라이딩을 해준다면 간편하게 수정할 수 있습니다. interface TestInterface { //기존 메서드들 public void go(); public void get(); default vo..