프로그래밍 코딩을 하면서
최근에 웹사이트를 만들어 서비스하려는 목적을 두고 자주 사용하지 않던 언어를 사용하여 웹사이트를 하나 만들고 있습니다. 커피를 너무 많이 먹어서 그런지 잠도 오지 않고 그래서 프로그래밍 코딩을 하면서 경험한 일들과 프로그래머로 일했던 경험과 관련된 글을 작성해 보는 것도 재밌을 것 같았습니다.
프로그래밍 코딩을 하면서 간단한 댓글 기능을 구현하고 있었는데 간단할 것으로 생각하여서 테이블 하나에서 처리해 봐야지 하면서 아이디어를 동원에서 댓글 관련 작업을 하면서 억지로 값을 넘기고 받으면서 처리하려고 하다 보니 결국엔 문제가 생기더군요.
그래서 기존에 작업 해놓았던 코딩 작업을 보류하고 테이블을 추가하고 웹에서도 작업해놓았던 부분을 수정하는 작업을 진행하였습니다. 데이터베이스를 설계할 때 나눌 수 있는 부분에서 최대한 테이블을 나누고 작업을 진행 해야 했는데 조금 귀찮다는 생각으로 그냥 작업을 하다 보니 결국엔 소스를 뒤집는 사태가 일어나기도 하네요.
기존에 코딩해 놓았던 모든 소스 코드를 다시 수정해야 하고 확인하며 페이지마다 넘어가는 값들도 점검하다 보니 머릿속에 어느새 혼란이 오더군요. 이럴 거면 진작에 테이블을 나눠서 코딩 작업을 할 걸 하면서 후회했습니다.
조금 귀찮다고 테이블을 나눠야 하는 것을 알고 있음에도 불구하고 될 것 같은데 하면서 작업을 진행하다가 시간만 더 오래 걸리는 것을 느끼면서 기초 설계에 중요성에 대해서 다시 한번 깨닫게 되는 계기도 있었던 것 같습니다.
프로그래밍 소스 코드를 작성하면서 이론상 문제 될게 없었고 생각한 대로 코딩을 하고 데이터 확인도 하였는데 오류도 나오지 않고 값이 제대로 나오지 않는 현상을 자주 겪는 것 같기도 합니다.
여러 페이지 작업을 하다 보니 다른 부분에서 값을 넘겨받지 못했나? 라는 생각 때문에 각각의 페이지 소스를 하나씩 뒤져보다 보니 머릿속에서 어느새 혼란이 오더군요. 이상하다 분명히 맞는데... 하면서 나중에 오류 부분을 찾아보니 점 하나가 찍히지 않거나 연결 문자가 찍히지 않거나 변수명이 중복되거나 이미 선언한 변수를 다른 곳에서 중복해서 사용하는 기초적이고 어이없는 경우들 때문에 확인해야 할게 너무 많다 보니 머릿속이 어지러워지는 현상들을 겪기도 하는 것 같습니다.
머릿속이 어지러워지기 시작하면 코드도 잘 안 보이고 머리도 잘 안 돌아가서 그런지 작업 진행이 원활히 진행되지 않는 것 같습니다. 이런 경우가 생기는 이유를 생각해 보니 알고 있는 이론은 맞지만, 실제 코드 구현을 하기 위해 프로그래밍 작업을 하면서 문법의 사용법, 개발 환경이 다양하다 보니 소스코드에서 빼먹는 부분이 생기는 것 같기도 하고 새로운 것을 만들 때는 머릿속에서 생각해낸 게 코드로 구현이 되는지 확실치 않은 경우 작업을 진행하면서 아~~ 이런 부분 구현이 이렇게 되는구나! 라면서 작업을 진행 하다 보니 프로그래밍 코드를 작성하면서 실수가 나오는 것 같기도 합니다.
프로그래밍을 소스 코딩을 하면서 다양한 부분에 모든 지식을 아는 것에 한계가 있다 보니 모르는 부분들이 나왔을 때 하나씩 익히면서 진행하는 경우가 많이 생기다 보니 그런 현상이 자주 발생하는 것 같기도 합니다.
어떤 경우는 소스코드에 문제가 없었지만, 실제 변수를 선언하는 부분에서 이름만 사용하고 변수를 사용하는 특정 기호를 빼먹고 오류가 나는 경우도 있었습니다. 정말 간단하고 기초적인 오류를 찾지 못해서 많은 시간을 헤맸던 경우도 종종 있는 것 같습니다.
프로그래밍하면서 풀리지 않는 기능을 다양한 방법을 동원해서 해결되는 경우가 생길 때는 프로그래밍을 하는 재미도 있고 그래 내가 배운 게 헛된 건 아니구나 라는 생각도 듭니다.
하지만 간단한 문법이나 간단한 프로그래밍 작성에서 막힐 때 그리고 다른 사람들이 만들어낸 코드를 보면서 대단하다는 생각을 하기도 하고 나는 이런 코드를 만들어 낼 수 있을까? 그런 상황들을 겪으면서 나 자신이 프로그래머로 좋은 기술력을 가질 수 있을까? 이 직업을 계속 유지해도 좋을까 하는 생각을 하기도 하는 것 같습니다.
프로그래밍하면서 경험이 참 중요한 것 같기는 합니다. 여러 가지 프로그래밍 코드와 관련된 문제를 만나다 보면 아 예전에 이렇게 해결했었지 라는 경험이 생각 나다 보니 막히는 부분이 생길 때 예전에 기억들을 떠올려서 문제를 해결하기도 하는 것 같습니다.
대부분 다양한 문제를 많이 겪다 보니 새로운 문제가 생긴다고 해도 어떤 방식으로 이 문제를 해결할 것인지에 방법을 알고 있는 것도 프로그래밍 코딩을 하면서 중요한 경험이며 요소 중 하나라고 생각이 들기도 합니다.
프로그래밍과 관련된 일을 하면서 난감한 경우도 많이 겪었던 것 같습니다. 테스트 데이터베이스에서 이것저것 테스트를 한다고 작업을 한 적이 있는데 테스트 DB가 아니라 실제 운영되고 있는 데이터베이스를 잘못 건드려 본 적도 있고 결제 관련 시스템을 작업할 때 금액이 이상하게 나와서 처리되는 문제 등 다양한 경험을 했던 기억이 나기도 합니다.
일을 했을 때 기억을 해보면 굉장히 급한 작업에 대해서 겪는 경험도 종종 있었던 것 같습니다. 그런 경우를 맞닥뜨리면 문제를 직접 해결해야 할 사람은 프로그래머가 되고 작업을 하는 도중 제 컴퓨터 등 뒤로 많은 사람이 지켜보고 있는 경우도 있었습니다.
이런 경우 자신이 직접 작성한 코드로 인해서 문제가 생기지 않았어도 문제를 해결하기 위해 등에서 식은땀이 났었던 경험도 저에게는 좋은 경험이 되었던 것 같습니다.
이런 경험들과 위기를 잘 이겨내면 프로그래밍을 하는 재미도 있고 프로그래머를 하기를 잘했다는 생각도 드는 것 같습니다.
프로그래밍 경험이 얼마 없었을 시절에는 어떠한 기능을 만들어 달라고 요구했을 때 처음엔 이걸 어떻게 만들어야 하는지 고민도 되고 도저히 해낼 수 없다는 생각 때문에 회사에서 힘들었던 기억도 있습니다.
회사에서 프로그래밍에 대해서 잘 모르다 보니 어떠한 것을 만들어 달라고 요구할 때 무리한 요구들도 많기 때문에 이런 상황들에 있어서 작업을 요청한 관리자나 팀원에게 자신의 기술력으로 구현할 수 있는지 어떤 부분은 구현이 불가능 한지를 잘 설명하는 것도 프로그래머로서 갖춰야 할 중요한 요소인 것 같습니다.
나름대로 여러 가지 언어도 경험해 보았고 다양한 개발 환경도 경험해 보았습니다만 프로그래머로 경제적인 것을 많은 것을 해결하기 위해서는 더욱더 많은 공부와 경험을 해야 될 것 같기는 합니다.
하루에 오랜 시간 동안 프로그래밍 코딩에 투자하고 있지는 않지만, 꾸준히 오랫동안 조금씩 놓지 않고 기술을 갈고 닦아야 할 것 같습니다. 어렸을 때부터 프로그래머를 반드시 해야겠다는 생각으로 살았지만, 나이가 점차 들다 보니 프로그래밍이라는 직업을 과감히 버리고 다른 일을 해보려는 생각도 잠시 해보았지만 생각해보니 저에게 이만한 직업도 없는 것 같아서 끝까지 프로그래머를 해보려고 합니다.
다시 회사를 들어가 일을 해도 언젠간 나이가 들어 회사를 나오게 되는 경우가 생기게 된다면 무언가를 직접 만들어내서 여러 사람에게 서비스를 하는 프로그래밍을 만들어 내야 할 목표도 있고 삶을 살아가면서 프로그래밍이 아닌 다른 일을 하는 경우가 생겨도 제가 원하고 바라던 꿈은 결국엔 프로그래밍에서 나오게 되기 때문에 끝까지 프로그래밍을 놓지 않고 살아야 할 것 같습니다.
프로그래밍 코드도 사람마다 자신만의 코딩 스타일이 있고 소스 코드에도 사람마다 각자의 성격이 코드에 표현되기도 하고 참 다양한 스타일이 있었던 것 같습니다. 소스에 주석과 설명이 자세하고 깔끔하게 된 코드들, 실제 구현 코드들도 간결하고 정리가 잘된 분들의 코드를 보면서 감탄한 기억도 있고 많이 배웠던 코드도 있었던 것 같습니다.
프로그래밍이라는 게 처음부터 높은 결과를 얻어 내려고 하면 힘들어지는 것 같습니다. 모든 것이 그렇듯 프로그래밍도 조금씩 코드가 쌓이고 쌓여서 좋은 코드가 나오는 것이고 처음엔 단순하게 된 코드여도 수정을 거쳐 간결해지고 성능을 생각하며 수정하다 보면 좋은 코드를 만들었을 때 보람도 느끼고 직업 선택을 잘했다는 생각도 듭니다.
끊임없이 생각하고 고민하면서 한 줄의 코드를 만들어 내는 과정에 뿌듯할 때도 있고 보람이 있는 경우도 있지만 일이 급하고 당장 일정이 촉박하다 보니 일단 요구한 사항에 작업을 처리하려고 하면서 코딩을 했을 때는 일에 대한 회의감도 느끼고 일이 쉽게 풀리지 않은 날은 프로그래머를 계속해야 하나 고민했던 적도 있었던 것 같습니다.
처음 프로그래밍을 접했을 때가 대학교인데 프로그래밍을 처음 접했을 때 무슨 외계어 공부를 하는 느낌도 나고 전혀 이해할 수 없는 것들이 있다 보니 오기가 생겨서 프로그래머라는 것에 더욱더 도전 의식이 있었던 것 같습니다.
프로그래밍하면 할수록 이해하지 못하고 무언가 만들어 내지 못하는 것 때문에 좌절도 많이 하고 왜 난 이해를 못하는 거지! 화면서 화도 냈었습니다. 생각해 보면 좀 더 열심히 공부하지 않았던 제 잘못이라고 생각이 들더군요.
프로그래밍을 이해하는데 다른 사람보다 시간이 좀 더 걸렸지만, 프로그래밍을 하면서 간단한 것들은 만들어 낼 수 있고 만들어 낼 수 있는 생각을 할 수 있는 수준이 되었을 때는 정말 뿌듯하고 기분 좋았던 기억도 납니다.
개인적으로 생각하기에는 프로그래밍 관련 작업을 회사에서 주어지는 각종 요구사항을 처리해 내는 부분도 중요하지만 자기 자신이 어떠한 프로그램이 필요해서 만들어 내는 경험도 굉장히 중요한 것 같습니다.
지속해서 반복되고 필요하다고 생각되는 것들을 프로그램을 직접 만들어 보기도 하고 어떤 사이트도 직접 만들어 보게 되면 전체적인 부분에 지식이 쌓여서 프로그래밍하면서 굉장히 좋은 경험이 되는 것 같습니다.
프로그래밍하면서 알아야 하는 내용이 아주 많기도 하고 어떠한 문제를 해결해야 할 것들이 많다 보니 자신이 직접 원하는 프로그램이나 사이트를 만들어 보는 경험은 필요한 경험 중 하나라고 생각도 들기도 합니다.
개인적으로 글을 작성한 시점에서 내년 1월 까지는 아이폰개발과 안드로이드 개발과 관련된 것들을 공부하며 남는 시간에 개인 사이트와 앱을 만들어서 서비스하는 것을 목표로 두고 있습니다.
세 가지를 모두 다 완벽히 해낼 수는 없겠지만 앱을 만들어 내는 준비 과정과 사이트는 만들어야 한다는 목표는 가지고 있습니다.
경험해 보지 못한 아이폰 관련 기술도 공부하며 남는 시간을 쪼개어 개인적으로 만들어 보고 싶었던 것들을 만들어서 직접 서비스 하는 것이 목표이며 그동안 열심히 프로그래밍 기술을 갈고 닦으려고 합니다.
궁극적인 목표는 제가 만들어낸 서비스가 잘되어서 무언가 성과가 나오면 좋겠지만 그렇지 않다고 하더라도 기술력을 갈고닦아서 다시 일하면서 남는 시간에 나만의 프로그램들을 만들어 서비스하는 것이 현재 글을 작성한 시점에 제 미래에 대한 목표입니다.
프로그래밍 코딩을 하면서 생각나는 것들과 경험했던 것들을 나름대로 한번 작성해 보았습니다. 혹시라도 프로그래머에게 관심이 있는 분들에게 흥미 있는 내용의 글이 되었으면 좋겠습니다.