[IntelliJ] 버전 관리 기능 죽이네.. (subversion)

Git도 지원하는데 그쪽은 아직 안 써봤고, subversion만 신나게 쓰고 있는데… 죽입니다. 이클립스 subversive?? subclipse? 풋…

이클립스 쓸 때 제일 짜증난게 subversive 플러그인 설치였습니다. 왜 내가 맨날 이 플러그인을 설치해야 되나.. 제발 좀 그냥 넣어주지.. 또 왜 플러그인은 커넥터랑 툴이랑 업데이트 사이트가 달라가지고 하나는 이클립스 기본 업데이트 사이트에 들어있고 하나는 다른 곳에 있는지… 정말.. 아주 많이 귀찮았습니다.

그런데 인텔리J는 기본으로 Git까지도 제공해 줍니다. cvs, svn, git 말고도 두, 세개의 VCM을 더 지원하던데 기억은 잘 안 납니다.

어쨋거나..

위 화면 하단에 있는 창이 VCM 관련 창인데 아주 유용한 정보를 빠르게 볼 수 있습니다.

히스토리, 업데이트 받은 파일들, 커밋 받은 파일들, 현재 변경된 파일들, 해당 파일을 클릭하면 diff를 클릭해서 뭘 변경했는지 보기도 쉽고, 화면.. 제일 하단 Default 오른쪽에 보이는 아이콘은 해당 프로젝트가 update 받을 것이 있는지 알려주는 아이콘입니다. 저 아이콘이 보이면 update 받을 게 있다는 것이죠… 캬… 죽입니다.

평생 이클립스만 썼다면 경험해보지 못할 멋진 기능들을 만끽하고 있네요. ㅎㅎ

개발 관련 Q&A 사이트 StackOverFlow!!

http://stackoverflow.com/

사이트 이름부터가 굉장하지 않은가요. 일반적인 포럼 보다는 훨씬 재미있게 만든 사이트로 위키처럼 질문과 답변을 누구나 수정할 수 있고 밷지과 포임트로 보상을 해줍니다. ㅋㅋㅋ밷지 모으는 재미가 쏠쏠합니다. 질문에 대한 답변 채택과 추천/비추 등의 기능도 해당 질문에 대해 가장 적절한 답변을 바로 찾아 볼 수 있다는 점이 눈에 띄이며, 질문 자체에도 추천과 비추를 할 수 있다는 것이 특히 굳입니다. 사실.. 우문우답이라고, 좋은 질문을 해야 좋은 답변을 들을 수 있는게 당연한 이치죠.


이런식으로 질문에도 추천/비추 기능이 있는데, 저 질문은 3개의 추천을 받았군요.


이건, 제가 작성한 답변은데 4개의 추천을 받았고, 질문 작성자로부터 답변으로 채택을 받았습니다. 그리고 이 답변에 오타가 있어서 Robert가 수정을 해줬고, Jherico가 댓글로 중요한 추가사항을 첨부해 줬습니다.

하지만… 도무지 극복할 수 없는 단점이 하나 있는데..

바로 .. 영어라는 겁니다.

이 좋은 사이트에 한글로 의사표현을 할 수 없다는 것은 정말 괴로운 일입니다.

그래서 봄싹에서는 StackOverFlow를 본따 그와 비스무리 재밌게 만든, NullPE(NullPointerException)를 만들기로 결정했습니다. 다음 릴리즈(11월 30일)에는 포함되어 있지 않지만, 내년 초나 중순 중으로 NullPE를 오픈하겠습니다.

그렇다고해서 별도의 사이트는 아니고, 봄싹 사이트의 일부 모듈로 들어가게 될 겁니다. 지금 있는 사이트에 NullPE 메뉴만 하나 추가가 되겠죠.

흠.. 그러려면 어서 지금 정리중인 스터디쪽부터 마무리를 해야겠습니다. ㄱㄱ

ps: 사실 요즘같아서는 내가 부자여서 돈을 안 벌어도 된다면 직장도 그만두고 봄싹 사이트 개발에만 전념하고 싶습니다.

[하이버네이트] 컬럼 타입은 어떻게 명시하는게 좋을까?

       @Column(columnDefinition=”TEXT”)

       private String descr;

