티스토리와 구글 애널리틱스 추가 연결하기

Posted by HULIA(휴리아)
2018. 2. 11. 19:33 호스팅_서버_툴/애드센스_애널리틱스

기존에 티스토리블로그와 구글 애널리틱스 연결이 되어있는데

추가적으로 새로운 티스토리블로그와 구글 애널리틱스 연결 어떻게 하는지 알아보도록 하겠습니다



접속한 뒤에 관리메뉴를 클릭합니다





관리메뉴를 들어가게 되면 구글 애널리틱스 계정과 속성이 나타납니다

여기서 새속성 만들기를 합니다

참고로 기존에 연결되어있었던 티스토리 블로그는 서비스개발티스토리입니다







웹사이트를 선택하고

웹사이트 이름과 웹사이트 URL을 적으면 됩니다^^




최종적으로 완성한 화면입니다

등록하셔서 맘껏 이용하세요~^^

남세동 보이저엑스 대표가 밝힌 '슈퍼 개발자'의 최소 조건

Posted by HULIA(휴리아)
2018. 2. 7. 00:06 뒷이야기들/취업이직준비채용공고

http://www.bizhankook.com/bk/article/14571


인턴 시절 만든 당대 최고의 채팅 서비스 ‘세이클럽’ 초기 1인 개발자로 잘 알려진 남세동 보이저엑스 대표는 요즘 인공지능 분야에서 핵심 기술로 주목받고 있는 딥러닝에 흠뻑 빠져있다. 딥러닝 스타트업 보이저엑스를 설립한 이유다. 아직 딥러닝을 활용한 어떤 프로젝트를 할지는 결정하지 않은 상태. 무엇을 할지 시작 단계부터 함께할 개발자를 모집 중이다


네오위즈, 첫눈, 네이버, 라인 등을 거치며 업계에서 명실상부한 ‘슈퍼 개발자’​로 통하는 남 대표가 19일 새벽 자신의 페이스북에 제시한 채용 조건이 눈길을 끈다. 모집 분야는 ‘개발’이다. 좀 더 구체적으로는 딥러닝 스타트업에 필요한 서버, 앱, 웹, 임베디드 업무를 수행한다고 밝히고 있다



# 보이저엑스의 딥러닝 개발자 채용 조건

지원자는 다음 a~f 조건들을 모두 만족해야 한다.


a. 다음 질문들 중 절반 이상에 대해서 일정 수준 이상 대답할 수 있음.

0. 지금 사용 중인 스마트폰의 해상도는 얼마인가? 화면 캡처를 해서 bmp로 저장하면 용량이 어떻게 되는가? 그걸 png와 jpg로 저장하면 각각 용량이 어떻게 되는가? 동영상의 압축 원리는 무엇일까?


1. 한국의 gmail 사용자가 미국의 gmail 사용자에게 메일을 보냈다. 얼마 만에 도착 할까? 어떤 과정을 거칠까? 이에 대해 5분 이상 상세히 얘기할 수 있는가?


2. 가상 메모리는 무엇인가? 페이지와 스왑은 무엇인가? 디스크와 메모리의 속도 차이는 어느 정도이고 그 원인은 무엇인가? SSD의 장점은 무엇인가?


3. 데이터베이스에서 인덱스를 달면 좋은 점은 무엇인가? 그럼 왜 모든 컬럼에 인덱스를 달지 않는가? 멀티 컬럼 인덱스와 레인지 쿼리는 무엇인가?


4. 10기가바이트짜리 파일을 C 드라이브에서 D 드라이브로 복사를 한다. 얼마나 걸릴까? A 폰에서 C 드라이브로 옮겨온다면? 만약 1메가바이트짜리 1만 개라면 얼마나 걸릴까? 카피를 동시에 여러 개 돌리면 더 빨라질까?


5. C 또는 C++에서 메모리 관련 버그에는 어떤 것이 있는가? 각각 디버깅은 어떻게 할 수 있는가. 자바 또는 다른 어떤 언어에서의 가비지 컬렉터의 역할은 무엇이고 그 원리는 무엇인가?


