달력

4

« 2024/4 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

저희꺼 솔루션이 상당히 무겁고...Eclipse도 버거워하고 (기본적으로 램4기가에서 이클립스+톰켓만 80%~90% 정도...)

게다가 저 같은 경우 좀 포지션이 그러해서 동시에 여러개의 프로젝트를 진행할때가 많습니다.
그러면 더 헬모드가 되는데요.. 그래서 놋북도 사비들여서 업그레이드 하고.. 뭐 여하튼 이런저런 고민 끝에 이클립스를
벗어나기로 결심하였습니다. 밑에는 각 툴을 사용해보면서 느낀점을 적었고요. 자세한 셋팅법은 제외하였습니다.
또한 저 같은 경우는 회사놋북은 우분투와 맥북을 집에서는 윈도우 우분투 맥미니를 사용하기 때문에
최대한 3가지에서 다 돌아갈 수 있는 것 위주로. 찾았습니다.(물론 특화도 있긴합니..다)
그리고 잘되면 회사분들에게도 소개하기 위해 무료 위주로 하였습니다. (몇개제외)
밑에 의견은 "절대적으로 개인적인 의견" 이므로.. 참고만 하시면 될 듯합니다.

1. 넷빈즈
: 이클립스와 크게 다를바 없었습니다. 똑같이 무겁고요.. 거기에 투박한 UI.. 이것을 사용할바에 차라리 이클립스나 쓰는게 낫겠다는 생각이 들었습니다.. 그래서 바로 취소.

2. notepad++
: 윈도우에서만 되는 약점이 있지만 나름 괜찮았습니다. bat파일로 여러 방식을 이용해서 컴파일을 만들어두고 사용하였습니다. 며칠 사용은 재밌게 했으나 코드자동완성등 몇가지 필요기능 부족으로 패스..

3. emacs
: 이맥스는 우분투에서 위주로 테스트해봤습니다. svn, git, 코드완성, ant, maven ,디버그 전부 사용 가능하였고 매크로 작성 및 단축키 맵핑등 상당히 강력한 기능을 제공하였습니다. 또한 마우스 없이 거의 대부분을 진행할 수 있어 무척이나 편했고요.  이것으로 거의 마음을 굳혀가고 있었는데.. 몇가지 부족한 플러그인을 제작하려고 보니 LISP을 알아야된대서.. 오마이갓 하고 패스. (그리고 제가 설정을 잘못한 탓인지 윈도우에서는 잘 안되어서..) 하지만 언젠가는 돌아오게 되리라는 생각을 했습니다.

4. cloud9
: nodejs로 만들어진 웹 에디터 입니다. 왠만한기능은 전부제공하고 git랑도 바로 연동되어서 상당히 편리했습니다. 또한 오픈소스이니 만큼 필요한 기능이 있다 싶으면 커스터마이즈 하기도 좋았고요. 또한 활발하게 개발이 진행되고 있고 업데이트도 편리하게 되어있다보니 참으로 만족스러웠습니다. 그러나..... 회사소스를 올리는 순간 이클립스보다 더한 속도를 내더군요. 코드자동완성창이 뜨려면 버버버벅 .... 다다다다닥 입력하다보면 입력이 안되고있고... 조그만한 프로젝트할때나 좋을것같다는 생각을 하게 하였습니다..

5. jEdit
: 왠간한 기능은 플러그인형태로 제공을 해주기는하는데.. 이상하게 끌리지가 않습니다. 그래서 조금 사용하고 취소..

6. webstorm ( 유료이나 30일은 체험버전이길래 사용해봤습니다.참고로 저는 구매하였습니다__;)
: 사실 webstorm을 추천받은건 nodejs 개발시에 아주 좋은 IDE라는 소리를 들어서 구매하였는디 java도 얼추 되는것같긴합니다. 다만... 차라리 이클립스가 훨씬낫습니다.  그래서 패스
구매한 이유는 자바스크립트는 와 물건이더군요. aptana 보다는 가볍다는 생각이 들고 기능은 그리 부족하지 않고 해서 바로 질러버렸습니다..

7. jsbin
: 요즘은 nodejs를 이용해서 수정한듯 한데 이때쯤 이클립스에서 자바스크립트만이라도 분리해내면 쪼금이나마 안느릴까 라는 생각이 들어서 jsbin을 설치하였고 jsbin자체만으로는 정말 대 만족이었습니다. 버전관리도 되거니와 그나마 php javascript등을 수정하면 되기에 여러 커스터마이즈를 하기 편했고 속도도 상당히 빨라서 자바스크립트만 하기엔 편리했습니다만.. 사실상 회사소스는 무리가 있기에 현재는 개인적인 공부소스 짤때 위주로 사용합니다.

