기타기술
-
Java에서 MappedByteBuffer를 이용한 off-heap 사용기타기술 2021. 1. 4. 11:07
blogs.oracle.com/javamagazine/creating-a-java-off-heap-in-memory-database MappedByteBuffer, ByteBuffer 를 이용해서 자바 off-heap 데이터 스토어를 구현한 이야기. 예전(2010년 경)에 네비게이션 서비스 만드는 프로젝트 할 때 대용량 맵 데이터 로드하기 위해 썼던 방식이랑 거의 같다. 처음에는 인메모리 디비를 사용하려고 했는데, (이름이 뭐였지..기억도 안남) 성능이 나오지 않아, 결국 맵 파일을 MappedByteBuffer를 이용해서 바로 메모리에 올려서 작업했드랬다. 장점은 당연히 이렇게 메모리에 올린 애들은 자바 힙에서 관리하는 애들이 아니라 gc에 영향을 받지 않는다는 점, 그리고 데이터를 바로 오프힙에 올려..
-
Maven-assembly을 이용해 oozie 배포 구조 만들기기타기술 2013. 9. 16. 15:16
요즘 하둡을 이용하여 대량의 로그 분석을 수행하는 작업을 하고 있다. 최종 목표는 20대 이상의 서버에 발생하는 로그를 실시간으로 수집하여 분석하는 것인데 이를 위해 하둡과 하둡 생태계 내의 다양한 기술 요소들을 검토하고 사용하고 있다. 그 중 Oozie는 여러 단계에 걸쳐 처리되는 분석 작업의 흐름(workflow)을 관리하고, 주기/비주기 적으로 분석 작업을 스케쥴링하기 위한 작업을 위해 사용하고 있다. 처음에는 Spring Data를 사용할까 했는데 여러 가지 측면(reference, documentation, user base 등등…)에서 현재까지는 Oozie가 더 나은 것으로 판단 되어 최종적으로 Oozie를 선택했다. 프로젝트는 메이븐으로 구성했는데 최상위 메이븐 프로젝트를 두고 우지의 wor..
-
git, 아파치 서버 연동 방법기타기술 2012. 3. 27. 20:39
Git을 통해 협업하기 위해 저장소를 공유할 수 있는 방법은 다양합니다. 링크된 사이트에 가보면 git 저장소를 공유할 수 있는 8가지 방법이 소개되어 있기도 합니다. 이 중 제가 사용해 본 공유 방식은 git daemon, ssh server, apache http입니다. 그 중 아파치를 이용한 공유 방식이 가장 간단하면서도 효과적인 것 같습니다. Git daemon같은 경우 간단하기는 하나 외부에서 repository를 클론 할 때 문제가 생기는 경우가 있습니다. Push, pull을 할 때 이유 없이 붙었다 떨어졌다 하기도 하구요. SSH의 경우 보안이 중요할 경우 사용하는 게 바람직하겠습니다만, 설정의 부담이 있습니다. 사용자마다 계정을 발급하고 키를 생성하고 하는 절차가 필요하거든요. 아파치를 ..
-
도제식 수련 in SW기타기술 2011. 8. 27. 15:22
1 요즘 한국 SW가 위기라는 인식이 팽패해지며 여기저기서 원인을 분석하고 위기를 극복하기 위한 방법들을 찾느라 분주합니다. 정부가 나서서 한국형 안드로이드를 만들겠다고 하고, NHN은 1000억을 투자해 SW 인력을 양성하겠다고 합니다. 또 대기업이 적극적인 M&A를 통해 벤처 기업들을 사들여야 한다는 말도 합니다. 자성의 목소리도 높아 IT컨트롤 타워 역할을 할 수 있도록 과거 정통부같은 기관을 다시 만들어야 한다는 이야기도 있고 대기업 중심의 하청 구조로 인해 SW시장이 커지질 못하니 이런 구조를 개선해야 한다는 주장도 있습니다. 2 저는 시골 출신이라서 그런지 고향 친구들에 직업의 스펙트럼이 참 다양합니다. 우체부 아저씨, 광산에서 일하는 친구, 초등학교에서 소사(?)하는 친구도 있고, 축구코치에..
-
EA(Enterprise Architect)와 SVN 연동하기기타기술 2011. 8. 4. 17:40
Enterprise Architect는 Rational Rose나 Together의 계보를 잇는 CASE 툴인데 개인적으로는 지금까지 써본 Tool 중에 가장 막강하다고 생각한다. 사실, 가성비로만 따지면 따라올 자가 없다. 요즘은 CASE 도구나 UML에 집착하는 분위기 자체가 많이 수그러들었고 실제 분석, 설계를 하기 위한 목적보다는 프로젝트 산출물 작성용으로 많이 사용하지만… ^^;. 개념 정리나, 러프한 수준의 설계 목적 등 적절한 수준에서 사용하면 충분히 양질의 결과를 얻을 수 있다. 그러고 보면 문제는 항상 하는 일에 상관없이 진행되는 과도한 절차 및 문서화가 아닐까 싶다. EA와 SVN 연동을 위해서는 SVN Command Line Client가 필요하다. 다운은 여기서 받을 수 있는데 ht..
-
수렴진화, 그리고 좋은 설계기타기술 2011. 7. 25. 08:30
수렴진화 수렴진화는 계통적으로 관련없는 둘 이상의 생물이 진화의 결과로 유사한 형태를 갖게되는 현상을 말한다. 수렴진화의 대표적인 경우로는 개미와 흰개미를 들 수 있다. 개미와 흰개미 거의 동일한 형태와 습성을 갖고 있지만 기원은 전혀 다르다. 흰 개미는 바퀴벌레와 동일한 조상을 갖으며, 개미는 꿀벌, 말벌등과 유연관계를 갖는다. 그렇다면 흰개미와 개미는 왜 그렇게 비슷하게 보이는 것인가. 그 이유는 그들이 같은 종류의 생활방식으로 수렴했기 때문이다. 다음은 리처드 도킨스의 눈먼 시계공에서 기술된 개미와 흰개미의 수렴진화에 관련된 설명이다. 개미와 흰개미는 커다란 집단을 이루고 살며 이 집단의 대부분은 생식 능력 및 날개가 없는 노동 계급이 차지하고 있다. 이들 노동 계급은 날개가 달린 생식 계급을 효과..
-
개발자는 나이가 들수록 실력이 좋아진다?기타기술 2011. 7. 19. 13:42
스택오버플로우(StackOverflow)라는 사이트가 있습니다. 혹시 알고 계셨나요? 개발자들을 위한 Q&A사이트입니다. 무료에다가 구글에서 검색도 잘됩니다. 엄청난 양이 데이터가 축적되어 있어 프로그래밍 문제를 구글에 질문하면 가장 먼저, 많이 뜨는 사이트입니다. 처음에는 잘 모르고 지나쳤었는데 하도 자주 걸려서 정보를 좀 찾아보니 “조엘온 소프트웨어”로 잘 알려진 조엘 스폴스키(욕이 아닙니다.)님이 만든 사이트더군요. About 페이지에 가보면 스택오버플로우는 Wiki, 포럼, 블로그,Digg/Reddit 중간쯤에 있는 서비스라고 스스로를 소개합니다. 네 가지 서비스의 특징을갖췄다는 이야기인 것 같습니다. 그래서 그런지 아까도 말씀드린 것 같이 Q&A데이터들이 엄청나게 축적되어 있습니다. 그리고 이런..
-
잘못된 소스 파일 인코딩으로 인한 메이븐 컴파일 오류기타기술 2011. 7. 6. 19:50
메이븐 사용시 간혹 소스 파일에 대한 인코딩이 POM(Project Object Model)파일에 정의된 것과 다르게 저장될 경우 컴파일오류가 발생할 수 있다. 그런데 컴파일 에러 내용이 좀 생뚱 맞아 원인을 찾지 못하고 버벅 거릴 수 있어 팁을 남겨 본다. 예를 들어 POM.xml 파일에 자바 소스 파일과 거타 리소스 파일에 대한 인코딩이 다음과 같이 각각 euc-kr 과 UTF-8로 설정되어 있다고 가정하자. ...어쩌구 저쩌구.. org.apache.maven.plugins maven-resources-plugin 2.4.1 UTF-8 org.apache.maven.plugins maven-compiler-plugin 2.3.2 1.5 1.5 euc-kr ...어절씨구 저절씨구.. 위와 같은 경우 ..