SlideShare a Scribd company logo
1 of 47
Download to read offline
엔터프라이즈 빌드 자동화를 위한 Gradle
https://www.facebook.com/thecodinglive
Who am i
BUILD
compile
assembling
Test
Delivery
소프트웨어 대안 모델들
• 적응형 모델
• 결정 테이블
• 의존성 네트워크
• 생성 규칙 시스템
• 상태머신
모든 자동화 빌드도구의 근간이 되는 모델
의존성 네트워크
자동화
예약 자동화 유발 자동화
지시 자동화
지시 자동화가 받쳐주면 나머지 적용은 따라온다.
지시 자동화
Gradle Task, Ant Task , Maven Phase
패키징
누구나
같은 결과
를 얻는다
DEPLOYMENT PIPELINE FOR CI
Gradle Spock GEB
빌드자동화도구 BDD 테스트 도구 UI 통합 자동화 테스트
도구
DEPLOYMENT PIPELINE FOR CI
Gradle Spock GEB
빌드자동화도구 BDD 테스트 도구 UI 통합 자동화 테스트
도구
GRADLE
• GROOVY로 만든 자동화 빌드 도구
• 손 쉬운 멀티프로젝트 구성
• 데몬으로 사용 가능
• 다양한 플러그인 지원 및 추가 가능
• 레퍼 제공
• 프로그래밍 친화적 설정방식
GRADLE 실행 원리
Project 인터페이스
Task 인터페이스
Build.gradle
Task 이름,
클로저
Task 인터페이스
의존 관계 설정 가능
Task 실행
@TaskAction
GRADLE LIFE CYCLE
초기화 설정 실행
GRADLE 초기화
Settings.gradle 파일 정보를 보고
프로젝트가 서로 의존관계를 갖는
멀티프로젝트 인지
싱글 프로젝트 인지 판별
build.gradle
파일 로드
커플
싱글
GRADLE 설정
• 프로젝트 인스턴스 생성
• 각 프로젝트에 설정 적용
GRADLE 실행
BUILD.GRADLE
TaskName
TaskName
TaskName
RUN
GRADLE BULID파일 예시 PLUGIN
GRADLE BULID파일 예시 REPOSITORY
GRADLE BULID파일 예시 TASK
GRADLE MULTI PROJECT
rootProject.name = 'springtobemulti'
include 'HibernateSub','WebAppSub'
springtobemulti
HibernateSub
WebAppSub
공통설정 적용가능
BDD를 위한 테스트 도구
SPOCK
단위테스트 시 고민
특히 내가 만든 소스가 아닐 때
어디서부터 테스트를 시작해야 되나?
테스트를 할까 말까?
한번에 얼만큼 테스트해야 되나?
테스트 이름을 어떻게 정하지?
테스트가 실패하는 이유는?
BDD
HTTPS://TWITTER.COM/TASTAPOD
HTTP://DANNORTH.NET/INTRODUCING-BDD/
요구사항에 대한 정의, 명세 (SPECIFICATION)
GIVEN ( 어떤 값이 할당되었을 때)
WHEN( 이벤트가 발생했을 때)
THEN ( 결과는 ~ 여야 한다.)
의도를 표현하기 위해서 TEST대신 BEHAVIOUR
SPOCK
• PETER NIEDERWIESER가 GROOVY로 만든 BDD 프레임워크
SPOCK 설정
• COMPILE "ORG.CODEHAUS.GROOVY:GROOVY-ALL:2.4.1"
• TESTCOMPILE "ORG.SPOCKFRAMEWORK:SPOCK-CORE:1.0-GROOVY-2.4"
SPOCK작성예제 형식
CLASS ABC EXTENDS SPECIFICATION
테스트이름{
GIVEN:
WHEN:
THEN:
}
SPOCK 사용 예시
SPOCK 스타일로
SPRING CONTROLLER TEST
GEB
http://www.gebish.org/
Selenium + groovy Script
웹페이지 자동화 테스트 도구
웹드라이버를 사용해서 브라우저를 로드 후에
셀레니움처럼 레코딩하지 않고
스크립트를 사용해서 Jquery문법으로 페이지 요소
들을 참조해서 테스트 할 수 있다.
GEB 의존성 설정
GEB 기본 스크립트 예시
import geb.Browser
Browser.drive(){
go("http://www.hanbit.co.kr/")
$("input", name:'keyword').value('java')
$("input", class:'bInp').click()
}
GEB SPOCK스타일
import geb.spock.GebReportingSpec
import spock.lang.Stepwise
@Stepwise
class TeamAddSpecReport extends GebReportingSpec{
def "[Report]Team 추가"(){
given : "team add page"
to TeamAddPage
when: "팀 추가 버튼 클릭"
inputName ="arizona"
inputRating = "3"
submitButton.click()
then:"team list page"
to TeamlistPage
title == "List of teams"
}
}
JENKINS
http://www.devopscloud.com/01.10.ci.html
JENKINS
• JOB 단위로 관리할 수 있는 CI도구
• 빌드 자체를 직접 수행하지 않고 잡을 통해서 관리할 수 있습니다.
• 웹 UI 대시보드 화면을 가지고 있어서 사용이 편리합니다.
JENKINS + 지시 자동화
• 서두에 언급했던 지시 자동화 개념을 적용해서
젠킨스 UI 가 아닌 GRADLE TASK를 활용한 JOB제어
GRADLE JENKINS PLUGIN
https://plugins.gradle.org/
buildscript{
repositories{ jcenter() }
dependencies{
classpath 'com.terrafolio:gradle-jenkins-plugin:1.+'
}
}
apply plugin: "com.terrafolio.jenkins"
GRADLE JENKINS PLUGIN 사용 예시
젠킨스 서버 연동 설정
젠킨스 JOB 설정
GRADLE JENKINS JOB TASK 실행
GRADLE JENKINS JOB 실행 결과
실행 주체는 누구인가?
• 생성되는 것들 JAR, WAR
• 실행되는 것들 JVM, WEB APPLICATION CONTAINER
JAR를 실행하려면 CLASSPATH에 추가되어야 하고,
WAR를 실행하려면 WEB APPLICATION CONTAINER안에 배포되어서
CONTEXT가 생성되어야 함 배포도 체계적으로
빌드도구를 사용해서 처리하자
CARGO
Web Application Container
AppApp
App App
원격 서버에 배포를 위한 도구
SCP또는 FTP를 사용하지 않고 Gradle Cargo플러그인
을 사용해서 일관성 확보
GRADLE CARGO 설정
BUILDSCRIPT{
REPOSITORIES{
JCENTER()
}
DEPENDENCIES{
CLASSPATH 'COM.BMUSCHKO:GRADLE-CARGO-PLUGIN:2.1'
}
}
APPLY PLUGIN: 'COM.BMUSCHKO.CARGO'
GRADLE CARGO 배포
cargo{
containerId ="tomcat8x"
port = 8080
deployable{
context = "teammgmt"
}
remote{
port=8080
username='grayjin'
password='pwd'
hostname='192.168.59.103'
}
}
필요한 건 오직 톰캣 뿐
FROM tomcat:8.0.21-jre8
MAINTAINER "grayjin <darkandark90@gmail.com>"
ADD settings.xml /usr/local/tomcat/conf/
ADD tomcat-users.xml /usr/local/tomcat/conf/
테스트 용 원격 톰캣 서버 인스턴스 생성을 위한
Docker 사용
운영체제 이미지 전체를 사용할 필요 없고
톰캣만 별도로 사용할 수 있어서
VM보다 빠르게 환경을 구축할 수 있고
운영체제 이미지 파일을 복사할 필요가 없음
DOCKER
http://slides.com/vincentlee/docker#/6
DOCKER 구성요소
Images
Registry
Container
http://slides.com/vincentlee/docker#/14
DOCKER 실행
• DOCKER BUILD –T GRAYJIN/TOMCAT
• DOCKER RUN –P 8080:8080 GRAYJIN/TOMCAT
DOCKER 파일 build
• TO OTHER TIME
• TO OTHER PLACE
• TO OTHER US

