노출되는 이미지가 불편하시겠지만 양해를 구합니다. 노출, 클릭등에 관한 자료로 활용 중입니다.
재구매(매월 연속 구매)


- lag함수 , lead함수를 사용해서 발생 간격을 계산



1. 임시 데이타
CREATE TEMP TABLE transaction (buyer_id int, tstamp timestamp);
INSERT INTO transaction VALUES 
 (1,'2012-01-03 20:00')
,(1,'2012-01-05 20:00')
,(1,'2012-01-07 20:00')  -- multiple transactions this month
,(1,'2012-02-03 20:00')  -- next month
,(1,'2012-03-05 20:00')  -- next month
,(2,'2012-01-07 20:00')
,(2,'2012-03-07 20:00')  -- not next month
,(3,'2012-01-07 20:00')  -- just once
,(4,'2012-02-07 20:00'); -- just once


2. 쿼리(월별, 연속구매여부)

WITH t AS (
SELECT
buyer_id -- 구매 유저
,date_trunc('month', tstamp) AS month -- 구매 발생 월
,count(*) AS item_transactions -- 구매 회수
,lag(date_trunc('month', tstamp)) OVER (PARTITION BY buyer_id ORDER BY date_trunc('month', tstamp)) = date_trunc('month', tstamp) - interval '1 month' OR NULL AS repeat_transaction -- 이전 구매 발생이 1달전인가?
FROM
transaction WHERE
tstamp >= '2012-01-01'::date AND
tstamp < '2012-05-01'::date -- time range of interest. GROUP
BY 1, 2
) SELECT month ,sum(item_transactions) AS num_trans -- 거래수
,count(*) AS num_buyers -- 구매 유저수
,count(repeat_transaction) AS repeat_buyers -- 재구매 유저수
,round( CASE WHEN sum(item_transactions) > 0 THEN count(repeat_transaction) / sum(item_transactions) * 100 ELSE 0 END, 2) AS buyer_retention -- 재구매 비율
FROM t GROUP BY 1 ORDER BY 1;


결과
  month  | num_trans | num_buyers | repeat_buyers | buyer_retention_pct
---------+-----------+------------+---------------+--------------------
 2012-01 |         5 |          3 |             0 |               0.00
 2012-02 |         2 |          2 |             1 |              50.00
 2012-03 |         2 |          2 |             1 |              50.00



http://stackoverflow.com/questions/16492842/how-to-calculate-retention-month-over-month-using-sql


https://www.postgresql.org/docs/9.6/static/functions-window.html

http://stackoverflow.com/questions/17301816/lag-function-and-group-by

블로그 이미지

StartGuide

I want to share the basic to programming of each category and how to solve the error. This basic instruction can be extended further. And I have been worked in southeast Asia more than 3 years. And I want to have the chance to work another country.

,
노출되는 이미지가 불편하시겠지만 양해를 구합니다. 노출, 클릭등에 관한 자료로 활용 중입니다.

Chrome/크롬을 통한 모바일 디바이스 Inspect


0. 모바일 디바이스, 개발자 옵션 활성화하기


https://developer.android.com/studio/run/device.html#developer-device-options


- Samsung 갤럭시, 활성화

http://www.samsung.com/us/support/answer/ANS00030524/



1.크롬에서 Inspect 화면으로 이동후에 USB 연결한다.




2. 반응이 없을때


1) USB Driver 설치


- Get the Google USB Driver ( & OEM USB Drivers )

https://developer.android.com/studio/run/win-usb.html


2) Android SDK\platform-tools\adb 실행


(1) adb 실행

> adb devices


(2) 디바이스에서,  허용하기


(3) 성공시


참조 :  Get Started with Remote Debugging Android Devices

https://developers.google.com/web/tools/chrome-devtools/remote-debugging/?utm_source=dcc&utm_medium=redirect&utm_campaign=2016q3


블로그 이미지

StartGuide

I want to share the basic to programming of each category and how to solve the error. This basic instruction can be extended further. And I have been worked in southeast Asia more than 3 years. And I want to have the chance to work another country.

,
노출되는 이미지가 불편하시겠지만 양해를 구합니다. 노출, 클릭등에 관한 자료로 활용 중입니다.


Spring Boot , Thymeleaf 설정



1. 프로젝트 생성




- download , project import

* import후에 에러가 발생한다면, Maven Project 버젼을 내려서 시도.


2. 모듈 작성


- src/main/java
-- com.example.HelloController.java
package com.example;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 
 * Controller maps HTTP Requests with view.
 * 
 */
@Controller
public class HelloController {

	@RequestMapping("/hello")
	public String hello(Model model, 
			@RequestParam(value="name",required=false, defaultValue="World") String name) {
		
		model.addAttribute("name", name);
		
		return "hello";
	}
}


