IT정리노트

블로그 이미지

Edward. K

메멘토적 기억능력을 소유한 개발자 노트.

'Programming'에 해당되는 글 154건

제목 날짜
  • Java 1.7 버전에서 TLSv1.2 사용 2020.06.19
  • 이클립스 SVN "Attempted to lock an already-locked dir" 2019.12.26
  • [mybatis] There is no getter for property named ..1 2019.09.11
  • The alias '' is already mapped to the value '**$1'. 2019.07.25
  • jquery crontab to 한글 2019.03.20

Java 1.7 버전에서 TLSv1.2 사용

Programming/JAVA 2020. 6. 19. 09:35
반응형

     // server가 TLS 1.2 버전만 사용할 때 Java의 경우 JDK 1.8 부터 TLS 1.2 가 기본 버전이므로 문제가 없지만, 
     // 이전 JDK 버전을 사용하는 client의 경우는 예외가 발생
     //   JDK 1.7 버전인경우 하 TLS버전 설정 필요.
     System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");
    
     URL url= new URL("https//111.222.333/44");
     conn = (HttpURLConnection) url.openConnection();

 

더보기

Java 1.7 에서는 기본값으로 SSL 암호화 통신시 TLSv1.0을 지원합니다.
IF 통신시  "sslhandshakeexception" 이란 예외가 발생한다면 서버에서 지원하는 TLS버전과
자바 클라이언트의 TLS버전이 맞지 않아 발생하는 오류임.

서버에서 TLSv1.2만 지원하는데 클라이언트가 v1.0이라면 위와 같은 예외를 던지며 SSL연결을 맺지 않습니다.
Java 1.8 부터는 TLSv1.2를 기본으로 지원하지만 그 하위 버전에서는 v1.0을 기본으로 합니다.

위와 같은 예외가 발생하면 가장 만만하게 해결할 방법은 Java 버전을 8버전으로 올리는 방법이 있지만..
통신시  아래  한줄 추가해주면,  java하위버전에서도 TLSv1.2를 지원하게 된다.

System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");

반응형
Posted by Edward. K

이클립스 SVN "Attempted to lock an already-locked dir"

Programming 2019. 12. 26. 09:32
반응형


이클립스 SVN을 사용하여 commit, update 등을 할 경우
"Attempted to lock an already-locked dir"라는 메세지가 뜨면서 안될때가 있다.

    Attempted to lock an already-locked dir
svn: Commit failed (details follow):
svn: Working copy 'D:\roi_framework\workspaces_3\MPMS_JAVA' locked.
svn: 'D:\..\codemng' is already locked.


이 경우 해당 디렉토리( 'D:\..\codemng')에서  Team > Represh/Cleanup을 하면 된다

[오류 원인]
SVN  commit, update 중에 실패하거나 오류(PC shutdown등)  발생시 생기는 현상으로
Represh/Cleanup을 통해 해당 오류를 초기화 해주면 된다.
 

반응형
Posted by Edward. K

[mybatis] There is no getter for property named ..

Programming/IBatis 2019. 9. 11. 09:42
반응형

parameterType="String" 매개변수로 넘겨서 이 값의 여부에 따라 쿼리가 변경되는 로직이 필요한데.
이경우, There is no getter for property named 'xxxx' in 'class 'xxxx'
오류가 발생한다.
어떻게해야할까..?

아래와 같이 dao단에서 호출을 한다고 할때.

List<HashMap<String, Object>> selectXXXXAreaList(String searchTxt);


파라미터 명칭을 다른 이름으로 붙여도 정상동작한다.

    <select id="selectXXXXAreaList" parameterType="String" resultType="HashMap">
        /* XXXXMapper.selectXXXXAreaList */
        SELECT AREA_CODE, AREA_P_NM+' '+AREA_NM as AREA_F_NAME
        FROM T_XXXX_AREA
            WHERE AREA_P_NM LIKE  '%' + #{keyword} + '%'
               OR AREA_NM LIKE '%' + #{keyword} + '%'
               OR AREA_P_NM+' '+AREA_NM  LIKE '%' + #{keyword} + '%'
        ORDER BY AREA_CODE ASC
    </select>

