#0
원래 프로그래밍이라는 거는 기술 그 자체보다는 비즈니스 로직이 중요하다. 나는 기술적으로 어떻게 구현하느냐보다는 화면에 어떻게 나오는가가 더 중요하고(즉 UI가 더 중요하고) 왜 그렇게 나와야 하는지에 대한 비즈니스 로직이 더 중요하다고 생각한다. 그걸 잘 하는 사람은 상당히 디테일한 상황적 변수를 고려한다는 얘기다. 남들은 그런 부분에 있어서 나더러 거의 정신병적인 정도 수준이라고 얘기할 정도로 디테일하다. 별로 중요한 거 아니다고 얘기하는 경우도 많지만, 내가 보기에는 나중에 일이 커지면 오히려 리스크가 더 커진다고 판단하는 경우가 많다.
#1
css, ajax, javascript, php, mysql, apache, linux.
css, ajax는 사실 이번에 하게 된 거지만 나머지는 정말 20년 전부터 다뤄왔던 거라 익숙하다. 현업 개발자들이라고 하더라도 얘기하다 보면, 도대체 저 사람 기술에 대해서 상당히 깊이 있게 안다는 생각이 들 정도 수준. 나는 사실 프로그래머를 초,중,고로 나누는 내 나름의 기준이 있다. 언젠가는 그 기준대로 사람을 뽑을 생각이고. 그냥 Copy & Paste 해서 구현되고 문제없이 작동만 되면 된다는 생각으로 프로그래밍을 하면 실력 안 는다. 그건 누구나 다 하는 개발이다.
linux는 내가 마이크로소프트 공인 강사 시절에 접하고 나서 windows보다 훨씬 낫다는 생각에 공부했고, 이후 unix,solaris,hp-ux까지 공부했다. apache야 오래 전부터 써왔던 거고, mysql은 innodb가 처음 나왔을 때 innodb로 사이트를 만들면서 익혔고, php는 뭐 거의 안 해본 게 거의 없을 정도다. 사실 시스템 즉 운영체제에 대해서 이해하면 이를 활용해서 할 수 있는 게 많다. php로 구현하는 건 프론트엔드고 백엔드는 시스템이니까. 그래서 나는 가급적이면 프론트엔드에서 처리하는 거 보다 백엔드에서 처리해주는 걸 선호한다. 그게 퍼포먼스가 좋으니까. php보단 mysql에서, mysql보단 os에서.
그러나 나는 기술적 완성도는 그리 중요하게 생각하지 않는다. 몰라서 중요하지 않게 생각하지 않는 게 아니라 더 중요하게 볼 부분이 있단 얘기.
#2
css와 ajax는 공부를 하면서 했기 때문에 뭐 시간이 좀 걸릴 수 밖에 없었지만 정작 내가 시간이 걸렸던 거는 그런 게 아니었다. 단순히 내가 이번에 작정하고 개발에 임했던 이유는 하루 이틀할 비즈니스 아니고, 아주 큰 설계도 내에서 초석을 닦는 과정이라 생각했기에 몇 달 미루어진다고 해서 그게 중요한 게 아니라 생각해서다. 내가 이 정도 시간이 걸렸다면, 다른 이들은 쉽지 않다. 나는 항상 그런 생각으로 일한다. 거만하다 자만심이다 그리 생각하는 이들 많아도 겪어보면 달라질 거라 생각한다. 물론 정말 뛰어난 사람이라고 한다면 나도 느낀다. 나는 그런 사람은 대우해준다. 인정할 건 인정해야지. 그러나 그런 이들이 거의 없다는 것일 뿐.
#3
수많은 쇼핑몰(국내, 해외)를 보면서 왜 이렇게 구현했지하는 스스로 질답을 던졌다. 왜 그리 복잡하게 구현했을까? 물론 이유는 있다. 그러나 이용자 측면에서는 복잡하다. 어떻게 해서든 이용자 측면에서 심플하고 직관적으로 나오게 하는 데에 공을 들였다.
예를 들면, 왜 주문/배송과 교환, 환불 이런 거는 메뉴를 다르게 했을까? 영수증은 왜 또 다른 메뉴에 별도로 뒀을까? 내가 볼 때는 정말 뚝딱뚝딱 만든 거 같다. 정말 놀랬던 건 고도몰 관리자를 보고서다. 와~ 우리나라에서 쇼핑몰 사업자들이 그리 많이 이용한다는 그 고도몰의 관리자를 보면서 이건 정말 뚝딱뚝딱 덕지덕지 프로그래밍한 사이트라는 걸 알 수 있었다. 이건 뭘 말하느냐? 프로그래머가 실력이 없는 게 아니라 오너가 기술에 대한 이해가 없고 장인정신 없이 돈을 버는 데에 초점을 맞췄다는 걸 뜻한다.
그러니 우리나라에서는 구글같은 사이트는 나올 수가 없다. 오직 돈 버는 데에만 집중한다. 내가 요즈음 가장 듣기 싫어하는 말이 뭐냐면, 돈 벌고 나서 나중에 하는 게 어떻냐는 거다. 내가 그런 마인드를 가지지 않은 사람도 아니지만, 또 내가 그런완벽주의적인 성향이 있긴 하지만, 내 나름 여러 생각을 하면서 판단한다. 그래서 그런 소리를 들으면서도 나는 고집을 꺾지 않았다. 내 기준에서 내 맘에 들지 않으면 오픈 안 한다는 생각에 여기까지는 해둬야 한다. 그렇게 해둬도 후에 더 많은 것들을 해야 할 판국에 말이다.
#4
단순히 내가 물건 파는 쇼핑몰 만들려고 했다면 그런 거는 일주일도 안 되서 만든다. 다만, 나는 입점방식의 쇼핑몰을 구현하려고 했고, 인포머셜한 쇼핑몰에 내가 가장 핵심적으로 생각하는 뭔가를 하나 더 넣었다. 오래 전부터 생각해왔던 거다. 이건 비즈니스 로직적인 부분에서만이다. 실력이라는 건 그냥 말로 하는 게 아니다. 보여주면 그만이다. 같은 걸 두고 같이 프로그래밍해보면 알 거라 본다. 내 핵심 차별화는 혼자서 이것 저것 다 할 수 있다는 거다. 뭐 하나 부족한 부분이 있을 순 있어도 다른 사람은 여럿이서 해야하지만 나는 혼자서 가능하다. 내가 지치지만 않으면 혼자서 하는 게 훨씬 더 빠르다. 다만 이번에는 정말 지치는 부분도 많았다. 너무 할 게 많아서였다. 그래서 카톡 프로필 메시지에도 지치지 말자고 스스로를 다그치면서 개발에 임했다.
#5
하나의 처리라 하더라도 상황에 따라 처리가 달라진다. 게다가 어떤 권한의 유저가 해당 처리를 하느냐에 따라서도 달라진다. 하나의 파일을 프로그래밍하는 데에도 수많은 경우의 수가 나와서 이제는 A4 용지에다가 끄적대지 않으면 하기 힘들 정도다. 지금까지 프로그래밍하면서 그랬던 적 단 한 번도 없다. 근데 이제는 너무 복잡해서 건드리기가 쉽지 않은 부분이 있다. 나도 사실 그런 부분이 우려가 되어 문서화시키면서 작업하고 있다. 근데 그 문서화 또한 어떻게 하는 게 가장 간편할까를 염두에 두고 했다는 것. 어떤 일이든 일단 하게 되면 제대로. 사소한 것까지 신경써서. 그게 내 일하는 방식이다. 경우의 수는 10의 7승까지 나온다. 물론 내가 그룹핑을 해서 단순화시키긴 했지만 초기 설계를 그렇게 해뒀다. 그래서 로그인한 유저에 따라 같은 메뉴라도 보이는 게 틀리고, 추후에 좀 더 디테일한 확장이 가능한 구조다.
#6
나는 불필요한 메뉴 주루룩 늘어놓는 거 싫어한다. 그럼에도 불구하고 메뉴로 나눠야 하는 경우들이 있다. 그랬을 경우에도 파일은 하나로 처리하는데, 이게 생각보다 헷갈리는 경우가 많다. 뭐 종종 발생하는 일이지만 어느 정도 수준까지는 난 머리 속에서 생각해서 그냥 구현한다. 그럴 정도 수준이 아니라 내가 A4 용지에 끄적거리면서도 복잡하다고 생각할 정도 수준에 이르렀다. 아마 다른 프로그래머가 보면 일단 건드리기가 쉽지 않을 거다. 이해하고 접근해야 문제가 안 생길테니.
게다가 나는 기본적으로 PC나 모바일이나 화면이 똑같이 나오게 하기 위해서 두 가지 포맷 중에서 선택해서 볼 수 있게 해뒀다. 물론 어느 걸 선택하든 모바일에서 보는 데에 문제가 없다. 다만 모바일에서 보기 편한 구조가 있고, PC에서 보기 편한 구조가 있다. 문제가 없다해서 그냥 넘어가는 게 아니라 이왕이면 이렇게 가는 게 좋겠다고 하면 좀 더 신경 썼다.
근데 Resposible Web을 개발해본 사람이라면 알겠지만 테이블 형식으로 뿌려주는 거랑, div 형식으로 뿌려주는 거랑은 뿌려주는 순서가 틀리다. 어찌보면 이런 면에서는 div를 사용하는 게 편하다. 그러나 또 div 형식이 나은 면도 있지만 table 형식이 나은 경우도 있다. 그래서 두 개 다 지원하는 거다. 상황에 따라 틀리니까. 그걸 또 모듈화시켜서 재사용 가능하도록 만들어두고. 그런 걸 반복하다 보니 내부는 점점 복잡해져서 나도 헷갈릴 정도니 문서화를 시킬 수 밖에 없었다. 기술적 완성도 때문에 그렇게 한 게 아니라 내가 개발한 핵심에는 혼자서 초대형 사이트라 하더라도 매니지먼트 가능하도록 구현하는 거였다. 게다가 UI에서도 내 맘에 들도록.
#7
나름 내가 가진 모든 걸 총동원했다. 그래도 이렇게 할 수 있었던 이유는 기존에 하던 일을 동생이 위임받아서 처리하기 때문이다. 나보다 대인관계 면에서는 훨씬 낫다. 나는 사실 영업적이지 못하기도 하고, 내가 싫어하는 부류의 경우에는 상종 자체를 안 하려고 하니까. 내 색깔이 너무 강하다. 그래서 오히려 그렇게 하는 게 더 낫다고 본다. 앞으로도 마찬가지고. 앞으로 나는 사람들 만나는 일이 점점 줄어들 듯. 나한테 오는 연락도 동생한테 토스하니까. 여튼 이제 얼마 안 남았다. 물론 오픈하고 난 다음에도 계속해서 해야할 게 산더미 같이 쌓여있긴 하지만...