[강박사의 디지털보] <9>프레임워크의 복부비만

[강박사의 디지털보] <9>프레임워크의 복부비만

정보 저장은 기원전 3300년경에 점토판에 쐐기 모양으로 기록한 것이 시초로 알려져 있다. 파피루스, 목간, 죽편, 양피 등 다양한 기록 매체를 거쳐 종이만 살아남았다. 엄밀히 말해 문자 발전과 그 문자를 기록하는 매체는 서로 무관하다. 정보 저장은 문자보다 그 기록이 이루어지는 매체의 물성이 더 중요했다. 종이가 세계 4대 발명품인 이유는 기존의 다른 어떤 재료보다 가볍고 얇은데다 세밀한 기록이 가능해 정보의 저장 용량이 비약적으로 늘어난 물성을 가지고 있었기 때문이다. 당시 기준으로 데이터 저장의 혁명이 이루어진 것이다.

오늘날 디지털 장비에 대용량 데이터를 저장하는 시대에 접어들면서 종이 물성과는 차원이 다른 진보가 이루어졌다. 스토리지 가격마저 급락해 '스토리지는 저울로 달아서 판다'라고 농담을 할 정도가 됐다. 디지털 환경에서 정보는 0과 1의 이진수 데이터로 바뀌었고 물성에 영향 받던 저장 매체는 용량과 속도에서 자유롭게 됐다.

[강박사의 디지털보] <9>프레임워크의 복부비만

정보의 내용 관점에서 보면 쐐기문자와 점토판도 거래 기록에서 출발했을 것이다. 거래는 증명과 부인방지의 속성상 기록으로 남겨야 했기 때문이다. 빌리고 갚고 사고 팔고 한 거래의 기록이 정보 저장의 출발이었듯이 오늘날 업무용 애플리케이션도 원장(General Ledger)으로 불리는 거래를 기록하고 관리하는 것이 핵심이다.

정보를 어떻게 구조화시킬 것인가는 종이에 기록할 때와 크게 달라지지 않았다. 가장 직관적이면서 효율적인 데이터의 구조화 방법은 표(Table) 형태다. 주소록, 금전출납부, 성적표 등 정보를 표로 만들어 구조화시키는 것이 효율적이다. 이런 표를 상하좌우로 펼칠 수 있도록 프로그램해서 만든 것이 스프레드시트 툴이다. 이를 더 발전시켜 행과 열의 개념이 있는 표를 객체로 만들고 그 객체간 관계를 만들어 데이터를 관리하도록 최적화시킨 것이 관계형 데이터베이스다. 말 그대로 ERD는 표들의 관계를 일목요연하게 설명한 그림일 뿐이다.

데이터베이스에서 값을 조회하고 변경하기 위해 사용하는 특별한 언어를 SQL(Structured Query Language)이라 한다. SQL은 인간이 쓰는 언어와 비슷하게 Insert, Select, Update, Delete 같은 어휘로 데이터를 입력, 조회, 변경, 삭제를 한다. 업무용 애플리케이션은 SQL을 통해 데이터의 입출력을 하고 그 결과를 화면에 표현하는 일이 대부분이고 복잡한 연산과 어려운 로직을 처리하는 작업은 생각보다 많지 않다.

[강박사의 디지털보] <9>프레임워크의 복부비만

애플리케이션 개발은 데이터가 저장될 테이블, 데이터를 처리할 SQL과 로직, 유저가 사용할 화면으로 나뉜다. 이중에 유연하고 구조화된 테이블을 설계하는 것이 가장 중요하다고 인식했다. 또 SQL을 다루는 미들웨어 영역은 특별한 개발 프레임워크를 사용해야 한다고 믿어왔다. 반면에 화면은 단순 개발자 역할로 치부돼 왔다. 이러한 믿음과 방법론은 의심없이 수십 년간 개발 방식을 지배해 왔다.
외국도 같은 방식일까? 외국은 이미 가장 우수한 개발자가 화면을 담당하도록 바뀌었다. SQL은 미들웨어에서 처리하지 않고 데이터를 다루는 DB 영역(Stored Procedure)으로 환원됐다. 미들웨어는 화면과 데이터베이스 간 중계 역할만 하도록 '초경량 프레임워크'로 교체됐고 기존의 프레임워크는 사라지고 있다. '작동하는 화면부터 개발해 사용자 확인을 마치고' 그 후에 '테이블을 생성하고 SQL을 작성'하는 애자일 방식을 따르고 있다. 외국의 개발 환경이 변한 이유는 무엇이고 어느 쪽이 더 효율적인가를 살펴보면 그 간의 믿음은 흔들리게 될 것이다. 프레임워크의 복부비만을 해결하는 것이 개발구조 개선의 지름길이다.

[강박사의 디지털보] <9>프레임워크의 복부비만

강태덕 박사 streetsmartkang@gmail.com