봄싹(Spring Sprout) 스웨거 스터디에서 '스프링 어디까지 써봤니?' 라는 다소 건방지 주제로 발표를 했습니다.

정확한 속뜻은 제가 어디까지 스프링을 사용을 하고 있는지에 대해서 공유하는 자리였습니다.
제가 그 동안 Spring @MVC를 사용해 웹 애플리케이션을 개발하면서 스프링을 어떻게 사용하고 있는지에 대한 내용으로 구성했습니다.

아마도 스프링을 더욱 잘 이해하고 사용하시는 분들이 보시기에는 많이 부족한 내용이었으리라고 생각됩니다.

저만의 고집이 녹아들어 있는 코드들이라서 아마도 마음에 안드시는 분들고 계실거라고 생각됩니다. 코드보다는 스프링의 @MVC 기술들을 어떻게 사용했는지에 대해서 주로 보시면 좋겠습니다.

발표에 사용한 장표는 Google Docs에 공개로 올려두었고, 소스코드는 Github에 올려두었습니다.

스프링 어디까지 써봤니?.PDF

스프링 어디까지 써봤니? - Source Code

Posted by Arawn Trackback 1 : Comment 3
지난 11월 25일에 진행된 DevOn에서 KSUG 대표로 발표를 할 수 있는 기회를 얻었습니다.

처음에는 주제를 'Spring @MVC의 Controller와 Data Binding"로 잡았으나, DevOn 행사에서 세부적인 개발 기술을 다루기에는 적합하지 않다라고 판단되어, Spring Social로 주제를 변경해서 발표를 했습니다.

요즘 어디를 가더라도 들을 수 있는 SNS에 대한 이야기와 애플리케이션에 SNS 서비스를 접목할때 어떤 것들이 필요한지, 그리고 Spring Social의 특징과 흐름에 대한 내용으로 구성했습니다.

발표자료는 Google Docs에 올려서 공개로 풀어두었습니다.

스프링소셜을 이용한 빠른 소셜앱 만들기.PDF

Posted by Arawn Trackback 6 : Comment 0
어제 팀내 맥북 사용자가 아주 독특한걸 쓰는걸 봤습니다.

파인더에서 뭔가 키를 툭 누르더니 커맨드 입력창이 스르륵 나타나고 거기에 "mvn eclipse:eclipse" 명령어를 날려서 빠르고 쉽게 작업을 하더군요.

전 파인더에서 터미널을 열어주는  OpenTerminal 이라는 어플리케이션을 사용하고 있었거든요.

팀원을 닥달해서 그 어플리케이션의 이름이 DTerm 이라는 것과 맥 앱스토어에서 무료로 배포되고 있다는 정보를 얻어냈습니다.

바로 설치해서 사용해보니 너무 편하더군요. ㅠㅠ

이 녀석을 보자말자 생각났던건 "IDE 에서 사용할 수 있으면 Git 를 쓰는게 한결 편하겠다!" 였습니다.
아직까지 IDE Git Plugin 중에는 쓸만한 녀석이 안보여서 항상 Terminal 을 열어서 사용하고 있거든요.

바로 XCode 를 띄워서 확인해 봅니다.

iOS 스터디에서 작성한 실습예제 프로젝트를 열어서 "git status" 명령을 내려봅니다.
저장소에서 아직 관리가 되지 않는 폴더라서 "git add" 로 추가하라고 하네요.


"git add ." 명령으로 추가 후 "git status" 로 확인해봤습니다.



훌륭하게 동작합니다!!!

이 기세를 몰아서 STS도 도전해봅니다.


OTL;;; 원했던 동작이 나오지 않습니다 ㅠㅠ
user home 의 위치만 가르키는군요.

혹시 누군가가 이걸 해결하지 않았을까!?
바로 구글링을 시도해서 "eclipse-cocoa-set-represented-filename plugin" 을 찾았습니다. 설치 후 시도해본 결과...!!


깔끔하게 동작하는 모습을 볼 수 있었습니다. ^^

IDE + DTerm 환경에서 이제 편하게 Git 를 쓸수있을거 같네요.



Posted by Arawn Trackback 0 : Comment 2
ORA-12154: TNS:could not resolve the connect identifier specified

64bit 윈도우에 Oracle Database 10g Express Edition 과 Toad for Oracle 9.7.2 Suite Commercial 를 설치 후에

위의 메시지로 인해 한참 고생했다.

상황을 해결하기 위해서 몇가지 취한 행동은 다음과 같다.

