1996년 6월에 델파이 데이터베이스 완벽가이드(가남사)라는 이름으로 델파이에서 데이터베이스를 사용하는 방법에 대한 책을 집필하였습니다.대학교를 졸업하면서 그동안의 공부 결과를 정리한다는 의미였습니다.https://www.yes24.com/Product/Goods/56569당시 델파이라는 프로그래밍 개발도구를 공부하는 사람들에게는 데이터베이스와 관련된 체계적인 참고서가 없었기 때문에 독자들에게 매우 좋은 평을 받은 바 있습니다. 2002년 9월에는 (원리분석을 바탕으로 쓴) Visual C++.NET 프로그래밍 정복(가남사) 라는 제목으로 Visual C++.NET 학습서를 출판했습니다.https://www.yes24.com/Product/Goods/299997개발자라는 직업활동을 하면서 항상 아쉬웠던 것은 왜 이런거지? 이렇게 해보면 어떨까? 라는 것이었습니다. 하지만, 직장을 다니면서 호기심을 채우기에는 너무 시간이 없습니다. 그래서 정리하는 시간을 가져야겠다는 생각으로 다니던 직장을 1년 쉬면서 공부하며 정리한 내용을 담았습니다.
개발자는 많은데 잘 하는 개발자가 없지요?모듈화 프로그래밍에 남다른 능력을 가지고 있으며, 시스템 분석 및 설계 능력 또한 보유하고 있습니다. 사용자 중심의 효율적인 인터페이스에 관심이 많으며, 지금까지의 모든 프로젝트를 모듈화, 효율화에 기반하여 진행하여 왔습니다. 숲과 나무를 함께 볼 수 있는 능력을 키우기 위해서 부단히 노력해왔고, 지금은 그 노력의 결실을 어느 정도 얻었다고 판단합니다. 프로그램 조각들이 유기적으로 잘 동작할 수 있는 아키텍쳐 구조 설계에 자신 있습니다. 나 혼자가 아닌 여럿이 함께 라는 생각을 항상 마음에 새기고 있습니다.
프로젝트 초기에 투자한 탄탄한 기초작업은 프로젝트 전반을 안정적이고 유연하고 풍요롭게 한다는 경험을 항상 마음에 새기고 있습니다. 매사에 꼼꼼하여 단계적으로 빌드업하면서 체크하는 습관을 가지고 있습니다. 초기 단계에서의 다양한 리서치, 경험이 프로젝트 투입자들 모두에게 도움이 될 수 있도록 배려합니다. 매 단계마다 신선한 아이디어를 수집하며 공유하고, 실력적으로 가장 큰 성장을 할 수 있도록 독려합니다. 프로젝트 수행시 주요 요점을 항상 염두에 두면서 가장 중요한 것부터 액세서리에 해당하는 모든 것들을 나열해 두고, 우선순위를 수시로 조정해 가면서 구현해 나갑니다. 나열된 모든 것들이 서로 시너지 효과를 일으킬 수 있는지 자주 조합하고, 해체하여 검토합니다. 안정과 효율 모두를 중요하게 생각하여 초기부터 마무리될 때까지 수시로 점검하면서 개선해 나갑니다. 내가 만든 것은 내가 책임지고 배포하여 남을 이롭게 한다는 목표 아래 개선할 점이 없는지를 항상 체크합니다. 팀원들간에 유기적인 업무 분담을 조정해주고, 스스로 생각할 수 있는 기회를 주기 위한 커뮤니케이션에 노력합니다.
◼ 저의 사회생활은 다울소프트와 함께 시작되었습니다. 시작한 지 1 년여 정도 된 다울소프트에 입사하여 교육사업팀에서 프로그래머로서의 인생을 시작하게 되었습니다. 교육사업팀은 교육과 관련된 솔루션을 기획, 설계, 개발하는 팀이었습니다.◼ 초기 다울소프트 교육사업팀에서 담당한 개발업무는 TEPS, TOEIC 등과 같은 어학관련 사이트에서 사용하는 테스팅 솔루션이었습니다. 웹페이지 설계 및 개발은 물론 테스팅 솔루션에서 가장 핵심적이라고 할 수 있는 저작도구, 뷰어, 그리고 클라이언트와 서버간 통신을 담당하는 에이전트 등을 설계하고 개발하였습니다.◼ 어학관련 사이트에서 사용하는 테스팅 솔루션은 다울소프트에서 자체 기획한 문제 관리 및 테스팅 솔루션의 일부였습니다. 저는 해당 솔루션 개발의 핵심적인 역할을 맡아서 수행하였을 뿐만 아니라, 솔루션 이름에 대한 사내공모에서 제가 응모한 NeoTest(네오테스트)라는 이름이 선택되어 남다른 자긍심을 가지고 있습니다.◼ 그 후 테스팅 솔루션을 본격적인 문제은행 솔루션으로 업그레이드하는 작업이 진행되었는데, 이 시기에도 역시 핵심적인 설계 및 개발인력으로서 맡은 바 책임을 다 하였습니다. 이 점을 높이 평가받아 2005 년 최우수사원으로 표창받은 바 있습니다.◼ 대한상공회의소의 자격증시험을 위한 문제은행 시스템을 구축한 바 있으며, 한국산업인력공단의 자격증시험을 위한 문제은행 시스템도 구축하였습니다. 이 외에도 정보통신부 문제은행 시스템, EBS 문제은행 시스템, 중앙인사위원회 문제은행 시스템 구축 프로젝트에서 설계 및 개발인력으로서 참여하여 성공적으로 업무를 수행하였습니다. ◼ 한국산업인력공단의 문제은행 시스템과 연결된 CBT 시스템 구축 사업에도 역시 핵심적인 개발멤버로서의 역할을 성실히, 그리고 완벽하게 수행하였습니다. ◼ 외부 기관의 문제은행 시스템 구축과 더불어 다울소프트 내부에서는 eLearning 시스템 개발에 박차를 가하여 왔는데, 그 핵심적인 솔루션이 바로 TeachingMATE 라는 제품입니다. 이 제품 역시 저의 손으로 직접 개발하였고 전국의 초, 중, 고등학교에서 활용되어지고 있습니다.◼ 소프트웨어 개발은 혼자가 아닌 여럿이 한다라는 개념이 머릿속에 들어오기 시작한 시점이어서 Extreme Programming 의 한 방법인 짝 프로그래밍(Pair programming) 문화를 도입해 보았습니다. 실력차가 많은 선후배 사이에서 실행한 결과는 후배의 실력이 빠르게 늘게 되고, 실력이 비슷한 동료 사이에서 실행한 결과는 적극적이고 자연스러운 의사소통이 이루어지는 좋은 결과를 확인하게 되었습니다. ◼ 내, 외부 고객의 다양한 요구사항을 해결하고 자체 솔루션의 기능 개발을 위해서 숨가쁘게 달려오던 중 저에게는 한차례의 전환점이 필요함을 느끼게 되었습니다. 2002 년 회사를 휴직하고 또 한 권의 책을 집필하였습니다. 당시 마이크로소프트사의 .NET 기술이 활성화되던 시점에서 그동안 연마해 온 기술들에 대한 정리와 더불어 새로운 신기술에 대한 소개를 「(원리분석을 바탕으로 쓴) Visual C++.NET 프로그래밍 정복(가남사)」이라는 이름의 책에 담았습니다. ◼ 2006 년 11 월부터 시작되어 2007 년 5 월에 마무리된 한국산업인력공단의 신문제은행 시스템 구축 사업에서도 핵심적인 설계 및 개발자로서의 역할을 다 하였습니다.
◼ 두번째 직장인 광성전자에서는 하드웨어(지상파 DMB)용 펌웨어 개발을 경험하면서 좀 더 마이크로적인 프로그래밍 기술에 대한 경험을 축적하였습니다. ◼ PC 용 어플리케이션, 솔루션을 개발하는 회사와는 달리 하드웨어 개발에 대한 중요성이 더 높은 회사의 분위기 속에서 소프트웨어 개발의 존재가치를 높이고자 형상관리 솔루션 CVS 를 도입하였고, 소프트웨어 개발 업무관리 시스템을 직접 개발하여 도입하면서 주위 개발자들로부터 많은 호응을 얻었습니다.
◼ 세번째 직장인 클비시스템에서는 프로그래밍의 영역을 스마트폰 영역으로 넓혀서 현재까지 최고의 프로그램으로 인정받고 있는 아이폰용 주식시세, 주문 클라이언트인 증권통을 개발하였습니다. ◼ iOS 용 프로그래밍 경험을 토대로 iOS 개발자에게 활용가치가 큰 BackEnd 라이브러리 프레임워크(DevTong)를 개발하여 서비스하였습니다. ◼ 아이폰 국내 출시가 가져온 스마트폰 붐에 편승하여 다양한 스마트폰용 어플리케이션을 개발하면서 팀간 협업을 위하여 git 형상관리 솔루션을 도입하였고, 회사 자체 메일서버로 리눅스서버를 구축하여 운영한 바 있습니다
◼ 새롭게 옮긴 에이티솔루션즈는 모바일 솔루션 전문회사로서 KB 국민은행, KB 국민카드, SK 이동통신 등과 밀접하게 인연을 맺어 금융어플리케이션을 개발하는 회사입니다. 증권통 개발로부터 시작하여 금융권 뱅킹앱, 금융서비스 관련 앱을 개발해볼 수 있는 소중한 경험을 하였습니다.
◼ 제이니스는 입사당시에는 전직원 10 여명의 회사였습니다. 당시 자녀보호 프로그램인 맘아이가 주력 솔루션이고 이와 관련된 스마트폰용 맘아이를 개발하는 단계였습니다. ◼ 자녀보호 솔루션을 업무용으로 변환시킨 엠오피스라는 솔루션을 막 시작하는 시기이기도 했습니다. 정해진 시각에 PC 사용을 차단하는 개념의 엠오피스의 초창기 모습은 단순히 기능 목적의 프로그램이었습니다. ◼ 제가 입사하여 가장 먼저 신경을 쓴 부분은 One Source-Multi Use 였습니다. 앞으로 수많은 고객사에 납품을 하게 되면 적은 수의 개발조직이더라도 충분히 개발하고 운영가능할 수 있도록 하기 위함이었습니다. ◼ 더불어 기능적인 안정성 확보에 많은 공을 들였습니다. 다른 일반적인 프로그램과는 다르게 사용자의 퇴근시간에 많은 문제가 생기는 바람에 개발자들이 휴일과 퇴근시간을 두려워하는 상황이었기 때문입니다. ◼ 그리고 다양한 고객사의 요구사항을 유연하게 받아들일 수 있는 데이터베이스 구조도 재정립하였습니다. ◼ 세 가지 목표에 치중한 결과 개발자 6 명이 1 달 동안에 10 개의 프로젝트를 동시에 수행할 수 있는 여유로운 상황을 만들 수 있었습니다. 게다가 고객이 요구하는 다양한 기능을 유연하게 받아들일 수 있는 구조도 이미 잡혀 있었기 때문에 고객의 만족도는 상당히 높았습니다. ◼ 그동안 윈도우 OS 서버버전만 존재하던 솔루션을 리눅스 서버버전으로 개발하여, 경쟁의 우위를 유지할 수 있도록 준비하였고, 소스코드 보안 및 개발자간 협업을 위한 git 형상관리 솔루션과 이슈 추적 관리를 위한 mantis 시스템을 도입하여 매우 효율적인 프로젝트 관리가 이루어질 수 있게 하였습니다. 또한 원활한 프로젝트 정보 공유를 위해서 폐쇄형 위키 시스템을 도입하여 Knowledge Base System 의 역할을 수행할 수 있게 하였습니다. ◼ 제이니스의 PC-OFF 솔루션은 윈도우용 에이전트는 기본이고, 가장 먼저 macOS 용 에이전트를 개발하여 경쟁사보다 먼저 준비하는 회사로 이 분야 최고의 기술력을 유지하게 되었습니다. 내부적으로 리눅스 에이전트도 준비하였습니다. macOS, 리눅스용 에이전트 개발을 직접 수행하면서 에이전트 로직에 대한 재구성을 완료하였습니다. ◼ 지금 현재의 제이니스는 약 50 명의 직원이 일하는 회사가 되어 있습니다. 대표 솔루션의 기술적인 발전과 그 기술을 뒷받침하기 위한 업무 시스템의 도입에 많은 공을 들인 결과가 효율적인 성과로 나타난 것에 대해서 뿌듯함을 느낍니다.
◼ 프리랜서로서 경남•울산 혁신플랫폼 과제사업인 메타캠퍼스 가상환경시스템의 BackEnd 개발을 수행하였습니다. ◼ C# 언어를 사용하여 학습시스템의 GitLab 에서의 관리, 소스의 빌드 및 배포를 위한 자동 CI/CD 시스템을 지원하는 기능의 BackEnd 로직을 개발하였습니다. ◼ GitLab, Docker, Harbor, Vault, Samba, PostgreSQL 등 다소 많은 시스템과의 연계로 인하여 복잡성이 있었지만, 성능과 안정적인 기능 수행을 목표로 TDD 방식으로 개발하였습니다.
◼ KT클라우드의 서버 관제 솔루션을 운영하는 팀에서 PM 업무를 수행하였습니다.◼ KT클라우드가 관리하고 있는 서버가 얼마나 많겠습니까? 그 많은 서버에서 장애가 발생하지 않는다면 그것이 오히려 이상하겠지요. 장애가 발생하면 바로 알 수 있어야 하는데, 그 알림을 받아 처리하기 위한 관제 솔루션이 필수이겠지요.◼ 운영 PM 으로서 관제 솔루션이 안정적으로 동작하도록 관리하고, 관제팀의 요구사항에 맞는 기능을 개발하여 업그레이드하는 작업은 매우 스릴이 있었습니다.◼ 구성원을 다독거리면서, 응원하고, 업무적으로 질적 향상을 위해서 용기를 북돋는 일은 정말 재미있었습니다.◼ 그러면서도 틈틈이 개발자로서 호기심을 충족시키기 위해 개발 소스를 보고, 개선할 거리가 없는지를 살폈습니다.◼ 짧은 기간이었지만, 많은 일을 해낸 보람있는 시간이었다는 사실에 만족합니다.
◼ 앞에서 정리한 것과 같이 저의 프로그래머 생활은 다울소프트라는 대표적인 e-Learning 기업과 함께 하였습니다. 최초의 테스팅 솔루션, 최초의 문제은행 시스템의 산파 역할을 수행하여 온 저는 현장에서 필요로 하는 것들을 잘 파악하고 있으며, 앞으로의 기술적 발전과 더불어 패러다임의 변화까지 선도할 수 있는 능력과 자신감이 있습니다. ◼ 그 어떤 분야보다도 변화가 빠른 IT 업종에서 다울소프트 한 회사에서 오랫동안(8년 2개월) 근무한 것이 지식 및 기술의 협소함을 초래할 수 있다는 단점으로 지적받을 수 있겠으나, 누구보다도 주도적인 역할을 담당하여 종합 솔루션의 개발을 처음부터 마지막까지 이루어봤다는 점에서 단점을 무시할 수 있는 최대의 장점으로 찬사를 받을 수 있을 것이라고 믿습니다. ◼ 종합 솔루션의 전과정을 경험하고 그 경험을 다시한번 업그레이드한 곳이 제이니스(9년 2개월)입니다. 단순 기능 목적의 솔루션을 시장 1 등 제품으로 재탄생시킨 두번째 경험은 너무나 짜릿하고 즐거운 것이었습니다. ◼ 매사에 긍정적인 마인드로 임하는 것을 첫 번째 목표로 삼고 있습니다. 그래서 제 e-mail ID 가 우하하(woohaha)입니다. ◼ 가장 보편적이면서도 가장 달성하기 어려운 덕목이 최선과 책임감이라고 생각합니다. 이 부분에 있어서는 제 스스로의 평가뿐만 아니라 타인의 평가에서도 최고의 평가를 받고 있으며 앞으로도 그러할 수 있음을 자신합니다. ◼ 프로그래머로서 팀을 구성하여 일하기 시작하면서부터 팀원간의 의사소통, 팀장의 역할에 대해서 많은 고민을 해왔습니다. 그 고민들은 점차 팀장으로서의 역할범위가 넓어질 때마다 현실화되는 문제들을 맞닥뜨리고 해결해 나가면서 성숙된 팀장으로서의 능력을 키워왔습니다. 그 결과 팀원과 함께 몸을 부대끼면서 함께 고민하고 문제를 해결해 나가는 팀장이야말로 가장 바람직한 팀장이 아닐까 하는 나름대로의 소신을 갖게 되었습니다. ◼ 사람은 자신이 좋아하는 일을 할 때 눈에서 빛이 나고, 일의 능률도 최고를 기록합니다. 프로그래머라는 직업은 제가 가장 좋아하는 일입니다. 후배들에게도 진정한 즐거움이 무엇인가를 느낄 수 있게 도와주고자 합니다. 간혹 단호하다 싶게 느낄 수도 있겠지만 모두에게 공정한 기회를 베풀고 그 기회를 잘 살리는 후배에게 아주 많은 칭찬을 해주고자 합니다.
2024년 청룡의 해가 된지도 벌써 3개월이 지났습니다. (2024년 3월의 마지막 주)갑작스럽게 Spring Boot 의 프로그래밍의 재미에 빠져 허우적대고 있습니다.아주 오랜 옛날 웹 프로그래밍을 하던 시절에는 보도 듣도 못한 하이테크 기술들이 아주 손쉽게 작성 가능합니다.손쉽게 할 수 있다고 하더라도 조금만 더 깊이 들어가게 되면 어려움을 느끼게 되는데,Spring Boot 는 깊이 들어가면 들어갈수록 재미가 있습니다.사람이 자기 하고 싶은 일을 하면서 살면 가장 행복하다고 합니다.자기가 하고 싶은 일이 직업이 되는 순간 하고 싶은 일이 지겹게 느껴진답니다.그래도 아직은 내가 하고 있는 일이 재미가 있고, 직업이기에 하지만, 지겹지 않습니다.천생 프로그래머인가봅니다.
1년동안 AWS 에서 FreeTier 를 이용하면서 필요한 웹서비스를 제공했다(나 스스로에게).1년에 한번씩 새 계정으로 갈아탈 계획을 가지고 있었는데, 어느덧 1년이라는 시간이 흘렀다.이제 새 계정으로 갈아탈 시간… 새 계정을 만들었는데… 두둥~! 이제 12개월의 FreeTier 정책은 없어지고 6개월의 FreeTier 와 크레딧 정책이라니…나름 체리픽커로서 폭풍 구글링을 해봤더니, 오라클 클라우드 서비스가 있더군.내가 무료로 사용할 수 있는 디스크 용량은 200GB. 1개의 인스턴스당 최소 50G니, 4개의 인스턴스를 만들 수가 있네.어허라, 이렇게 좋은 서비스가…몇일동안 뚝딱뚝딱해서 Career, Diary, Wiki 웹서비스를 살리고, Jenkins 와 GitLab 서비스까지 만들었네.오라클 클라우드의 이 무료 정책은 제발 오래오래 가기를…