Devlopment

    Mavn 및 플러그인 설치

    Maven & JBoss 개발 환경 구축 1. Maven 설치 2. Eclipse Maven Plug-in 설치 3. JBoss 설치 4. JBoss Eclipse Plug-in 설치 5. 1. Maven 다운로드URL : http://maven.apache.org/download.cgi환경변수 설정MAVEN_HOME=C:\maven\apache-maven-3.0.3 (자신이 설치한 위치로)path=%MAVEN_HOME%\bin 2. 이클립스 Maven 플러그인이클립스 상단메뉴의 Help>Install New Softwares 2.1. m2ehttp://m2eclipse.sonatype.org/sites/m2e 2.2. m2eclipse Extrashttp://m2eclipse.sonatype.org/s..

    Java 이전 버전을 받을 수 있는 URL

    http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html#jre-6u18-oth-JPR 막상 오라클 가서 찾으려고 하니 이전 마이너 버전을 찾기가 쉽지가 않다.오라클 홈페이지에서 제공하고 있는데도 불구하고 말이다. 찾기 힘들어서 최신 버전만 올려두었나 싶었을 정도였다.

    Java 실행

    1. Java 실행법java CLASS_FILE_NAMEjavaw CLASS_FILE_NAME bat 파일에서 자바를 실행할 경우 콘솔창이 남게 된다. 이 경우에 콘솔창을 프로그램 실행 후 사라지게 하고 싶다면 도스 명령어 start를 쓰면 된다. -사용법 (bat 파일에서)- start javaw 클래스명 2. 데몬 형태 실행 (리눅스)자바 서버를 돌릴 때 주로 하며 백그라운드로 돌리게 된다.nohup 실행명령어 1>/dev/null 2>&1 & 위에 명령어에 대한 설명이 궁금하다면 [1]을 참조 3. 데몬의 중지 (리눅스) 1. ps -ef | grep java 와 같은 형태로 실행한 프로세스의 PID를 찾는다. 2. kill -9 JAVA_PID 4. 로그 파일 모니터링 (리눅스) tail 명령어를..

    HTTP Live Streaming Tools

    Apple의 HTTP Live Streaming Overview를 보다보면 이런 문구가 있다. For video on demand from prerecorded media, Apple provides a free tool to make media segment files and playlists from MPEG-4 video or QuickTime movies with H.264 video compression, or audio files with AAC or MP3 compression. . The tools are frequently updated, so you should download the current version of the HTTP Live Streaming Tools from the..

    Tomcat & Java의 memory leak 분석

    Tomcat & Java의 memory leak 분석

    쓰레드풀에서 생기는 메모리 릭 분석을 하다보니 또 포스팅하게 되었다.생각해보면 학부 이후 Java 개발을 시작한 2008년도부터 늘 걱정되는 부분이다. JVM 덕분에 메모리 관리를 하지 않아도 되서 자바가 편하지만, 반대로 메모리 문제가 생기면 정말 짜증나게 하는 것이 또 자바이다. 가끔은 내가 왜 C/C++만을 하지 않았을까 하는 후회가 들 때도 있다. C/C++을 이용하여 Visual Studio에서 개발하는 것이 그립기도 하고 순수 MFC 개발자가 부러울 때가 종종 있다. 잡설은 집어치우겠다.. 메모리 릭 현상을 분석하다가 로그의 한계가 드러났다.자세하게 분석을 해봐야겠다고 판단하였고 다시 한번 Eclipse MAT(http://www.eclipse.org/mat/)을 사용해봐야겠다고 판단되었다. ..

    Tomcat 및 Java ThreadPool에서 memory leak 현상

    Apache Tomcat6에서 구동하던 웹 애플리케이션에서 다음과 같은 에러를 발견하였다. 심각: The web application [/ AP_NAME ] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.2012. 7. 12 오후 1:58:59 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads심각: The web application [/ AP_..

    자바 기본 메소드의 구현

    toString, equals, hashCode메소드를 구현하는 방법에 대해 적는다.Effective Java에서 보면은 구현해야 할 이유와 잘못된 구현과, 올바른 구현에 대해서 알 수 있다. 예제.toString은 마음대로 구현해도 상관 없다.@Overridepublic boolean equals(Object obj) {if(obj == null || !(obj instanceof AtinStory)) return false; AtinStory inf = ( AtinStory ) obj;return id.equals(inf.id) &&name.equals(inf.name) &&index == inf.index &&subnetIp.equals(inf.subnetIp) &&netmask.equals(inf..

    MyBatis NumberFormatException 문제

    MyBatis를 이용해서 개발중에 NumberFormatException이 발생했다. 발생한 위치는 다이나믹 쿼리에서 발생했는데 그 이유를 알지 못해서 엉뚱한 곳에서 찾다가 문제를 알게 되었다. NumberFormatException의 발생 위치 이 부분인데 iBatis, myBatis를 개발한 사람들이라면 다 알 것이다.문자열 비교시에 ==를 하면 안되고 eq를 써야 한다는 것을 말이다. Java에서 문자열 비교시에 equals를 써야 하듯이 iBatis, myBatis에서는 eq를 써야 한다.iBatis, myBatis에서는 문자열에 따라서 알아서 내부적으로 파싱처리를 한다. 간단한 문법을 까먹어서 잠시 고생을 했다. 그런데 내 기억상으로는 eq로만으로 iBatis에서는 되었던 것 같은데 myBati..

    Java간의 통신

    근래 Java간의 통신때문에 고민하고 있다. 고대부터 전해오던 RMI란 유물이 있지만 이 녀석은 은근히 마음에 들지 않는 녀석이다. 현재 Java간의 통신을 만들 두 시스템은 WAS 없이 데몬으로 실행되는 서버다.서버1은 GUI와 TCP통신을 한다. 그러나 서버1과 서버2를 TCP통신을 하기에는 껄끄러운 면이 많다. 아직 고민중이지만, 통신을 하기 위해 고민했던 사항들을 나열해본다. 1. RMI 자바에서 표준으로 지원해주고 직렬화가 잘 되어있어서 편리한 면은 있지만 방화벽이 있는 경우에 문제가 있고 자바 서버(rmiregistry)를 실행해줘야 하며 통신을 하기 위한 클래스를 stub파일로 생성해주어야 하는 번거로운 면이 있다. Spring에서도 RMI를 지원해준다고 해서 찾아보았지만 자바 서버를 실행시..

    Qt(Qt Development Frameworks)란 무엇인가?

    작년에 회사에서 한 부장님이 Qt가 정말 좋다라면서 극찬을 했는데 요즘 보니 Qt를 많이 쓰는 것 같다.늘 관심이 가고 있었는데 오늘 잠시 조사를 해보았다. Qt는 Qt Development Frameworks에서 나왔다. 이 회사는 과거 Trolltech로서 2008년에 노키아에 인수되면서 노키아 내 그룹으로서 있다. Qt의 장점은 여러가지가 있지만, Qt의 홈페이지에는 다음과 같이 나와 있다. "Qt는 크로스 플랫폼 어플리케이션 및 UI 개발을 위한 프레임워크입니다. Qt를 사용하여 애플리케이션을 작성한 후에 소스 코드를 다시 작성하지 않고 다수의 데스크톱과 임베디드 운영 체제에 배포할 수 있습니다." Qt를 이용하여 C++코드를 작성하면 플랫폼에 구애받지 않고 돌릴 수 있는 것이다. 놀라워라.Emb..