1. 설치 디렉토리 변경
64bit 윈도우에 설치되는 프로그램이 32bit체제일 경우 C:\Program Files (x86) 에 설치된다.
구글링을 통해서 검색해본 결과 Toad 설치경로에 특수문자[(x86) 라고 예상]가 들어갔을 경우에
위와 같은 에러코드(ORA-12154)가 발생할 수 있다고 한다.

그래서 설치위치를 c:\oraclexe\toad 로 변경 후에 설치하였다.


2. sqlnet.ora 에 아래 문구 추가
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
Posted by Arawn Trackback 0 : Comment 0
봄싹 스터디의 HelolS 님이 던지신 화두 'OOP에 대해서..' 에 대해서 한번 생각해보았습니다.

그 동안 OOP에 관해 책을 비롯해서 많은 자료를 읽어보고 뜻을 헤아려보기 위해 많은 시간을 보냈지만 아직까지 OO 에 대해 개념을 확실히 정립하기엔 많이 모자라네요. ^^

내가 알고(단지 외우고 있을뿐이지도 모르는...)있는 것을 정리해보니 짤막한 몇 줄만 나옵니다.


객체 지향이란 작지만 하나의 일을 책임질 수 있는 객체가 모여서 하나의 완전한 프로그램으로 만들어져 나아가는 것이다. 서로가 모르고 있더라도 일을 수행함이 있어 드러나는 문제를 최소화 시키고(낮은 결합도), 서로가 모여서 함께 일을 행함에 있어서도 좋은 틀을 제공해야한다.(높은 응집력)
하나의 언어를 통해 이야기 함으로 대화의 이해도를 높이고(인터페이스), 유별나게 변화를 좋아하는 녀석들을 위해서 항시 문을 열어둔다.(상속or확장)


세세하게 들어가면 이것저것 더 많은 것이 나오겠지만 지금은 저 정도밖에 정리가 되지를 않네요.

"지나친 것은 미치지 못한 것과 같다."라는 뜻을 가진 과유불급(過猶不及)이라는 고사 성어가 있습니다. 가끔 공부를 위해서 프로그램을 작성하다보면 내가 무리하게 분할해서 시스템을 오히려 복잡하는 만드는게 아닌가 라는 생각을 할때가 많습니다.

어디가 가장 적당한지를 긋는 선을 정하는게 참 어려운것 같습니다.
Posted by Arawn Trackback 1 : Comment 0
Apache common-lang 라이러리가 필요해서 maven 을 통해 의존성 설정을 입력하고 나니 뜬금없이 이클립스가 오류를 배터낸다.

CHKJ3000E: WAR Validation Failed: org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException: WEB-INF/web.xml

web.xml 를 아무리 들여다봐도 틀린게 없다.

이때까지 오류가 없다가 하늘에서 뚝~ 떨어져내리는 오류라니 이클립스의 버그가 아닌가 하는 의심이 살짝든다.

web.xml 의 이름을 바꾸고, 다시 새로운 web.xml 의 만들어서 내용을 복사해 넣으니 해결.. -0-;;
Posted by Arawn Trackback 0 : Comment 1
Object.className 으로 제어 할 수 있다.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Class Change </TITLE>
<style type="text/css">
.class1 {
    font-size:10px;
}
.class2 {
    font-size:20px;
}
</style>
<script language='javascript'>
    function fn_ClassChange()
    {
           var obj = document.getElementById("text");
           if(obj.className == "class1")
          {
              obj.className = "class2";
          }
          else
          {
                obj.className = "class1";
          }
      }   
</script>
</HEAD>
<BODY>
<span id="text" class="class1">Text</span>
<input type="button" value="변경" onClick="fn_ClassChange();" />
</BODY>
</HTML>
Posted by Arawn Trackback 0 : Comment 0

이번에 개발서버에 Oracle 10g 를 설치하면서 황당한 오류를 보았다.

설치 파일을 전부 복사 후 Configuration 중에 스크립트 실행 오류가 계속 나는게 아닌가..

설치 로그를 찾아가보니 스크립트 실행 파일 명령구문에서 다음과 비슷한 문구가 남겨져있다;;

'명령 문구가 너무 길다!! 스크립트 파일을 못 찾겠어...' 라는... -0-..

설치위치는 대략 다음과 같다.

E:\Appz\Server\Database\Oracle\product\10.2.0\db1

그리 길어보이지도 않는데... -0-

대폭 줄여서 다음과 같이 변경해서 설치했더니 오류없이 설치된다!

E:\Appz\Server\Database\Oracle\10.2.0

Posted by Arawn Trackback 0 : Comment 0
프록시 서버를 간단히 구축할 수 있습니다.