More Related Content

What's hot

sap Abap File Save (Cl Gos Manager)
sap Abap File Save (Cl Gos Manager)sap Abap File Save (Cl Gos Manager)
sap Abap File Save (Cl Gos Manager)jung_se_hun
 
Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.장현 한
 
Gradle 사용하기
Gradle 사용하기Gradle 사용하기
Gradle 사용하기jiseob kim
 
AWS Amplify & Cognito: 백엔드를 재발명하지 않는 방법들
AWS Amplify & Cognito: 백엔드를 재발명하지 않는 방법들AWS Amplify & Cognito: 백엔드를 재발명하지 않는 방법들
AWS Amplify & Cognito: 백엔드를 재발명하지 않는 방법들LanarkSeung
 
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)LanarkSeung
 
JavaInstall&Basic
JavaInstall&BasicJavaInstall&Basic
JavaInstall&Basic용호 최
 
Chrome 68 updates
Chrome 68 updatesChrome 68 updates
Chrome 68 updatesSangHun Lee
 
gradle로 안드로이드 앱 빌드하기
gradle로 안드로이드 앱 빌드하기gradle로 안드로이드 앱 빌드하기
gradle로 안드로이드 앱 빌드하기Manjong Han
 
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java ProjectJi-Woong Choi
 
Angular js quick start
Angular js quick startAngular js quick start
Angular js quick start정기 김
 
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)CONNECT FOUNDATION
 
