본문 바로가기

Programming

Java Deamonize Program jsvc JVM Heap Memory 설정법 jsvc 의 자세한 option 은 아래 링크에서 찾으면 된다. http://commons.apache.org/daemon/jsvc.html 예를 들어서 sample_class 가 deamon program으로 구동할때, JVM(Java Virtual Machine) 의 Heap Memory Size 의 최소값을 256 Mbyte, 최고값을 1024 Mbyte 로 하고 싶다면, -X option 을 주고 -Xms256m -Xmx1024m 이런식으로 주면된다. 그래서 다음과 같이 하면된다. jsvc -Xms256m -Xmx1024m -cp /some/dir/ sample_class 더보기
Java 1.5 class 파일을 1.4 혹은 1.3 class 파일로 변환해 주는 툴 Retrotranslator 보통 흔히 있는 일은 아니지만, Java 1.5 로 컴파일 된 class 파일들을 1.4 버전의 class 파일로 변환하고 싶은 경우가 있다. 이럴 경우에 간단하게 사용할 수 있는 툴이 있으니, 이름하여 Retrotranslator Java 1.4 혹은 1.3 의 빠진 API 를 구현하기 위해서 ASM 프레임워크를 사용하고, Concurrency 를 지원하기 위하여, Java 1.5 backport 를 사용하였다고 한다. 이 툴로 변환한 class 파일은 재대로 잘 작동하는 것을 확인하였다. 물론 아주 정확하다고 말 할 수 없지만, 급하게 필요한 경우 사용하면 좋을 거 같아서 링크를 남긴다. 관련 URL은 아래를 참조. http://retrotranslator.sourceforge.net/ 더보기
추천할 만한 Programming 관련 서적 구글링 하다가 발견한 괜찮은 블로그 1. Code Complete by Steve McConnell - Darn near a bible of software development goodness, Code Complete reminds us of our priorities. It's essential and everyone who writes code should read this book. 2. The Pragmatic Programmer by Andrew Hunt and Dave Thomas - I like to read this book at least every six months or so. It's clean, clever, clear and full of concrete tips you ca.. 더보기
Bit Vector in Java Programming 하다보면, Bit Vector 를 사용할 일이 생긴다. 그래서 찾아보았는데, 역시나 Java API 안에 Bit Vector 가 이미 훌륭하게 구현이 되어 있었다. 이름하여, BitSet class 이 클래스는 java.util package 안에 있다. java.util Class BitSet This class implements a vector of bits that grows as needed. Each component of the bit set has a boolean value. The bits of a BitSet are indexed by nonnegative integers. Individual indexed bits can be examined, set, or c.. 더보기
XCode 4 튜토리얼 XCode 4 에는 이전 XCode 에서 보다 많은 기능들이 추가되었다. 이런 기능들에 대한 좋은 블로그가 있어서, 링크를 남긴다. http://maniacdev.com/xcode-4-tutorial-and-guide/ 더보기
Refactoring 정의와 필요한 이유 이번 글은 간단하게 Refactoring의 정의와 필요한 이유에 대해서 알아 볼까 한다. Refactoring의 정의 1. Refactoring(명사) - 소프트웨어를 보다 쉽게 이해할 수 있고, 적은 비용으로 수정할 수 있도록 겉으로 보이는 동작의 변화 없이 내부 구조를 변경하는 것. 2. Refactor(동사) - 일련의 리팩토링을 적용하여 겉으로 보이는 동작의변화 없이 소프트웨어의 구조를 바꾸다. Refactoring 을 해야 하는 이유 1. Refactoring은 소프트웨어의 디자인을 개선시킨다. - Refactoring은 코드를 정돈 하는 것이다. 그래서 코드의 중복된 부분을 제거 한다. 이렇게 함으로 나중에 코드를 수정하더라도, 필요한 부분만 수정할 수 있을 뿐만 아니라, 각각의 작업데 대한 .. 더보기
10. Git commit 수정 (실수 고치기) 우리는 Git 으로 소스코드를 버전관리하면서 실수로 작성한 것을 되돌리거나 수정하길 원할 때가 있다. 이러한 일을 하기 위해서 Git 에서는 다양한 방법으로 이런 기능들을 제공한다. 이런 방법은 크게 commit 을 했는지 안했는지, commit 을 공개했는지, 안했는지에 따라 다르다. 1. commit 이 안된 실수를 수정하는 방법 방법은 간단하다. 아래의 명령어로 변경된 내용 혹은 git index 에 있는 내용을 비울 수 있다. $ git reset --hard HEAD 이해를 돕기 위해서 간단한 예제를 들어 보았다. Kona:test starblood$ cat README.md # Git reset, checkout, revert introduction README.md 파일에 간단한 내용을 추가.. 더보기
9. github 계정설정 github 를 이용하기로 마음을 먹었다면 정말 결정을 잘 내린 것이다. 라고 칭찬해 주고 싶다. 왜냐하면, 정말 좋으니까! 그래서 이번 포스팅은 github 계정 설정에 대해서 알아보고자 한다. 무슨 설정을 따로 포스팅까지 하나? 라고 반문 할 수 있겠지만, 조금 tricky 할 수 있다고 생각한다. 물론 이미 git 을 쓰는 사람들이라면 이정도 내공은 가지고 있을 거라고 생각은 하지만, 어디까지나 이번 포스팅은 본인이 나중에 헷갈릴 거 같아서 복습 차원에서 기재하는 거라고 생각된다... github 에 프로젝트를 등록하는 것 까지는 쉽지만, 자신의 PC 에서 개발한 프로젝트를 github 에 올리고 받는 작업을 하려면, github 에 접속하는 사람이 자신이라고 증명할수 있는 어떠한 방법이 필요하다... 더보기
8. github 소개 Git 을 소스코드 버전관리로 사용하는 사람들 대다수는 알것이다. Social Coding 이라는 모토를 내걸고 운영되는 github 는 이미 전세계적으로 인기 몰이중이다. 이미 twitter, facebook, rackspace, digg, Yahoo, shopify, EMI, six apart 등 많은 수의 쟁쟁한 업체들이 github 를 사용하고 있다. github 는 다양한 기능들을 지원하는데, fork, send pull request 등등 을 통하여 다른 개발자들과 협력하여 프로젝트를 진행할 수 있다. 코드리뷰, 변경이력추적, 소스보기, 이슈트래킹 등등 여러가지 강력한 기능들이 우리에게 제공된다. 프로젝트는 비공개, 공개 형태로 운영할 수 있으며, 비공개인 경우에는 요금을 지불하는 방식으로 운.. 더보기
7. Git 기본 지식 이번포스팅은 Git 을 사용하기에 앞서, Git 의 기본 지식에 대해서 공부해 보는 시간을 가지고자 한다. 이 포스팅의 그림은 Pro Git 사이트에 있는 그림들을 가져왔음을 밝힌다. Git 은 다른 버전 관리 툴들과는 달리, file 들의 변경이력을 snapshot 이라는 관점으로 관리를 한다. 예를 들어, CVS, Subversion 등은 변경이력을 변경된 정보를 저장하는 방식으로 변경 이력을 추적한다. CVS 나 Subversion 같은 툴들은 각각의 파일에 대해서 처음버전에 변경된 정보를 가진다. Git 은 프로젝트가 시간에 지남에 따라 변경되는 것들을 Snapshot 이라는 관점으로 정보를 저장한다. Git 을 가지고 프로젝트 버전관리를 하게 되면, 모든 작업을 자신의 PC 에서 할 수 있는 이.. 더보기