ORM를 만나건 Ruby on Rails를 공부할때였습니다.
DB와 동일한 class를 만들고 서로간에 관계(1:1, 1;N, N;N)를 설정한다.
그리고 간단하게 CRUD를 해결한다는 이야기 였습니다.
그때는 '제법 괜찮다'라는 생각으로 공부를 했었는데..
막상 프로그램을 유지보수 하기 위하여 만난 ORM은 끔찍했습니다. ^^

요즘 Spring, JPA, Hibernate에 관련된 이야기를 여기 저기서 많이 보게 됩니다.
이번에 유지보수/추가개발을 담당하게된 소스도 저 녀석들로 만들어져 있습니다.
차리리 새로하는 개발이면 익숙해질 시간이라도 생길텐데.. 유지보수/추가개발을 만나게되면..
시간도 부족하게 됩니다. 당장.. 몇일안에 만들어야 하는데.. 건네받는 소스들은.. 저 멀리 안드로메다에 있습니다.

상속, 인터페이스를 포함한 class들의 관계, Spring, JPA, Hibernate ..
아주 간단한 하나의 기능을 만들기 위해.. 퇴근시간이 또 미루어 집니다. ^^

우리는 어려운 길을 택했다. 그랬기 때문에 나중에 쉬어졌다. 라는 어느분의 말과..
익숙한 것만 고집하는 프로그래머는 비난받아 마땅하다라고 이야기하는 분들에 따르면..
전.. '악의 축'이지만.. 그럼에도 저의 생각은 '음.. 꼭 저렇게 개발해야 하나...?' 입니다.

어떤 분들은 수많은 프레임워크와 디자인 패턴들이 '개발속도를 빠르게 하고, 유지보스를 쉽게 만든는 장점이 있다'고 이야기합니다. 하지만 직접 해보시면.. 절대 쉽지 않습니다. 절대로..

상속, 인터페이스를 포함한 class들의 관계, Spring, JPA, Hibernate ..
Java의 웹으로의 여행은 점점 먼 곳으로 가고 있는 것 같습니다.

가장 아름다운 소스는 개발경력 1년차들도 이해하고 유지보수 할 수있을 정도여야 한다고 생각합니다.
소스의 코드는 '컴퓨터가 좋아하는 형태'로 만들어지는 것이 아니라 '사람이 이해하기 쉽도록'만들어 져야한다고 생각합니다. 가장 단순한 형태로, 누구나 쉽게 이해할 수 있도록...

KISS - Keep It Simple, Stupid


Posted by 달빛변신

댓글을 달아 주세요

  1. 쟝또루푸 2009.01.22 20:14 신고  댓글주소  수정/삭제  댓글쓰기

    이제 웹 개발에 발 들여 놓은 휴학생이자, 개발자로 여생을 살아가고 싶은 사람입니다.

    스트러츠 공부 하려고 자료 수집중 우연찮게 글을 읽게 되었는데요.. 지금 한 2주 넘게 공부 중에 있는데요~

    ^ㅡ^ 글이 참.. 좋네요!... 글 재주가 없어 제가 받은 느낌을 다 표현 하진 못하지만.... 멋지십니다 ''//

    • 달빛변신 2009.01.30 13:55 신고  댓글주소  수정/삭제

      음..
      결국 또 이렇게 한분이 힘든 길을 선택하시게 되네요.. 안스러움과 격려를 보내드립니다. ^^
      혹시 잘 안되는 부분이 있으면 가끔 방명록에 적어주세요. 제가 할 수 있다면 도움 드릴 수 있었으면 좋겠습니다.

  2. 나마에 2010.02.16 09:55  댓글주소  수정/삭제  댓글쓰기

    그렇죠 스프링이니 스트러츠니 뭐니 다 개발해보면 시간만 더 잡아먹습니다.
    그나마 java진영에서 가장실용적이다 라고 말할수 있는건 ibatis뿐이네요.

  3. 개발자아 2010.05.10 18:41  댓글주소  수정/삭제  댓글쓰기

    우연찮게 들러 글 몇자 적습니다. ^^
    혹시나 개발입문하신 분들이 찾아오셔 잘못된 오해를 하실까해서요.

    개발 1년차가 이해할 수 있어야 아름답다니요 그건 하드코딩밖에 없습니다.

    Spring 등과같은 프레임웍들은 상당한 개발비용과 유지보수 비용을 줄여줍니다.
    물론 "제대로" 사용했을 경우 입니다.
    물론 그 제대로 사용하기까지는 습득을 해야하는 시간이 들어가겠지요
    그 습득 이후에 뻗어나갈 수 있는 개발적 이득은 무궁무진 하다고 생각합니다.
    더군다나 적으신 프레임웍은 입문한 분들은 메소드 덩어리일 뿐인 프레임웍이
    자바같은 언어인마냥 인식을 할 정도로 대중화가 되었구요

    바로 해결을 봐야하는 유지보수 건, 이해는 가지만
    때문에 그이상의 잘못된 판단을 하진 않으셨음 합니다.
    혹은 이이상 개발을 공부하기 귀찮은 건 아니신지요.

    어찌됐든간에 더 발전하기 위해 자꾸 만들고 시도하고를 반복하는것이 개발이라고 생각합니다.
    아니면 스케일 차이일뿐 그냥 정해진 명령어로 레이아웃 그리는 HTML 코더하고 뭐가 다를까요

    우리나라 개발자들의 특징이 개발에 있어 본인이 신경쓴 이상이면 오버이고
    그 이하면 왜 이렇게 성의없이 했냐는 식입니다.
    남이 만든 소스는 잘 만든건지 아닌지를 판단하기 앞서 일단 배척할려는 배경이 깔리죠

    업무가 우선이긴 하지만 프로그램은 돌아가게 하는정도로만 너무 신경 안쓰는 것 같습니다.

    오래된 글이지만 그런 것들에 진저리가 난 1人으로써
    누군가 검색으로 잘못된 오해를 할까 노파심에 잠깐 끄적이고 갑니다.

    제가 본문을 오해한거라면 죄송합니다.
    그럼이만.

    • 달빛변신 2010.06.08 09:43 신고  댓글주소  수정/삭제

      제법 오래된 글인데 댓글이 달릴줄은 몰랐습니다. '개발자아'님의 소중한 시간에 우선 감사드립니다. ^^

      네.. 생각해 보니.. 1년차는 좀 이른감이 있습니다.
      하하. 인정입니다. 음 3년차 정도로 하죠 ^^

      '개발자아'님의 말씀처럼 늘 고민하고, 공부하고, 이해하고 발전할 수 있는 프로그래머가 되도록 노력해야 겠습니다.

  4. 지나가는 2011.07.05 16:02  댓글주소  수정/삭제  댓글쓰기

    저는 달빛변신님의 글에 공감합니다. 1년차가 공감하는건 하드코딩밖에 없다구요?
    그건 무슨 비하이신지.. 오히려 하드코딩이 제일 공감안됩니다.
    1년차라도 진짜 잘 짜놓은 코드 보면 와~~~ 이런 소리 나옵니다.

    진짜 궁금한게 프레임워크 좋아하시는 분들은 유지보수까지 해보셨는지 궁금하네요.

    • 이런.. 2011.11.08 12:51  댓글주소  수정/삭제

      이런 한심하긴... 프레임워크의 정의 조차 모르는 것들이 지껄이는 소리란..

      난 니가 노프레임워크로 유지보수를 해봤는지가 궁금하단다.