- src/main/resources
-- templates/hello.html
<!DOCTYPE html>

<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
	<meta charset="UTF-8" />
	<title>Hello Thymeleaf!</title>
</head>
<body>
	<p th:text="'Hello '+ ${name} +'!'" />
</body>
</html>

* thymeleaf


-- extends SpringBootServletInitializer , configure()

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;

@SpringBootApplication
public class ThymeleafappApplication extends SpringBootServletInitializer {

	public static void main(String[] args) {
		SpringApplication.run(ThymeleafappApplication.class, args);
	}
	
	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
		return builder.sources(ThymeleafappApplication.class);
	}
}



-- Run As -> Spring Boot App



참조

http://coderscampus.com/ep01-spring-boot-rocks/

https://hellokoding.com/spring-boot-hello-world-example-with-thymeleaf/

블로그 이미지

StartGuide

I want to share the basic to programming of each category and how to solve the error. This basic instruction can be extended further. And I have been worked in southeast Asia more than 3 years. And I want to have the chance to work another country.

,
노출되는 이미지가 불편하시겠지만 양해를 구합니다. 노출, 클릭등에 관한 자료로 활용 중입니다.


2016년 Java 개발 Tool 및 기술 사용 분석


- 작성 시점 : 2016년 초 ~ 7월14일
- 자료 수집 : 질문 항목에 답변
- 자료 답변 : 2,040명

- 설문 문항들
1) 여전히 Eclipse는 최고의 IDE인가?
2) Gradle은 Maven를 따라 잡았나?
3) Git는 승리한건가?
4) Java EE의 개발속도의 장점 및 단점?
5) Java 8을 사용하나?
6) 재배포에 걸리는 시간?
7) APM솔루션은 어떤것을 사용하나?

- 답변자들의 경력

 경력 (년)

비율 (%)

 0-4

15 

 5-9

24 

 10-14

23 

 15-19

19 

 20-29

15 

 30-39

- 답변자들의 직업

 직업

비율(%) 

 Software Developer

54 

Management 

3 

Architect 

18 

Team Lead 

12 

Consultant 

4 

Developer Advocate 

3 

Director/VP/C-Level 

3 

other 


- 답변자들의 개발 분야

분야

비율 (%)

 Full stack web application

67

Backend code only 

18 

Desktop 

6 

Mobile 

3 

Libraries 

2 

Batch 

1

 Other



A. 주요 상용 서비스에 사용하는 자바 버젼은?


종류

비율 (%)

Java 8

62 

Java 7

28 

Java 6

 Other


B. 주요 많이 사용하는 Java EE 버젼은?


종류

비율 (%)

Java EE 7

31 

Java EE 6

17 

Java EE 8

We don't

42 



C. 사용하는 IDE는 ?


종류

비율 (%)

Intellij IDEA

46 

Eclipe

41 

NetBeans

10 

Other


D. 사용하는 Build Tool은 ?


종류

비율 (%)

Maven

68 

Gradle

16 

Ant

11 

Other



E. 사용하는 Application Server 사용은 ?


종류

Production (%)

Development (%)

Tomcat

42 

42 

Jetty

8 

16 

Wildfly

9 

10 

JBoss EAP

8 

 WebLogic

WehSphere 

Glassfish 


F. 사용하는 Database은 ?


종류

비율 (%)

Oracle DB

39 

MySQL

38 

PostgreSQL

29 

MongoDB

15 

 MS SQL

8 

Redist 

8 

DB2 

7 

Other 

 Cassandra

H2 

Couchbase 

Neo4j 





G. 개발에 소요되는 building과 redeploying 시간은 ?


Minutes / App Redeploy

비율 (%)

0 - 1

29 

2 - 5

41 

6 - 10

12 

11 - 30

12 

30 +




H. 사용하는 Web Framework은 ?


Web Framework

비율 (%)

Spring MVC

43 

Spring Boot

29 

JSF

19 

Vaadin

13 

GWT ( Google )

 Play 2

 Grails

4 

Struts 2 

4 

We don't 

17 

Other 

13 

Struts 1 

3 

Apache Wicket

Play 1




I. Continuous Integraion Server은 ?


CIS

비율 (%)

Jenkins

60 

We don't

16 

Bamboo

Teamcity

6 

Other

4 

Hudson

3 

TravisCI



J. 가장 자주 사용하는 VCS은 ?


VCS

비율 (%)

Git

68 

Subversion

23 

Other

4 

Mercurial

3 

CVS



원문 :

https://zeroturnaround.com/rebellabs/java-tools-and-technologies-landscape-2016/

블로그 이미지

StartGuide