하지만 검색어 입력여부에 따라  추가적인 if 문(test)이 필요할 경우가 있는데
이 경우 넘어온 파라미터를 임의의 이름으로 사용할 경우 다음과 같은 예외가 발생한다..

    <select id="selectXXXXAreaList" parameterType="String" resultType="HashMap">
        /* XXXXMapper.selectXXXXAreaList */
        SELECT AREA_CODE, AREA_P_NM+' '+AREA_NM as AREA_F_NAME
        FROM T_XXXX_AREA
        <if test="keyword != null and keyword != ''">
            WHERE AREA_P_NM LIKE  '%' + #{keyword} + '%'
               OR AREA_NM LIKE '%' + #{keyword} + '%'
               OR AREA_P_NM+' '+AREA_NM  LIKE '%' + #{keyword} + '%'
        </if>
        ORDER BY AREA_CODE ASC
    </select>

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: 
There is no getter for property named 'keyword' in 'class java.lang.String'

이때는 명칭을 '_parameter' 로 해야 정상적으로 동작한다.

    <select id="selectXXXXAreaList" parameterType="String" resultType="HashMap">
        /* XXXXMapper.selectXXXXAreaList */
        SELECT AREA_CODE, AREA_P_NM+' '+AREA_NM as AREA_F_NAME
        FROM T_XXXX_AREA
        <if test="_parameter != null and _parameter != ''">
            WHERE AREA_P_NM LIKE  '%' + #{_parameter} + '%'
               OR AREA_NM LIKE '%' + #{_parameter} + '%'
               OR AREA_P_NM+' '+AREA_NM  LIKE '%' + #{_parameter} + '%'
        </if>
        ORDER BY AREA_CODE ASC
    </select>

 

2021-05-17 추가.. 

https://ofstack.com/Java/25565/common-problems-and-solutions-when-mybatis-parameter-type-is-string.html

더보기

일반적으로 우리는 이런 방식으로 작성하는데, 
이는 다른 유형에 적용되지만 String의 경우 다음 예외가 발생합니다.
  There is no getter for property named 'xxxxx' in 'class java.lang.String'

'class java.lang.String'에 'type'이라는 속성에 대한 getter가 없습니다.

MyBatis는 매개 변수가 String이면 인터페이스 메소드의 매개 변수가 무엇이든 상관없이 ES21en.xml의 참조를 인식하려면 _parameter로 변경해야합니다.

다른 동적 SQL 태그는 문자열을 처리 할 때 동일한 문제가 있습니다.

반응형
Posted by Edward. K

The alias '' is already mapped to the value '**$1'.

Programming/JAVA 2019. 7. 25. 19:52
반응형


inner class( **$1.class) 에서 에러가 발생했다..-_-; 

alias 제한을 너무 넓게 잡아서 발생한 문제.  범위를 세밀하게 하자..

  properties.yml 
  #  typealias 설정 
  type-aliases-package: kr.co.roit.pmis   <-패키지내 모든 파일.  
  type-aliases-package: kr.co.roit.pmis.**.entity  #    @Alias("alias명") 등록 

------------
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'commonServiceImpl': 
Unsatisfied dependency expressed through field 'commonMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'commonMapper' defined in file [D:\roi_framework\workspaces_3\MPMS_JAVA\build\classes\java\main\kr\co\roit\pmis\common\mapper\CommonMapper.class]: 
Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: 
Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: 
Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; 
nested exception is org.apache.ibatis.type.TypeException: The alias '' is already mapped to the value 'kr.co.roit.pmis.common.util.Scalr$1'.

at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:596)


Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'commonMapper' defined in file [D:\roi_framework\workspaces_3\MPMS_JAVA\build\classes\java\main\kr\co\roit\pmis\common\mapper\CommonMapper.class]: 
Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: 
Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: 
Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.apache.ibatis.type.TypeException: 
The alias '' is already mapped to the value 'kr.co.roit.pmis.common.util.Scalr$1'.
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByType(AbstractAutowireCapableBeanFactory.java:1515)


Caused by: org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]:
Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: 
Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; 
nested exception is org.apache.ibatis.type.TypeException: The alias '' is already mapped to the value 'kr.co.roit.pmis.common.util.Scalr$1'.



Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: 
Factory method 'sqlSessionFactory' threw exception; nested exception is org.apache.ibatis.type.TypeException: 
The alias '' is already mapped to the value 'kr.co.roit.pmis.common.util.Scalr$1'.

Caused by: org.apache.ibatis.type.TypeException: The alias '' is already mapped to the value 'kr.co.roit.pmis.common.util.Scalr$1'.