원모먼트 Vue js 적용기
원모먼트 Vue js 적용기원모먼트 Vue js 적용기
원모먼트 Vue js 적용기우현 김
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In ProductionMooYeol Lee
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyondJae Sung Park
 
make hybrid app.
make hybrid app.make hybrid app.
make hybrid app.jiseob kim
 
실시간으로 안드로이드 프론트엔드 작업하기
실시간으로 안드로이드 프론트엔드 작업하기실시간으로 안드로이드 프론트엔드 작업하기
실시간으로 안드로이드 프론트엔드 작업하기Haze Lee
 

What's hot (19)

Maven
MavenMaven
Maven
 
sap Abap File Save (Cl Gos Manager)
sap Abap File Save (Cl Gos Manager)sap Abap File Save (Cl Gos Manager)
sap Abap File Save (Cl Gos Manager)
 
Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.
 
Gradle 사용하기
Gradle 사용하기Gradle 사용하기
Gradle 사용하기
 
AWS Amplify & Cognito: 백엔드를 재발명하지 않는 방법들
AWS Amplify & Cognito: 백엔드를 재발명하지 않는 방법들AWS Amplify & Cognito: 백엔드를 재발명하지 않는 방법들
AWS Amplify & Cognito: 백엔드를 재발명하지 않는 방법들
 
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
 
Deview2013 track1 session7
Deview2013 track1 session7Deview2013 track1 session7
Deview2013 track1 session7
 
JavaInstall&Basic
JavaInstall&BasicJavaInstall&Basic
JavaInstall&Basic
 
Chrome 68 updates
Chrome 68 updatesChrome 68 updates
Chrome 68 updates
 
gradle로 안드로이드 앱 빌드하기
gradle로 안드로이드 앱 빌드하기gradle로 안드로이드 앱 빌드하기
gradle로 안드로이드 앱 빌드하기
 
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
[오픈소스컨설팅]Gradle Basic - How to use Gradle in Java Project
 
Angular js quick start
Angular js quick startAngular js quick start
Angular js quick start
 
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
[부스트캠퍼세미나]육진혁_(대충 도커 쓰자는 이야기)
 
원모먼트 Vue js 적용기
원모먼트 Vue js 적용기원모먼트 Vue js 적용기
원모먼트 Vue js 적용기
 
Flux 예제 분석 2
Flux 예제 분석 2Flux 예제 분석 2
Flux 예제 분석 2
 
AngularJS In Production
AngularJS In ProductionAngularJS In Production
AngularJS In Production
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 
make hybrid app.
make hybrid app.make hybrid app.
make hybrid app.
 
실시간으로 안드로이드 프론트엔드 작업하기
실시간으로 안드로이드 프론트엔드 작업하기실시간으로 안드로이드 프론트엔드 작업하기
실시간으로 안드로이드 프론트엔드 작업하기
 

Similar to Enterprise Java web Deployment Strategy

Okjsp 13주년 발표자료: 생존 프로그래밍 Test
Okjsp 13주년 발표자료: 생존 프로그래밍 TestOkjsp 13주년 발표자료: 생존 프로그래밍 Test
Okjsp 13주년 발표자료: 생존 프로그래밍 Testbeom kyun choi
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debuggingJongwon Han
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재Hankyo
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기Chris Ohk
 
오픈 스펙을 대상으로 한 테스트설계사례
오픈 스펙을 대상으로 한 테스트설계사례오픈 스펙을 대상으로 한 테스트설계사례
오픈 스펙을 대상으로 한 테스트설계사례SangIn Choung
 