I want to share the basic to programming of each category and how to solve the error. This basic instruction can be extended further. And I have been worked in southeast Asia more than 3 years. And I want to have the chance to work another country.

,
노출되는 이미지가 불편하시겠지만 양해를 구합니다. 노출, 클릭등에 관한 자료로 활용 중입니다.


java LocalDate -> Date 변환




You can use java.sql.Date.valueOf() method as:

Date date = java.sql.Date.valueOf(localDate);



http://stackoverflow.com/questions/22929237/convert-java-time-localdate-into-java-util-date-type

블로그 이미지

StartGuide

I want to share the basic to programming of each category and how to solve the error. This basic instruction can be extended further. And I have been worked in southeast Asia more than 3 years. And I want to have the chance to work another country.

,
노출되는 이미지가 불편하시겠지만 양해를 구합니다. 노출, 클릭등에 관한 자료로 활용 중입니다.


Vaadin Appication 만들기


1. 준비물

- Eclipse ( www.eclipse.org )

- Vaadin Plugin for Eclipse ( Eclipse Market Place )


2. 프로젝트 생성

- New -> Vaadin -> Vaddin 7 Project with Maven 


- Select a Maven archetype 

    : Single-module Application Project(vaadin-archetype-application)


- Artiface Id : 필요에 따라 수정

- 생성된 소스 확인

@Theme("mytheme")
public class MyUI extends UI {

    @Override
    protected void init(VaadinRequest vaadinRequest) {
        final VerticalLayout layout = new VerticalLayout();
        
        final TextField name = new TextField();
        name.setCaption("Type your name here:");

        Button button = new Button("Click Me");
        button.addClickListener( e -> {
            layout.addComponent(new Label("Thanks " + name.getValue() 
                    + ", it works!"));
        });
        
        layout.addComponents(name, button);
        layout.setMargin(true);
        layout.setSpacing(true);
        
        setContent(layout);
    }

    @WebServlet(urlPatterns = "/*", name = "MyUIServlet", asyncSupported = true)
    @VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
    public static class MyUIServlet extends VaadinServlet {
    }
}


3. Add to Tomcat 8.0


4. Run / Open

* 참조  -자료 동영상

https://youtu.be/o93ofXBIkf8 , Creating a Project from an Archetype


Hello World 만들기 

- init() 함수를 수정


1) Label 추가 하기

    @Override
    protected void init(VaadinRequest vaadinRequest) {
    	Label label = new Label("Hello World!");
    	setContent(label);
    }

2) Button 추가 하기

(1) button 생성

    @Override
    protected void init(VaadinRequest vaadinRequest) {
    	Button button = new Button("Greet");
    	setContent(button);
    }

(2) button addClickListener() 추가

@Override protected void init(VaadinRequest vaadinRequest) {         Button button = new Button("Greet");         button.addClickListener( e->Notification.show("Hello World!") );         setContent(button);

}

(3) text field 입력 받기 , VerticalLayout추가 하기

@Override protected void init(VaadinRequest vaadinRequest) { TextField textField = new TextField("Name");         Button button = new Button("Greet");         button.addClickListener( e->Notification.show("Hi! " + textField.getValue()) ); VerticalLayout verticalLayout = new VerticalLayout(); verticalLayout.addComponents(textField,button);         setContent(button); }


(4) verticalLayout.setMargin(true)


(5) verticalLayout.setSpacing(true)


(6) verticalLayout.setMargin(true), verticalLayout.setSpacing(true)


* 참조  -자료 동영상

https://youtu.be/9-qwPfpSHWc


Bandend 추가하기와 Grid안에 항목 나열하기


1. 사용될 소스 복사 하기

- CustomerStatus.java

- Customer.java

- CustomerService.java 


2. 소스 수정 하기


1) grid 추가 하기 ( 전체 Data 불러오기 )

    private CustomerService service = CustomerService.getInstance();  
    private Grid grid = new Grid();
	
    @Override
    protected void init(VaadinRequest vaadinRequest) {

    	
    	VerticalLayout verticalLayout = new VerticalLayout();
    	
    	
    	verticalLayout.addComponent( grid );
    	
    	List customers = service.findAll();
    	grid.setContainerDataSource( new BeanItemContainer<>(Customer.class, customers) );
    	
    	// kind of updating
    	updateList();
    	
    	verticalLayout.setMargin(true);		// around space
    	verticalLayout.setSpacing(true);	// inside layout space
    	
    	
    	setContent(verticalLayout);
    	
    }