8. vim
: 현재 사용하고 있습니다. 왠간한건 플러그인 제공을 해주긴 합니다만.. 디버깅이 조금 헬모드입니다.. 아직 미숙해서 완벽하게 IDE로 사용하기는 조금 힘듭니다. 문법체크가 없다는게 조금 아쉽습니다.(있다는데 적용해봤는데 별 다른점이;) 자동임포트도 아쉽긴합니다만 그부분은 다 작업하고 한번에 임포트시키니.. 여하튼 쉘에서 여러개 만들어놓고 써먹으니깐 이클립스보단 못해도 왠만한 작업속도는 나오는듯하였습니다. 특히 젤 좋을때가 svn git 이용할때인데요.. 그냥 vim 작성중에도 바로바로 명령어로 가능해서 편리했습니다. 

9. sublime text2
: 대망의 ST2 입니다. 위의 8가지중에 가장 만족했고 좋았고 플러그인은 python으로 소스가 오픈되어있기때문에 조금씩 가져다가 사용하기도 좋았고. 코드어시스트도 어느정도는 지원하고 자동임포트도 어느정도는 지원하고 바로 터미널이랑 연결해서 연계 작업도 가능하고 가장 좋았던건 여러 플러그인이 많아서 동시에 여러작업이 가능했다는 점도 크게 작용했습니다. javascript 도 아주 충실히 지원해주고요.. 대충 보니 500개 정도 되는듯하네요 플러그인이.. evernote랑도 바로 연동되는것도 사랑스럽고요.. 다만 java위주의 개발에서는 약간 불편하실 수 있습니다. 예를들면 디버그(jdb나 jpda사용하셔야하구..) 나 문법체크는 상당히 부실하고요.. 자동임포트가 100%지원되는건 아니라 오류가 많이나고요 (정확히 모르면 ) ctags를 이용해야하는 불편함이 조금은 있고요 .. 그럼에도 현재 vim 아저씨와 같이 사용하고있습니다.

대충 이 9가지 테스트해보는데 4개월 가량 소비했네요. 
현재는 Eclipse + Eclim + vim + ST2 같이 사용하고 있습니다. 디버그 할때나 구조 잡거나 복잡한 알고리즘을 구현할때는 Eclipse를 사용하고요 평소에 편집 수정 구현등은 기분에 따라 VIM, ST2를 사용합니다. Eclim은 사실상 거의 사용하지는 않는데 (왜냐면 잘 몰라서요..) 혹시 관심있는 분은 밑에다 링크 적어 두겠습니다. 간단하게 설명하면 VIM이나 다른 서드파티에서 Eclipse기능을 사용합니다.(100%는 아니고요.) 

많은 분들이 이클립스 쓰면되지 왜 이런 고생을 하냐고 하셨는데요. 사실 처음엔 무거워서 시작한 이유도 있지만 어느 경우에 따라서는 이클립스가 안되는 경우도 있기에..(실제로 경험해보니) 난감하더군요. 그래서 혹시나하여 여러 툴을 어떤식으로 사용하는지라도 익혀보자는 심산으로 경험해본거고요 위의 툴 말고도  인텔리J라던지 BlueJ 라던지 coda라던지  textmate라던지 기타 여러 웹에디터도 많이 시도해보았습니다만..

좀 아쉬운게 제가 emacs가 너무 어려워서 조금 빨리 포기한게 아닌가라는 생각이 듭니다. 기회가 되고 조금더 영어에 실력이 붙으면 여러 정보를 습득해서 emacs로 개발을 해보고 싶더군요 (위의 개발툴들중에 넷빈즈 제외하고는 가장 자바 지원이 잘되는듯했습니다. 한국 자료가 부족해서..c쪽은 많은데..) 나중에 성공한다면 emacs 에대한 정보는 따로 공유하도록 하겠습니다.


이제 최종결론입니다

"큰 규모의 JAVA 개발은 이클립스 가 갑이구나......."

:
Posted by 유쾌한순례자
$ git clone git://github.com/creationix/nvm.git  ~/.nvm 
$ . ~/.nvm/nvm.sh
$ nvm install v0.8.8 
$ nvm use v0.6.19



:
Posted by 유쾌한순례자
2012. 10. 2. 11:42

이미지치환 정규식 Study/Java2012. 10. 2. 11:42

이번 migration 작업 진행 중인데 html 파일안에 있는 이미지 url을 가져와서 전체적으로 치환하는 부분이 있었다.
해당 부분 소스 정리해둔다.


:
Posted by 유쾌한순례자
2012. 10. 2. 11:33

maven + spring + mybatis 설정 Study/Framework2012. 10. 2. 11:33

기본적은 Spring+Maven은 STS의 Spring MVC Template를 이용해 구성했다.

인터넷 예제가 동작안하는것 들도 있기에 따로 정리해보았다.

pom.xml에서 추가된 부분