6. 암호에서 얘기하는 플레인 텍스트라는 것이 무슨 뜻인가? ‎비대칭 암호화, 그리고 인증서에 대해서 설명하라. 사용자의 비밀번호를 안전하게 보관하는 방법은 무엇인가?


7. 동시사용자 최대 100명, 채팅방 1개, 텍스트만 주고받는 것이 기능의 전부인 최소 스펙의 채팅 서버를 데모가 가능한 정도의 안정성을 확보하는 수준으로 만들어야 한다. 어떤 언어로 몇 줄 정도에 어느 정도 기간에 만들 수 있는가?


8. 디지털 시계 프로그램을 만들어야 한다. 초 단위로 표시해야 한다. 어떻게 작성할 것인가? 그렇게 작성 하면 장점과 단점은 무엇인가?


9. 전임자가 만든 어떤 프로그램이 있는데 생각보다 너무 느리게 동작하는 것 같다. 어떤 부분부터 어떻게 살펴보는 것이 좋을까?


10. Dynamic Programming, A* 알고리즘, B+ 트리에 대해서 아는 대로 설명하라.


11. 소스 관리 및 배포에 대해서 아는 대로 상세히 얘기하라.


12. Virtual Box, AWS, GCE에 대해서 아는 대로 상세히 얘기하라.


13. NoSQL, NodeJS 중에 아는 것에 대해서 아는 대로 상세히 얘기하라.


14. jQuery, AngularJS, React Native 중에 자신 있는 것에 대해서 상세히 설명하라.


15. Windows 또는 Linux와 다른 Android 또는 iOS의 특징에 대해서 상세히 얘기하라.


16. ASCII, Unicode, UTF-8에 대해서 아는 대로 상세히 얘기하라.




b. 스타트업, 작은 조직에서 일하면서 많이 배우고 빠르게 성장하고 싶음.



c. 개발이라면 서버, 웹, 앱, 임베디드, 프론트, 백엔드, 아무튼 뭐든지 가리지 않고 좋아함.



d. 인생 통틀어서 코딩 경험이 최소 1000시간 이상임.



e. 새로운 기술을 비교적 빠르게 배우고 익혀서 구현 할 수 있음.



f. 영어로 된 기술 문서를 읽는데 크게 어려움을 느끼지 않음.




OLTP ETL OLAP DSS

Posted by HULIA(휴리아)
2018. 2. 6. 23:41 뒷이야기들/스터디히스토리강의

요즘 정보시스템 관련으로 이야기를 들은게 있어서 정리를 하려고 한다


정보시스템 

단말(클라이언트) - OLTP시스템 - OLAP시스템


OLTP는 단말에서 직접적으로 연결되는 시스템

ex) 웹서버

OLAP는 OLTP에서 정보를 가지고 가공처리해서 관리자가 의사결정 할 수 있도록 해주는 시스템 

ex) 통계서버


ETL은 OLTP와 OLAP간의 데이터를 마이그레이션해주는 시스템을 말함


앱)Springframework version 버젼별 간단 특징 요약 역사

Posted by HULIA(휴리아)
2018. 2. 6. 13:46 백엔드개발/자바스프링
Springframework는 2004년에 처음 release되었음

2.0
XML namespace와 AspectJ support

2.5
annotaion 기반의 설정 방법 추가

3.0
Java5 지원
Spring Expression 지원
Java based bean metadata 지원
Type conversion and fileld formatting 지원
REST 지원
@MVC 추가
Java6 지원
Embedded 데이터베이스 지원

4.0
Java8 지원
WebSocket. SockJS, STOMP messaging 지원
Groovy Bean DSL 지원

앱)Slf4j API print format 정리 예제

Posted by HULIA(휴리아)
2018. 1. 31. 10:19 백엔드개발/자바스프링
debug, info, warn, fatal, error 모두 같은 형식을 지원하므로
 debug만 대표적으로 알아봄