반응형
Posted by Edward. K

jquery crontab to 한글

Programming/JavaScript 2019. 3. 20. 10:50
반응형

crontab_to_infoStr.html
다운로드

TMS, PUSH 등을 주기적으로 전송하는 시스템을 위해 만든 크론탭 생성 스크립트.
크론탭을 모르는 일반 관리자들을 위해,.  DB 저장시엔 crontab 양식으로,  화면에 노출되는 방식은 한글로 처리 하기 위해

주기적으로 전송건이마, 전송 기한이 정해여 있기 때문에 크론탭 형식으로 등록하고 관리.

<!doctype html>
<html lang="en">
 <head>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
<!--
    $(document).ready(function() {
      translateCrontab();

       itemChange();  // 주기 세팅
       
       // 발송주기 세팅 start
       for ( var i=0 ;  i < 24 ; i ++)      
       {
            // 분
            if(i<6)
               $('#cycle_mm').append($("<option>"+(i==0?"0":"")+( i*10) +"</option>"));      
               
           // 시각
           $('#cycle_tt').append( $("<option>"+(i<10?"0":"")+i +"</option>"));             
        }
        // 발송주기 세팅 end  
    });

    /**
     * 발송 주기 변환   * crontab -> 설명  
     *    발송주기를 사용하는 ellement 에 class 선언 필수   class ='regulary_cycle'
     * @author edward  2019-03-21
     * @return 발송주기 한글 
     *   Spring Quartz crontab  형식을 한글로 변환한다.
     *        >>  1: 초(0~59)  , 2: 분(0~59) ,  3: 시(0~23)   , 4 : 일 ( 1~ 31 )   ,  5 :  월 (1~12) ,  6:  요일 ( 0~6 ) ,  7:년도(생략 )

        ? : 조건없음 [일, 요일 에서만 사용가능]
        * : 모든 조건에서 참
        L : [일, 요일 에서만 사용가능]
            - 일에서 사용하면 : 예(L) 마지막 날짜입니다. 예를들어 1월이라면 31일 2월이라면 윤년에 따라 28혹은 29일 4월이라면 30일에 참.
            - 요일에서 사용하면 : 예(6L) 6은(토요일) 마지막 토요일에 실행됩니다. 마지막주가 토요일이 없다면 그전주 토요일에 참.\


        W : [일에서만 사용가능]
                - 가장 가까운 평일(월~토)를 찾습니다.
                - 15W 라고 설정했다면 15일이 월~금 범위라면 해당 날짜에서 참.
                - 15W 15일이 토요일이라면 가장 가까운 금요일인 14일에 참.
                - 15W 15일이 일요일이라면 가장 가까운 월요일인 16일에 참.

        # : [요일에서만 사용가능]
            - 예를들어 3#2 라고 썻다면 (수요일#2번째주)라는 의미가 됩니다.
            - 즉 2번째주의 수요일에 참이 됩니다.
     */
    function translateCrontab()
    {     
         var arrList = $(".regulary_cycle");  // 발송주기를 사용하는 ellement 에 class 선언
         var cronrtabExp ;
         var crontabStr ; 

          $.each(arrList, function(index, item)
          {	  		   
              // 0: 초(0~59)  , 1: 분(0~59) ,  2: 시(0~23)   , 3 : 일 ( 1~ 31 )   ,  4 :  월 (1~12) , 5:  요일 ( 0~6 )
              cronrtabExp = $(this).text().split(" ");
              crontabStr = '';
              
            // 특정 요일    
              if(cronrtabExp[5] !="*")
              {
                  switch(cronrtabExp[5])//   6:  요일 ( 0~6 ) 
                  {
                     case '0' :  	  crontabStr =  "일" ;	  break;
                     case '1' :  	  crontabStr =  "월" ;	  break;
                     case '2' :  	  crontabStr =  "화" ;	  break;
                     case '3' :  	  crontabStr =  "수" ;	  break;
                     case '4' :  	  crontabStr =  "목" ;	  break;
                     case '5' :  	  crontabStr =  "금" ;	  break;
                     case '6' :  	  crontabStr =  "토" ;	  break;
                  }
                  crontabStr =   "매주 "+ crontabStr+"요일 ";	
              }
              else
              {	  
                  if(cronrtabExp[3] !="*"){// 특정 일    
                      crontabStr =   "매월 "+ cronrtabExp[3]+"일 ";
                  } else{  // 전체 일
                      crontabStr =   "매일 ";			  
                  }
              }
              crontabStr =  crontabStr + cronrtabExp[2] + " 시 ";//   3: 시(0~23)   
              crontabStr =  crontabStr + cronrtabExp[1] + " 분"; //   2: 분(0~59)
              // crontabStr =  crontabStr + cronrtabExp[0] + " 초" //   1: 초(0~59)   parseInt    
              //crontabStr = " [ "+ $(this).text() + " ] "+crontabStr ;              
              $(this).text(crontabStr);
          }); 	 
    }

    function itemChange()
    {        	 
        	var cycleDD = ["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일"];  // 매월 
        	var cycleW = ["일요일","월요일","화요일","수요일","목요일","금요일","토요일"];  // 매주 
        	 
        	var selectItem = $("#cycle_1").val();        	        	 

        	$('#cycle_2').empty();
        	
        	if(selectItem == "매일")    {
				$('#cycle_2').hide();	
 
        	}else{
				$('#cycle_2').show();	
				
	        	var changeItem;
            	if(selectItem == "매월")        	  changeItem = cycleDD;        	
            	else if(selectItem == "매주")      changeItem = cycleW;  
            	
     		   for (var j in changeItem) { 
    	      	   var option = $("<option>"+changeItem[j]+"</option>");
    	      	   $('#cycle_2').append(option);
          	   }
        	}       
    }  // en itemChange
   //-->
