SI 조선시대코더 인사드립니다.
어디선가 저를 부르는지 아침 일찍 잠에서 깨어 it뉴스를 보는데 이틀전 okky를 뜨겁게 달구었던 글이 떠있어서 보게 되었습니다.
최근 개인 블로그에 비슷한 맥락으로 그시절개발에 대해 작성한적이 있었는데 조선시대 코더가 왜 그렇게 구조를 만들었는지 한번 끄적여 봤습니다.
(개인경험이라 전체를 대변할 수 없는점 양해 부탁드립니다.)
우선 그런 구조를 가지게 된 배경부터 이해가 필요한것 같습니다.
배경
Java는 거쳐갈뿐
이게 무슨말인가 싶겠지만 조선시대 java코드는 유틸리티 코드로 만들어 화면에서 만든 데이터를 디비로 전달하는 구조를 많이 띄었습니다.
예를들어 jsp에서 특정 데이터 입력하는 기능이 있습니다.
화면에서 데이터를 입력한값들을 jquery serializable해서 jquery ajax로 통신을 합니다.
Java에서는 해당 request의 구조를 해석해서 그대로 hashmap으로 만들어 줍니다.
만들어진 hashmap은 그대로 ibatis(mybatis아님)로 전달하여 디비에 그대로 넣어줍니다.
비즈니스 프로세스는 디비로 처리한다.
Plsql, 프로시저, 오라클 패키지등으로 비즈니스 프로세스를 구현했습니다.
정리하다면 아래와 같은 구조입니다.
Jsp(화면) → Java(중간다리)→ db(비즈니스 프로세스)
왜?
왜 저렇게 만들었을까요? 제가 생각한 이유는 아래과 같습니다.
Db로 비즈니스 프로세스를 처리 장점은 무중단으로 비즈니스 프로세스 변경이 가능하다 입니다.
지금이야 무중단 배포가 당연한 이야기 처럼되어있지만 그시절엔 그렇게 않았습니다. (사실지금도 그렇게 당연하진 않습니다.)중단 없이 비즈니스 프로세스를 바꾸는 비용이 저렴한 방법중 하나였습니다.
저렴합니다.
인건비가 java보다 쿼리로 만드는 분들이 더 저렴합니다. 어느정도 투입가능한 수준으로 교육을 시키더라도 런닝커브가 java보다 더 낮습니다.
이러한 구조를 띄다보니 많은 java코드단에서 예측할 수 없는 일들이 발생합니다.
그래서 예외가 발생하더라도 프로그램이 정상적으로 작동하고 오류를 빠른시간에 확인하기 위해 try catch를 덕지덕지 발라두었습니다.
더 깊이 많은 내용들이 있어 쓸려면 한도끝도 없이 쓸수 있을것 같은데 폰으로 쓰다보니 힘드네요.
저시절 정말 저런 구조로 크고작은 프로젝트를 8년동안 40개 정도 한것 같습니다. 저구조를 회사에서 제가 만들었으니 제가 악의 원흉중 하나인것 같습니다.
지금은 끊었지만 자리에서 담배피면서 야근하면서 코딩하던 시절이었네요. 정말 공장처럼 살았고 지금와서 저시절이 개발역량발전에 도움이 되진 않았습니다.
하지만, 저시절 왜 저런 구조로 만들게 되었고 어떤효과를 냈는지 등을 복기해보다 보면 개발은 아니나 일하는데 많은 도움이 되었다고 생각합니다.
생각없이 짠 코드는 규칙이 없습니다. 만약 여러분이 보고계신 남이짠코드가 규칙이 있다면 나름의 이유가 있을테니 한번 생각해보시면 조금의 발전이, 더나은 방향을 제시하시고 실행하시면 큰발전이 있을거라고 생각합니다.
다들 요즘 경기가 어려운데 힘내시기 바랍니다.