slf4j.debug 메소드의 overloading 메소드 정리
debug(String arg0);
debug(Marker arg0, String arg1);
debug(String arg0, Object arg1);
debug(String arg0, Object...arg1);
debug(String arg0, Throwable arg1);
debug(Marker arg0, String arg1, Object arg2);
debug(Marker arg0, String arg1, Object...arg2);
debug(Marker arg0, String arg1, Throwable arg2);
debug(String arg0, Ojbect arg1, Obejct arg2);
debug(Marker arg0, String arg1, Object arg2, Object arg3);



Marker
Marker fatal = MarkerFactory.getMarker("FATAL");

Logger
Logger logger = LoggerFactory.getLogger("LOG");

Throwable과 Exception은 비슷
try-catch문에서 catch문에서 Exception출력을 할때 이용하거나 Exception을 throw 할때 사용


예시1)
logger.error(fatal, "Failed to obtain JDBC connection", e);

예시2)
logger.debug("Entry number: " + i + "is" + String.valueOf(entry[i]));

예시3)
Object entry = new SomeObject();//자바의 모든 객체 다 쓸 수 있음
logger.debug("The entry is {}" , entry);
//출력 : The entry is 3

예시4)
logger.debug("The new entry is {}. It replaces {}.", entry, oldEntry);
//출력 : The new entry is 3. It replaces 6.

예시5)
logger.debug("Value {} was inserted between {} and {}.", newVal, below, above);
//출력: Value 7 was inserted between 5 and 10.


예시6)
logger.debug("Set {1,2} differs from {{}}", "3");
//출력 : Set {1,2} differs from {3}


예시7)
logger.debug("Set \\{} differs from {}", "3");
//출력 : Set {} differs from 3


예시8)
logger.debug("File name is c:\\\\{}.", "file.zip");
//출력 : File name is c:\file.zip.


예시9)
String s = "hello world";
try {
Integer i = Integer.valueOf(s);
}catch(NumberFormatException e) {
 logger.error("Failed to format {}, s, e);
}


예시10)
public class LoggerUtil {
public static void debug (Logger logger,String msg,Object...params){
if (logger.isDebugEnabled ()){
logger.debug (msg,params);
}
}
}

앱)springframework annotation 예제

Posted by HULIA(휴리아)
2018. 1. 25. 16:18 백엔드개발/자바스프링
@transactional(rollbackFor={Exception.class})

@component

@service

@repository("DAO")

@Resource(name="sqlSessionTemplte")

@Autowired

앱)메이븐 maven pom.xml 예제

Posted by HULIA(휴리아)
2018. 1. 25. 16:10 백엔드개발/자바스프링
<project xmlns:"http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>Batch</groupId>
  <artifactId>Batch</artifactId>
  <version>1.0.0</version>

   <properties>
     <lib.dir>lib</lib.dir>
     <conf.dir>conf</conf.dir>
     <jar.name>JobManager</jar.name>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<ch.qos.logback-version>1.1.7</ch.qos.logback.version>
<org.slf4j-version>1.7.21</org.slf4j-version>
<powermock.version>1.7.0</powermock.version>
<mockito.version>1.10.17</mockito.version>
<junit.version>4.12</junit.version>
<org.springframework-version>3.2.17.RELEASE</org.springframework-version>

<!-- slf4j와 logback과 상충된다-->
<org.logback-extensions-version>0.1.4</org.logback-extensions-version>
</properties>

<dependencies>
   <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.2.6.RELEASE</version>
       <exclusions>
           <exclusion>
               <groupdId>commons-logging</groupId>
               <artifactId>commons-logging</artifactId>
             </exclusion>
       </exclusions>

   </dependency>
   
   <dependency>
       <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>4.2.6.RELEASE</version>
</dependency>

<dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-context</artifactId>
   <version>4.2.6.RELEASE</version>
</depenency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>4.1.6.RELEASE</version>
</dependency>

<dependency>
    <groupId>org.springframework.data</groupId>
 <artifactId>spring-data-commons<artifactId>