</script>
</head>
<body>


<!--  crontab to 한글 주기 설명 변환 -->
  0 40 3 * * 2 : <span class="regulary_cycle">0 40 3 * * 2</span></br>
  0 20 3 * * * : <span class="regulary_cycle">0 20 3 * * *</span></br>
  0 0 4 19 * * : <span class="regulary_cycle">0 0 4 19 * *</span></br>
  0 0 1 * * 1 : <span class="regulary_cycle">0 0 1 * * 1</span></br>
  

<!-- 주기 선택에 따른 선택 사항 자동 변경 -->
<select id="cycle_1" onchange="itemChange()" style="width:60px;">
    <option>매월</option>
    <option>매주</option>
    <option>매일</option>
</select>  <!--   월/주/일  -->								 
<select id="cycle_2" style="width:60px;">	</select>    <!--  일자/요일  -->
<select id="cycle_tt" style="width:40px;"> 	</select>시     <!--   시간 -->
<select id="cycle_mm" style="width:40px;">	 </select>분     <!-- 분 -->

 </body>
</html>

JAVA 단에서는 실행주기에 따른 다음 실행일(getCronTabData)을 등록하였다.  

    public String getCurrentDate(String format) {
        SimpleDateFormat dateFormat = new SimpleDateFormat(format);
        long now = System.currentTimeMillis();
        return dateFormat.format(new Date(now));
    }

    public int getDayOfWeek(String dateStr) {
        // dateStr = "2020-07-12";  

        dateStr = dateStr.replace("-",""); 
		Calendar calendar = Calendar.getInstance(); 

		int year = Integer.parseInt(dateStr.substring(0,4));
		int month = Integer.parseInt(dateStr.substring(4,6)) -1 ; // 입력월. 
		int day = Integer.parseInt(dateStr.substring(6)) ; // -1;
        System.out.println(  "year : "+year +   "  /   month : "+month  +"  /   day : "+day );

        calendar.set(year, month, day);
		int o_lastDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println(  "o_lastDay : "+o_lastDay  );
  
        return calendar.get(Calendar.DAY_OF_WEEK);     // 1(일) ~7(토) 
         
    }
    
    
    
	// 날짜 더하기
	//
	// @param dt(날짜) , y(년) , m(월), d(일)
	// @Exam  addDate("2019-03-21",1,6,1) -> 2020-09-22
	// @return String 
	//
	public String addDate(String dt, int y, int m, int d) throws Exception  {
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
	
		Calendar cal = Calendar.getInstance();
		Date date = format.parse(dt);
		cal.setTime(date);
		cal.add(Calendar.YEAR, y);      //년 더하기
		cal.add(Calendar.MONTH, m);     //월 더하기
		cal.add(Calendar.DATE, d);      // 더하기
		
		return format.format(cal.getTime());	
	  }
     
     //이번주 해당요일의 날자를 구함 .
     // @author   edward  
     // @param dateStr
     // @return
     //
    public String getCurrentWeekDate(String dateStr, int dayofWeek ) throws Exception  {
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		Calendar cal = Calendar.getInstance();
		Date date = format.parse(dateStr);
		cal.setTime(date);
    	cal.set(Calendar.DAY_OF_WEEK, dayofWeek);    // 일요일 (1) ~ 토요일(7)
		return format.format(cal.getTime());
    }


 
	public String getCronTabData(Map<String,Object> params) {
		String  nextSendDate = this.getCurrentDate("yyyy-MM-dd");  // yyyyMMdd   오늘 날자 이후로 cycle에 맞게 등록. 
		String cycle_1 = String.valueOf(params.get("cycle_1"));                               //   매월, 매주,매일
		String cycle_2 = String.valueOf(params.get("cycle_2"));                               //  매월 (1일 ~ 31일)  ,   매주 (일요일 ~ 토요일)  ,         매일 (없음)
		int cycle_tt =  Integer.valueOf(String.valueOf(params.get("cycle_tt")));       //  시간 : 00 ~ 23
		int cycle_mm =  Integer.valueOf(String.valueOf(params.get("cycle_mm")));  // 분 : 00 ~ 50 10분단위		
		int todayDayOfWeek = this.getDayOfWeek(nextSendDate.replace("-", "")) ;//  오늘날자의 요일 가져오기   //  1 (일) ~ 7 (토)

	    /*
	     *  PUSH_CYCLE ( 발송주기)은   Spring Quartz crontab  형식으로 저장한다.
		         >>  1: 초(0~59)  , 2: 분(0~59) ,  3: 시(0~23)   , 4 : 일 ( 1~ 31 )   ,  5 :  월 (1~12) ,  6:  요일 ( 0~6 ) ,  7:년도(생략 )
				  초   분   시  일  월  요일  년도(생략)
		          0    0     3   *   *   *                매일 3시    
		          0  30  0/1   *   *   *                매 시각 30분  
		          0    0   18   *   *   3                매주 수요일  6시   				          
	    */
		StringBuffer  pushCycle = new StringBuffer("0"); //초
		pushCycle.append(" ").append(cycle_mm);  // 분
		pushCycle.append(" ").append(cycle_tt);  // 시 	 
 
		if(cycle_1.equals("매월")) {		
			
			// 다음 실행일 세팅 : 등록한 날자가 오늘보다 같거나 작은 경우 다음주에 실행
			int todayDD = Integer.parseInt(nextSendDate.substring(8));
			int cycleDD = Integer.parseInt(cycle_2.replace("일", ""));
	        if(todayDD >=  cycleDD ) {;   
	        	nextSendDate = this.addDate(nextSendDate,0,1,0) ;  
	        }				
			pushCycle.append(" ").append(cycleDD);  // 일
			pushCycle.append(" *");  // 월
			pushCycle.append(" *");  // 요일
			
		}else if(cycle_1.equals("매주")) {
			pushCycle.append(" *"); // 일   
			pushCycle.append(" *");  // 월
			pushCycle.append(" ");  // 요일			
			
			String dayOfWeek   =   cycle_2.substring(0,1);  // dow : Days Of The Week
			int cycleDayOfWeek =0; 
			
			if(dayOfWeek.equals("일"))     	  cycleDayOfWeek = 1;    //pushCycle.append(0);  
			else if(dayOfWeek.equals("월"))    cycleDayOfWeek = 2;    //pushCycle.append(1);  
			else if(dayOfWeek.equals("화"))    cycleDayOfWeek = 3;    //pushCycle.append(2);  
			else if(dayOfWeek.equals("수"))    cycleDayOfWeek = 4;    //pushCycle.append(3); 
			else if(dayOfWeek.equals("목"))    cycleDayOfWeek = 5;    //pushCycle.append(4); 
			else if(dayOfWeek.equals("금"))    cycleDayOfWeek = 6;    //pushCycle.append(5);  
			else if(dayOfWeek.equals("토"))    cycleDayOfWeek = 7;    //pushCycle.append(6); 
			else 		return  "푸시 등록에 실패 하였습니다 관리자에게 문의하여 주십시오.";			
			
			pushCycle.append(--cycleDayOfWeek);  // 요일	  일(0) ~ 토(6) 	

			// 다음 실행일 세팅 :   등록한 요일 정보가 오늘보다 같거나 작은 경우 다음주에 실행				
        	nextSendDate =  this.getCurrentWeekDate(nextSendDate, cycleDayOfWeek ); // 이번주 주기를 세팅한다. // 일요일 (1) ~ 토요일(7)
	        
			if( todayDayOfWeek  >= cycleDayOfWeek) {
	        	// addDate( 기준일자,년,월,일) ;   
	        	nextSendDate = this.addDate(nextSendDate,0,0,7) ;  
			}				
			
		}else if(cycle_1.equals("매일")) {
			pushCycle.append(" *");  // 일
			pushCycle.append(" *");  // 월
			pushCycle.append(" *");  // 요일
			
		}else {
			return "푸시 등록에 실패 하였습니다 관리자에게 문의하여 주십시오.";			
		} 
		return pushCycle.toString();  // 발송 주기 	
	}
