본문 바로가기
반응형

전체 글315

[Java(자바)] SimpleDateFormat 사용법, 멀티쓰레드 환경에서의 예제 Java를 이용해서 프로그래밍을 하다보면 날짜 데이터를 다뤄야 할 때가 많다. 날짜를 쉽게 파싱하고 다루기 위해 SimpleDateFormat 클래스를 많이 사용한다. 이번 포스트에서는 SimpleDateFormat 클래스의 사용 예제와 멀티쓰레드에서 고려해야 할 사항에 대해서 다뤄보겠다. SimpleDateFormat은 java.text.DataFormat 이라는 abstract 클래스를 상속받은 concrete 클래스다. 이름에서 알 수 있듯이 간단하게(Simple) 날짜 포맷을 다룰 수 있는 메소드를 제공한다. SimpleDateFormat 간단한 예제 (문자열 to Date 객체) 간단한 예제를 살펴보자. 이 코드를 실행하면 다음 결과를 얻을 수 있다. 1572534000000 코드를 살펴보면 ".. 2019. 1. 16.
git의 어원은? 'git'의 의미 git 을 사용하면서 문득 'git은 무슨의미지?'라는 의문이 들었다. SVN이나 CVS처럼 약자도 아닌 것 같고.. 해답은 git wiki 페이지에서 찾을 수 있었다. (링크 : https://git.wiki.kernel.org/index.php/GitFaq#General_Questions) 깃 프로젝트를 진행한 리눅스의 아버지 리누스 토발즈에 의하면 프로젝트 이름은 자기 자신과 관련된 것으로 짓는다고 한다. 가장 유명한 것이 리눅스(Linux)이며 그 다음이 Git 이다. (직역하자면, "나는 이기적인 새끼라서 내 프로젝트 이름은 나와 관련된 것으로 짓는다. 첫 번째가 리눅스고 두번째가 깃이다." 정도가 되겠다.) git 이란 단어는 영국에서 사용되는 속어로 '고집센 사람', '항상 자기자신이 옳다고.. 2019. 1. 15.
[Java(자바)] json-simple (JSONObject, JSONArray, JSONParser)을 이용한 JSON 객체 다루기 예제 네트워크를 통해 데이터를 주고 받을 때 사람이 읽고 해석하기 쉬운 JSON 포맷을 많이 사용한다. 문자열의 형태로 데이터를 표현하는 JSON을 사용하기 위해 매 프로젝트마다 JSON 파싱과 Serialize 메소드를 매번 구현하는건 좀 귀찮다. Java를 사용하는 사용자라면 json-simple 이라는 라이브러리를 사용해 봤을 것이다. json-simple 라이브러리 세팅 json-simple 라이브러리를 사용하기 위해서는 jar 파일이 필요하다. 메이븐(Maven)을 사용하는 유저라면 다음과 같은 Dependencies를 추가하면 쉽게 사용할 수 있다. 1 2 3 4 5 6 com.googlecode.json-simple json-simple 1.1.1 Colored by Color Scripter c.. 2019. 1. 15.
[Java(자바)] OkHttp Connection Pooling 기능 OkHttp 라이브러리는 "Connection Pooling" 기능을 제공한다. Connection Pooling 기능을 이용하면 동일한 URL로의 커넥션을 풀링하여 다음번 요청때 재사용하게 된다. 커넥션을 새로 맺는 동작은 짧지만 무시할 수 없는 오버헤드가 될 수 있다. OkHttp를 사용할 때 OkHttpClient 객체를 생성했다. OkHttpClient client = new OkHttpClient(); OkHttpClient() 생성자의 내부를 따라가다보면 ConnectionPool() 이라는 객체를 만나게된다. 123public ConnectionPool() { this(5, 5L, TimeUnit.MINUTES);}cs 이 Client 객체를 사용하여 여러 REST API에 요청을 보내면 5.. 2019. 1. 14.
[Java(자바)] OkHttp 사용법 - REST API(HTTP 통신) 예제 OkHttp는 REST API, HTTP 통신을 간편하게 구현할 수 있도록 다양한 기능을 제공해주는 Java 라이브러리다. "Square"라는 회사가 만든 OkHttp 라이브러리는 Retrofit 이라는 라이브러리의 베이스가 된다. OkHttp를 이용하면 간편하게 몇 줄의 코딩으로 REST 호출을 전송, HTTP 기반의 요청, 응답을 처리할 수 있다. OkHttp는 오픈소스로 공개된 소프트웨어이며, 깃허브에 가면 소스코드를 볼 수 있다. (링크 : OkHttp 깃허브 리파지토리) OkHttp 사용하기 - 메이븐(Maven) 설정OkHttp 라이브러리를 사용하기 위해서 메이븐 Dependencies 설정이 필요하다. 12345 com.squareup.okhttp3 okhttp 3.10.0cs 메이븐 이외에.. 2019. 1. 13.
[Kafka] #5 - 아파치 카프카 프로듀서(Apache Kafka Producer Partitioner) 설정 값 카프카 프로듀서를 생성할 때 프로퍼티를 명시한다. 이전에 봤던 "bootstrap.servers"와 "key.serialized", "value.serializer"를 비롯한 설정가능한 다른 프로퍼티들도 많이 있다. 이번 포스트에서는 카프카 프로듀서에 설정가능한 프로퍼티들을 알아보겠다. bootstrap.servers카프카 프로듀서가 최초로 접속할 때 필요한 주소들이다. 모든 카프카 클러스터를 입력할 필요는 없지만 두 개 이상 입력하기를 권장한다. 입력한 브로커 주소 중 하나라도 가용 상태면 프로듀서의 동작에 문제는 없다. key.serializer카프카 메시지의 키(key)를 바이트 배열로 만들어 줄 클래스를 명시한다. org.apache.kafka.common.serialization 인터페이스를 구.. 2019. 1. 10.
[Kafka] #4 - 아파치 카프카 프로듀서(Apache Kafka Producer Partitioner) 파티셔너 카프카 프로듀서에서 생각해봐야 할 프로퍼티 중 하나로 파티셔너(Partitioner)다. 파티셔너는 카프카 프로듀서로 메시지를 전송 할 때 토픽의 어떤 파티션으로 전송해야 할지를 결정해주는 클래스다. 카프카의 생성자에 넘겨주는 인자 중 하나인 Properties 객체에 "partitioner.class"라는 이름의 프로퍼티로 설정하면 된다. 별도로 설정하지 않으면 kafka.producer.DefaultPartitioner 클래스가 할당된다. 아파치 카프카 프로듀서의 파티셔너(Partitioner)파티셔너로 사용할 수 있는 클래스는 org.apache.kafka.client.producer.Partitioner 인터페이스를 구현해야 한다. Partitioner 인터페이스는 다음과 같다. public in.. 2019. 1. 9.
scoop 설치하기 - 커맨드라인 윈도우 프로그램 설치 소프트웨어 (Command-line installer for Windows) 개발을 하다보면 이런저런 소프트웨어를 설치해야할 때가 있다. 우분투 같은 리눅스에서는 apt-get install 을 사용하고, 맥에서는 brew install 같은 명령을 수행하면 쉽게 로컬 머신에 소프트웨어 패키지를 설치할 수 있다. 반면 윈도우의 경우에는 홈페이지에 들어가서 설치 EXE 파일을 다운로드하여 설치를 진행했다. Next 버튼을 눌러가며 설정을 진행하는 과정이 여간 귀찮은 것이 아니었다. 그러다가 윈도우에서 Gradle 을 설치해야할 일이 생겨서 찾아보다가 Scoop 이라는 소프트웨어를 알게되었다. Scoop은 brew, apt-get 같이 명령하나로 쉽게 소프트웨어를 설치할 수 있게 기능을 제공해준다. scoop.sh 홈페이지 홈페이지 이름도 "유닉스"스럽다. Scoop의 간단한 데모 .. 2019. 1. 8.
[Kafka] #3 - 아파치 카프카 프로듀서 (Apache Kafka Producer) 실행과 간단한 설정 예제(Configuration Example) 카프카에 대한 간단한 개념과 카프카 서버 구동 방법에 대해서 간략하게 알아봤다. [Kafka] #1 - 아파치 카프카(Apache Kafka)란 무엇인가? [Kafka] #2 - 아파치 카프카(Apache Kafka) 설치 및 실행, Quickstart 이전 글에서는 콘솔에서 메시지를 전송하고 읽을 수 있는 콘솔 프로듀서와 콘솔 컨슈머를 사용해봤다. 이제 자바(Java)를 이용해서 카프카에 메시지를 전송할 수 있는 프로듀서를 구현해 볼 차례다. 카프카는 자바를 위한 프로듀서 클라이언트 라이브러리를 지원한다. 카프카 라이브러리를 사용하기 위한 메이븐(Maven) Dependency는 다음과 같다. org.apache.kafka kafka-clients 2.0.0 메이븐 pom.xml 파일에 추가하고 관련 .. 2019. 1. 7.
반응형