Whiteship's Note


하이버네이트가 문제인가요? 자신이 문제인가요?

모하니?/Thinking : 2008.11.03 12:12


"람보르기니가 있는데 운전 면허증이 없습니다. 그래서 람보르기니를 못타고 다니는데 그게 람보르기니 때문인가요 저 때문인가요."

저는 국내 대형 사이트나 금융권을 비롯해서 흔히 말하는 SI 환경을 경험해 본적이 없습니다. 지금이 11월이니까 이제 개발자로 일한지 거의 1년이 되어갑니다. 그동안의 개발 경험은 금융관련 컨설팅 회사에 아키텍트로 들어갔다가 두 달만에(사실은 한 달만에 냈지만, 한 달은 처리 기간) 사직서를 내고, 지금 있는 회사로 와서 조그마한 유통업에서 사용할 웹 애플리케이션을 사부님한테 배워가면서 스프링, 하이버네이트로 만들었고, 그걸 만드는 과정 중에 얼마전에 공개했으나 별로 빛을 못보고 있는 OSAF를 뽑아냈습니다.

저는 대형 사이트니 초대형 엔터프라이즈니 하는 것에 대한 경험은 없지만 스프링, 하이버네이트를 좋아하고 그만큼 공부도 하고 있고 실무에 적용도 해봤습니다. 한 번은 하이버네이트 버전을 올려놓고 수정할 것들을 제대로 하지 않아서 사부님이 밤을 새면서 버그를 잡은 적도 있습니다.

이런 제가 감히 하이버네이트를 대형 싸이트에서도 쓸 수 있다느니 없다느니 주장하는건 좀 웃긴 일이겠죠. 그래서 전 그런 주장을 하기 보다는 대형 프로젝트나 SI에서 일하시는 분들에게 물어보곤 합니다.

"하이버네이트도 괜찮은것 같은데 왜 iBatis를 쓰고 계신가요?"

답변은 굉장히 다양합니다. 그 중에서 어느정도 공감이가고 그럴 만하다고 생각하는 답변들은 다음과 같습니다.

- 한글로된 참고자료가 없다.
- 개발자가 하이버네이트를 모른다.
- 기술 리더가 iBatis는 익숙한데 하이버는 모른다.
- 레거시 DB를 써야 하는데 정규화가 엉망이다.

이 중에서 마지막 것만 기술적인 문제처럼 보이는데, 사실은 정규화를 제대로 안 했다는 건 DBA가 제 역할을 못한 거라고 볼 수 있으니 결국엔 하이버 문제라기 보단 DB쪽 관계자들의 문제입니다.

한국인이 꼭 한글로된 레퍼런스만 읽어야 한드는 법이 있는 것도 아닌데, 한글로 된 자료가 없다는 핑계를 계속 하는 건 자신의 역량을 제한하고 스스로를 가두는 일밖에 안 된다고 생각합니다. 하이버네이트 관련 자료는 온라인에서 정말 쉽고 많이 찾을 수 있습니다. 그리고 좋은 책도 있죠.(지금 번역도 하고 있습니다.) 그런 것들을 안 본다는 건 그만큼 노력해야 할 필요성을 못 느낀 것 뿐이고, 한글 레퍼런스가 없어서 공부를 못한다는 건 좀 핑계라고 생각합니다. 그래서 이것도 역시 개발자의 문제인거지 하이버네이트의 문제는 아닙니다. 당장 구글에서 hibernate와 iBatis로 검색을 해서 어떤 단어의 검색 결과가 더 많은지 눈으로 직접 확인해보시기 바랍니다.

다음으로 개발자가 좋은 기술이 있지만 몰라서 못쓴다. 이것 역시 하이버네이트의 문제가 아니죠. 개발자의 역량 문제입니다. 하이버네이트를 완전히 마스터 해야 할 필요까진 없겠지만, 적어도 HQL이 날아가면 하이버가 만들어 주는 SQL이 대강 어떠 어떠한 걸꺼라는 예측을 할 수 있는 정도까지만 공부를 하면 될 듯 합니다. 그 뒤에 최적화나 캐슁은 DBA나 소수의 기술 리더가 책임지면 되겠죠. 어쨋거나 이 문제 역시 하이버네이트의 문제는 아닙니다. 개발자가 공부를 안 한게 문제지..