web.xml에서 수정된 부분

context-mybatis.xml 추가

mysql.properties 파일 추가

user.xml (Query 추가)

Test소스

HomeController.java

"


:
Posted by 유쾌한순례자
2012. 10. 2. 11:29

jsbin 2.9.x 커스텀 단축키부분 분석 Study/JS&Ajax2012. 10. 2. 11:29

3&4번 ( Commit Log 출력 , 단축키 추가 (login,show list))

한번 분석하고 나니 자잘한거 추가하는 것은 그리 어렵지 않았다.

list보는곳에서 소스축약 대신 commit log를 출력하도록 수정하였다.

먼저 list내역을 뿌려주는 부분은 app.php에 showSaved 함수에서 쿼리 결과를 조회하고 list-home-code.php를 include하여 결과값을 출력한다. 단순하게 처리하였다. 


list-home-code.php 에서 해당 내용 수정

$commit = $bin['commit'];
<td class="title"><a href="<?=$url?>edit"><?=$commit?></a></td>
다음은 단축키 부분 추가에 대한 것이다. 단축키는 jsbin.js에서 추가 가능한데.. 함수는 function Fc(o, u) 에서 진행된다.
다음 내용을 추가해 주었다.
//changhwa
} else if (u.metaKey && u.which == 51){
    $("#login").click();
    u.stop();
} else if (u.metaKey && u.which == 76){
    location.href='http://'+document.domain+'/list';
    u.stop();
} 



:
Posted by 유쾌한순례자
2012. 10. 2. 11:25

Groovy로 작성한 Mysql DDL 추출 Study/ETC2012. 10. 2. 11:25

Groovy로 작성한 Mysql DDL 추출

groovy로 처음 작성했던 소스... 
회사 솔루션 설치프로그램 제작시 서버 DB에서 DDL을 자동으로 추출해내어서 DB를 최신버전으로 맞추기 위해 제작하였다.
당시 항상 변하는 우리 회사 서버 DB를 설치때마다 덤프하여 부어넣는 작업이 귀찮아서 작성하였다.
oracle,mssql은 거의 불변(완성단계..?) 여서 그냥 안만들었던 것 같다.


:
Posted by 유쾌한순례자
2012. 10. 2. 11:23

jsbin2.9.x 커스텀 연구 Study/JS&Ajax2012. 10. 2. 11:23

1번커스텀결과 ( commit log 남기기 )



생각보다 Logic이 복잡히 구현 되어 있어 분석하는데 애를 먹었다.
대부분 Ajax로 구현되어 있는데 이상하게 디버그가 잘 안되더라...
액션이 처리되는 방식이... 내가 처음 예상한바와 다르게 동작하여.. 찾는데 꽤나 걸린 것 같다.
우선 값을 넘기는 부분에 대한 처리가 필요하여 php 액션을 호출하는 부분을 찾았다.

href= < 이건 무슨의미로 적어 둔지는 모르겠다 (빼도 정상적으로 동작함..)
즉 a.save click시 해당부분으로 와서 셋팅후 cd라는 함수를 호출한다.

해당부분에서 ajax로 값을 넘겨준다.. 그래서 이부분에 commit Log를 작성하도록했다.
var commitLog = prompt("commit log","");
해당 부분은 자바스크립트에서 입력창을 받고 싶어서 추가하였다.
( ie에서는 좀 밉게 나와서 수정할 필요는 있을듯..)
.append('<input type="hidden" name="commitLog" />'); 
값을 넘기기 위한 hidden 필드 생성
X.find("input[name=commitLog]").val(commitLog);
commitLog value에 값을 지정하였다.
//save action
$commitLog = @$_POST['commitLog'];
commitLog에 값 지정
    $sql = sprintf('insert into sandbox (javascript, html, created, last_viewed, url, revision, commit) values ("%s", "%s", now(), now(), "%s", "%s", "%s")', mysql_real_escape_string($javascript), mysql_real_escape_string($html), mysql_real_escape_string($code_id), mysql_real_escape_string($revision), mysql_real_escape_string($commitLog));
하고 나면 정상적으로 insert됨을 확인하였다.
이상한건.. action 동작이 edit -> save이렇게 동작한다는점.
이름에 혼동이 오게 되어있다.. 확인하자.
:
Posted by 유쾌한순례자
2012. 10. 2. 11:20

루비 처음해 본 소감 Study/Ruby2012. 10. 2. 11:20

설치


