[Java] com.fasterxml.jackson.databind.ObjectMapper(JSON <-> Java Object)
·
TIL/Java
1. Jackson에 대한 설명과 라이브러리 추가 1) Jackson이란? - Java Object를 JSON으로 변환하거나 JSON을 Java Object로 변환하는데 사용할 수 있는 Java 라이브러리 2) Jackson의 특징 (1) Stream API : 스트림 형식으로 데이터를 분석하고 생성하기 때문에 성능이 좋음 (2) Tree Model : XML의 DOM처럼 Node 형태로 데이터를 다룰 수 있기 때문에 유연성이 좋음 (3) Data Binding : POJO 기반의 Java Object들을 JSON으로 변환시킬 수 있음 3) 라이브러리 추가하기 Jackson을 사용하려면 아래 링크를 참고하여 각자의 빌드 도구에 맞게 라이브러리를 추가해주자. jackson-databind 라이브러리는 ja..
[Java] 문자열을 XML 파일로 생성하기 + DOM 객체를 파일로 저장하는 방법(DomSource, TransformerFactory, Transformer)
·
TIL/Java
DOM 객체를 수정, 추가, 삭제하는 것은 모두 메모리상에서 이루어진다. 이렇게 메모리상에서 변경된 내용을 영구 보존하기 위해서는 다시 파일 형태의 XML 문서로 저장해야 한다. XSLT 변환기를 사용하여 파일로 다시 저장하는 방법을 알아보자~ 노드를 생성하기 위한 메서드(Document 객체의 팩토리 메서드) 메소드 설명 Element createElement(String tagName) Element 객체를 생성 Attr createAttribute(String name) Att 객체를 생성 Text createTextNode(data) Text 객체를 생성 Comment createComment(data) Comment 객체를 생성 CDATASection createCDATASection(data)..
[Java] StringUtils 클래스
·
TIL/Java
StringUtils란? - 자바의 String 클래스가 제공하는 문자열 관련 기능을 강화한 클래스 - org.apache.commons.lang3.StringUtils StringUtils의 특징 - StringUtils 클래스만으로 거의 대부분의 문자열 처리를 수행 - 파라미터 값으로 null을 주더라도 절대 NullPointException을 발생시키지 않음 > null이 입력되는 경우, 메서드에 따라 알맞은 결과를 리턴 API https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html StringUtils (Apache Commons Lang 3.12.0 API) Splits a St..
[SIST] Java_days29
·
TIL/Java
1-1. 직렬화(Serialization) - 객체를 통째로 파일 쓰기(저장) / 읽기, 객체를 통째로 네트워크를 통해 송신(쓰기) / 수신(읽기) 이것을 가능하게 해주는 것이 '직렬화' 이다. - 객체 단위로 입출력을 하기 위해서 직렬화를 한다. 데이터 전송 --> 직렬화 --> 역직렬화 - 직렬화 ? 객체 -> 데이터 스트림 변환하는 작업 - 역직렬화 ? 데이터 스트림 -> 객체 변환하는 작업 직렬화하는 예제1) 한 멤버의 정보를 파일로 저장 후 읽기 [Member 클래스] class Member { // field private String name; private int age; private boolean gender; private long type; // constructor public M..
[SIST] Java_days28
·
TIL/Java
1. 입출력(I/O) - File 클래스를 활용한 예제 예제1) 실행 파일(.exe) 복사하기 예제2) 지정된 파일을 지정된 크기로 잘라서 여러 개의 파일로 저장하기 2. 바이트기반 스트림 - 바이트 배열을 다루는 메모리 스트림 - 메모리에 스트림을 만드면 읽기, 쓰기 성능이 빨라진다 1) InputStream과 OutputStream - 모든 바이트기반의 스트림의 조상 [InputStream 메서드] [OutputStream 메서드] 2) ByteArrayInputStream과 ByteArrayOutputStream - 메모리, 즉 바이트배열에 데이터를 입출력 하는데 사용되는 스트림 - 주로 다른 곳에 입출력하기 전에 데이터를 임시로 바이트배열에 담아서 변환 등의 작업에 사용 예제) 3) FileInp..
[SIST] Java_days27
·
TIL/Java
1. [제네릭 메서드] (days26 이어서) - 메서드의 선언부에 제네릭 타입이 선언된 메서드(ex. Collections.sort() ) - 선언 위치 : 리턴 자료형 앞에 선언 [접근지정자] [기타제어자] 리턴자료형 메서드명([매개변수...]){ [return 리턴값]; } - 제네릭 타입이 다른 것만으로는 오버로딩이 성립되지 않는다. class Juicer{ static Juice makeJuice(FruitBox box) { return new Juice(); } // 에러메시지 : Erasure of method makeJuice(FruitBox) is the same as another method in type Juicer // 제네릭 타입이 다른 것만으로는 오버로딩이 성립되지 않는다. s..
[SIST] Java_days26
·
TIL/Java
1. JCF - HashMap과 Hashtable 컬렉션 클래스 [HashMap과 Hashtable 설명] 1) Map 인터페이스를 구현한 컬렉션 클래스 2) Entry == Key + Value 한쌍 -> 하나의 데이터로 저장 3) Hashtable 보다 HashMap 사용을 권장, HashMap이 새로나온 버전 -> 사용방법은 동일 4) Hash : 해싱을 사용하기 때문에 '많은 양의 데이터를 검색할 때' 성능이 뛰어나다. 5) Vector(동기화 처리 O) 와 ArrayList(동기화 처리 X) 관계와 비슷하다. 6) Key 중복허용 X, Value 중복허용 O [해싱과 해시함수] - 해싱 : 해시함수를 이용해서 데이터를 해시테이블에 저장하고 검색하는 기법 - 해시함수 : 데이터가 저장되어 있는 곳..
[SIST] Java_days25
·
TIL/Java
워밍업 문제1) ArrayList list 객체에 임의의 정수( 1~100 ) 까지의 정수 5개를 입력하고 내림차순으로 정렬해서 출력하세요. Comparator 인터페이스를 구현한 클래스 2가지) 워밍업 문제2) java.time 패키지 클래스 사용해서 오늘 현재 설문 가능한 여부 출력 1. JCF - LinkedList 컬렉션 클래스 - 불연속적 구조 - 순서유지O, 중복허용O - 비순차적으로 삭제/추가 작업할 때 성능이 우수 - [ ] -> 하나하나를 요소(Element) == 노드(node) [ArrayList와 LinkedList의 차이점] - 읽는 작업 : ArrayList 빠름 - 순차적으로 추가/삭제하는 경우 ArrayList가 더 빠르다 - 중간 데이터를 추가/삭제하는 경우 LinkedLi..
[SIST] Java_days24
·
TIL/Java
1. [Period] / Duration 클래스 - 같은 인터페이스(TemporalAmount)를 상속 받음 - Period 클래스 - 날짜와 날짜 사이의 간격 차이 == 날짜 - 날짜 - Duration 클래스 - 시간과 시간 사이의 간격 차이 == 시간 - 시간 [메서드] - between() 메서드(static 메서드) : 두 날짜 or 시간의 차이를 구하는 메서드 - until() 메서드(인스턴스 메서드) : 두 날짜 or 시간의 차이를 구하는 메서드(Duration 반환 X) - of() 메서드 : 설정하는 메서드 - with() 메서드 : 수정하는 메서드 - 사칙연산 / 비교연산 / 기타 메서드 - 다른 단위로 변환하는 메서드 1-1. Period 클래스 - Period 클래스 : 날짜와 날짜..