프록시 서버는 요즈음에는 보통 아이피를 바꾸기 위한 용도로 많이 이용됩니다. 나의 컴퓨터가 A 라고 하고 프록시 서버가 설치된 컴퓨터를 B 라고 하면 내가 B 컴퓨터에 접속을 하여 google.com 에 접속할 수 있습니다. 이 경우 google.com 에는 프록시 서버를 구축할 때 설정에 따라 프록시를 경유했는지 여부를 알 수도 모를 수도 있고 또 A 컴퓨터의 아이피가 노출될 수도 노출되지 않을 수도 있습니다.

http://www.linksmile.com/anon-proxy-checker.php
에 보시면 다음 항목에서 검출되지 않으면 완벽히 B 컴퓨터에서 접속한 것으로 인식됩니다.

BASIC anonymous proxy test variables (both must be "Not Detected" or "127.0.0.1")
HTTP_FORWARDED
HTTP_X_FORWARDED_FOR

HIGH anonymous proxy test variables (all must be "Not Detected")
HTTP_VIA
HTTP_XROXY_CONNECTION
HTTP_PROXY_CONNECTION
또 나의 컴퓨터가 A 라고 하고 감시를 원하는 컴퓨터를 C 라고 하면 내 컴퓨터에 프록시 서버를 설치하고 'transparent', '로그남김'으로 설정 후, C 컴퓨터 브라우저 설정을 내 컴퓨터 아이피주소로 하면 C 컴퓨터의 서핑 내역 로그를 A 컴퓨터에 남길 수 있습니다.

프록시 서버를 제공하는 곳이 여럿 있지만 속도는 매우 느리고 서버 제공자를 신뢰할 수 없으므로 사용이 꺼려집니다. 아이피를 바꾸고 싶다면 또는 프라이버시를 지키고 싶다면 합법적 범위 안에서 프록시 서버를 구축해서 인터넷을 이용할 수 있습니다. 좀 무책임한 말인지도 모르겠지만 '살인은 칼을 사용하는 사람의 책임이지 칼을 만들 사람의 책임은 아니다'라고 기어들어가는 목소리로 말하고 싶군요. 선택은 열려 있고 판단은 각자 해야 한다는 생각합니다.

외국의 모회사와 국내의 모 회사는 프록시 서버를 구축하고 완전한 프라이버시를 유료로 제공합니다. 그 회사들이 로그를 남기는지 안 남기는지는 모르겠지만, 완전한 프라이버시를 원하는 수요자 있음을 말해줍니다. 저 또한 요즘 추진 중인 통신법 개정에 반대합니다. 진보넷의 경우 접속자의 로그를 남기지 않는 걸로 압니다. 제 경우 테러를 대비한 로그를 남기기는 하지만 며칠 후면 삭제되게 해 두고 있습니다.

freeproxy는 http://www.handcraftedsoftware.org에서 다운로드 할 수 있습니다.

사용자 삽입 이미지

자세한 설정법은 열정의 부족으로 설명을 생략하겠습니다. 설정에서 인증을 거칠 것인지, 완벽한 익명성을 보장할 것인지, 로그를 남길 것인지 등을 설정할 수 있습니다.

(ver 3.81 기준 - 요즈음 바뀐지는 확인하지 않았습니다.)
default.cfg는 모든 설정이 다 들어있습니다. 그림의 창에서 모든 설정을 마무리했다면 default.cfg, freeproxy.exe, freeproxyftp.tem 을 확보한 후 다음의 명령으로 다른 컴퓨터에 간단히 설치할 수 있습니다. 3개의 파일만 있으면 동작하고 윈도의 서비스로 기동하게 됩니다.
freeproxy.exe -install default.cfg
TAG Proxy
Posted by Arawn Trackback 0 : Comment 0
MSSQL 기본 프로바이더를 통해서 접속하면 기본 포트인 1433 포트를 찾아간다.

포트가 변경되어 있다면 'SQL 서버가 없다' 라고 나오는데 다음과 같이 포트번호를 붙여서 접속하면 해결된다.

접속주소,포트번호

127.0.0.0,1490


그리고, 기본 인스턴스명인 'MSSQLSERVER' 가 아닌 명명된 인스턴스에 접속시에도 서버를 찾지못하는

경우가 있다. 그 경우에는 인스턴스명을 붙여서 같이 접속해야한다.

접속주소\인스턴스명

127.0.0.0,MSSQL2000


포트와 인스턴스를 전부 지정해서 접속 할 수도 있다.

127.0.0.0,1490\MSSQL2000
TAG MSSQL
Posted by Arawn Trackback 0 : Comment 0