2) 특정 column만 grid에 표현 오기

    private CustomerService service = CustomerService.getInstance();  
    private Grid grid = new Grid();
	
    @Override
    protected void init(VaadinRequest vaadinRequest) {

    	
    	VerticalLayout verticalLayout = new VerticalLayout();
    	
    	grid.setColumns("firstName","lastName","email"); // here you go
    	
    	verticalLayout.addComponent( grid );
    	
    	List customers = service.findAll();
    	grid.setContainerDataSource( new BeanItemContainer<>(Customer.class, customers) );
    	
    	// kind of updating
    	updateList();
    	
    	verticalLayout.setMargin(true);		// around space
    	verticalLayout.setSpacing(true);	// inside layout space
    	
    	
    	setContent(verticalLayout);
    	
    }

    private void updateList() {
    	List<Customer> customers = service.findAll();
    	grid.setContainerDataSource(new BeanItemContainer<>(Customer.class, customers));
    }


 

* 참조  -자료 동영상

https://youtu.be/0W0frepDKWI




블로그 이미지

StartGuide

I want to share the basic to programming of each category and how to solve the error. This basic instruction can be extended further. And I have been worked in southeast Asia more than 3 years. And I want to have the chance to work another country.

,
노출되는 이미지가 불편하시겠지만 양해를 구합니다. 노출, 클릭등에 관한 자료로 활용 중입니다.




XSS ( Cross Site Scripting ) 제거 하기


- 문자열을 아래와 같은 변환을 통해서, 불필요한 script를 제거 한다. ( 때로는 escape된 문자열를 변환후에 제거하는 과정도 필요하다. )


1. HTML Sanitizer Project




1) 다운로드


(1) owasp-java-html-sanitizer.jar



(2) Dependency jar


- guava : lib/guava-libraries/guava.jar
- JSR305 : lib/jsr305/jsr305.jar


2)  코드 작성

// prepackaged policies
String untrustedHTML="<script>alert()</script>";
PolicyFactory policy = Sanitizers.FORMATTING.and(Sanitizers.LINKS);
String safeHTML = policy.sanitize(untrustedHTML);


2. Jsoup


1) 다운로드 jsoup-1.10.2.jar


2) 코드작성

String unsafe =   "<p><a onclick="stealCookies()" href="http://example.com/">Link</a></p>";
String safe = Jsoup.clean(unsafe, Whitelist.basic());
// now: <p><a href="http://example.com/" rel="nofollow">Link</a></p>


* UnescapeHtml() - Class StringEscapeUtils - commons.apache.org

Unescapes a string containing XML entity escapes to a string containing the actual Unicode characters corresponding to the escapes

블로그 이미지

StartGuide

I want to share the basic to programming of each category and how to solve the error. This basic instruction can be extended further. And I have been worked in southeast Asia more than 3 years. And I want to have the chance to work another country.

,
노출되는 이미지가 불편하시겠지만 양해를 구합니다. 노출, 클릭등에 관한 자료로 활용 중입니다.



Spring Boot와 Vaadin의 full stack 어플리케이션 ( JPA, PostgreSQL )


- Vaadin은 무멋인가?



1. 프로젝트 생성 ( start.spring.io , SPRING INITIALIZR )후에 zip 해제 하기


Maven Project , 1.4.4 ( 1.5.x는 에러가 발생 )

Dependencies 선택 : Web, Vaadin, JPA, PostgreSQL

Artifact : todolistvaading


2. 프로젝트 불러오기


Eclipse에서 Import -> Project from Folder or Archive

Project(우측 마우스) ->Run AS -> Maven clean, Maven Install 실행

Project(우측 마우스) -> Maven -> Update Project선택


3. 생성할 예제



4. UI 클래스 생성하기


package com.example;


import com.vaadin.annotation.Theme;

import com.vaadin.server.VaadinRequest;

import com.vaadin.spring.annotation.SpringUI;

import com.vaadin.ui.UI;


@SpringUI
@Theme("valo")
public class TodoUI extends UI {


private VerticalLayout layout;


    @Override
    protected void init(VaadinRequest vaadinRequest) {


// 화면 구성 하기

setupLayout();

addHeader();

addForm();

addTodoList();

addActionButton();

}

}


private void setupLayout(){
layout = new VerticalLayout();
    setContent(layout);
}

private void addHeader(){
Label header = new Label("TODO");

layout.addComponent(header);
}

private void addForm(){
HorizontalLayout formLayout = new HorizontalLayout();

TextField taskField = new TextField();

Button addButton = new Button("Add"); // 나중에 icon으로 변경


formLayout.addComponent(taskField, addButton);

layout.addComponent(formLayout);
}

private void addTodoList(){

//@Autowired TodoList todoList 추가
layout.addComponent(todoList);
}

@Component
public class TodoList extends VerticalLayout {

}

private void addActionButton() {

Button deleteButton = new Button("Delete completed");

layout.addComponent(deleteButton);

}



