개요 Java, Kotlin은 매우 강력한 정적 타입 언어이지만 때때로 요구사항에 따라 동적으로 변화되는 객체를 다뤄야하는 상황에 직면할 때가 있다. Map, List, JSON 문자열의 String 타입이 가장 대표적인 예인데, 이 데이터들을 읽어들이고 추가, 수정하는 것은 여간 번거로운 일이 아닐 수 없다. Jayway JsonPath를 이용하면 Path 기반으로 굉장히 우아하고 손쉬운 방법으로 데이터를 제어할 수 있다. build.gradle.kts 프로젝트 루트의 build.gradle.kts 파일에 아래 내용을 추가한다. dependencies { implementation("com.jayway.jsonpath:json-path:2.5.0") } JsonPath 객체 초기화 원본 소스로부터 Js..
개요 이번 글에서는 PDFBox 라이브러리를 이용하여 TTF(트루타입), OTF(오픈타입) 글꼴 파일의 메타 정보를 확인하는 방법을 소개하고자 한다. build.gradle.kts 프로젝트 루트의 build.gradle.kts 파일에 아래 내용을 추가한다. dependencies { implementation("org.apache.pdfbox:pdfbox:2.0.23") } 글꼴 파일 인식 글꼴 파일을 인식하는 방법은 아래처럼 매우 간단하다. import org.apache.fontbox.ttf.OTFParser import org.apache.fontbox.ttf.OpenTypeFont import org.apache.fontbox.ttf.TTFParser import org.apache.fontbox..
Origin이란? Origin은 아래와 같이 protocol, host, port 3개 부분으로 구성된다. http://www.jsonobject.com:8080/ # protocol: http # host: www.jsonobject.com # port: 8080 2개의 Origin을 비교시 3개 부분 중 단 1개만 일치하지 않아도 서로 다른 Origin이 된다. 즉, http, https의 차이, 80, 8080의 차이만 나도 서로 다른 Origin이 된다. 브라우저에서 현재 페이지의 Origin 알아내기 브라우저에서 현재 페이지의 정확한 Origin을 알고자 한다면 JavaScript에서 아래 명령을 실행한다. # IE를 제외한 모든 브라우저 window.location.origin # IE win..
개요 Google Drive는 구글의 클라우드 파일 저장소 상품이며, Google Sheets는 클라우드 스프레드시트 상품이다. 이번 글에서는 Google Drive/Google Sheets의 특정 계정에 업로드된 파일/시트를 UI 없이 완전히 프로그램으로 다운로드/제어할 수 있는 방법을 소개하고자 한다. 구현 시나리오 개발자는 구글이 제공하는 웹 콘솔에서 서비스 계정(Service Account)를 생성한다. 생성 후 .json 파일을 다운로드하여 프로젝트에 사용하기 위해 추가한다. 사용자는 자신의 구글 드라이브에서 애플리케이션에 공유할 파일에 위 개발자가 생성한 서비스 계정을 공유 계정을 추가한다. (공유할 계정 이름은 앞서 다운로드한 .json 파일의 client_email 값이다.) 개발자는 Go..
- Total
- Today
- Yesterday
- bootstrap
- maven
- jsp
- 자전거
- Tomcat
- spring
- Spring Boot
- DynamoDB
- 평속
- kotlin
- jstl
- MySQL
- Docker
- java
- 알뜰폰
- 태그를 입력해 주세요.
- jpa
- 로드 바이크
- node.js
- CentOS
- chrome
- graylog
- JavaScript
- 구동계
- 로드바이크
- Kendo UI
- JHipster
- Eclipse
- Kendo UI Web Grid
- Spring MVC 3
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |