Programming 144

Gradle - Dependency Management Basics

What is dependency management ? 매우 러프하게 디펜던시 관리는 두가지 요소를 가진다. 첫번째는 Gradle은 프로젝트를 빌드하고 실행하기 위해 필요한 것들에 대해서 알아야 한다. 이러한 것을 프로젝트의 incoming 파일들을 dependencies라고 부른다. 두번째로 당신의 프로젝트가 생성한 것들을 업로드할 필요가 있다. 이러한 outgoing 파일들을 publications라고 부른다. 두가지 요소를 더욱 자세히 살펴보자. 대부분의 프로젝트들은 자기 자신만으로 완성할 수 없다. 컴파일하고 테스트하기 위해서 다른 프로젝트들의 파일을 필요로 한다. 예를 들어 내 프로젝트에 Hibernate를 사용하기 위해 내 소스를 컴파일 하기 위해 Hibernate의 jar 파일들이 클래스패..

Programming/Gradle 2015.05.04

Gradle - Java Quick Start

The Java plugin Gradle은 일반적인 목적에 맞는 빌드 툴입니다. 빌드 스크립트를 통해서 깔끔하게 빌드를 수행할 수 있다. 하지만 만약 빌드 스크립트에 코드를 추가하지 않는다면 어떠한 빌드도 수행하지 않을 것이다. 대부분의 자바 프로젝트는 기본적으로 매우 유사하다. : 자바 소스 파일을 컴파일할 필요가 있고, 유닛 테스트를 수행해야 하며 클래스들을 포함한 JAR 파일을 생성해야 한다. 모든 프로젝트를 위해 이러한 코드를 매번 작성한다면 그것은 좋지 않을 것이다. Gradle은 이러한 문제를 plugin을 사용함으로써 해결한다. 플러그인은 Gradle의 extesion이다. 일반적으로 함께 사용하면 유용할 미리정의한 task들을 추가해준다. 자바 플러그인은 그러한 플러그인 중 하나이다. 자바..

Programming/Gradle 2015.05.04

Gradle - 빌드 스크립트 기초

Projects and tasks Gradel에서 두가지 기본 컨셉이 있다 : projects 그리고 tasks 모든 Gradle 빌드는 하나 혹은 그 이상의 프로젝트들로 구성된다. 프로젝트는 Gradle과 함께 동작하는 관련된 것들을 정의한 것을 의미한다. 예를 들면 프로젝트는 라이브러리 jar 파일 혹은 웹 어플리케이션을 대표할 수 있다. 또 다른 프로젝트에 제공할 JAR들을 패키지한 배포판 ZIP일 수도 있다. 프로젝트는 빌드할 무엇을 대표할 필요는 없다. 그것은 수행되어야 할 어떤 것, 즉 스테이징 이나 프로덕션 환경에 어플리케이션을 배포하는 것 일수도 있다. 약간의 논란에 대해서는 지금 걱정할 필요는 없다. Gradle의 컨벤션 빌드는 프로젝트에 적용할 다양한 구현 정의를 지원한다. 각 프로젝트..

Programming/Gradle 2015.05.04

Gradle - 설치하기

Prerequisites JDK나 JRE가 설치되어 있어야 하며, 버젼 6이상이어야 한다. Gradle은 Groovy 라이브러리를 탑재하고 있어서, Groovy를 설치할 필요는 없다. 이미 그루비가 설치되어 있다면 Gradle에 의해 무시된다. Gradle은 path에서 찾아지는 JDK를 이용하며, JAVA_HOME 환경변수를 지정하였다면 해당 JDK를 우선하여 사용한다. Download Gradle 웹 사이트에서 Gradle 배포판을 다운로드 하자. Unpacking Gradle 배포판은 ZIP으로 압축되어 있으며, 다음과 같은 내용을 포함한다.Gradle 바이너리유저 가이드 (HTML and PDF)DSL 참고 가이드API 문서 (Javadoc and Groovydoc)확장가능한 샘플들바이너리 소스 ..

Programming/Gradle 2015.05.04

Hibernate - the first hibernate application

1.1 The first Hibernate Application 이번 예제에서 우리는 특정 이벤트를 저장하는 작은 데이터베이스 어플리케이션을 만들 것이다. 1.1.1. Setup 먼저 개발환경을 세팅할 필요가있다. 우리는 Maven과 같은 빌드 툴을 추천한다. 이 튜토리얼은 웹 어플리케이션으로 작성될 것이므로, src/main/java, src/main/resources 그리고 src/main/webapp 디렉토리를 만들 것이다. 그리고 다음과 같이 pom.xml 파일을 세팅해보자. 4.0.0 org.hibernate.tutorials hibernate-tutorial 1.0.0-SNAPSHOT First Hibernate Tutorial ${artifactId} org.hibernate hibernat..

