2년간 운영하고 개발했던 Active X와 WPF/SilverLight를 과감하게 포기하고 본격적으로 웹으로 전향하기로 한다. 웹으로 전향하기에 앞서 개발 방향의 전환도 함께 제시하게 된다. 비즈니스 프레임워크 개발이다. "프레임 워크?" 개발된 프레임워크를 사용하는데 익숙했지 직접 개발한다는 개념이 잘 잡히질 않는다. 고수는 몇 개월 동안 혼자 개발한 프레임워크를 커밋했고 소스를 서버에서 내려받는 중이다. 소스는 텍스트이기 때문에 내려받는 것은 금방 되어야 하는데 내려받는 시간이 걸린다.
바뀐 내용이 상당하다는 것이 느껴지고 아무 생각 없이 빌드 버튼을 누른다.
"빌드 오류가 100개 이상 나오고 있다. ㅋㅋㅋ"
혼자서 해결할 수 없다고 판단한 나는 고수에게 찾아간다.
"소스를 내려받은 후에 빌드 오류가 많이 나서 여쭤보러 왔어요."
"아~ 그래~? 맞다 내가 실수했다. 조금만 더 보고 알려줄 테니 조금만 기다려~"
그리고 몇 분이 지나서 나를 호출하여 빌드 전 해야 할 설정들을 차분히 설명해 주신다.
고수의 지침에 따라서 설정을 하고 다시 빌드 버튼을 누른다. 아주 클리어하게 소스가 빌드가 되고 실행이 된다.
모든 것이 완벽해 보였던 고수도 실수를 한다. 사람은 누구나 실수를 할 수 있고 개선될 수 있다. 하지만 개선되기 위해서는 반드시 선행되어야 하는 것이 있다. 그것은 "인정"이다. 넘사벽 위치에 있는 고수도 실수를 인정하고 바로 고쳐서 상황을 바로 잡았다.
사회생활을 오래 하고 사람을 관찰하다 보니 생각보다 많은 사람들이 실수에 대하여 스스로 인정하는 사람을 보기가 드물며 그 실수를 감추려는 노력과 에너지를 쏟는 것을 보게 된다.
많은 사람들이 그렇게 하기 때문에 그럴 수 있다고 생각은 하고 있다. 하지만 개선의 여지가 남지 않는다는 사실이다. 그리고 개선의 의지는 본인의 몫이기 때문에 반드시 실수를 인정할 필요는 없다. 모든 것은 본인에 선택의 문제일 것이다.
그리고 나의 실수는 인정하지 않지만 남의 실수는 기가 막히게 찾고 언급하려고 하는 사람들도 많다. 남의 실수를 찾으려면 자신의 실수도 인정해야 하고 만약 그렇지 않는다면 남의 실수도 바라보지 말아야 하는데 무엇을 지키고 싶어서 그러는지는 아직도 미스터리이다.
34. DOC와 춤을
프레임워크와 함께 기획 기술 문서를 작성하기로 한다. IEEE(I-Triple-E) 표준 문서 템플릿이 있고 고수는 그 항목에 맞춰 영문으로 직접 작성한 기획 문서를 나에게 전달한다. 중국인 개발자가 2명이 있어서 고수는 영문으로 작성해서 주었다. 기획 문서 이름은 SRS(Software Requirement Specification)라고 부르며 제품을 만들 때 필요한 요구사항들을 설명한 문서이다.
목차는 제품의 목적과 요건들, 전체 요약 및 환경, 인터페이스, 시스템 요구사항, 성능 요구사항, 기능적 요구사항, 비기능적 요구사항 등의 항목으로 구성된 문서이다.
처음 받아 본 문서에 영문은 무척 당황스럽다. 천천히 영문을 해독하고 고수에게 설명을 들으면서 시스템을 이해해가고 있다. 이해가 되면 될수록 문서의 깊이는 놀랄 수밖에 없다. SRS가 정리가 될 때 즈음 SDD문서를 만들어보라고 나에게 지시하신다.
"SDD??"
Software Design Description으로 SRS는 시스템의 요구사항을 이해하는데 초점이 맞추어져 있다면 SDD는 개발에 초점을 맞춘 기술 문서이다. 그동안 경험하고 배운 것을 모두 쏟아내어 문서를 작성하고 있지만 문서에는 정답이 없기 때문에 지속적으로 의심이 든다.
일단 시각화 툴로 전체 시스템 구성도와 흐름을 그려보고 UML, ERD도 그려보고 설명 글도 쓰고 있다. 이렇게 그리고 쓰고를 반복하니 어느덧 doc파일 200p가 넘는 기술 문서가 완성되었고 고수는 아무 말도 하지 않았다.
오랜 기간 개발을 하면서 자주 듣는 말이 있다. "문서 쓰는 것이 제일 어려워~" 이 말 뜻에 대하여 고민해 보자.
문서를 쓴다는 것, 즉 글을 쓴다는 것은 어려운 일이 결코 아니다. 문맹이 아니고서야 글을 못쓰는 사람은 없다. 다만 잘 쓰기가 어렵다고 하는 것이 맞을 것 같다.
문서(글)를 잘 쓴다는 것은 처음 접하는 사람도 이해할 수 있도록 쓰는 것이 문서이다. 하지만 대부분의 사람들은 자신의 관심사가 아니면 글을 천천히 읽는 것조차 힘들다.
대부분의 글들은 주관적 시점에서 쓰일 수밖에 없다. 자신만이 알고 있는 배경 안에서 글을 쓴다고 하면 그것은 문서로서의 가치를 가질 수 없기 때문이다. 지금 나는 책을 쓰고 있는 걸까? 일기를 쓰고 있는 걸까? 어렵고 혼란스럽다.
우리는 어렵다는 이유로 포기하고 있는 것들이 많고 그럴 수밖에 없는 일들이 너무도 많다. 그럴 때마다 포기하는 것이 맞을까??
아무리 뛰어난 사람도 스스로 해결할 수 있는 일은 제한적이다. 춤을 추더라도 혼자 추게 되면 이상한 사람이고 달리기를 하더라도 혼자보다는 런닝크루가 있을 때 더 오래 뛸 수 있다.
문서를 쓰는 것이 어렵다면 주변 사람들과 함께 해보면 어떨까요? DOC와 춤을.... "이렇게~~~"
35. 자유로운 영원의 만남
비즈니스 프레임워크도 구축되었고 기획 기술문서도 완성되어 개발만 하면 된다. 고수는 프리랜서를 고용하여 프레임워크와 문서만 주면 알아서 만들 수 있게 하고 싶어 한다. 또한 Windows 응용프로그램에서 웹으로 전환하는 시기이기에 웹 개발 프리랜서 두 분과 일하게 된다.
그동안 프리랜서가 개발된 코드를 보면 엉망으로 되어있는 경우가 많다. 그럼에도 단순 작업으로 판단되는 것은 프리랜서를 고용하고 있다. 분명 실력이 없는 것 같은데 고용하여 일을 시키는 것을 보면 이해가 잘 가질 않는다. 두 분은 어떤 분일까??
한 분은 매우 신중하고 차분하여 꼼꼼하게 코드를 작성하여 완성도가 높다. 또 한 분은 사람을 편안하게 해주는 인상이지만 성격은 급하고 손이 빨라서 과제를 빠르게 수행한다. 속도가 빠르신 분의 산출물로 진행 과정이 잘되고 있다는 인식을 만들어 주었고 속도가 느리지만 완성도가 높아서 스케줄에는 차질 없이 잘 진행하게 된다.
모두에게 공평하게 주어진 시간이지만 시간을 활용하고 쓰는 방식은 모두가 다르다.
프로젝트 리더는 자신이 희망하는 시간 안에 되길 원한다. 그리고 그 일을 하는 담당자에 따라서 처리 속도와 방법 그리고 완성도의 차이가 난다.
같은 시간 안에 살고 있지만 각자만의 시간을 가지고 살아가고 있다. 하지만 모두가 자신의 시간에 집중되어 있어 마찰이 생기게 된다.
모두가 다른 시계를 가지고 있는데 누구의 시간이 맞다고 이야기할 것인가? 우리는 이미 같은 공간 다른 시간 속에 살고 있는 것은 아닐까?
36. 홀로서기
객체지향, 테스트, 프레임워크, 기획문서, 기술문서, 프로젝트관리를 끝낸 후에는 뭐든지 할 수 있게 다는 마음이 들기 시작한다. 고수의 후배인 사람이 프로젝트를 관리하게 되었는데 같이 일을 하고 있지 않지만 사람답게 대하지 않는 태도에 함께하기 어렵다고 결정하여 고수를 떠나기로 한다.
고수는 웃음과 함께 악수를 해주며 잘 가라고 인사해 준다. 회사를 떠나는 마음이 그리 좋지도 않고 싫지도 않은 미묘한 감정이다.
더 넓은 필드에 가서 다른 고수들을 만나보고 또 내가 배워 온 스킬들이 얼마만큼 강한지 시험해보고 싶다. 그렇게 고수 곁을 떠나서 홀로서기를 시작하기로 한다.
홀로 된다는 것!!
나의 웃음 뒤에 쓸쓸함이 있는 것은 아마도 홀로 남는 게 두려워서 그럴 거야~ - 시간을 믿어봐 (로이킴)
감당할 수 없어서 버려둔 그 모든 건 나를 기다리지 않고 떠났지. 그렇게 많은 걸 잃었지만 후회는 없어. 상처받는 것보단 혼자를 택한 거지. 외로움은 나에게 누구도 말하지 않을 소중한 걸 깨닫게 했으니까 - 비상 가사 중에서 (임재범)
혼자이고 싶진 않지만 혼자일 때가 많다. 애써 웃음 지어 보이지만 편하지가 않다. 상처 주고 상처받기 싫어 혼자를 택해 보았지만 외롭고 쓸쓸함은 스스로 감당해야 한다.
혼자여야만 다른 누군가를 만날 수 있다. 그리고 그때 만나고 싶고 꼭 찾고 싶은 그분을 느낄 수 있다. 당신에게도 혼자일 때가 찾아온다면 그분을 꼭 만났으면 한다.
(년도는 출시보다 보급화 기준 및 개인적이 활성 및 가속화 시기를 기점으로 작성 되어 있는점 참고 바랍니다.)
THE LOVEBIT CODE
사랑과 돈, 그리고 영원의 비밀
[쿠키] Server OS 편
웹 응용프로그램을 실행하기 위해서는 기업용 컴퓨터 서버가 필요하다. 개인이 사용하는 OS는 사용자의 편의성을 제공하기 위해 만들어진 목적이 매우 크다. 하지만 기업용 서버는 사용자에게 원활하고 안정적인 서비스를 제공하기 위한 목적이 크다.
그리고 사용자 OS는 개인의 작업만 수행하면 되지만 서버 OS는 수많은 사용자의 작업을 동시에 수행하여야 하기 때문에 더 높은 사양에 효율적인 처리 기술이 필요하다.
그런 이유로 Windows Server OS는 상당히 고가로 형성되어 있어서 영세한 기업에서는 Windows Server의 부담이 있을 수밖에 없다.
데이터 서버로 MS-SQL, Oracle에 경우는 데이터 자산의 가치가 상당하기 때문에 연간 수억 원의 서버 유지 비용을 감당해야 하지만 단순하게 프로그램 명령을 실행하는 웹 서버는 고가로 운영하는 것은 비용 낭비라고 생각할 수밖에 없다. Windows와 함께 수많은 네임드 개발자가 Open-Source 커뮤니티에 참여하여 만들어진 Linux OS가 있다. 리눅스는 사용자의 편의성보다는 서버의 역할에만 충실하게 개발되었고 연구되었다. Open-Source이기 때문에 OS의 가격은 "공짜"이다. "공짜"이면서 서버의 역할에만 충실했던 리눅스는 결국 웹 서버를 장악하게 된다.
아무런 대가도 없이 자발적으로 참여한 개발자들이 대단하다. 그들은 과연 무엇을 위하여 행동했을까? 그리고 모든 참여자들이 지금까지 잘 살고 있다는 보장도 할 수 없다. 나는 알 수 없지만 그들을 움직이게 한 무언가가 있을 것이다.
그것이 어쩌면 우리 모두가 찾아야 할 영원의 키가 될 수 있지 않을까?
"공짜"의 힘은 대단하다.
Windows95로 컴퓨터 시장을 통합한 마이크로소프트는 OS안에 프로그램을 "공짜"로 포함시켜 주면서 시장을 장악하였고 스마트폰은 문자와 게임을 "공짜"로 이용할 수 있어서 시장을 점유하게 되었고 리눅스 서버도 "공짜"로 이용할 수 있어서 시장을 점유하게 되었다. 그리고 수많은 작가님들도 유튜브, SNS, 브런치스토리 많은 사람들이 자신의 시간과 정성을 들여서 "공짜"로 서비스하고 있다.
IT 역사에서 말해주듯이 "공짜"는 결국 빛이 된다. 하지만 우리는 너무나 잘 알고 있다.
세상에 공짜는 없다.
작가의 말
THE LOVEBIT CODE 시즌1을 마무리하고 시즌2를 준비하려고 합니다.
연재를 하면서 끝까지 잘할 수 있을 거라 믿었고 자신 있었지만 최근에 글이 너무 안 써지고 에너지가 바닥이 되었다는 것을 알게 되었습니다. 의지적으로 할 수도 있겠지만 더 좋은 콘텐츠를 만들고 싶은 마음에 시즌1로 연재를 마무리하기로 결정하였습니다.
IT에서 코드만 수천만 라인 이상 코드 작성을 하였겠지만 글을 쓰는 것은 처음이라 제가 잘하고 있는 조차도 모르고 달려왔습니다. 난독증이 있어서 글을 읽고 이해하려면 한참이 걸리고 어려운 글을 잘못 이해하거나 해석하기도 합니다. 그 이유로 나는 글을 읽기 쉽게 쓴다고 자부하는 오만함이 있었던 것 같습니다.
시즌2에서는 제가 정말 전달하고 싶은 중요한 메시지를 담으려고 합니다. 하지만 중요한 메시지를 담기에는 제가 많이 부족하다는 것을 느끼고 있습니다. 사랑과 영원의 비밀을 전할 수 있는 준비된 자가 먼저 되어 시즌2로 돌아오겠습니다.
응원해 주시고 격려해 주신 모든 분들께 감사드립니다. 모두 행복한 사랑과 자유를 찾으시길 바랍니다.