본문 바로가기

Java/JAVA

(45)
자바 XML 파싱 라이브러리, XPath를 사용한 예제와 정확하게 element를 선택하는 방법을 알아보자 Java XML parse Library (=XPath) XPath : 자바에서 내장 패키지(javax.xml.xpath)로 제공하는 라이브러리로 XML형식의 웹문서, 파일, 문자열을 파싱하는데 사용한다.요즘 누가 XML쓰나? JSON이랑 비교했을 때 태그같은 군더더기도 많고 파싱 속도, 전송 속도도 딸리는데? (* JSON이 무조건 좋은 것은 아님.)하면서 별로 선호하지 않는 것은 사실이다.하지만 의외로 아직까지 현업에서 사용되는 곳이 많이 있고 XML만의 장점도 있다.따라서 데이터를 XML로 만드는 것과 XML을 파싱해서 데이터를 이용하는 것 둘다 할 줄 알아야하기 때문에 가장 먼저 XML 파싱 라이브러리인 XPath에 대해 알아보았다.OpenAPI로 받은 XML 데이터 파싱하기 OpenAPI로부터 ..
Jedis 튜토리얼! 자바에서 Redis 사용하는 방법 (jedis 라이브러리를 이용한 예제, sample) Jedis - Redis 자바 라이브러리 Jedis는 Redis를 자바에서 쉽게 사용할 수 있게 도와주는 라이브러리다.jedis말고도 Redis 자바 라이브러리가 다양하게 존재하지만 Jedis가 사용이 가장 간단하다고 한다. 따라서 가벼운 마음으로 실습해본다.Maven repository 가보니까 2.9.0 버전(최신버전)의 라이브러리가 제일 많이 사용되고 있기 때문에 이번 실습환경도 똑같이 jedis 2.9.0 버전을 쓴다.Redis가 뭔지 모르면 지난 포스트 http://jeong-pro.tistory.com/139 를 참고하면 좋을 것 같다.[maven dependency]123456 redis.clients jedis 2.9.0Colored by Color Scripter 메이븐을 빌드툴로 사용하..
자바 애플리케이션에서 FTP 파일 전송하는 방법 upload sample (Apache commons-net 라이브러리) 자바로 FTP 통신하기 (파일 업로드) 파일질라, 알FTP(?) 같은 훌륭한 FTP프로그램들이 이미 있지만 자바로 간단하게 파일을 전송하는 프로그램을 찾아보았다.(사실 텔넷으로 명령어 쓸 일이 있어서 telnet 라이브러리를 찾다가 ftp도 흥미가 생겨 한번 사용해보는 것...)* 참고로 apache에서 commons-net 이라고 라이브러리를 제공하는데 여기에 telnet도 있고 NTP, FTP등 다양한 일반적인 프로토콜이 있어서 일반적인 프로토콜 통신 기능을 쉽게 사용할 수 있다.ftp로 통신을 하려면 먼저 ftp서버가 돌고 있어야 파일 전송을 받아준다.virtual machine 을 사용해서 리눅스(우분투)를 설치한 후에 ftp서버를 사용할 수 있게 바꿔줘야 한다. (마지막에 설명함)12345678..
.ini 파일 입출력, ini파일 구조와 ini4j 라이브러리를 이용하는 방법 (feat. java.util.Properties 사용하기) .ini 파일 입출력하기 애플리케이션을 실행시키기 전에 필요한 설정들을 따로 파일(.ini 파일 또는 .conf, .properties파일 등)에서 가져와 실행하는 방법을 많이 쓴다.초기 설정 파일의 포맷은 다양한데 그 중 .ini파일에 대해 알아보고 입출력 해보겠다..ini파일은 일반적인 .properties파일과는 다르다..properties 파일같은 경우에는 보통 단순하게 "key = value" 식으로 작성해서 입출력하는 방식이다.1234ip = 192.168.0.11port = 5000rootpath = C:\Users\jeongproid = jeongpro 구성도 간단하고 입출력하는 방법도 간단하다.반면에 .ini파일은 조금 더 추가되어 Section, Key, Value로 구성되어 있다.12..
자바 쓰레드 (멀티스레드, 스레드 세이프, 스레드 풀) 자바 쓰레드 (JAVA Thread) 쓰레드 : 프로세스(실행중인 프로그램)에서 하나의 실행 흐름.자바는 멀티 쓰레드를 지원하는 언어로 멀티 쓰레드란 말 그대로 하나의 프로그램에서 여러 개의 실행 흐름을 만들고 실행 할 수 있다는 것이다.멀티쓰레드를 사용 하는 이유 : 외부와의 연계같이 대기 시간이 발생했을 때 기다리는 동안 다른 일을 처리할 수 있게 해서 처리 속도를 빠르게 하기 위함이다.* 단, CPU코어 수가 적으면 쓰레드를 그 만큼 만들 수 없기 때문에 드라마틱하게 빨라지지 않고, 처리하는 데이터 양이 적을 때에도 속도가 많이 빨라지지 않기 때문에 쓰레드를 적절한 경우에 사용하는 것이 좋다.쓰레드 만드는 법 1. Runnable 인터페이스를 상속(확장)한 클래스를 만든다. (Runnable 인터페..
JAVA CSV 파일 입출력 Java CSV 파일 입출력 CSV 파일은 Comma Separated Values 이름 그대로 콤마(,)로 구분하는 데이터 저장 형식이다.개인적으로 엑셀파일에 데이터가 있을 때 엑셀의 다른이름으로 저장에서 파일형식을 .csv 로 바꿔서 입출력했다.R프로그래밍을 했을 때도 입출력했던 기억이 있다.1. csv파일 읽기[csv 파일 샘플]엑셀에 적고 .csv파일로 저장한 다음에 메모장을 통해 csv파일을 열어보았을 때 화면이다.그냥 메모장에서 샘플파일을 만들어 저장해도 무관.* 주의할 점은 UTF-8 형식의 유니코드로 저장해야 에러가 없다. (에러나면 메모장에서 UTF-8로 저장하고하면 됨.)12345678910111213141516171819202122232425262728293031323334353637..
자바 파일 입출력 (txt파일 한 문자씩, 한 줄씩, 한 번에 읽기) 자바 파일 입출력원리1. 파일 객체를 만든다.2. 해당 파일을 열어 읽는다. (+읽은 내용 알아서 처리, 어디다 쓰든지 문자열을 바꾸던지 뭐 맘대로 하면 된다.)3. 파일을 닫는다.1) 한 문자씩 읽기1234567891011121314151617181920212223242526package com.tistory.jeongpro; import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException; public class ReadText1 { public static void main(String[] args){ try{ //파일 객체 생성 File file = new File(..
자바 직렬화 (Serialization) 직렬화 객체의 상태 혹은 데이터구조를 기록할 수 있는 포맷으로 변환하는 것.(객체 -> 문자열) 스트림에 전송 (문자열 -> 객체)문자열로 받은 것을 객체로 변환하는 것은 역직렬화.적용 분야 파일저장 : .dat 파일에다가 저장해두고 다시 불러와서 객체로 쓸 때네트워크통신 : 객체를 패킷에 담아 전송할 때데이터베이스 : 데이터베이스에 객체를 문자열로 바꿔서 저장해놓고 다시 꺼내쓸 때웹 : 웹서버에서 브라우저로 구조화된 데이터를 보낼 때 (ex JSON)직렬화 데이터 타입Binary : 바이트의 연속된 형태로 저장JSON : 텍스트 형식으로 널리 다양한 프로그래밍언어에서 읽고 쓸 수 있어 많이 사용됨XML : JSON에 비해 복잡하나 스키마를 적용할 수 있고 무결성 검사 가능사용하기 자바의 Serializ..