반응형
Posted by Edward. K
이전페이지 다음페이지
블로그 이미지

메멘토적 기억능력을 소유한 개발자 노트.

by Edward. K

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

태그

  • eclipse plugin
  • Jboss
  • 색상코드표
  • 개한민국
  • iBATIS
  • 플래시 게임
  • 전자정부프레임워크
  • 이미지 편집
  • tomcat
  • EditPlus
  • netbeans
  • 가상화폐무료
  • flex
  • 사업 이야기
  • toad
  • EkNote
  • Flash Player
  • Graphic
  • sqlgate
  • 중독성게임
  • 컴퓨터 관리
  • egov
  • rocketdock
  • android
  • 이클립스
  • STS
  • 캡쳐툴
  • Eclipse
  • ERwin
  • 미네르바

글 보관함

«   2025/12   »
일 월 화 수 목 금 토
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

링크

카테고리

분류 전체보기 (792)
행운이와함께 (1)
EkNote Project (18)
ARIS (0)
Android (2)
LINK (39)
UML (9)
Programming (154)
Cobol (0)
ASP (0)
CSS (5)
C_C++ (2)
IBatis (2)
JSP (3)
JAVA (76)
JavaScript (44)
PHP (2)
Utility (76)
Protable (3)
MobileProgram (4)
SKT (0)
KTF (0)
LGT (0)
자료들 (4)
DB (82)
mongoDB (0)
MySQL (8)
Oracle (61)
MSSQL (4)
Graphic (8)
Flash (3)
PhotoShop (3)
SourceFactory (4)
Collection (73)
작가의기막힌상상력 (14)
미소를찾아보는공간 (44)
내심장은작동중일까 (6)
멀더와스컬리의노트 (3)
이건어디에사용할까 (6)
Edward (275)
나만 알기엔 아까워 (100)
기억하기 위한 기록 (123)
시선이 머무는 공간 (50)
숨기고 싶은 이야기 (2)