아직도 주위에는 MSSQL 2000 으로 작성된 프로그램들이 많은거 같다.

예전에 만들어둔 프로그램들 중 2000 버전으로 작성된게 많아 개발 서버에 두가지 버전을

다 설치해두기로 결정하고 설치하던 중...

2000 설치 후 2005 를 그대로 설치했더니 2000 을 업그레이드 하겠냐고 물어본다.

알아보니 버전이 틀리다고는 하나 데이터베이스 인스턴스명은 서로가 공유하는거 같다;;

명명된 인스턴스로 옵션을 바꾸어서 설치하니 깔끔하게 통과~!

Posted by Arawn Trackback 0 : Comment 0
개발 소스를 관리하기 위해 Subversion 을 설치

설치 파일 다운로드 링크 : Subversion

1. Subversion 설치, 윈도우 인스톨러용을 다운받아서 바로 설치.

2. SVN_EDITOR 환경변수 등록, 노트패드 류의 텍스트 에디터

3. 저장소 생성
    탐색기를 통해서 원하는 폴더를 만들어두고 아래의 명령어를 통해서 생성.
    svnadmin create "D:\svnrepo"

4. 저장소 설정
   D:\svnrepo\conf\svnserve.conf 에서 아래 3줄 주석 해제
         anon-access = read
         auth-access = write
         password-db = passwd
   D:\svnrepo\conf\passwd 에서 사용할 아이디 및 비밀번호 추가
         id = password

5. svn 서버가동
    1.4 버전 이상부터는 윈도우즈 서비스를 통해서 서버가동이 가능.
   
    아래 명령어를 통해서 서비스를 등록(한줄에 다 써야함)
    sc create svnserve binpath= "\"c:\program files\subversion\bin\svnserve.exe\" --service --root 저장소 주소(ex=d:\svnrepo)" displayname= "Subversion Repository" depend= Tcpip start= auto
   
    net start svnserve : 명령을 통해서 서비스 시작

6. svn 테스트 : svn mkdir svn://localhost/java
   SVN_EDITOR 환경변수를 통해서 등록한 에디트 창이 나오면 파일을 저장하고 종료.
   서버 및 사용자 id, password 를 입력해 커밋 되면 성공!

4. 방화벽 열기
   svn 은 3690 포트를 사용하니 해당 포트를 열어둔다.
   

참고 링크 :
Subclipse - Subversion Plug-in for Eclipse IDE
Subclipse FQA

서브버전(Subversion)의 개략적인 소개와 설치에 대해서 정리
Posted by Arawn Trackback 0 : Comment 0

얼마전부터 자바의 스프링 프레임워크 공부에 불이 붙었다.

개념부터 생소한 ICO 라거나.. AOP 등의 여러가지 독특한점이 많이 보이는 스프링 프레임워크!

여기저기 돌아다니면서 공부하다보니 언제 어디서든지 접근이 가능한 나만의 개인 개발서버가 있으면

좋겠다는 생각이 든다...

대학때부터인가...? 항상 뭘 하던지 개발용 서버를 끼고 움직이던게 버릇이 되었나보다;;

그 동안 몇번이나 개발용 서버를 만들었지만 오래동안 유지를 못하고.. 번번히 데이터만 날려먹고...ㅡㅜ;;

내 영역(?)이 아닌곳에 구축을 해놓은게 실패의 원인!!

전기세가 걱정되기는 하지만 이번에는 집에다가 구축을 해본다.

부산 본가에 굴러다니는 부품을 뒤져보면 CPU 나 RAM, LAN 카드는 있을텐데..

다나와 중고장터를 뒤적거리다 3만원에 꽤 괜찮은 녀석이 눈에 띈다..

CPU : 펜3 투알라틴 1.0
MB : 694T
RAM : 삼성 PC133 256 * 3 = 768
G : NVIDIA GeForce2 MX 200 (32 MB)
S : 이름모를 사운드카드 -0-
FDD : 1.44
HDD : WD 30G
CDR : LG 48X
특이사항 : 소음 심함!

뭐 이정도면 개발용 서버로는 훌륭한 성능이 아닌가.. ^^;

베란다에 설치할 생각이라 소음은 살짝 무시하고,  판매자에게 연락해보니 다행히 아직 팔리지 않았다.

부랴부랴~ 저녁무렵에 약속을 잡고 구매 완료!

운영체제는 MS-SQL과 .NET ASP 를 고려해서 Win2K 를 설치!

하나하나~ 차근차근 필요한 녀석들을 설치해나가야겠다..

Posted by Arawn Trackback 0 : Comment 0