Android Native Module 안정적으로 개발하기
Android Native Module 안정적으로 개발하기Android Native Module 안정적으로 개발하기
Android Native Module 안정적으로 개발하기hanbeom Park
 
Spring boot-summary(part2-part3)
Spring boot-summary(part2-part3)Spring boot-summary(part2-part3)
Spring boot-summary(part2-part3)Jaesup Kwak
 
[AWS Dev Day] 실습워크샵 | Amplify 와 AI 서비스를 활용한 서버리스 기반 소셜 안드로이드 앱 만들기
 [AWS Dev Day] 실습워크샵 | Amplify 와 AI 서비스를 활용한 서버리스 기반 소셜 안드로이드 앱 만들기 [AWS Dev Day] 실습워크샵 | Amplify 와 AI 서비스를 활용한 서버리스 기반 소셜 안드로이드 앱 만들기
[AWS Dev Day] 실습워크샵 | Amplify 와 AI 서비스를 활용한 서버리스 기반 소셜 안드로이드 앱 만들기Amazon Web Services Korea
 
Backend Master | 3.1.1 Build - JS build tools
Backend Master | 3.1.1 Build - JS build toolsBackend Master | 3.1.1 Build - JS build tools
Backend Master | 3.1.1 Build - JS build toolsKyunghun Jeon
 
practical perf testing - d2startup
practical perf testing - d2startuppractical perf testing - d2startup
practical perf testing - d2startupJunHo Yoon
 
웹-워크플로우 베스트프랙티스
웹-워크플로우 베스트프랙티스웹-워크플로우 베스트프랙티스
웹-워크플로우 베스트프랙티스Tai Hoon KIM
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초Kwangyoun Jung
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례if kakao
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기현철 조
 
엔지니어링관점에서 테스트 개선방안 질의 응답
엔지니어링관점에서 테스트 개선방안 질의 응답엔지니어링관점에서 테스트 개선방안 질의 응답
엔지니어링관점에서 테스트 개선방안 질의 응답SangIn Choung
 
구글앱엔진 스터디
구글앱엔진 스터디구글앱엔진 스터디
구글앱엔진 스터디소라 정
 
[강연] 학생에서 현업 개발자로의 성공적인 변신을 위하여
[강연] 학생에서 현업 개발자로의 성공적인 변신을 위하여[강연] 학생에서 현업 개발자로의 성공적인 변신을 위하여
[강연] 학생에서 현업 개발자로의 성공적인 변신을 위하여Kwangsung Ha
 
코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개태준 문
 
S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션codercay
 

Similar to Enterprise Java web Deployment Strategy (20)

Okjsp 13주년 발표자료: 생존 프로그래밍 Test
Okjsp 13주년 발표자료: 생존 프로그래밍 TestOkjsp 13주년 발표자료: 생존 프로그래밍 Test
Okjsp 13주년 발표자료: 생존 프로그래밍 Test
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
오픈 스펙을 대상으로 한 테스트설계사례
오픈 스펙을 대상으로 한 테스트설계사례오픈 스펙을 대상으로 한 테스트설계사례
오픈 스펙을 대상으로 한 테스트설계사례
 
Android Native Module 안정적으로 개발하기
Android Native Module 안정적으로 개발하기Android Native Module 안정적으로 개발하기
Android Native Module 안정적으로 개발하기
 
Spring boot-summary(part2-part3)
Spring boot-summary(part2-part3)Spring boot-summary(part2-part3)
Spring boot-summary(part2-part3)
 
[AWS Dev Day] 실습워크샵 | Amplify 와 AI 서비스를 활용한 서버리스 기반 소셜 안드로이드 앱 만들기
 [AWS Dev Day] 실습워크샵 | Amplify 와 AI 서비스를 활용한 서버리스 기반 소셜 안드로이드 앱 만들기 [AWS Dev Day] 실습워크샵 | Amplify 와 AI 서비스를 활용한 서버리스 기반 소셜 안드로이드 앱 만들기
[AWS Dev Day] 실습워크샵 | Amplify 와 AI 서비스를 활용한 서버리스 기반 소셜 안드로이드 앱 만들기
 
Cygnus unit test
Cygnus unit testCygnus unit test
Cygnus unit test
 
Backend Master | 3.1.1 Build - JS build tools
Backend Master | 3.1.1 Build - JS build toolsBackend Master | 3.1.1 Build - JS build tools
Backend Master | 3.1.1 Build - JS build tools
 
