
쌍팔년생 개발자
아직도 현역인 프리랜서 개발자 · 기술 블로거
1988년생 부산 출신이지만 경기도에서 30년 넘게 살고 있어서 이제 완전한 경기도 사람입니다. 2000년부터 시작된 개발 여정으로 어느덧 25년차가 되었지만, 여전히 새로운 기술에 설레는 남자니다.
개발의 시작: 홈페이지 만들기 열풍 시대 (2000년대 초반)
초등학교 시절, 컴퓨터실에서 처음 만난 인터넷은 정말 신세계였어요. 서점에서 "How PC MOOK"를 사온후 집에서 잡지에 딸려온 CD를 넣고 모뎀에 전화선을 꼽고 원클릭 코넷을 켜서 인터넷을 접속하고 엄마한테 혼났던게 엊그제 같은데... ADSL 보급과 함께 우리집에도 ADSL B&A가 들어왔고. 잡지책을 따라 네띠앙, 라이코스에서 무료 홈페이지를 만들기 시작했죠.
홈페이지를 만들다보니, 당시엔 슈퍼보드 게시판이 유명했었는데, 무료 사용자에겐 광고가 듬뿍 추가되었던 시절이었죠. 그 때부터 광고가 없는 나만의 게시판을 갖고 싶었어요. 용돈으로 서점에서 PHP4 책을 한 권 샀어요. 회원가입, 로그인, 게시판 시스템을 직접 만들어보니 "어? 이거 진짜 재미있는데?" 그때부터 본격적으로 프로그래밍에 빠져들기 시작했어요.
VB6와의 만남, 그리고 ...
대학교 1학년, 지리정보공학과 교양 수업에서 Visual Basic 6.0을 배우게 됐어요. WinForm으로 윈도우 프로그램을 만들고, COM 통신으로 하드웨어와 대화하고, Socket으로 네트워크 프로그래밍까지... "이게 진짜 프로그래밍이구나!" 하며 완전히 매료됐죠.
그런데 여름방학에 생긴 아르바이트가 인생을 바꿨어요. 동네 고기집에서 홀서빙을 하는데 그곳에서 처음 POS기를 다뤄보게 됐어요.
주문받고 서빙하면서도 계속 POS기를 유심히 관찰했어요. "이 프로그램... 나도 만들 수 있을 것 같은데?"어린 나이의 근거 없는 자신감이 샘솟더라고요.
집에 와서 진짜로 도전해봤어요. 2~3주 동안 밤낮으로 삽질한 결과... "어라? 진짜 되네!" 😱 알바비를 털어서 30만원짜리 감열식 프린터, 3만원짜리 바코드 리더기, 5만원짜리 COM 포트 연결 금고까지 사서 완전한 POS 시스템을 구축했어요. (당시 38만원이면 정말 큰돈이었는데...)
완성된 POS기를 부모님 수퍼마켓에 설치하고, 새벽 시간에 모든 상품 바코드를 등록했어요. 아버지가 "얘가 맨날 컴퓨터로 게임만 하는 줄 알았는데..." 하며 깜짝 놀라시더라고요. (그동안 게임만 하는 줄 아셨다니... )
군휴학 후 대기하던 시절: 패킷 분석이라는 새로운 세계
군휴학하고 시간이 남아돌던 시절... 사실 현역 훈련소에 갔다가 빠꾸먹고 보충역 대기하고 있었죠당시 부모님 수퍼마켓에서 시간만 보내던 중, 해킹 공부를 하다가 패킷추출 프로그램을 알게되었어요. 이름은 기억은 안나는데 WireShark는 아니고 다른 프로그램이었는데 무튼, 그걸로 컴퓨터에 깔려있던 프로그램들을 대부분 스캔해본거 같네요. IE, 네이트온, MSN 메신저, Starcraft, 임진록2+ 등등...
당시 배틀넷이나 HQ-NET(임진록, 천년의 신화)의 패킷을 분석해서 Visual Basic으로 재현하는 게 이렇게 재미있을 줄 몰랐어요! 임진록 클라이언트를 켜놓고 하루 종일 패킷을 수집하고 분석하다가, "이거 내가 직접 만들 수 있겠는데?" 하고 HQNet 서버 클론까지 구현해봤어요. 당시 네이버 카페에서 다른사람을 섭외하여 수정한 클라이언트 exe파일을 전달하고 네가 구현한 HQNet 클론서버에 접속이 되는지 테스트도 해보고 희열을 느꼈었죠. 물론, 당시엔 저의 미숙한 지식으로 인해, 패킷의 마지막자리 1 바이트의 의미를 이해하지 못해서 클론서버에서 하나의 채팅에 대해서 0번부터 255번까지를 모두 전달하는 비효율적인 방법으로 구현하긴 했지만. (나중에 알게된게 그게 Checksum 이었던것 같네요.) 이 때의 소스코드를 남겨놨어야 했는데, 소중한 소스코드를 잃어버린게 너무 아쉽네요.
복학 후: "C# 수업이 왜 이렇게 쉽지?" 사건
복학해서 수강신청을 하는데 C# 프로그래밍 수업이 있더라고요. VB6에서 VB.NET으로 마이그레이션 경험도 있고, 네트워크 프로그래밍도 해봤으니까 "어느 정도는 알고 들어가겠지?" 했는데...
진짜 너무 쉬웠어요! 🤣 자료형, 제어문, 문법만 조금 다를 뿐 VB.NET과 거의 똑같더라고요. 교수님이 내주신 과제들이 너무 쉬워서 "이거 맞나?" 싶을 정도였어요.
그래서 심심해서 타과 수업들을 마구잡이로 들었어요. C/C++ 프로그래밍, MFC, 이미지/영상처리, 게임개발까지... Interface와 추상 클래스 같은 객체지향의 진짜 개념들을 그때 제대로 깨우쳤죠. (어라? 내 전공은 지리정보공학인데 왜 프로그래밍 수업만 골라들었지? 🤷♂️)
현재: 정신차려 보니 3D GIS 개발자가 되어버린 이야기
졸업하고 사회에 나와 정신을 차려보니... 3D GIS 엔진과 웹 시스템을 개발하는 전문가가 되어있더라고요! "어떻게 이런 일이?" 싶지만, 벌써 10년이 넘게 이 분야에서 밥 먹고 살고 있으니 이제는 당당히 전문가라고 불러도 되겠죠?
현재 기술 스택 (a.k.a. 밥벌이 도구들)
프론트엔드
React, TypeScript, Next.js, Tailwind CSS, JQuery,
jQuery 시대부터 지금까지 살아남은 생존자
백엔드
.NET Core/Framework, Java Spring, Node.js,
PHP4 때부터 지금까지 찍먹해본 것들
데이터베이스
PostgreSQL, SQL Server, MySQL
하지만 이젠 ORM 시대
GIS
CesiumJS, OpenLayers, Leaflet, PostGIS, DotSpatial, SharpMap
전공으로 밥벌이 하는 순간
도구 및 플랫폼
Docker, Git, GitHub Actions, VS Code, QGIS, ArcGIS
전문 분야
3D GIS 시스템: 3차원 지리정보 시스템 설계부터 구현까지
웹 애플리케이션: 대규모 시스템 아키텍처 설계와 성능 최적화
하드웨어 연동: POS부터 아두이노, AVR, 라즈베리파이 각종 센서, 7-segment, lcd 디스플레이까지 기본적인 제어
네트워크 프로그래밍: 서버/클라이언트 통신, 프로토콜 분석, JAVA/nodejs로 RTMP/RTSP 구현 및 확장 구현
개발 철학 (조금 거창하게 말하면)
25년 가까이 개발해오면서 깨달은 가장 중요한 것... "아름다운 코드를 쓰는 것도 물론 중요하지만, 실제 문제를 해결하고 비즈니스 가치를 만들어내는 시스템을 구축하는 것이 훨씬 더 중요하다"는 거예요.
특히 하드웨어와 소프트웨어가 만나는 지점에서 발생하는때로는 정말 기상천외한 문제들을 해결하는 게 제 특기이자 취미가 되었어요. 복잡한 시스템을 단순하고 직관적으로 만드는 것, 그게 진짜 개발자의 실력이라고 생각합니다! 💪
이 블로그를 운영하는 진짜 이유
25년간 개발하면서 "도대체 이거 왜 안 되는 거야?"라고 모니터 앞에서 머리를 싸맸던 순간들이 정말 셀 수 없이 많았어요. 그때마다 구글링하고, 스택오버플로우를 뒤지고, 심지어는 오픈소스 라이브러리 소스코드까지 뜯어보면서 해결했던 경험들이 쌓였죠.
"나와 같은 삽질을 다른 개발자들은 하지 않았으면 좋겠다"는 마음으로 이 블로그를 시작했어요. 실제 프로젝트에서 마주친 생생한 문제들과 해결 과정을 중심으로 쓰다 보니, 교과서나 공식 문서에서는 잘 다루지 않는 아주 현실적인 내용들이 많을 거예요! 😄
25년 개발 삽질 경험담 모음집
"이거 왜 안 되는 거야?"부터 "어? 드디어 되네!"까지, 실무에서 직면한 온갖 기술적 난제들과 (때로는 정말 기상천외한) 해결 과정들을 가감 없이 솔직하게 공유하고 있습니다. 학교나 책에서는 절대 가르쳐주지 않는 현실적인 개발 노하우들을 만나보세요!
삽질 경험담 둘러보기