원문 : 동영상 강좌

https://www.youtube.com/watch?v=tnVKN25dIm8


-- 추가 꾸미기

private void setupLayout() {
...
layout.setSpacing(true);
layout.setDefaultComponentAlignment(Alignment.MIDDLE_CENTER);
...
}

private void addHeader() {
...
header.addStyleName(ValoTheme.LABEL_H1);
header.setSizeUndefined();
...
}

private void addForm() {
...
formLayout.setSpacing(true);
formLayout.setWidth("80%");
}

private void addTodoList() {
...
todoList.setWidth("80%");
}
private void addActionButton() {
...
deleteButton.addClickListener(click->todoList.deleteCompleted());
}


Todo.java

TodoChangeListener.java

TodoLayout.java

TodoList.java

TodoRepository.java

TodoUI.java

TolistvaadinApplication.java



* Vaadin Login Example

https://examples.javacodegeeks.com/enterprise-java/vaadin/vaadin-login-example/




블로그 이미지

StartGuide

I want to share the basic to programming of each category and how to solve the error. This basic instruction can be extended further. And I have been worked in southeast Asia more than 3 years. And I want to have the chance to work another country.

,
노출되는 이미지가 불편하시겠지만 양해를 구합니다. 노출, 클릭등에 관한 자료로 활용 중입니다.


Maven을 윈도우10에 설치하기


Apache Maven은 소프트웨어 프로젝트 관리 툴이다. POM(project object model)의 개념 위에서, Maven은 project의 build와 보고서 만들기나 문서화를 정보의 중앙관리를 통해 관리할 수 있다.


1. 다운로드 하기 & unzip으로 풀어 놓기


http://maven.apache.org/download.cgi 에서 Binary zip archive를 받아서, 원하는 위치에 풀어 놓는다.



2.  고급 시스템 설정 -> 환경변수


1) 시스템 변수에 MAVEN_HOME을 추가하고 설치된 경로로 설정

2) 시스템 변수 Path에 %MAVEN_HOME%\bin을 추가 한다.


* Maven 설치 이전에 Java가 설치되어 있어야 하며, JAVA_HOME도 환경 변수에 등록이 되어 있어야 한다.


3. CMD를 통해서 정상 설치를 확인

> mvn -version

> mvn -help


블로그 이미지

StartGuide

I want to share the basic to programming of each category and how to solve the error. This basic instruction can be extended further. And I have been worked in southeast Asia more than 3 years. And I want to have the chance to work another country.

,
노출되는 이미지가 불편하시겠지만 양해를 구합니다. 노출, 클릭등에 관한 자료로 활용 중입니다.



RStudio로 Kospi지수 csv를 그래프(plot) 만들기



1. CSV Import

: Kospi지수를 아래 링크에서 다운로드후에 kospi.csv로 저장
( 자료 내용은 편집해서 날짜와 최종 지수와 최저 지수만 남겼다 )
 
: Import Dataset를 통해 로드한다.
( 옵션 : Delimeter-Comma, First Row as Names , Name - kospi )

: 로드되면, kospi라는 data에 할당 된다. (왼쪽 상단 )


2. 날짜열을 rdate로 지정하기

: 함수 As.Date() , https://www.r-bloggers.com/as-date-exercises/

> rdate <- as.Date(kospi$Date,"%yyyy-%m-%d")

: kospi변수내의 컬럼head를 지정하고, 포맷을 정의한다.



3. Plot 'Current Index'  

>plot(kospi$`Current Index`~rdate,type="l",col="red",axes=F)
: kospi변수내의 'Current Index'를 y축, rdate는 x축
: type="l", col="red", x-y축 Line없이 그리기  

: 그래프 외곽선 추가  - box()

: x축에 날짜 표시 하기