카운터

Total
Today
Yesterday
방명록 : 관리자 : 글쓰기
Edward. K's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

IT정리노트

메멘토적 기억능력을 소유한 개발자 노트.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 분류 전체보기 (792)
    • 행운이와함께 (1)
    • EkNote Project (18)
    • ARIS (0)
    • Android (2)
    • LINK (39)
    • UML (9)
    • Programming (154)
      • Cobol (0)
      • ASP (0)
      • CSS (5)
      • C_C++ (2)
      • IBatis (2)
      • JSP (3)
      • JAVA (76)
      • JavaScript (44)
      • PHP (2)
    • Utility (76)
      • Protable (3)
    • MobileProgram (4)
      • SKT (0)
      • KTF (0)
      • LGT (0)
      • 자료들 (4)
    • DB (82)
      • mongoDB (0)
      • MySQL (8)
      • Oracle (61)
      • MSSQL (4)
    • Graphic (8)
      • Flash (3)
      • PhotoShop (3)
    • SourceFactory (4)
    • Collection (73)
      • 작가의기막힌상상력 (14)
      • 미소를찾아보는공간 (44)
      • 내심장은작동중일까 (6)
      • 멀더와스컬리의노트 (3)
      • 이건어디에사용할까 (6)
    • Edward (275)
      • 나만 알기엔 아까워 (100)
      • 기억하기 위한 기록 (123)
      • 시선이 머무는 공간 (50)
      • 숨기고 싶은 이야기 (2)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바