본문 바로가기

전체 글

(37)
우리 생활의 파레토(20:80) 법칙 아래 글은 2004년에 이전 블로그에 썼던 오글거리는 글입니다. 우연히 인터넷에 제 글을 다시 찾았는데 제가 그러고 있는지 다시 돌아봐야겠네요. 20:80의 법칙 현재 프로젝트에 투입된 인원은 대략.. 140명정도 됩니다. 내가 내 나름대로 조사한 바에 의하면 프리개발자가 약 2/3가량을 차지하고 있습니다.금액도 대략 얼마정도 받는지를 알고 있습니다. 예전부터 개발자들의 마인드 및 관리자의 마인드에 대하여 글도 쓰고 많은 생각을 해왔는데 언제나처럼 여기도 20:80의 법칙을 만들어 가고 있는 곳중의 하나입니다. 인원은 많이 있어도 140명의 20퍼센트인 대략 30명정도만 핵심적인 일을 담당하고 있고 그들이 전체일의 80퍼센트를 처리하고 있다는 아이러니함입니다. 들어온 개발자들은 좋게 말해 "프리랜서"이고..
YUM Repository Build - YUM 리포지토리 만들기 본 문서의 목적은 Amazon 클라우드 상의 소프트웨어 배포를 위한 YUM Repository를 구축하는 방법을 설명합니다. Yum은 레드햇 계열의 리눅스에서 소프트웨어를 배포하기 위한 방법으로 rpmbuild를 활용하여 구축을 할 경우 손쉽게 대상 서버들로 배포하는 것이 가능합니다. 1.1 YUM repository 구축을 위한 createrepo 패키지 설치 Repository 구축은 createrepo 명령을 활용하여 만들 수 있습니다. 일반적으로 설치된 패키지에는 createrepo 패키지가 설치되어 있지 않으므로 해당 패키지를 설치 후 시스템을 구축해야 합니다. 아래의 명령어를 활용하여 createrepo.noarch 패키지를 설치합니다.[root@ip-10-100-0-10 ~]# yum ins..
JBoss EAP6 서버의 공통 라이브러리(Shared Library) 형태의 등록 # 질문JBoss 도입되는 버전에서 서버전역에서 사용가능한 공통 라이브러리 설정하는 방법을 알고 싶습니다. # 답변아래와 같이 라이브러리를 등록하시면 웹 애플리케이션 내의 클래스에서 사용하실 수 있습니다. JBoss는 modules라는 디렉토리 하위에 클래스 로딩을 osci과 같은 형태로 진행하므로 필요한 클래스를 modules 하위에 등록합니다. 라이브러리가 제공되는 경우 하위의 3번 작업 부터 하시면 됩니다. 1. 코드 작성 package com.osci; public class Test { public Test() { System.out.println("Test Created"); } public void test() { System.out.println("Test Called!"); }} 2. C..
JBoss EAP 6에서 External Directory Deploy(외부 디렉토리 디플로이) 1. 설정하는 파일이 configuration/standalone.xml 이라면 해당 파일의 deployment-scanner의 내용에 외부 디렉토리에서 디플로이를 할 수 있도록 설정을 해주도록 합니다. 2. script/env.sh 에 시스템 프로퍼티를 추가하도록 합니다.export JAVA_OPTS=" $JAVA_OPTS -Dexternal.deployment.dir=/app/deployment/biz" 3. 해당 내용을 활용하여 서비스를 기동하여 admin console로 접근 시에 아래와 같은 설정으로 나타나게 됩니다.
Python RabbitMQ Send/Receive using librabbitmq Python을 활용하여 RabbitMQ와 통신하는 경우 일반적으로 pika 모듈을 사용하여 처리를 하고 있습니다. 보통 연결라이브러리는 librabbitmq 모듈을 랩핑하여 많이 사용하는데, 이 librabbitmq를 활용하여 메시지를 보내고 받는 코드를 아래와 같이 사용할 수 있습니다. Direct exchange와 routing key를 이용하는 방식으로 통신을 할 수 있으며, exchage에 queue를 바인딩하여 처리하는 구조를 가지고 있습니다. amq.direct라는 exchagne에 HA로 구성된 큐에 데이터를 전송합니다. 해당 데이터는 TestQueue와 맵핑되어 있습니다. 1. Sender.py from librabbitmq import Connection import datetime im..
ResultSetMetaData를 활용한 테이블 컬럼 및 데이터 출력 ResultSetMetaData를 활용한 서버 데이터 출력하는 자바 프로그램입니다. package com.kick.mysql; import java.io.BufferedReader; import java.io.FileReader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; ; public class QueryExecutor { private static String sqlFile; private static int loopCount; public void start() t..
mapped statements collection does not contain value for mybatis Spring 3.X, 4.X의 MyBatis 연동시 mapperLocation에 모든 XML을 기술하기 위하여 아래와 같은 코드를 기본적으로 사용하게 됩니다. 위의 mapperLocations의 classpath:com/osci 형태로 파일을 구성했을 경우 jar 파일에서 해당 Mapper XML파일을 찾지 못해 "mapped statements collection does not contain value for " 에러를 발생하게 됩니다. 인터넷에서 다른 여러가지 상황에 대한 부분을 많이 언급하고 있지만 핵심적인 부분으로 아래와 같이 classpath 정보를 수정해보도록 합니다. 차이점: classpath vs classpath* 참고 URL: https://mybatis.github.io/spring..
Java JDBC Performance Tip-Insert, Delete Speed up! 벌써 작성한지 13년이나 된 글이네요. 추억 겸 올려봅니다. Java JDBC Performance Tip-Insert, Delete Speed up! 이전 아티클에서는 database select speedup에 대하여 알아보았다. 이번 편에서는 update를 제외한 insert, delete tranaction의 속도를 최대로 끌어올릴 수 있는 방안을 살펴봅니다. ▶ Insert, Delete Query speed up! JDBC 2.0에서는 기본적으로 scrollable한 메소드등의 유연성있는 메소드들과 batch processing에 관련된 메소드가 추가되었습니다. 그게 바로 어떤 것이냐하면 Statement, PreparedStatement 인터페이스의 addBatch(String sql), a..