practical perf testing - d2startup
practical perf testing - d2startuppractical perf testing - d2startup
practical perf testing - d2startup
 
웹-워크플로우 베스트프랙티스
웹-워크플로우 베스트프랙티스웹-워크플로우 베스트프랙티스
웹-워크플로우 베스트프랙티스
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
 
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
글로벌 게임 플랫폼에서 무정지, 무점검 서버 개발과 운영 사례
 
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
 
엔지니어링관점에서 테스트 개선방안 질의 응답
엔지니어링관점에서 테스트 개선방안 질의 응답엔지니어링관점에서 테스트 개선방안 질의 응답
엔지니어링관점에서 테스트 개선방안 질의 응답
 
구글앱엔진 스터디
구글앱엔진 스터디구글앱엔진 스터디
구글앱엔진 스터디
 
[강연] 학생에서 현업 개발자로의 성공적인 변신을 위하여
[강연] 학생에서 현업 개발자로의 성공적인 변신을 위하여[강연] 학생에서 현업 개발자로의 성공적인 변신을 위하여
[강연] 학생에서 현업 개발자로의 성공적인 변신을 위하여
 
코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개코드로 인프라 관리하기 - 자동화 툴 소개
코드로 인프라 관리하기 - 자동화 툴 소개
 
S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션S#03 김용현:VS2010으로 마이그레이션
S#03 김용현:VS2010으로 마이그레이션
 

More from Sukjin Yun

동영상입문
동영상입문동영상입문
동영상입문Sukjin Yun
 
Geb quick start
Geb quick startGeb quick start
Geb quick startSukjin Yun
 
BDD with Spock
BDD with SpockBDD with Spock
BDD with SpockSukjin Yun
 
Scala quick start
Scala quick startScala quick start
Scala quick startSukjin Yun
 
Spring java config
Spring java configSpring java config
Spring java configSukjin Yun
 
Design pattern 옵저버
Design pattern 옵저버Design pattern 옵저버
Design pattern 옵저버Sukjin Yun
 
docker_quick_start
docker_quick_startdocker_quick_start
docker_quick_startSukjin Yun
 
Rabbitmq install한글
Rabbitmq install한글Rabbitmq install한글
Rabbitmq install한글Sukjin Yun
 
Weblogic install
Weblogic installWeblogic install
Weblogic installSukjin Yun
 
무료로 워드프레스시작하기
무료로 워드프레스시작하기무료로 워드프레스시작하기
무료로 워드프레스시작하기Sukjin Yun
 
Ldap serise v1
Ldap serise v1Ldap serise v1
Ldap serise v1Sukjin Yun
 
Android studio
Android studioAndroid studio
Android studioSukjin Yun
 
Servlet design pattern
Servlet design patternServlet design pattern
Servlet design patternSukjin Yun
 

More from Sukjin Yun (20)

동영상입문
동영상입문동영상입문
동영상입문
 
Geb quick start
Geb quick startGeb quick start
Geb quick start
 
BDD with Spock
BDD with SpockBDD with Spock
BDD with Spock
 
Scala quick start
Scala quick startScala quick start
Scala quick start
 
Spring java config
Spring java configSpring java config
Spring java config
 
Design pattern 옵저버
Design pattern 옵저버Design pattern 옵저버
Design pattern 옵저버
 
docker_quick_start
docker_quick_startdocker_quick_start
docker_quick_start
 
Rabbitmq install한글
Rabbitmq install한글Rabbitmq install한글
Rabbitmq install한글
 
Servlet3
Servlet3Servlet3
Servlet3
 
Weblogic install
Weblogic installWeblogic install
Weblogic install
 
무료로 워드프레스시작하기
무료로 워드프레스시작하기무료로 워드프레스시작하기
무료로 워드프레스시작하기
 
Start groovy
Start groovyStart groovy
Start groovy
 
Pygame
PygamePygame
Pygame
 
Annotation
AnnotationAnnotation
Annotation
 
마리아Db
마리아Db마리아Db
마리아Db
 
Intellij java
Intellij javaIntellij java
Intellij java
 
Ldap serise v1
Ldap serise v1Ldap serise v1
Ldap serise v1
 
Android studio
Android studioAndroid studio
Android studio
 
Servlet design pattern
Servlet design patternServlet design pattern
Servlet design pattern
 
Launch4j
Launch4jLaunch4j
Launch4j
 

Enterprise Java web Deployment Strategy