마지막 기술 리더는 프로젝트에서 어떤 프레임워크를 사용 할지 결정할 때 지대한 영향을 주며, 개발자들에게 기술을 전파할 의무가 있다고 생각합니다. 그런 점에서 기술 리더는 현재 프로젝트에 가장 적합한 기술을 객관적으로 평가하고 그 중에서 선택을 해야 하는데 자신이 하이버네이트를 몰라서 자신에게 익숙한 iBatis를 선택한다는 건 물론 타당합니다. 그래야겠죠. 하이버네이트를 쓰라고 해놓고 자신이 못 도와주면 안되니까요. 하지만 만약 그 프로젝트에 하이버네이트가 더 적합한데도 그렇게 선택할 수밖에 없었다면 올바른 선택이긴 하지만 기술 리더에겐 분명히 잘못이 있는거라고 생각합니다. 물론 기술을 잘 모르는 고객이나 개발자들은 잘 모르겠죠. '저 사람이 기술 짱이니까. 저사람 선택이 맞는거겠지'..라고 안일하게 생각하는 개발자 자신의 잘못도 크지만, 이런 인식을 퍼지게 내버려 둔 잘못은 더 큽니다. 오히려 솔직하게 고객이나 개발자에게 지금 프로젝트는 하이버네이트가 더 좋아 보이는데 내가 잘 몰라서 도입을 못하겠다. 이렇게 말하는 기술 리더가 있다면 그 사람이 진정한 기술 짱입니다. 현재는 아니지만 미래의 진정한 짱이 될 수 있겠죠.

윗 글 단락들의 크기로만 봐도 제가 생각하는 문제 원인의 비중을 짐작할 수 있으시겠죠? 맞습니다. 저는 기술 리더가 가장 큰 책임이 있고, 그 다음은 개발자, 그 다음 정규화 제대로 안하는 DBA 순으로 생각하고 있습니다.

저는 위에서 생각한 저 네 가지 답변 말고 하이버네이트 기술 자체를 가지고 올타 그르다를 논하는 답변을 들으면 그 주장에 대한 증거를 찾고 반론에 대한 기술적인 증거를 찾기 전에 일단 이런 의문부터 생깁니다.
외국의 유명한 업체들의 개발자도 하이버네이트를 쓰고 있다. 그 사람들은 바보가 아니다. 그 사람들이 진행하는 프로젝트의 규모가 작은 것도 아니다. 그 사람들도 레거시 DB를 쓰고 있다. 하이버네이트를 iBatis 못지 않게 아주 많이 잘 쓰고 있다. 하이버네이트에 기술적인 결함이 있었다면, 그 사람들이 왜 쓰고 있는거지.. 말도 안돼. 개빈 킹이 가만 있을 만한 성격도 아닌거 같은데.. JBoss에서 노는 것도 아닐텐데 말이지..
반면에 같은 질문을 했을 때 가장 대표적인 기술적인 답변들은 다음과 같습니다.

- 테이블 중심이라 블라 블라..
- 레거시가 블라 블라..
- DB에 특화된 쿼리가 블라 블라..
- SQL을 직접 블리 블라..
- 성능이 블라 블라..

말이 안 되자나요. 저런 문제들이 있는데 유명 해외 업체 개발잘들은 무슨 깡으로 하이버네이트를 쓸까요. 이번 12월에 Spring One America에 가서 직접 물어보고 오겠습니다.

"What kind of framework is used for your persistence layer?"

"How many projects have you experienced with Hibernate?

"Have you ever used Hibernate with legacy DB? Is it really too hard to do that?"

"What about performance?"

"What do you think about Hibernate and iBatis?"