Docker - 설치

Docker Toolbox를 이용해서 Docker를 인스톨 할 수 있다. Docker Toolbox는 다음과 같은 도커툴들을 포함하고 있다. Docker Machine for running the docker-machine binaryDocker Engine for running the docker binaryDocker Compose for running the docker-compose binaryKitematic, the Docker GUIa shell preconfigured for a Docker command-line environmentOracle VM VirtualBox 도커 데몬은 리눅스 커널 기반이기 때문에 OS X에서는 네이티브하고 도커를 실행할 수 없다. 그러므로 도커 머신을 이용해..

Programming/Docker 2015.04.29

Docker - 개요

What is Docker? 도커는 어플리케이션을 개발, 설치, 실행하기 위한 오픈 플랫폼이다. 도커는 어플리케이션 더빨리 딜리버리하기 위해 설계되었다. 도커를 활용하면 인프라스트럭쳐로부터 어플리케이션을 분리할 수 있고, 인프라스트럭쳐를 어플리케이션처럼 관리할 수 있다. 도커는 코드 설치를 더 빠르게 테스트를 더 빠르게 배포를 더 빠르게 하여 코딩과 코드를 실행하는 사이클을 단축시켜준다. 도커는 경량 컨테이너 가상화 플랫폼과 워크플로우의 결합이다. 그리고 툴로서 어플리케이션을 관리하고 배포하는데 도움을 줄 것이다. 도커의 핵심은 컨테이너내에서 어플리케이션을 격리되고 보안적인 수행하는 방법을 제공하는 것이다. 격리와 보안은 호스트에 많은 컨테이너를 동시에 실행할 수 있다는 것이다. 경량 컨테이너의 핵심은 ..

Programming/Docker 2015.04.29

Docker - 소개

About Docker 언제 어디서나 어떤 어플리케이션이든 개발하고, 탑재하고 실행하자. Docker는 어플리케이션을 개발하고, 탑재하고 실행할 수 있는 개발자와 시스템관리자를 위한 플랫폼이다. 도커는 컴포넌트들로부터 어플리케이션을 빨리 조립하고, 코드 탑재시 충돌을 제거할 수 있게 해준다. 도커는 최대한 빨리 당신의 코드를 프로덕션에 배포하고 테스트할 수 있게 해준다. 도커는 구성은 다음과 같다. Docker Engine - 가볍고 파워풀한 가상화 기술 오픈소스 컨테이너. 어플리케이션 구축하고 컨테이너라이징을 하기 위한 워크플로우를 제공한다.Docker Hub - 당신 어플리케이션 스택을 공유하고, 관리할 수 있는 SaaS Service Why Docker? Faster delivery of your ..

Programming/Docker 2015.04.28

Spring Boot - 데이터베이스 연동

스프링 프레임워크는 SQL 데이터베이스와 연동을 지원한다. JdbcTemplate을 이용한 직접적인 JDBC 접근부터 Hibernate와 같은 OR 매핑까지 완전하게 지원한다. Spring Data는 추가적인 기능을 제공하는데 인터페이스로 부터 직접인 Repository를 생성해 메소드명의 규칙에 따라 쿼리를 생성하기도 한다. 자바에서는 javax.sql.DataSource 인터페이스를 통해 데이터베이스 연결과 연동할 수 있는 표준 메소드를 제공한다. 전통적으로 데이터소스는 데이터베이스 연결을 위해 URL과 부가적인 인증정보를 사용한다. Embedded 데이터베이스 지원 어플리케이션 개발시에는 인메모리 임베디드 데이터베이스가 편리하다. 기본적으로 인메모리 데이터베이스는 퍼시스턴트 스토리지를 제공하지 않는..

Gradle - 소개

소개 Java 기반의 빌드기술에 비약적인 발전을 가져온 빌드 시스템이다. Ant와 같이 매우 유연한 일반적인 목적에 부합한 빌드 툴Maven과 같은 규칙에 의한 빌드 프레임워크로 전환가능하나 구속하지는 않는다.멀티 프로젝트 빌드에 대한 매우 강력한 지원매우 강력한 디펜던시 관리 (Apache Ivy 기반)Maven 또는 Ivy repository에 대한 완벽한 지원Remote 리파지토리나 pom.xml, ivy.xml에 필요없는 transitive 디펜던시 관리 지원Ant task과 빌드가 first class citizens 이다.Groovy 빌드 스크립트빌드를 표현하기 위한 풍부한 도메인 모델 개요 선언적인 빌드와 규칙에 따른 빌드 Gradle의 심장은 Groovy기반의 DSL이다. Gradle는 다..

Programming/Gradle 2015.04.02