<version>1.11.4.RELEASE</version>
</dependecy>

<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.42</version>
</dependency>

<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.1.0</version>
</dependency>

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.1.1</version>
</dependency>

<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>

<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.10</version>
</dependency>

<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.6</version>
</dependency>

<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${ch.qos.logback-version}</version>
</dependency>

<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${ch.qos.logback-version}</version>
</dependency>


<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j-version}</version>
</dependency>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>${powermock.version}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito</artifactId>
<version>${powermock.version}</version>
<scope>test</test>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
</dependency>

<!--logback 4개 대신에 요거 하나를 써도 된다 springframework에서는 -->
<dependency>
<groupId>org.logback-extensions</groupId>
<artifactId>logback-ext-spring</artifactId>
<version>${org.logback-extensions-version}</version>
</dependency>

<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</dependency>

<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</dependency>




</dependencies>


<build>
  <plugins>     
    <plugin>
     <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-comiler-plugin</artifactId>
      <version>3.1</version>
      <configuration>
       <source>1.7</source>
       <target>1.7</target>
       <encoding>UTF-8</encoding>
      </configuration>
    </plugin>


<plugin>
     <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-resources-plugin</artifactId>
      <version>2.4</version>
      <executions>
          <execution>
             <id>copy-resources-conf<id>
             <phase>prepare-package</phase>
             <goals><goal>copy-resources</goal></goals>
             <configuration>
                      <outputDirectory>${project.build.directory}/conf</outputDirectory>
        <resources><resource>
               <directory>src/main/resources</directory>
           </resource></resources>
         </configuration>
    </execution>
    <execution>
       <id>copy-resources-bin</id>
       <phase>prepare-package</phase>
        <goals><goal>copy-resources</goal></goals>
        <configuration>
             <outputDirectory>${project.build.directory}/bin</outputDirectory>
    <resources><resource>
             <directory>src/main/bin</directory>
       </resource></resources>
      </configuration>
      </execution>
     </executions>
   </plugin>


<plugin>
     <groupId>org.codehaus.mojo</groupId>
      <artifactId>build-helper-maven-plugin</artifactId>
      <version>1.11</version>
      <executions>
         <execution>
                 <id>timestamp-property</id>
                 <phase>validate</phase>
                <goals><goal>timestamp-property</goal></goals>
               <configuration>
                     <name>current.time</name>
                     <pattern>yyyyMMddHHmmss</pattern>
                 <locale>ko_KR</locale>
                 <timeZone>Asia/Seoul</timeZone>
             </configuration>
          </execution>
        </executions>
</plugin>