물론 이 질문들은 덤일 뿐이고, 스프링 관련 질문도 많이 하고 와야죠.  가기 전에 S1A에 가서 질문할 것과 말할 것들을 미리 정리해 둬야겠습니다.
top

  1. Favicon of http://toby.epril.com BlogIcon 토비 2008.11.03 12:57 PERM. MOD/DEL REPLY

    영어가 쫌... ( " )

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2008.11.03 13:50 신고 PERM MOD/DEL

    영어 민망해요.ㅋㅋ 대강 알아는 듣지 않겠어요? ^^;;;

  2. Favicon of http://sunnykwak.egloos.com BlogIcon 써니 2008.11.03 13:02 PERM. MOD/DEL REPLY

    음... 제가 불을 지핀게 아닌가 싶네요~

    글을 읽다가, 개발 리더의 잘못이라는 부분에서 눈에 살짝 비가 내렸습니다.

    하이버네이트 도입을 주장하는 개발 리더들이 현장에서 정치 싸움에 휘말리고,
    "네가 그걸 어떻게 책임질거냐?"는 비난에 시달리다 조용해지는 모습들을 너무 많이 봐와서...

    그리고 저 역시 쫒겨나온(?) 사람이구요. 그래도 포기하면 안되겠죠.
    서글픈 현실, 그래도 구름 위에는 여전히 태양이 떠있으니까요~ 포기는 배추 셀때나 써야죠.

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2008.11.03 13:42 신고 PERM MOD/DEL

    원래는 찬욱이가 작성했던 글

    http://chanwook.tistory.com/723

    이걸 봤을 때부터 가지고 있던 생각입니다. 그러다가 오늘 써니님의 글과 사부님의 글

    http://sunnykwak.egloos.com/3965589
    http://toby.epril.com/?p=468

    을 보면서 제 생각도 정리해보고 싶더라구요. ^^;

  3. 2008.11.03 13:11 PERM. MOD/DEL REPLY

    비밀댓글입니다

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2008.11.03 13:49 신고 PERM MOD/DEL

    네. 맞는 말씁입니다. 어디까지나 팀과 기술리더의 역량을 고려해서 선택해야 하는데, 하이버네이트가 좋다고. 스프링이 좋다고 무작정 도입해버리면.. 그것도 고생 길이겠죠.ㅎㅎ

    그 내면에 숨겨져있는 문제 중 하나는 의사 결정을 할 때 실제 코딩을 할 개발자를 전혀 고려하고 있지 않다는 것이겠네요. 에흄~ 넘 싫어요. 결정은 다 했으니 넌 코딩만 해라.. 뭐 이런거자나요. 우웩;;

    S1A에 가서 다른 나라 개발자들은 어떻게 살고 있는지 많이 인터뷰하고 오겠습니다.

  4. navis 2008.11.04 00:29 PERM. MOD/DEL REPLY

    하이버네이트 검색어가 많은건 하이버네이트가 어렵기 때문입니다.

    Favicon of http://whiteship.me BlogIcon 기선 2008.11.04 08:11 PERM MOD/DEL

    ㅎㅎㅎ네 그럴수도 있겠네요.

  5. 레인보우 2008.11.04 01:06 PERM. MOD/DEL REPLY

    현재 SI 프로젝트에서 일하고 있습니다.
    EJB기반이면서 persistent 계층만 iBatis를 이번에 도입해서 쓰기시작했습니다.
    제가 시작할땐 이미 iBatis를 적용한 상태라서 어떤 이유로 도입하게 되었는지 배경은 잘 알지 못하지만.
    제 생각엔 지금 현재 기술리더가 새로운 기술을 공부하고 익히는데 관심이 높은 편이라서 도입한 것 같구요...듣기론 그런거에 별 관심없는 사이트도 많다고 합니다.
    지금 잘 돌아가는 시스템을 굳이 돈들여서 바꿀 이유도 없구요.
    그리고 높은 개발자 역량이 필요하다면 당연히 단가도 올라가겠죠.....제 생각엔 젤 중요한건 돈과 시간문제인 것 같습니다.

    대부분의 프로젝트는 업무 도메인 분석해서 반영하기도 바쁩니다.
    새로운 기술을 도입하는 데 시간을 쓸 여유가 충분히 있다면 할 수도 있겠지만요.
    여지껏 경험해본 프로젝트의 일정으로는....불가능하다고 봅니다.

    돈과 시간과 개발자의 역량을 중요시하는 환경이 부족한 것 같습니다.
    직접 뛰어보시면 알꺼에요....쉽지 않다는걸....
    저도 새로운 기술 공부해서 적용하는거 좋아하고 또 그렇게 할 수 있는 환경에서 근무하는 분들보면 부럽기도하고 그렇습니다....

    Favicon of http://whiteship.me BlogIcon 기선 2008.11.04 08:30 PERM MOD/DEL

    흠.. 그렇군요. 일단은 환경이 넘 어렵네요. 하지만 그런 환경을 바꾸는 것도, 바꿀 수 있는 것도 결국은 개발자들이겠죠.

  6. 레인보우 2008.11.04 01:14 PERM. MOD/DEL REPLY

    아 그리고...한가지 더 붙이자면....

    기술적인 이유와 아무상관없이 영업과 정치적인 이유에서 특정기술을 써야 하는 경우도 있습니다.
    당연히 오픈소스 프레임웍 좋은거 많치만...엄청나게 비싸고 구린 상용프로그램을 써야할 때도 있구요.
    우리나라에 왜 오라클 점유율이 그렇게나 높은지를 보면 알수도 있을것 같습니다.
    기술적으로 오라클이 아니면 안되서 그런건 아닐꺼잖아요...ㅎㅎ

    Favicon of http://whiteship.me BlogIcon 기선 2008.11.04 08:31 PERM MOD/DEL

    정치적인 요인이 없어지려면 힘들어보입니다. 고객이 똑똑하고 청렴해지기를 바라는 수밖에는...

  7. 양완수 2008.11.04 10:41 PERM. MOD/DEL REPLY

    http://agile.egloos.com/4689776 쇼를 할 준비가 되어있어야 이 현실을 타파할듯하네요

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2008.11.04 13:17 신고 PERM MOD/DEL

    좋은 글 링크 감사합니다. :)

Write a comment.