- axis(1, rdate, format(rdate,'%m/%d')


: 원본 Data 및 그래프

https://global.krx.co.kr/contents/GLB/05/0502/0502030101/GLB0502030101.jsp?idxCd=1001&addDataYn=&globalYn=#1be3686ec5cb98595cf6179ba66d7a8b=2


참고 자료

R시계열 분석

R Programming: Plotting time-series data (using data.frame)

코스피지수 예측 모델 개발 1편

코스피지수 다운로드


블로그 이미지

StartGuide

I want to share the basic to programming of each category and how to solve the error. This basic instruction can be extended further. And I have been worked in southeast Asia more than 3 years. And I want to have the chance to work another country.

,
노출되는 이미지가 불편하시겠지만 양해를 구합니다. 노출, 클릭등에 관한 자료로 활용 중입니다.


Jenkins 설치, 빌드설정,Port변경



젠킨스는 규모에 관계 없이 대단한 (자동) 빌드  를 만들어 준다.



선도적인 오픈 소스 자동화 서버인 젠킨스는 수백 가지의 플러그인을 모든 프로젝트의 빌드하는 것과 배포하는 것 및 자동화 하는 것을 하도록 제공한다.



젠킨스는 자바 Runtime 환경이 설치된 곳에서 독립적으로 실행되고 운영된다.


- 최소 Java 7, 권장 Java 8

- 512 MB RAM이상을 권장



1. 다운로드 ( https://jenkins.io/ )


- 9가지 종류에서 필요한 것을 선택




2. 실행

$ java -jar Jenkins.jar



3. 브라우저를 통한 연결


http://localhost:8080



* Windows 설치

- msi 실행



- 완료후 자동 접속 : 설치 폴더의 initialAdminPassword를 참조



plugin 설치 : Install suggested plugins 선택




- 설치 화면



- 관리자 계정 생성





- 설치 완료 메시지




* 접속 화



- 설치가 완료되면, Pipeline을 생성해야 한다.

Pipeline은 Code로써 Jenkinsfile로 쓰여진다.


Jenkinsfile (Declarative Pipeline)
pipeline {
    agent any 

    stages {
        stage('Build') { 
            steps { 
                sh 'make' 
            }
        }
        stage('Test'){
            steps {
                sh 'make check'
                junit 'reports/**/*.xml' 
            }
        }
        stage('Deploy') {
            steps {
                sh 'make publish'
            }
        }
    }
}

- Jenkins 글로벌 설정 : JDK(설치본 사용) , Ant(자동 설치 선택)






* 2부 Jenkins + SVN + Ant Build 구성하기

http://pseg.or.kr/pseg/index.php?mid=inforeview&document_srl=7617&listStyle=viewer


- 소스코드 관리 설정 ( Repository URL, Credentials ) -> 빌드 유발(Poll SCM) -> 빌드 (Ant)등을 설정 한다.

- #9 (빌드 순번)을 선택후에 해당 화면에서 Console Output를 선택하면, 자동 Build결과를 확인 할 수 있다. ( Default 위치는 c:\Jenkins\jobs\[Item이름]\builds\[빌드순번]\log 파일 )




* Jenkins port 변경


- 수정 파일 위치 : [설치폴더]\Jenkins.xml ( httpPort를 변경 )





- 서비스 재시작 : 제어판->관리도구->서비스->Jenkins


블로그 이미지

StartGuide

I want to share the basic to programming of each category and how to solve the error. This basic instruction can be extended further. And I have been worked in southeast Asia more than 3 years. And I want to have the chance to work another country.

,
노출되는 이미지가 불편하시겠지만 양해를 구합니다. 노출, 클릭등에 관한 자료로 활용 중입니다.


Amazon, EC2(Ubuntu)에 java 설치하기



1. java version확인

$ java -version


2. os release 확인후 jdk

$ lsb_release -a


- Release : 16.04
$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk


- Release : 14.04

$ sudo apt-get update $ sudo apt-get install openjdk-7-jdk


2. apt-get 사용법


- Ubuntu 리눅스는 Debian GNU/Linux배포판을 기반으로 하는 운영체제


- Ubuntu는 패키지와 패키지의 정보를 저장하는 패키지 저장소라는 개념을 보유

# 저장소 정보 업데이트
$ sudo apt-get update

#저장소에 새로운 패키지를 설치
$ sudo apt-get install 패키지명

#설치된 패키지 업그레이드
$ sudo apt-get upgrade

#패키지 삭제
$ sudo apt-get remove 패키지명




참조


http://storyinglass.tistory.com/7 , CentOS(REDHAT계열) Java/Tomcat 설치

http://bahndal.egloos.com/588515,yum CentOS 패키지 관리자



CentOS에서 사용되는 패키지 관리자 yum

$ sudo yum update # 최신 버젼으로 CentOS 시스템의 sw를 업그레이드


$ sudo yum list all # 전체 패키지 목록 출력


$ sudo yum installed # 설치된 패키지 목록만 출력


$ sudo yum install [패키지명] # 패키지 설치

$ sudo yum remove [패키지명] # 패키지 제거


Install Java & Tomcat8 in CentOS


tomcat wget 및 실행
$ cd /opt
$ wget wget http://mirrors.advancedhosters.com/apache/tomcat/tomcat-8/v8.0.41/bin/apache-tomcat-8.0.41.tar.gz
$ tar xvf apache-tomcat-8.0.41.tar.gz
$ echo “export CATALINA_HOME=\”/opt/apache-tomcat-8.0.42\”” >> ~/.bashrc
source ~/.bashrc
$ cd /opt/apache-tomcat-8.0.42/bin
$ startup.sh

tomcat user 생성

$ sudo groupadd tomcat
$ sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat



Manager 앱 제거 - 해커의 침입 방지를 위해
$ cd /opt/apache-tomcat-8.0.42/webapps/
$ rm -rf manager/
$ rm -rf docs/
$ rm -rf examples/
$ rm -rf host-manager/

http://mobisoftinfotech.com/resources/mguide/set-apache-tomcat-based-jee-server-using-ubuntu-16-04-ec2-either-open-jdk-oracle-jdk/,How To Set Up Apache Tomcat Based JEE Server Using Ubuntu 16.04 On EC2 With Either Open JDK Or Oracle JDK


https://www.joinc.co.kr/w/Site/Linux/Documents/UbuntuPackageManagement,리눅스 패키지 관리 ( Ubuntu )


http://askubuntu.com/questions/843897/installing-java-on-ubuntu-amazon-aws, Installing java on Ubuntu Amazon aws [duplicate]


https://www.digitalocean.com/community/tutorials/how-to-install-apache-tomcat-8-on-ubuntu-16-04, How To Install Apache Tomcat 8 on Ubuntu 16.04


https://community.hortonworks.com/articles/77290/how-to-open-additional-ports-on-ec2-security-group.html, How to Open Additional Ports on EC2 Security Group ( 추가로 접근 port 열기 ) 





http://bigzero37.tistory.com/entry/Tomcat-7-%EC%97%90%EC%84%9C-ROOT-%EB%A1%9C-Deploy-%ED%95%98%EA%B8%B0, Tomcat 7 에서 ROOT 로 Deploy 하기


ROOT Context 고 뭐고 필요없이 그냥 war 파일명으로 Context를 올리려면 webapps 폴더 밑에 aaa.war 파일을 올려놓기만 하면 된다.


블로그 이미지

StartGuide

I want to share the basic to programming of each category and how to solve the error. This basic instruction can be extended further. And I have been worked in southeast Asia more than 3 years. And I want to have the chance to work another country.

,
노출되는 이미지가 불편하시겠지만 양해를 구합니다. 노출, 클릭등에 관한 자료로 활용 중입니다.




Amazon/아마존, EC2 인스턴스에 XShell 접속하기




0. 인스턴스 생성 단계에서 키생성 하기


- 아래 메뉴에서 "Create Key Pair"를 선택하고, .perm파일을 로컬에 보관한다.






1. 인스턴스 생성 완료 후 Public DNS(IPv4)와 IPv4 Public IP를 확인



* Connect 버튼을 클릭하면, SSH에 관한 "ID"@"HOST"를 확인 할 수 있다.



2. XShell 설정


- HOST


- Method : Public Key, "ID"


- Import ( .perm )





참조 :


https://www.youtube.com/watch?v=Ogbbz5gCS3s, Connecting to the Amazon Cloud EC2 Server Using Netsarang XShell


http://storyinglass.tistory.com/5 , [AWS-EC2]생성한 EC2 인스턴스에 SSH로 접속하기


http://storyinglass.tistory.com/1, [AWS-EC2] AWS(아마존웹서비스) EC2 인스턴스 생성하기



인스턴스 OS 종류

- Amazon Linux , Red Hat Enterprise Linux , SUSE Linux Enterprise Server, Ubuntu Server, Microsoft Window Server 2012 R2





2단계: EC2 인스턴스 생성 및 웹 서버 설치


http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateDBInstance.html,

1단계: RDS DB 인스턴스 만들기



https://community.hortonworks.com/articles/77290/how-to-open-additional-ports-on-ec2-security-group.html, How to Open Additional Ports on EC2 Security Group ( 추가로 접근 port 열기 ) 


'Cloud - Google,AWS' 카테고리의 다른 글

Heroku Node.js security update  (0) 2017.07.13
Amazon, EC2(Ubuntu)에 java 설치하기  (0) 2017.02.09
xftp로 구글 클라우드 연결하기  (2) 2016.06.27
블로그 이미지

StartGuide

I want to share the basic to programming of each category and how to solve the error. This basic instruction can be extended further. And I have been worked in southeast Asia more than 3 years. And I want to have the chance to work another country.

,
노출되는 이미지가 불편하시겠지만 양해를 구합니다. 노출, 클릭등에 관한 자료로 활용 중입니다.



SSLv2, SSLv3 제외 시키기(Apache, Nginx)



- SSLv2, SSLv3는 보안에 취약 제외


CentOS는 /etc/httpd/conf.d/ssl.conf에 가상 호스트에 설정


<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    SSLEngine on
    # Dropping SSLv2, SSLv3, ref: POODLE
    SSLProtocol all -SSLv2 -SSLv3

    SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
    #SSLCipherSuite HIGH:!aNULL:!MD5
    SSLHonorCipherOrder on

    SSLCertificateFile /etc/pki/tls/certs/example.com.crt
    SSLCertificateKeyFile /etc/pki/tls/private/example.com.key
    #SSLCertificateChainFile /etc/pki/tls/certs/server-chain.crt

    ErrorLog logs/www-ssl-error_log
    TransferLog logs/www-ssl-access_log
    CustomLog logs/ssl_request_log \
        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

1) 사용할 버젼 지정

# Dropping SSLv2, SSLv3, ref: POODLE
SSLProtocol all -SSLv2 -SSLv3


2) 명시적 지정


