본문 바로가기
반응형

분류 전체보기318

[Java(자바)] Java Unsupported major.minor version 52.0 에러 Java로 프로그램을 작성해서 다른 플랫폼으로 배포하는 경우 자주 발생하는 에러로 Java Unsupported major.minor version 52.0 에러가 있다. 톰 캣(Tomcat)이나 하둡 맵리듀스(MapReduce) 처럼 Java 프로그램을 작성하고 Jar 파일로 묶어서 전송후 실행하는 경우에 간혹 볼 수 있는 에러다. 요약하면 Java 버전이 맞지 않아서 생기는 문제다. Jar 파일을 생성한 빌드 환경에서의 JDK 버전이 실제 실행하는 환경에서의 JDK 버전보다 높아서 생기는 문제다. Java SE 8 (JDK 1.8)에서 빌드한 Jar 파일을 Java SE 7 (JDK 1.7)이 설치되어 있는 환경에서 실행하려고 하면 위와 같은 문제가 발생한다. 대체로 개발환경은 최신으로 맞춰서 개발하.. 2019. 1. 19.
git-flow 설치 및 사용법 어느 정도 규모가 있는 소프트웨어를 개발하다보면 소스코드의 버전 관리 시스템(VCS; Version Control System)을 사용하게 된다. 비교적 오래된 프로젝트의 경우 SVN(Subversion)이나 CVS(Concurrent Versions System), 심지어 파일 서버에 소스코드를 보관하는 형태로 코드를 관리하는 경우도 있다. 하지만 최근에는 DVCS(Distributed Concurrent Versions System) 인 git으로 어느정도 통일되어 가는 듯하다. SVN과 CVS에 비해 git이 갖는 큰 장점중 하나는 효율적인 브랜치(Branch) 관리다. 쉽게 브랜치를 생성하여 기능을 추가하거나 버그를 수정할 수 있고, 만들어진 브랜치를 손쉽게 병합(Merge) 할 수 있다. 특히 .. 2019. 1. 18.
간략하게 보는 tmux 설치와 명령어 사용법 터미널 환경에서 개발하는 팀에서 일을 하다보면 "Terminal multiplexer"라는 종류의 소프트웨어를 자유롭게 사용하는 사람들을 보게 된다. 화려하게 창을 분할하고 윈도우를 넘나들면서 명령을 치는 것을 보면 넋이 나가게 된다. "tmux"라는 소프트웨어는 이런 "Terminal multiplexer" 소프트웨어 중 하나다. 잘 사용하면 고수의 향기를 내뿜기 좋은 소프트웨어이며 생산성도 매우 높아지기 때문에 터미널에서 개발하는 개발자들이라면 한번쯤은 사용해보길 권한다. tmux 설치누군가 고수의 향기는 맥북에서 나온다고 했다. 맥에서는 brew를 이용해 간편하게 설치할 수 있다. $ brew install tmux 우분투 리눅스에서는 $ sudo apt-get install tmux 명령을 통해서.. 2019. 1. 17.
[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.
반응형