이런 방법이 있습니다. 별로 좋은 방법은 아닙니다. postgresql에서는 괜찮지만, HSQL에서는 저 TEXT라는 SQL 타입이  못해서 해당 테이블을 만들지 못할겁니다.

columnDefinition 이 속성 자체가 컬럼 만들 때 사용할 SQL을 입력하는 부분이기 때문에, 각기 다른 밴더 DB에서 못 인식하는 경우도 생길 수 있는거죠.

그래서 타입을 선언하고 싶을 때는 하이버네이트 타입을 선언할 수 있는 @Type을 사용하는 것이 좋겠습니다. 그러면 하이버네이트가 컬럼을 만들 때 @Type에 선언된 하이버네이트 타입을 보고 DB에 적당한 SQL을 이용해서 컬럼을 만들어 줄 것이기 때문이죠.

    @Column
    @Type(type = “text”)
    private String descr;

그래서, 이렇게 하는게 좋겠습니다.

[IntelliJ] 답답한 것들

1. 프로젝트 하나만 놓고 작업한다.

왜 한 번에 한 프로젝트 밖에 못 보는거지…
다른 프로젝트에서 코딩한것도 배껴야 하는데.. 그럴 때 마다 프로젝트를 열고 닫을 순 없자나. ㅠ.ㅠ

2. 서버 설정에 제약이 심하다.

WAR 배포도 하기 싫고, Exploded 배포도 하기 싫어 난 Inplace로 배포할꺼란 말이야..
이건 배포 경로를 어떻게 잘.. 설정해서 해결했습니다.

3. 단순한 단축키 시스템

이클립스처럼 알트 + 시프트 + X 누른담에 J, T 이런식으로 2단 단축키가 안 되는 것 같아요.
그래서 단축키가 부족하고, 계속 중복되고.. 아 짜증나. 중복되면 둘 다 실행을 해주던가..
뭐는 뭐에 우선되서 실행되고 뭐는 그냥 무시되고.. 단축키 누르다가 손가락 꼬이겠네..

4. 파일 시스템이 이상한건지..

왜 외부파일을 프로젝트에 복사해 넣을 수가 없는거지??
이건 뭔가 이상해.. 맥북에서는 잘 됐고, 아침에도 잘 됐었는데..
붙여넣기가 안먹는거야 뭐야..

아.. 답답해;. 이제 좀 쓸만한가 했더니.. 답답해 지기 시작하네..
그래도 이클립스보다 검색하는 것도 빠르고, 안정적인것 같긴한데… 뭔가 좀 부족하네;;
내가 잘 못쓰고 있는 걸지도…

[IntelliJ] 스프링 설정 파일에서 inline 리팩토링 사용하기


빈설정이 여러개 있는데, 저 중에서 세 개는 다른 두 빈 설정 내부에 들어가도 됩니다. 개인적으로는 다른 빈에서 참조하는 빈이 아니라면 inner bean으로 설정하는게 보기 편합니다.

이때, 자바 코드에서처럼 inline refactoring을 사용할 수 있습니다. 제 환경에서는 단축키가 Alt + Shift + i 입니다.


흠.. 두 개의 핸들러 어댑터 설정이라는게 한 눈에 들어옵니다. 이 상태에서 하나 더, Alt + Enter를 사용해서 cacheSeconds 설정은 p 네임스페이스로 바꿀 수 있습니다.


참 쉽죠.


요렇게 됐습니다.

참, 덤으로 빈 의존 관계를 그래프로 볼 수 있는데, 이클립스에서보다 더 빠르게 볼 수 있고, 애노테이션으로 설정한 빈들도 전부 보여줍니다.


당연히 프린트도 가능하다는거~ 애노테이션으로 하면 설정이 한눈에 들어오네 안 들어오네 하면서 XML이 더 좋다고 주장하시는 분들이 있던데.. XML도 길어지면 어차피 한눈에 안들오죠. 저는 간단한 웹 플로우 설정도 한 눈에 안들어오던데. 어차피 둘 다 저런 비주얼 도구를 이용하면 한눈에 들어오는 A4 문서를 출력할 수 있으니 그런 논의는 이제 별 필요가 없는 것 같습니다.