SSLProtocol TLSv1 TLSv1.1 TLSv1.2



nginx


가상호스트에 SSL설정을 추가

server {
    listen 80;
    listen 443 ssl;
    server_name  example.com
    root         html;
    index index.html index.htm index.php;

    charset utf-8;

    ssl                  on;
    ssl_certificate      /etc/pki/tls/certs/example.com.crt;
    ssl_certificate_key  /etc/pki/tls/private/example.com.key;
    ssl_session_timeout  5m;
    # SSLv2, SSLv3는 보안에 취약하므로 사용하지 마세요
    ssl_protocols  TLSv1.2 TLSv1.1 TLSv1;
    # 사용하지 않을 암호 알고리즘은 !로 명시적으로 지정할 수 있습니다.(블랙리스트 방식)    
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
    ssl_prefer_server_ciphers   on;
    location ~ /\.ht {
         deny  all;

}

1) 사용할 버전 지정 방식

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE









참조 :


블로그 이미지

StartGuide

I want to share the basic to programming of each category and how to solve the error. This basic instruction can be extended further. And I have been worked in southeast Asia more than 3 years. And I want to have the chance to work another country.

,
노출되는 이미지가 불편하시겠지만 양해를 구합니다. 노출, 클릭등에 관한 자료로 활용 중입니다.


