목록잡다한기록 (25)
행복한 아빠
Java 9 이야기가 솔솔 들립니다. Java 9의 특징 중 가장 주목할 만한 것이 Java jigsaw라는 프로젝트에서 착안한 모듈화 시스템이라는데 대충 소개한 글로는 뭔 소리인지 몰라서 한 번 찾아봤습니다. 자세한 스펙이나 기능요소보다는 Java Jigsaw가 말하려는 개념을 구체적으로 이해할 수 있도록 정리합니다. 새로운 모듈 시스템?Java는 패키지의 name space나 패키징 방법을 제공하는 JAR 그리고 Maven이나 Gradle 같은 모듈 관련 기능 및 생태계가 비교적 잘 되어 있다고 믿었는데 난데없이 왜 새로운 모듈 시스템을 들고 나왔는지 이해가 안 갑니다.그래서 Project Jigsaw DRAFT 문서의 프로젝트의 목적을 살펴봤습니다. (http://openjdk.java.net/pr..
오늘은 집에서 소주 한 잔 하고 글을 남겨 봅니다. 이 다음은 그냥 구어체로 이야기합니다. 뭐 내 블로그니까. 크하하~ (술 취했음) 완벽(?)해지고 싶은 아키텍트얼라 빡센 프로젝트에 들어왔지. 200명이 넘는 개발자를 대상으로 아키텍처 가이드 제시해야 해... 그리고 우리는 그 당시(2005년) 최신 기술? 트랜드였던 컴포넌트 기반 설계/개발을 위한 아키텍처를 수립했어. 아주 정교한 그리고 현실적인 아키텍처로 말이야... CBD 전략우리의 전략은 이랬지(Java 그리고 j2EE를 기반으로...). 우선 컴포넌트마다 패키지를 정의해. 그리고 그 패키지에 외부에서 접근을 허락한 인터페이스를 정의해. 외부에서 우리가 작성한 컴포넌트는 이 인터페이스로만 호출할 수 있는 거야. 이건 약속이야 아키텍처니까.우리의..
(출처: http://www.redbubble.com/shop/vim+t-shirts) 오랜~만에 개발과 시스템 작업할 일이 있어 주요도구가 파워포인트, 키노트 에서 개발도구들로 바뀌었습니다. 그래서 그동안 내 컴퓨터에 없었던 개발관련 설정 중 기본적인 에디터 관련 설정을 기록해 둡니다. 뭐 매번 찾기도 귀찮으니...개발도구는 여러 개 있을지라도 에디터 관련 설정은 일단 Vim으로 맞춥니다. 내가 Vi를 좋아하는 이유마우스내 책상은 지저분합니다. 나는 노트에 그림을 그리거나 적는 습관이 있어 보통 마우스가 있어야할 오른쪽 자리에 노트가 있습니다. 도대체 마우스 놓을 자리가 없습니다. (연출사진 흠흠..) Vi를 사용하면 마우스로 손이 가는 경우가 현저히 떨어집니다. 그냥 키보드에서 손 뗄 필요가 별로 없..
어쩌다가 VoIP에 관심이 생겨 SIP 서버 중 open source 찾아 정리합니다.설치하다 보니 OpenSips와 거의 동일한 것 같아 같은 코드베이스에서 나온 게 아닌가 하는 추측을 합니다. Basic infomationsHomepage: https://www.kamailio.org Install guide : https://www.kamailio.org/wiki/install/stable/debian Version: 4.4 OS : Ubuntu 14DB는 MySQL을 사용하는 걸로... PrerequisiteAPT로 설치하려고 하기에 apt repository 작업이 선행되어야 합니다. DEB Packages First download and add our GPG key to your apt ke..
가끔 로그파일 분석이 필요할 때가 있습니다. 작은 파일일 경우는 문제가 없지만 로그파일이 기가단위가 되면 난감합니다. 파일을 간단히 자르는 법은 다음과 같습니다. 가끔 쓰다보니 항상 잊어버리네요. ㅜㅜ prompt> split 입력파일명 출력파일명 이러면 1000줄 단위로 파일을 짤라 만들어집니다. 출력파일명 뒤에 aa, ab, ac가 붙어 만들어집니다. 1000줄 단위가 아니라 더 크게 자르고 싶을 경우는 prompt> split -l 5000 입력파일명 출력파일명 와 같이 옵션을 쓰면 됩니다. 옵션 -a, --suffix-length=N use suffixes of length N (default 2) : 뒤에 붙는 (aa, ab, ..) 문자 자리수 -b, --bytes=SIZE put SIZE b..
FTP 서버를 설치하면 보안상의 이유로 FTP가 접근할 디렉토리를 정해줍니다. 예를 들어 /home/ftpdata 같이 말이죠. 이러면 FTP로 접속하면 그 외의 디렉토리는 접근할 수가 없습니다. (이미지출처) 문제 특별한 이유로 FTP로 다른 디렉토리를 접근하려고 아래와 같이 심볼릭 링크를 만들었습니다. prompt> cd /home/ftpdata prompt> ln -s /home/dykim/mydata FTP로 접근해서 mydata를 접근하려면 아래와 같은 에러만 발생합니다. ftp> cd mydata 550 /Mp3: No Such file or directory 보안상의 이유로 많은 FTP 서버가 심볼릭 링크를 허락하지 않는다고 합니다. 해결방법 이런 경우 단순히 심볼릭링크로 되지 않고 FTP가..
오늘 자료 정리하다가 언제가 쓰게 될지도 모르는 JSP 파일 발견해서 올립니다. 시중에 떠도는 파일일수도 있고 프로젝트마다 테이블 명세서 양식이 다르기 때문에 얼마나 유용할지는 모르겠습니다. 첨부파일: 사용법 중간 835번째 라인에 jdbc url 설정하는 부분만 바꾸어서 오라클 접근이 가능한 웹 애플리케이션에 배포하고 접근하면 됩니다. 양식이 다를 경우 보시면 무수한 style이 적용된것을 볼 수 있을 겁니다. 이것을 바꾸는 것은 사람이 할 짓이 아니죠. MS Word를 사용하신다면 MS Word로 양식만들어 HTML로 뽑으세요. 그리고 첨부 소스를 보면 오라클의 DB 스키만 추출하는 SQL 부분을 볼 수 있을 겁니다. 그걸 이용해서 본인의 양식에 맞게 끼워넣으시면 됩니다. 이미지출처 임시로 만든 것이..
스프링은 Java 애플리케이션의 많은 범위에서 사용하고 있는 강력한 Java 애플리케이션 프레임워크입니다. 이것은 POJO(Plan Old Java Objects)에 엔터프라이즈 서비스의 힘을 제공합니다. 스프링은 간결함과 테스트 용이성을 이루기 위해 의존성 주입(dependency injection)을 이용합니다. 스프링 빈들과 의존성 그리고 빈들이 필요한 서비스들은 configuration 파일들에 설정하는데 일반적으로 XML 형식으로 되어 있습니다. 어쨌거나 이 XML configuration 파일들은 장황하고 다루기 쉽지 않습니다. 큰 프로젝트에서 스프링 빈을 많이 정의할 경우 이 configuration은 읽기도 어렵고 관리하기도 어려워집니다. 이 기사에서 스프링 XML configuration..
HTTP 스펙에 충실하여 프로그래밍을 하려고 하는데 브라우저가 저를 또 절망에 빠뜨리는군요. 다른 것이 아니라 content negotiation이라는 걸 한 번 살펴볼라고 합니다. Content negotiation HTTP 클라이언트가 서버에 컨텐츠를 요청할 때 HTTP 클라이언트는 서버에 어떤 형식(MediaType)으로 달라는 요청을 할 수 있습니다. HTTP 헤더에 보시면 Accept 헤더가 이걸 뜻합니다. 다음 FireFox HTTP 요청 헤더를 예로 들어봅니다. GET /book HTTP/1.1 ... Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 ... 이 뜻을 우리말로 풀이하면 책(/book) 정보를 tex..