프로그래밍일반2014/01/01 17:25

lombok (http://projectlombok.org/을 쓰기시작한지 1주일이 되었습니다. 


아직 뭐라고 하기 어려운 상황에서 서버 프로그래머의 간단히 느낀점을 이야기 해볼까 합니다.



1. 왜 쓸까?


2013년 8월경에 lombok을 쓰자는 이야기가 나왔을 때 저의 반응은 "왜?" 였습니다. 

서버 프로그래밍에서 많은 경우 모델객체는 한번 쓰고 수정되는 경우는 적습니다. 

그리고 getter, setter, toString 정도는 이클립스에서 생성해줍니다.


그 당시에는 그다지 쓸 필요를 느끼지 못했습니다. 


2. 써보자!


서버 로직이 아닌 툴을 만들면서 선임께서 lombok을 쓰자고 하셨습니다. 

모델 객체 만드는 시간적 비용을 줄이고, 좀 더 스크립트 언어 처럼 개발하자! 라는 이유 입니다. 


3. 써봤더니 이상하다


getter, setter, toString이런거 까지는 뭐 쓸만한데, deligate가 문제 였습니다. 

저는 평상시에 모델객체가 composite  되는 경우에 deligate를 사용하였는데

lombok은 A,B 객체간 충돌난 메소드를 구별하기 위해서 interface를 사용하여 한쪽의 특정 메소드들을 제거 할 수 있습니다. 


문제는 이렇게 될 경우 나중에 lombok을 이용하여 deligate를 사용할 경우 기존 클래스에 interface를 상속해 주어야 합니다. 

-0-


4. lombok은 잘못이 없다. 


이런점을 공유 했더니 돌아온 피드백은 "모델을 그렇게 쓰는게 맞을까?, 우선 lombok이 원하는건 그게 아닌데" 였습니다. 

모델 객체를 만드는 것에 대해서는 좀더  공부를 해야 할 것 같습니다. 


5. lombok을 쓰면 변경에 좀 더 자유롭다


getter,setter, toString을 직접 개발 하게 되면 eclipse를 쓰던 안쓰던, 맴버 변수를 추가, 삭제할 경우 귀찮아 집니다. 

정말정말 귀찮아 지는데, 유지보수가 아니라 초기 개발의 경우 더욱 그렇게 되는것 같습니다.


lombok을 쓰면 알아서 메소드들을 만들어 주니까 변경에 좀 더 자유롭습니다.

그리고 좀 더 일관적인 코드 개발이 가능해 집니다. 


6. lombok을 좀 더 써봐야겠습니다. 


이제 1% 정도 알겠고 자세한건 잘 모르겠습니다. 

더 써봐야 겠네요 ㅜㅜ








 




저작자 표시 비영리 동일 조건 변경 허락
Posted by dosuser(신대용) dosuser
Web2013/11/14 23:09

An Errors/BindingResult argument is expected to be immediately after the model attribute argument in the controller method signature



처음으로  Spring 3.1 에서 Valid 를 쓰는데 RequestMapping이 될 메소드의 파라메터 구성이 혼란 스러웠다.


상용 소스를 수정하던거라 구지 예제 코드를 넣기는 좀 그렇고...


처음 View를 보여줄 핸들러는 아래와 같았다..... 그랬더니  

@RequestMapping("modify.do")

public String modify(@RequestParam(value = "modifyId", required = true) Integer modifyId, @RequestParam(value = "action", required = false) String action,  RedirectAttributes redirectAttributes,Model model, SessionStatus sessionStatus,BindingResult bindingResult)  




An Errors/BindingResult argument is expected to be immediately after the model attribute argument in the controller method signature


이런 에러가 떨어진다.


@valid가 적용되지 않은 메소드에 BindingResult를 쓰는것이 문제다.-_-;;;





저작자 표시 비영리 동일 조건 변경 허락
Posted by dosuser(신대용) dosuser
프로그래밍일반2013/10/17 23:30


sqlitebrowser_200_b1_win.zip


저작자 표시 비영리 동일 조건 변경 허락
Posted by dosuser(신대용) dosuser
인생 재 설계2013/08/16 00:22

우앙 -_-

여친느님이랑 놀다가 집에 오는 길에 이대로는 잠을 못잘것 같아 야식을 찾아 집 근처를 잠시 헤매였는데,

사실 그동안 내가 부천에서 잠만 잘 뿐이지 제대로 생활을 안 했었는데 집 근처에 있는 식당들이 모조리 바뀌어 있었던게 신기했다.

그리고 더 신기한건 아직 현호 분식이 남아 있다는거?

어떻게? 어떻게?

아이들이 아직도 그곳을 가나? 다음에 평일에쉴 일이 있다면 초딩들 학교 끝날 때 가봐야 겠다.

초등학교때 가고 중학교때 지현누나가...그러고 보니 지현누나라는 어감 자체가 되게 낯설다.

맛있는거 사달라고해서 돈이 없다고 했더니 가자고 했던게 그곳이었고 그 정도는 아니라고 해서 간게 용우동...

되게 잘 기억 하고 있네, 나름

지난번에 현호분식 갔을때는 늙은 아저씨 혼자서 가게를 하던데.. 이제는 더 늙어서 완전 할아버지겠지?

요즘 애들은 다들 깔끔 떨어서 그런데 안갈것 같은데...

내가 초등학교때 학교앞 떡볶이집 그모양 그대로 인데.. 안갈꺼 같은데 쩝;;

암튼 뭔가 아쉽다.


그러고 보니깐.. 고입때 내 첫사랑 김헤림이 심원고 간다길래 난 학교를 4단계인가 낮춰서 심원고에 갔는데...

실제로 그 사람 생각은 3년중에 10시간도 안했던거 같다 -_- 정말 다사다난했던 고딩 생활 ㅎㅎ


저작자 표시 비영리 동일 조건 변경 허락
Posted by dosuser(신대용) dosuser
인생 재 설계2013/08/13 00:52

오늘 하루도 어떻게 지나간건지 ㅡㅡ 결국 모든게 다 내문제 같다.

회사에서 내가 야근해서 아프길바라는 것도 아니고 단지 잘해서 돈버는게 목표인곳이 회사인데....

오늘 내가 해야할 것으로 플래너에 쓴 두가지 일 중에 하나를 피곤하다며 다 못마치고 회사에서 나왔다.

그중하나는 다른 쪽으로 아예넘겼으니 할말도 없고.... 흠... 매일 아침 스크럼이 그냥 반성의 시간 같이 느껴진다.

야근이 야근이 아니라 정말 늦공부 하는 느낌을 지울수가 없다. 없다를 없당으로 나도모르게 써버렸당. ㅡㅡ

아무래도 미쳤나보다 ㅎㅎ 

이제 스타벅스커피를 너무 마셨더니 그 특유의 맛없음이 질려간다... 그래도 회사ㅡ커피 보다는 맛있는데.. 엔젤리너스 보다도 맛나는데 ... 당췌 뭘 마셔야 할지.... 먹지 않으면 하루종일 집중이 안돼니 큰일이다.

오늘도 오늘의 야식으로 새우튀김에 떡볶이에 무알콜맥주라니 ㅜㅜ 뉴뉴다 정말....


과연 오늘은 잠들수 있을랑가....



저작자 표시 비영리 동일 조건 변경 허락
Posted by dosuser(신대용) dosuser
인생 재 설계2013/08/11 23:36

2013년 8월 11일


정말 바보 같이 중3이나 할짓들을 하고 있다.

오늘은 친구들이랑 같이 게임을 하다가 애들이 놀리는거에 열받아서 게임중에 짜증나게 하는 자식에게 전번 까자고 하질 않나 친구들에게 그동안의 본심을 그대로 말해 버렸다. 피씨방에서 애꿎은 마우스에세 화를 내고 욕이나 하고.... 정말이지 요즘 중3들도 안할 짓들을 하고 있다.... 요즘 중3이라면 어떨까....


아무래도 매일매일 일기를 써야 겠다.. 정말 일기를 쓰지 않으면 내가 나를 잊어 버릴지도.. 요즘 일기를 쓴다는것 자체가 굉장히 중2병적인건데... 사실 중2병이 나쁜것도 아니고... 다들 중2를 겪었으면서... 게다가 나같은 사람은 중2의 자기 암시가 지금까지 그대로 흘러와서 나를 자극했고 그것 때문에 겨우겨우 살았던 것 같은데....흠;;;;


예를들면 내 안에는 아직도 인욱이가 졸업식날 자기네 고등학교 벽면에 만든 큰 탈출구가 있고 휘린이의 맨발과 후추라면 종태와의 처참하게 당한 17:2, 영헌이 형이나 계속 베베 꼬는 지금은 이름도 생각이 나지 않는 누나의 머리카락 꼬기, 우준이, 그리고 사무실에서 미친듯이 마셨던 술, 그리고 보니 내 인생에서 꽤나 중요했다고 생각했던 사람의 이름들이 하나씩 기억이 안난다. 


아무튼 그 사람들 한명한명이 어떤 이미지로 그대로 내 안에 들어와서 살고 있다. 실제 그들이 어떤 사람이고 지금은 나랑 어떤 관계인지 와는 아무런 상관이 없는 그냥 그 때의 그 사람 한명 한명이 심지어 인욱이가 여사라고 부르는 인욱이의 어머니 마저 도당산에서 그냥 그냥 담배와 술과 여자에 쩔어있던 인욱이가 그리고 파시즘에 미쳐 있던 종태가 라이딩과 별에 미쳐 있던 내가 모든 사람이 지금 다시 만나면 굉장히 껄끄러운 사이임에도 그 사람들 한명한명이 내가 힘들거나 미쳐 있을때, 업되어 있을 때 만화에 나오는 천사나 악마처럼 내 옆에 나타나서 한마디씩 돕는다. 


그 수많은 말 중에 어느 하나 안정이니 상식이니 하는것들과는 거리가 너무 멀어서 매일 현실을 못보니 사람들이 "자기 만의 세계"가 너무 쎈거 같아요 라는 말이나 듣고 있는데 사실 작품을 하는 사람들에게는 이게 제일 중요하다. 이 자기 만의 세계를 다른사람들에게 보여주면서 이걸 상업적인 성공으로 이끌고 많은 사람에게 영향을 주는것이 작가의 최종 목표일진데, 난 작가가 아니다.  내가 하고 있는 것은 지극히 상업적이고 아무 감정이 없는 제품들을 찍어내는거...


그럼 나는 작가가 되어야 하는것일진데... 작품 활동을 하려면, 작가가 되려면 가져야 하는 요건중에 많은 것들이 나에게 없으니 그중에 하나가 제일 중요한 타인과의 공감능력인데 내 옆에 있는 여자가 가지고 있는 이 능력은 정말이지 부러울 뿐이다. 그리고 누군가가 말하는 백수기질이라는게 있어야 할텐데 나는 현재의 내 삶을 놓을수 있는 자신감? 그 어떤게 없다. 


어떻게 하지? -_-;;;;


그리고 이상과 현실사이에서 가장 큰 문제가 이상만 보다 보니깐 현실에서의 문제들이 존재 하는게 내 일정관리다 하고 싶은것은 산더미 같은데 당장 내 눈앞에 있는 일들도 있고 그러다보면 둘중에가 아니라 100가지 중에 어떤것을 먼저 해야 할지 모르는 상황이고 그것이 지금 내 회사일에서 날 좀먹고 있는 것중에 하나다. 지금 회사에서 하고있는 일은 지극히 별것도 아니고 내 역활도 굉장히 모호해서 내가 뭘 해야 할지 모르겠는데 그러다 보니깐 별것도 아닌 일을 못하고 있다. 이건 컴퓨터 능력이나 이런것과는 너무 다른 그냥 사람의 성향에 대한 문제인데 이런 종류의 문제는 회사에서 제일 싫어하는 것중에 하나고 고치기도 웬만해서는 어려운 문제;;; 그러고 보니 오늘 생각했던것 중에 컨텍스트 스위칭이 있는데 나의 컨텍스트 스위칭 비용은 너무 나도 큰것같다. 일이 100가지면 그냥 하나씩 해도 될텐데 나는 이걸 시분할로 하고 않았으니 어떤 일이든 매끄럽게 될리가 없다.;;;


나는 내  옆에 있는 사람에게도 내가 하고싶은말을 말로써 하는게 굉장히 힘드니깐 글로 쓸수밖에 없다. 매일매일 글을 쓰는거 빼고는 할수있는게 없는 사람인데;; 그간 글을 안써서인지 문장력과 문법은 정말 요즘 문법 따지는 인터넷 초딩들 보다 훨씬 못하니 뭐라 할말이 없다.


난 2007년 2008년인가.. 그 때 부터 사실 목표를 잃었다.  부모를 모시고 사는게 꿈이었는데 부모가 날 버렸다. 두번씩이나... 그래서 목표를 찾는게 목표인 채로 살았는데 지금 내 목표는 그냥 돈을 버는게 되어 버렸다는걸 알아채가고 있는 중이다.

그러다 보니 돈을 벌어서 내가 쓰지 못하면 지금 처럼 심각한 정신 상태를 유지할 수 밖에없다.. 더 많은 돈 더 많은 소비 그것만 지금껏 한 6년째 하고 있는것 같다. 진짜. 지독하게 쓰기만 한것 같다. 내가 벌었던 돈주에 10%씩만 모았어도 이렇게 죄책감을 느끼지는 않았을 텐데 정말 형편없다고 매일 생각한다. 그리고 돈을 더 모아야 하는 것도 맞는데 계속 쓰고 싶은 욕구만 있으니;;; 참 답 않나오는 인간이다. 


2013년이 되면서 무언가 해내겠다고 집에 있는 물건들을 하나씩 하나씩 버렸는데 지금 보니깐 집이 다시 쓰레기 통처럼 버려야 할것들로 천지다. 도대체 왜 나는 이렇게 쓸데 없는 것들을 이고 사는지 모르겠다;;; 내 손에 3개월 이상 닿지 않은 물건들은 앞으로도 3개월 이상 쓰지 않을 물건들인데;; 그냥 눈앞에 가득가득 쌓아 놓고만 있다. 정말 나는내가 집중해야 할것이 무엇인지 모르는거;;;; 

으아아;;;; 

결국에 내가 해야 하는건 회사에서 시킨거 제대로 하고 칼퇴하고 집에서 제때 자고 남는 시간에 공부하고 글쓰고 신선한 식품먹고 조금씩 먹고 운동하는거 이건데;;; 왜 이게 안될까;;;

진짜 별거 없는데;;; 이걸 못해서 나 스스로에게 너무 많은 실망감을 느끼고 주변 사람들에게 짜증만 부리고 있다 완전 애다. 과연 휘린이가 이런날 보면 뭐라고 할까.. 예전에 그 지지배가 이야기했던게 "난 놀면서도 100점 받을 수 있는데" 였다. 그 당시 나는 신나지도 않게 놀고 성적도 떨어졌던것같다. 지금 생각해보면 그때 내가 해야 했던건 공부가 아니라 사업이었다. 인욱이나 종태나 영주에게 너무 많은 물이 들어버린 나는 그때 사업을 했었야 했던건데 나는그걸안했다. ㅜㅜ  걍 난 뭘 잃을 용기가 없는거다. 언능 약처 먹든 뭘 하든 자야지... 


그리고 매일매일 일기 써야지








저작자 표시 비영리 동일 조건 변경 허락
Posted by dosuser(신대용) dosuser
WEB-디자인2013/05/24 14:05

출처 : http://www.famfamfam.com/lab/icons/silk/



famfamfam_silk_icons_v013.zip







저작자 표시 비영리 동일 조건 변경 허락
Posted by dosuser(신대용) dosuser
Linux/설치/설정2013/01/28 10:42

리눅스 상에서 툴이나 배치를 만들때 서버간 remote command 가 필요한 경우가 있는데

인증에 있어서 별다른 구축을 하지 않는다면 보통 ssh 인증서를 이용한 로그인을 하게 되는데...

이거 거의 뚤린다고 보면 된다;;;; 그래서 실제 IDC에서 종종 거절하는 경우가 있는데 그렇다고 안쓰기도 뭐하다;;;


게다가 간단한 테스트용스크립트를 돌릴때 자동으로 ssh 패스워드를 입력하여 동작하면 참 좋겠다는 생각이 들때가 있다.

이럴떄 사용하면 좋은 것이 sshpass 이다.



sshpass-1.05.tar.gz



파일 안에 있는 readme 읽고! (읽으라면 읽는거다 !) 컴파일 하여 사용하면 됩니다.



저작자 표시 비영리 동일 조건 변경 허락
Posted by dosuser(신대용) dosuser
분류없음2012/12/12 12:35


아... "한국 영업인 협회" "심현수 회장" ???


정말 어처구니가 없는 양의 스펨을 계속 보내는데 질렸습니다;;;


아무리 신고를 하고 또 해도 계속 오는 스팸;;;;


ㅜㅜ 제발 망했으면 좋겠네요


진짜 계속 키사에 있었으면 내 필시 다시는 스팸을 못보내게 했을텐데 ㅜㅜ




저작자 표시 비영리 동일 조건 변경 허락
Posted by dosuser(신대용) dosuser
Linux/일반2012/10/17 03:12

tcpdump를 이용하여 http 본문 메시지를 보고 싶을 때 


tcpdump -A dst port 8080 -s 1500



-s 옵션을 주지 않으면 메시지가  잘려서 나오는 경우가 존재 한다. 

아래와 같이 나오면 http 메시지가 잘려서 보일 것이다.


tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes


이때 -s 옵션을 주어 capture 크기를 늘이면 된다.



Posted by dosuser(신대용) dosuser
분류없음2012/07/18 13:08

Jmeter를 이용하여 성능 테스트를 할 때, 

기본적인 http가 아닌 다른 유형의 요청을 하고 싶은 경우에는  별도의 클래스를 만들어야 한다.

본인은 MongoDB의 성능을 측정이 필요 하였다.


기본적인 코드 작성은 http://www.javajigi.net/pages/viewpage.action?pageId=184  을 참고 하였으며 좀 더 편하게 하기 위해서 걍 내 나름 대로 작성하였다.


순서는 다음과 같다.


1. Jmeter 다운로드

2. 이클립스 Java 프로젝트 생성, lib라는 폴더 생성

3. lib 폴더에 있는 모든 라이브러리를 lib라는 폴더에 복사, 모든 Jar 클래스 패스에 추가

4. 내 나름의 클래스 만들기

5. Jmeter의 lib 폴더에 내가 사용하는 라이브러리 파일들( log4j등 )넣기 

 ** 안 넣은 경우 에러도 안 내보내고 실행도 안됨 **

6.프로젝트에서 완성된 소스를 jar로 추출

7.jar를 Jmeter의 lib/ext 폴더에 복사한 이후 Jmeter실행



라이브러리를 Eclipse내에서 만든 java 프로젝트에다가 몽땅 추가


빌드 패스에 추가 한다.


package com.digicap.mongo.test;


import java.net.UnknownHostException;

import java.util.HashMap;


import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;

import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;

import org.apache.jmeter.samplers.SampleResult;


import com.digicap.xpg.mongodb.MongoDBConnector;

import com.digicap.xpg.mongodb.MongoDBConnectorDetail;

import com.mongodb.MongoException;


/**

 * 샘플 클래스

 * @author dosuser

 *

 */

public class SamplerExample extends AbstractJavaSamplerClient {


@Override

public SampleResult runTest(JavaSamplerContext arg0) {

SampleResult results = new SampleResult();

System.out.println("runTest");

try {

// Record sample start time.

results.sampleStart();


MongoDBConnectorDetail connector = new MongoDBConnectorDetail();

connector.connect("localhost:27018","test",false);


//연결후  블라블라


results.setSuccessful(true);

}catch (Exception e) {

getLogger().error("SleepTest: error during sample", e);

results.setSuccessful(false);

} finally {

results.sampleEnd();

}


System.out.println("runTest fin");

return results;

}



}


저작자 표시 비영리 동일 조건 변경 허락
Posted by dosuser(신대용) dosuser
Linux/설치/설정2012/06/27 18:21

Probe가 톰켓 모니터링을 위한 꽤나 괜찮은 선택이지만 웬일인지 ( 아마 돈이 없어서 겠지요)

http://www.lambdaprobe.org/ 가 현재 접속이 안되고 있습니다. 


그래서 제가 가지고 있는 Probe를 업로드 합니다. 


1. Lambda Probe download


probe.war



2. probe 배치 

톰켓 기본 설정을 그대로 이용한다면

톰켓 설치 위치의 webapps/ 에 probe.war를 복사해 놓기만 하면 설치가 완료 됩니다.


만약 auto deploy 를 false로 설정 하셨다면 압축을 풀어 놓으면 됩니다.


3. conf/tomcat-users.xml 수정


probe를 사용하기 위해서는 톰켓 설치 위치의 conf/tomcat-users.xml을 수정 해야 합니다. 

수정 때 roles 에 manager를 추가 하면 probe에 접속 가능합니다.


<?xml version='1.0' encoding='utf-8'?>


<tomcat-users>

  <role rolename="manager"/>

  <user username="admin" password="password!" roles="admin,manager"/>

</tomcat-users>




퍼가실때 댓글이라도 남겨주세요 ㅎㅎ;;

심심해요 ㅋㅋ




NORITSU KOKI | EZ Controller





저작자 표시 비영리 동일 조건 변경 허락
Posted by dosuser(신대용) dosuser
인생 재 설계2012/05/18 02:57

Any.Do를 사용하면서 많은 일들이 밀리고 있다는 것을 확실히 느끼고 있다.


매일 해야 하는 일들의 경우 못하고 있다.


프랭클린 다이어리를 사용하는 것보다 좀 더 명확하게 알수 있다.


이 간단한 어플리케이션이 나에게 많은 것을 알려주고 있으니 감사하다.



나는 책을 쓰겠다는 참 간이 배밖으로 나온 작업을 시작하려하는데


참 목차 잡기가 어렵다.


책에 담을 내용이 많은데 이 많은 것들 중에서 뺄것은 뺴면서도 정말 가치 있는 것은 남겨야 하는데 이것이 쉽지 않다.


또한 내용을 종과 횡으로 나누려는 시도는 목차 만드는 것을 더욱 어렵게 만들고 있다.


다만 이 책이 다 만들어 지면 나는 내가 얼마나 편협하게 세상을 보고 있었는지, 


얼마나 내 분야를 좁게 생각 하고 있었는지 알게 되면서 동시에 더 넓은 것들을 볼수 있게 될것 같다.



저작자 표시 비영리 동일 조건 변경 허락
Posted by dosuser(신대용) dosuser
인생 재 설계2012/05/05 22:03

가정의 달 5월 


많은 사람에게는 즐거운 일들이 많겠지만


또 많은 사람들에게는 가지지 못한 것들에 대해 평가 받는 기간이다.


이것이 어떤 물질 적인 것이라면 그나마 다행이겠지만


사람과 사람 그리고 그 중에서도 "행복" 그자체를 평가 받는 것이라면


크리스마스 만큼 혹은 그 이상으로 매일을 평가 받는 달이다.


"당신은 행복한가,

 당신은 아이들이 있는가. 

 당신은 부모에게 잘하고 있는가

 당신은 은사에게 찾아갈 수 있을 정도로 떳떳한가.

 당신은 행복한가"


거리의 카네이션이 이야기한다 "당신은 효자여야 합니다."


저작자 표시 비영리 동일 조건 변경 허락
Posted by dosuser(신대용) dosuser
프로그래밍일반2012/02/22 10:51


WOWZA를 쓰면서 패킷의 해더가 손상되는 부분을 발견, 해당 2비트를 바꿔야 하는 문제가 생겼다

그래서

1. WOWZA내 HTTP Streamer 클래스들과 MediaStreamLive 관련 클래스를 오버로딩.
2. conf 디렉토리내 클래스 매핑에서 클래스들 대치
3. 아이폰과 rtsp 로 재생 시도


하였으나.... 결과는 너무 처첨 했다.


우선적으로 HTTP Streamer중 IOS packetizer의 경우  델리게이트 형식으로 클래스를 작성하여 기존의 클래스를 대치시키면 클래스 캐스팅 에러가 발생한다. 

conf/Streams.xml에서 각 스트림 유형 별로 정의 되어 있는 클래스들을 대치 시켰을때 "live" stream의 경우
클래스 대치가 제대로 되지 않는 것처럼 보인다. (일단 로그는 안찍힌다. )

log의 경우 log4j로 찍었는데 안나온다;;;;;; println으로 찍었음;;

아...삽질이여;;




 
저작자 표시 비영리 동일 조건 변경 허락
Posted by dosuser(신대용) dosuser