본문 바로가기
반응형

전체 글318

[Java] System.currentTimeMillis() 값(유닉스 시간, Unix Time)을 Date 포맷으로 변경하기 자바에서 현재 시간 정보는 System.currentTimeMillis() 메소드를 이용해서 가져올 수 있다. System.currentTimeMillis() 메소드에서 얻어지는 값은 long 타입으로 세계 표준시(UTC)로 1970년 1월 1일 00시 00분 00초를 기점으로 현재까지 몇 밀리초(ms)가 흘렀는지를 기록한 값이다. 프로그래밍 세계에서는 흔히 '유닉스 시간(Unix Time)' 혹은 '파직스 시간(POSIX Time)'이라고 부른다. 자바를 이용해서 유닉스 타임을 얻어오는 코드는 다음과 같다. long time = System.currentTimeMillis(); 유닉스 타임을 이용해서 특정 코드의 수행 시간도 측정할 수 있다. long start = System.currentTimeMi.. 2019. 5. 18.
[Gson 사용법] 자바 객체와 JSON을 다루는 쉬운 방법, 몇 가지 예제 Java 클래스를 다른 곳으로 전송할 때 사용할 수 있는 직렬화(Serialize) 포맷으로 JSON이나 XML 같은 텍스트 포맷을 사용하는 경우가 많다. 문자열을 사용하는 만큼 데이터를 처리하는데 상당히 높은 수준의 유연성을 제공하기 때문이다. 자바 객체를 JSON으로 바꾸는 작업은 Gson 이라는 패키지를 이용하면 쉽게 할 수 있다. Gson은 구글에서 만든 자바 오브젝트의 직렬화/역직렬화 라이브러리다. 내부적으로 리플렉션(Reflection)을 사용하기 때문에 사용자가 귀찮게 이런저런 옵션을 넣어주지 않아도 되어 편하다. Maven 설정 Gson을 사용하기 위한 Maven 설정은 다음과 같다. com.google.code.gson gson 2.8.0 Java 객체를 JSON으로 직렬화(Seriali.. 2019. 5. 17.
[Java] org.w3c.dom.Node 클래스를 Document로 변환하기 XML의 특정 서브 트리의 Node 객체를 이용해서 해당 객체가 Root인 새로운 Document 를 만들고 싶을 때가 있다. 예를 들어 다음과 같은 XML Document가 있다고 하자. value 1 value 2 value 3 XPath 등을 이용해서 에 해당하는 Node 객체를 얻어왔을 때 노드의 서브 트리를 Root로 하는 새로운 Document를 얻어오고 싶을 경우가 있다. value 3 org.w3c.dom.Document 인터페이스에는 importNode() 라는 메소드가 있으며, 이 메소드를 이용해서 새로운 Document를 만들 수 있다. org.w3c.dom.Node 클래스를 Root로 하는 새로운 org.w3c.dom.Document를 만드는 예제 코드는 다음과 같다. public .. 2019. 5. 16.
[아이패드 팁] 아이폰, 아이패드에서 첫 글자 자동 대문자 해제하기 아이패드를 이용해서 메모를 하는데 영어로 메모를 하는 경우 첫 글자가 대문자로 항상 변경되는 불편함이 있었다. 일반적인 작문에서 첫 글자를 대문자로 자동 변경해주는 기능이 편리할 수도 있다. 하지만 프로그래밍 소스코드 예제를 작성하는데 첫 글자의 자동 대문자 변경 기능은 여간 신경쓰이는게 아니었다. 메모 애플리케이션으로 에버노트를 사용하고 있는데, 처음에는 에버노트의 기능인줄 알고 설정 여기저기를 뒤져봤지만 관련 기능은 없었다. 구글링을 해보니 iOS에서 지원하고 있는 기능으로 아이패드의 설정을 바꿔야 한다고 했다. 자동 대문자 기능을 해제하기 위해서는 '설정' -> '일반' -> '키보드' 탭으로 들어간다. '키보드' 탭 화면의 아래쪽에 '자동 대문자' 항목이 있다. 이 항목을 꺼주자. 여기서 끈 기능.. 2019. 5. 16.
자바 빈(Java Bean)이란 무엇인가? (자바 빈 예제) 자바 프로그래밍 관련 문서를 찾아보다가 '자바 빈즈(Java Beans)'라는 단어를 듣게 되었다. 자바빈즈(Java Beans)는 자바(Java)로 작성된 소프트웨어 컴포넌트를 일컫는 말로 데이터 표현을 목적으로하는 자바 클래스다. 자바 빈즈 클래스는 'Java Beans Convention'을 지켜야 하며, Java Beans Convention은 다음과 같다. 클래스는 인자(Argument)가 없는 기본 생성자(Default constructor)를 갖는다 클래스의 멤버 변수는 프로퍼티(Properties)라고 하며 private 접근 제한자를 가져야 한다. 클래스의 프로퍼티들은 Getter/Setter를 통해 접근할 수 있어야 한다 Getter의 이름은 get{프로퍼티 이름} 이며, Setter의.. 2019. 5. 15.
[Java] json-simple을 이용한 JSON 데이터 다루기 예제 (JSONParser, JSONObject, JSONArray 클래스를 이용한 예제) 자바에서 JSON 데이터를 다룰 일이 많다. 특히 REST API를 통해 데이터를 가져오는 경우 JSON 포맷을 사용하는 경우가 많기 때문에 JSON을 다루는 예제를 알아두면 좋다. 자바에서 JSON 포맷을 다루는 방법은 다양하지만 가장 간단한 방법인 'json-simple' 패키지를 이용하는 방법을 정리해보겠다. Maven 설정 json-simple 패키지를 사용하기 위해서 다음과 같은 메이븐(Maven) Dependency 설정이 필요하다. com.googlecode.json-simple json-simple 1.1 버전 정보는 적당한 걸 넣어주면 된다. JSON 파싱해보기 JSON으로 표현된 데이터를 다루기 위해서 json-simple 패키지에서 다음 클래스들을 사용하면 된다. JSONParser .. 2019. 5. 13.
자바(Java)의 박싱과 언박싱(Boxing & Unboxing), 오토박싱과 오토 언박싱(Auto Boxing & Auto Unboxing) 그리고 래퍼 클래스(Wrapper Class) 자바는 int, long, boolean 같은 변수의 기본 자료형(Primitive Type)을 제공한다. 하지만 이런 기본자료형은 컬렉션(Collection)이나 지네릭(Generic)에서 제한적으로 사용가능하다. 따라서 자바는 각 기본 자료형에 대응되는 래퍼 클래스(Wrapper Class) 제공하고 있다. 자바 변수의 기본형에 대응되는 래퍼 클래스(Wrapper Class)는 다음과 같다. 기본 자료형(Primitive Type) 래퍼 클래스(Wrapper Class) boolean Boolean short Short int Integer long Long float Float double Double char Character byte Byte 변수의 기본 자료형 이름의 첫 번째 글자만 대문자로 .. 2019. 4. 19.
에지 트리거(Edge Trigger, ET)와 레벨 트리거(Level Trigger, LT)의 차이점 시스템에서 특정 이벤트를 감지하기 위해 트리거(Trigger)라는 개념을 사용한다. 트리거는 기본적으로 전기전자에서 사용하는 개념이지만 시스템 프로그래밍에서도 비슷한 개념을 사용한다. (논리회로 수업 시간에 들었던 것 같은데 정확히 기억나지 않는다) 트리거는 크게 ‘레벨 트리거(Level Trigger)’와 ‘에지 트리거(Edge Trigger)’로 나뉠 수 있다. 예를 들기 위해 0과 1을 가질 수 있는 상태변수를 생각해보자. 이 상태변수는 조건에 따라 0이 되기도 하고 1이되기도 한다. 이를 그래프로 그려보면 위와 같을 것이다. 레벨 트리거 레벨 트리거는 상태 변수의 현재 상황을 기준으로 동작한다. 상태 1인 경우를 체크하기 위한 레벨 트리거는 체크 당시 상태가 1이면 이벤트를 발생시킨다. 반면 상태.. 2019. 4. 18.
Tmux 업데이트 이후 “protocol version mismatch (client 7, server 6)” 에러 필자는 터미널 멀티플렉싱 소프트웨어로 'tmux'를 사용하고 있다. 최근 개발 서버에 설치되어 있는 tmux 버전을 업데이트 한 후 다음과 같은 에러가 발생하였다. $ tmux Protocol version mismatch (client 7, server 6) 프로토콜 버전이 안 맞는다는 에러가 터미널 화면에 출력된다. 기존에 연결된 tmux 세션이 있는 경우에 발생할 수 있는 에러로 tmux 세션을 정리하면 새로운 버전으로 세션이 만들어진다. 열려있는 tmux 세션을 확인하기 위해서 ps 명령어로 tmux 데몬을 확인하자. $ ps -ef | grep tmux 혹은 pgrep을 이용해서 접속한 아이디에 해당하는 pid를 얻어 낼 수 있다. $ pgrep -u -l tmux 9967 tmux: serve.. 2019. 4. 17.
반응형