빅데이타 인사이트 과정 

빅데이터 연구원/서울대학교


선수 지식 - 기초통계, 마케팅 기초


세션 1: 데이터처리 개론과 Python 입문
- Python 기본 syntax / interpreter 사용법
- Program structures: functions, if-else, loops
세션 2: 데이터처리 개론과 Python 입문
- 기본 data types & sequences / file 사용
- library 개념과 사용 연습
세션 3: 빅데이터 분석을 위한 통계적 방법론
- 회귀분석, 로지스틱회귀분석
- Python 프로그램 이용 데이터 분석 실습
세션 4: 빅데이터 분석을 위한 통계적 방법론
- 의사결정나무, 군집분석
- Python 프로그램 이용 데이터 분석 실습
세션 5: 마케팅 애널리틱스 (Data-driven Marketing Analytics)
- 시장 수준 애널리틱스 / 애널리틱스 사례 실습 (가격 및 마케팅 활동 효과 분석)
세션 6: 마케팅 애널리틱스 (Data-driven Marketing Analytics)
- 고객 수준 애널리틱스 / 애널리틱스 사례 실습 (고객의 선택, 구매, 이탈 행동 분석)
세션 7: 비정형 데이터 분석을 통한 효율적인 의사결정
- Python 기초문법
- Python을 활용한 웹 크롤링
세션 8: 비정형 데이터 분석을 통한 효율적인 의사결정
- KoNLPy를 통한 텍스트 전처리
- 텍스트 데이터 시각화 및 분석하기
세션 9: 빅데이터 비즈니스 밸류 창출 프로세스
- 빅데이터 아키텍트의 기획
- 인사이트 도출을 위한 빅데이터 분석
세션 9: 빅데이터 비즈니스 밸류 창출 프로세스
- 분석 데이터를 활용한 비즈니스 가치 창출
빅데이터 활용 사례 특강: 빅데이터 세상의 초입: 알파고, 딥러닝, 주식
세션 10: 빅데이터 비즈니스 밸류 창출 프로세스
빅데이터 활용 사례 특강: 디지털 혁신 국가

* http://bigdata.snu.ac.kr/academy/info-insights.php


'Web Tech. > Python' 카테고리의 다른 글

Python 예제  (0) 2017.07.04
Python, Web 보안 (기초)  (0) 2017.07.04
vagrant up, Authentication failure. Retrying 발생시  (0) 2017.05.16
Eclipse(이클립스), Python Editor 설치  (0) 2016.11.16
Python/파이썬 설치  (0) 2016.11.16
블로그 이미지

StartGuide

I want to share the basic to programming of each category and how to solve the error. This basic instruction can be extended further. And I have been worked in southeast Asia more than 3 years. And I want to have the chance to work another country.

,