설치는 그다지 어려움이 없었음 (https://rvm.io/rvm/install/)
다만 책에서 rvm 설치 시 주소가 잘못됨 (알아본 결과 자주 바뀐다함)


첫소스예제


그냥 Spring Roo 같은 느낌이랄까.. rails new 프로젝트명 하니까 필요한 코드가 주루룩 생성됨
그다음은 컨트롤러를 만들어 보았음
app폴더 밑에 controller 폴더 밑에 만들어짐
$rails  generate controller say hello goodbye
하니까 controller가 만들어졌다.
이건 완전 마음에 들었다. 개인적으로 터미널 기반으로 작업하는걸 원츄하기 때문에.. 마우스 클릭클릭 귀찮아서..
이렇게 만들면 say_controller.rb가 만들어진다.
그리고 hello, goodbye라는 각각의 액션들이 만들어진다.
나같은 경우 일반적으로 Spring MVC 로 작업할 경우 메소드 (액션이 될) 이름을 쫙 정해놓고 시작하는지라
이 부분은 정말 마음에 들었다.
마찬가지로 controller 에서 view단으로 값을 보낼 수 도 있다. (받는예제는 아직 안해봄ㅋ )
다만 도중에 하나 삽질 한걸 정리해보자면
for 문 사용시에
<% for file in @files %>
  <ul>
    <%= file %>
  </ul>
<% end %>
이렇게 쓰는건데... <%= file %> 요거 대신 자꾸 <%= @file %> 써서 오류가 났음
다음 시간엔 모델 에 대한 예제로 진행해봄~ 즐프~ "

'Study > Ruby' 카테고리의 다른 글

mac에서 ruby 설치시..  (0) 2012.10.02
:
Posted by 유쾌한순례자
2012. 10. 2. 11:15

빌드&배포에 대한 생각 Study/ETC2012. 10. 2. 11:15

내가 하나의 프로젝트를 실행하면 가장 먼저 만드는 것들이 있는데
  1. 빌드 & 배포 스크립트
  2. 각종 배치스크립트 (이건 하면서도 계속 추가됨)


이클립스 && 비쥬얼스튜디오 && xcode 로 빌드 하나요?

이런 질문에 Yes라는 응답이 나오면 문제점으로 인식해야한다고 생각했는데..

그에 관련된 칼럼 발견. (http://allofsoftware.net)

단한방의 명령어로 소스 업데이트 -> 빌드 -> 배포 과정을 진행함이

얼마나 중요한지 고객사 한 20군데 쯤 작업해보면 생각이 난다.

예를 들어 최근에 내가 설치하고 진행된 프로젝트가

동시다발적으로 7개 정도가 진행되었는데 빌드 & 배포를 자동화하지 않으면

도저히 혼자서 하기에는 무리인 작업들이다.

(빌드 & 배포하는데 하나의 서버에서 대략 10~15분 소요된다)

내가 개발한 부분에 대한 실서버 반영은 전부 03시 00 분에 하도록 하였고

전날 로컬에서 열심히 개발하여 커밋만 해두고 퇴근하고

다음날 아침에 출근하여 실서버 테스트만 해보고

이슈시스템에서 해결상태로 해두면 QA 쪽에서 테스트를 진행해 주니까

배포에 대한 스트레스가 많이 줄었다.

(물론 짬짬이 커밋하시고 반영 하시는 분들도 계시긴해서 ㅎㅎ)

(그러나 이렇게 해두면 내작업에 대한 보장이 되니까)

뭐 이제 저런 작업도 내가 작업중인 install 패키지에 포함이 되어서

딱히..빌드 배포에 관해서는 이제 내가 신경 쓸 일은 줄어든듯하다.

이제 로그, 용량 이런거 만 어떻게 좀 고민 해봐야할듯...^^



이러한 작업을 쓸모 없다고 생각하는 사람들도 참 많아서...

특히 내가 생각할때 솔루션의 로그에대한 눈에 보이는 비쥬얼 적으로 접근이 가능하게끔 하는게 맞지 않나 싶은데

그리고 서버에 Error가 발생하거나.. 특별한 이슈가 발생시 관리자로 push 하게 만드는 부분도 필요한듯한데.

마치 필요 없는 것 처럼 치부가 되는 듯 하여 마음이 아플 뿐 ㅎㅎㅎ



내가 군대에서도 이정도의 서버개념이 있었다면 그 힘든 고생을 덜 했을거라는 생각이 조금 울적 해지기도 하고

그대로 답습하는 듯 반복되는 느낌에 또 마음이 아프고..



어떻게 보면 인식의 문제이다보니... 그러나 뭐.. 몰래 해서 나 편해지면 좋은거지 라는 생각으로..

로그 처리 & 서버 관제 처리 부분도 몰래 작업중이다.


"
:
Posted by 유쾌한순례자
2012. 10. 2. 11:06

mac에서 ruby 설치시.. Study/Ruby2012. 10. 2. 11:06

MAC에서 셋팅할때마다 까먹는지라.. 정리함.

'Study > Ruby' 카테고리의 다른 글

루비 처음해 본 소감  (0) 2012.10.02
:
Posted by 유쾌한순례자