<plugin>
     <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>2.4</version>
      <configuration>
            <finalName>JobManager</finalName>
            <excludes>
                  <exclude>**/*.properties</exclude>
 <exclude>**/logback*.xml</exclude>
 <exclude>**/spring/**</exclude>
 <exclude>**/mybatis/**</exclude> 
</excludes>
<archive>
   <manifest>
        <addDefaultImplmentationEntries>true</addDefaultImplementationEntries>
<mainClass>com.test.jobmanager.JobManager</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>${lib.dir}/</classpathPrefix>
</manifest>
<manifestEntries>
<Class-Path>${conf.dir}/</Class-Path>
<Revision>${build.number}</Revision>
<Build-Date>${current.time}</Build-Date>
</manifestEntries>
</archive>
</configuration>
</plugin>




<plugin>
     <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-dependency-plugin</artifactId>
      <executions>
          <execution>
              <id>copy-dependencies</id>
              <phase>package</phase>
              <goals><goal>copy-dependencies</goal></goals>
            </execution>
         </executions>
         <configuraion>
               <outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteIfNewer>true</overWriteIfNewer>
</configuraion>
</plugin>




<plugin>
     <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>2.4</version>
      <configuration>
          <descriptors><descriptor>src/main/assemblies/package.xml
          </descriptor></descriptors>
         <finalName>${project.artifactId}-${current.time}</finalName>
 <appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
   <execution>
      <id>tarball</id>
       <phase>package</phase>
       <goals><goal>single</goal><goals>
    </execution>
</executions>
</plugin>





<plugin>
     <groupId>org.codehaus.mojo</groupId>
      <artifactId>build.helper-maven-plugin</artifactId>
      <version>1.11</version>
      <executions>
          <execution>
              <id>timestamp-property</id>
              <phase>validate</phase>
              <goals><goal>timestamp-property</goal></goals>
          <configuraion>
              <name>current.time</name>
              <pattern>yyyyMMddHHmmss</pattern>
               <locale>ko_KR</locale>
               <timeZone>Asia/Seoul</timeZone>
          </configuraion>
          </execution>
       </executions>
</plugin>





<plugin>
     <groupId></groupId>
      <artifactId></artifactId>
      <version></version>






</plugin>




  </plugins>
  <pluginManagement>
      <plugins>
            <!-- This plugin's configuraion is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. -->
       <plugin>
           <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
              <lifecycleMappingMetadata>
                  <pluginExecutions>
                      <pluginExecution>
                         <pluginExecutionFilter>
    <groupId>org.codehaus.mojo</groupId>
     <artifactId>build-helper-maven-plugin</artifactId>
      <versionRange>[1.11,)</versionRange>
       <goals><goal>timestamp-property</goal></goals>
  </pluginExecutionFilter>
<action><ignore /></action>
                     </pluginExecution>
                   </pluginExecutions>
</lifecycleMappingMetadata>
          </configuraion>
        </plugin>
       </plugins>
  </pluginManagement>
 

</build>
</project>

앱)custom Exception class 클래스 예제

Posted by HULIA(휴리아)
2018. 1. 25. 14:56 백엔드개발/자바스프링
public class testException extends Exception {
    private static final long serialVersionUID = 7897401638242416328L;

public testException(String msg){
    super(msg);
}

}

앱)VI 명령어 추가

Posted by HULIA(휴리아)
2018. 1. 25. 14:02 호스팅_서버_툴/툴
여러줄 붙여넣기
shift + insert

커서부터 아래줄 모두 삭제
d
shift + d

커서부터 행 끝까지 삭제
shift+d

앱)springframework로 batch 예제(main+applicationcontext+properties+logback)

Posted by HULIA(휴리아)
2018. 1. 23. 10:12 백엔드개발/자바스프링
☆☆☆☆☆main
public class mainApplicaion{
    public static void main(String[] args) {
       String jobMgr = System.getProperty("jobmgr.home");
       if(StringUtils.isEmpty(jobMgr)){
       //에러(jobMgr Home is Empty)
       return;
      }
      if( !(new File(jobMgr)).exists()) {
     //에러(Invalid jobmgr Home + jobMgr+)
      return;
      }
   
      String serverType = System.getProperty("server.type");
      if(StringUtils.isEmpty(serverType)){
      //에러
      return;
     }
     
      LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
      JoranConfigurator jc = new JoranConfigurator();
       jc.setContext(context);
       context.reset ();//우리가 설정한 logback 설정만 적용된다
       try{
          jc.doConfigure(new ClassPathResource("logback"+System.getProperty("server.type")+".xml").getInputStream());
       }catch(Exception e){
          return;
       }



      ApplicationContext springContext = new ClassPathXmlApplicationContext("spring/applicationContext.xml");
  }
}


☆☆☆☆☆scheduler@service
@scheduled(fixedDelayString="jobmgr.runnig.interval"+"000")
public void doTest(){
     doTestBiz();
}



☆☆☆☆☆service, biz @service
@Value("${jobmgr.running.interval}")
private String interval;

@Async("testExcecutor")
public doTestBiz(){

}


☆☆☆☆☆application context
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jms="http://www.springframework.org/schema/jms"
xmlns:amq="http://activemq.apache.org/schema/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms.xsd
http://activemq.apache.org/core http://activemq.apache.org/schema/core/activemq-core.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.0.xsd">

<context:anntaion-config />

<context:component-scan base-package="com.istoryful.test" />

<task:anntation-driven />

<task:schduler id="scheduler" pool-size="${jobmgr.defaultSchedulerSize}" />

<task:executor id="testExecutor" pool-size="${jobmgr.testExecutor.size}" />

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property anme"locations">
          <list>
                <value>batch${server.type}.properties</value>
          </list>
     </property>
</bean>

<bean id="dataSource" class="com.istoryful.util.CrytoDataSourceUtil" destory-method="close">
    <property name="driverClassName" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="maxTotal" value="${jdbc.maxTotal}" />
<property name="maxIdle" value="${jdbc.maxIdle}" />
</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
   <property name="dataSource" ref="dataSource" />
   <property name="configLocation" value="classpath:mybatis/mybatisConfig.xml" />
</bean>

<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
    <constructor-arg ref="sqlSessionFactory" />
</bean>

<bean class="org.springframework.jdbc.core.JdbcTemplate">
   <property name="dataSource" ref="dataSource" />
</bean>

<tx:annotation-driven trasction-manager="transactionManager" />

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
     <property name="dataSource" ref="dataSource" />
</bean>





☆☆☆☆☆properties
jdbc.vendor=mysql
jdbc.driver=
jdbc.url=
jdbc.username=
jdbc.password=
jdbc.maxTotal=
jdbc.maxIdle=

jobmgr.defaultSchedulerSize=1
jobmgr.testExecuotr.size=3

jobmgr.running.interval=60

☆☆☆☆☆vm arguments
-Djobmgr.home=C:\Batch
-Dserver.type=Local


☆☆☆☆☆logback
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="1 seconds">
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
   <encoder>
       <pattern>%-30(%d{HH:mm:ss.SSS} [%thread]) %-5level %logger{0} - %msg %n %ex</pattern>
</encoder>
</appender>


<appender name="INFOFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
   <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
       <fileNamePattern>${jobmgr.home}/logs/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
    <pattern>%-30(%d{HH:mm:ss.SSS} [%thread]) %-5level %logger{0} - %msg %n %ex</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
    <level>ERROR</level>
    <onMatch>DENY</onMatch>
    <onMismatch>ACCEPT</onMismatch>
</filter>
</appender>


<appender name="ERRORFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${jobmgr.home}/logs/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
    <pattern>%-30(%d{HH:mm:ss.SSS} [%thread]) %-5level %logger{0} - %msg %n %ex</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch><DENY</onMismatch>
</filter>
</appender>

<logger name="org.apache" level="INFO" />
<logger name="org.springframework" level="INFO" />
<logger name="com.amazonaws" level="INFO" />

<logger name="JOB" level="INFO">
   <appender-ref ref="INFOFILE" />
   <appender-ref ref="ERRORFILE" />
</logger>

</configuration>



☆☆☆☆☆logger
private static final Logger logger = LoggerFactory.getLogger("JOB");


☆☆☆☆☆mybatisconfig
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <settings>
     <setting name="cacheEnabled" value="false" />
      <setting name="useGeneratedKeys" value="true" />
     <setting name="defaultExecutorType" value="REUSE" />
     <setting name="defaultStatementTimeout" value="3480" /><!-- SQL timeout 58 minutes-->
</settings>
    
   <typeAliases>
     <typeAlias alias="VO" type="com.istoryful.VO />
   </typeAliases>

<mappers>
   <mapper resource="mybatis/mysql/DAO.xml" />
</mappers>

</configuration>


☆☆☆☆☆sql
<?xml version="1.0" encoding="UTF-8"?>

<mapper namespace="sql.DAO">


   <resultMap id="Vo" type="VO">
       <result property="test"  column="TEST" />
       <result property="test"  column="TEST" />
       <result property="test"  column="TEST" />
       <result property="test"  column="TEST" />
</resultMap>



<insert id="testInsert">
</insert>


<select id="testSelect">
</select>

<update id="testUpdate">
</update>

</mapper>