티스토리 뷰

 보통 1000자 정도를 입력하게 되어 있는 자기 소개서 양식에서, 300자 정도의 짧은 글로 나를 소개해야 하는 부분이 있어서 최근까지 사용 해 오던 자기소개서를 변경 하게 되었다.

 300자로 나를 표현 하는 것은 생각보다 어려웠다. 다시 한번 나를 생각해 볼 수 있는 시간이 되었다.

 나는 어떻게 개발을 시작 하게 되었을까?

 나는 전산학을 전공하는 학생이 아니였다. 나는 전산관련 지식이 전무한 그냥 게임을 좋아 해서 길드 홈페이지 정도를 인터넷 검색과 제로보드나 슈퍼보드 같은 것을 이용해서 만드는 수준의 일반인이였다. 개발자가 되어야 겠다고 생각 했을 때도 JAVA책을 먼저 사서 문법을 공부 하며 시작하지 않았다. 그냥 게시판을 만들어 보자는 목표를 시작으로 했다. CRUD 라는 용어도 몰랐다. 알 필요가 없었다. 글을 등록하고, 읽고, 수정하고, 삭제 할 수 있으면 됐지 그것을 CRUD라고 부르는 것을 알 필요도 없었다. 게시판의 CRUD를 만들면서 DB를 사용해야 한다고 하니 DB를 만들어야 했다. 찾아 보니 DB를 무료로 제공해 주는 곳이 있었다. 나는 DB를 만들 필요도 없었다. 어차피 나 혼자 써볼 DB인데 뭐... 어찌 어찌 계정을 얻고, TABLE을 만드는 SQL을 찾아 만들었다. 그 것을 DDL이라 부르는 지도 몰랐다. DB정규화건 모델링이건 고민 할 필요도 없었다. PK건 INDEX건 뭐건 알게 없었다. 어차피 나는 검색한 CREATE 문에서 ID값으로 보이는 게 있고, 이거 이용해서 어떤 칼럼을 수정 삭제 하는 건가 보다.. 예상하고 막 해 봤다. 몇번의 실패를 겪었겠지만 결국은 된다. TABLE 자체에 컬럼 타입이 뭔지도 생각 할 필요가 없었다. 어차피 에러 나면 ALTER TABLE로 변경 하거나, 추가 하거나, 다시 만들면 되니까. 이제 CRUD의 기능을 위해 DML을 익혔다. 물론 그것을 DML이라 부르는 지도 몰랐다. 그 것을 외울 필요가 없었다. 나는 그냥 게시판이 내 의도대로 동작만 하면 되는 거였다.


 이제 이것을 웹브라우져에서 동작하게 만들어야 했다. 대충 <table> 과 <tr>,<td>로 이루어진 목록을 html 파일로 만들었고, 그 파일을 더블클릭하니 인터넷 익스플로러에 보였다. 이제 이걸 어떻게 DB랑 연결하지? 라는 고민과 그 것과 관련된 정보를 찾았다. JAVA를 처음 알았고, JSP로 이루어진 정말 Pure한 기능을 완성 할 수 있었다. 물론 엄청난 시행착오와 실패를 경험 하였다. 하지만 상관 없었다. 어떤 실패를 겪어도 상관 없었다. 게시판만 만들 수 있으면 됐다. GET이건 POST 방식이건 AJAX건 MVC건 뭐건 난 상관 없었다, 어차피 나는 글을 읽고, 쓰고, 수정하고, 삭제 할 수 만 있는 게시판이면 됐으니까. 어찌 어찌 많은 시간이 흘렀고, 게시판을 완성 할 수 있었다. 


 게시판이 완성 되었다. 인터넷에서 접근 하게 하고 싶었다. 서버를 만들어야 한다고 하는데 뭔지도 모르겠다. JAVA를 무료로 제공해 주는 호스팅 업체가 있었다. 많지는 않았던걸로 기억난다. PHP는 많았던걸로 기억하는데... JAVA는 별로 없었고, 어려웠다. JAVA를 선택 한 것 조금 후회 했다. 근데 그냥 하나 하나 찾아 보며 계정을 생성했고, 어떤 경로에 파일을 올리고, 하라는 데로 하고, 재부팅을 했더니 된다. 공용 도메인 뒤에 내 아이디가 붙었다. 도메인을 바꿀 필요도 없었다. 접속만 되면 되니까. DNS건 뭐 건 알지도 못했다. linux 명령어건, VI 명령어건 뭔지 몰랐다. 시키는 대로 했다. tomcat 이건 apache 건 나에겐 그냥 text로 된 암호 같은 존재 였을 뿐...


 그런데 자기가 쓴 글만 수정, 삭제가 되어야 하지 않겠는가 라는 생각에 비밀번호를 넣었다. 너무 귀찮았고, 또 아무 생각없이 키보드를 막 쳐서 등록한 비밀번호는 내가 기억을 할 수가 없었다. 로그인이 필요 했다. 로그인을 만들었다. 회원 가입과 로그인 기능을 만들었다. 비밀번호를 암호화 할 필요도 없었다. 어차피 암호화 해야 하는 지도 몰랐고, 또 1234로 입력 할 꺼 였으니까. 어찌 어찌 하다 보니 게시판에 회원 ID를 넣을 수 있는 세션이 필요 했고, ID를 세션에 저장 하는 방법을 익혔다. 세션과 쿠키의 차이점을 알 필요도 없었다. 세션을 썼는데 뭔가 문제가 있었다면 그 땐 쿠키를 썼겠지만, 세션으로 문제가 없었다. 세션의 ID와 DB에서 글의 작성자 ID가 일치 할 때만 수정, 삭제가 수행되게 만들었다.


 근데 페이지가 너무 못생겼다. 대충 인라인으로 style 속성으로 색도 바꿔 보고, 이미지도 넣어 보고, 글씨 크기도 바꿔 봤다. 당연히 쓸데 없는 것 도 많이 했다. <marquee>를 사용해서 옆으로 움직이게도 해보고, 온갖 잡다한걸 다 넣어 봤다. javascript도 막 넣어 봤다. prototype.js건 jQuery건 당연히 뭔지도 몰랐고, 알 필요도 없었다. 반응형? 당시에는 존재 하지도 않는 개념이였다.


 테스트 겸 작성한 글들이 한 50개 쯤 되니까 글을 읽는데 불편했다. 페이징을 찾아서 만들어 보았다. 페이징 만드는게 생각보다 오래 걸렸다. 당연히 계속 실패 했고, 또 다시 만들고 결국은 완성했다. 검색도 넣어 볼까라는 생각이 들면 검색도 넣어 봤다. LIKE '% %' 를 쓰면 INDEX가 안걸리니 뭐니 그런거는 알 필요도 없었다. 일단 검색만 되면 되니까. FULL TEXT INDEX 라는 거? 알필요가 있었을까? 그냥 게시판이다. 글을 쓰고, 읽고, 지우고, 검색 할 수 있는 게시판이다. 결국 내가 생각했던 게시판을 그럴 듯하게 거의 몇주 만에 완성 할 수 있었다. 그리고도 한 동안 인터넷에서 본 새로운 것들을 계속 적용 해보고 , 수정해 보면서 리펙토링이라는 단어도 모랐지만, 리펙토링을 했었다.

 어느시점이 지나서 새로 게시판을 만들어 볼까라는 생각이 들었고, 새로 공부한 것을 토대로 새로운 게시판을 만들어 보았다. 나는 전보다 훨씬 퀄리티 있는 새로운 게시판을 2일만에 만들 수 있었다.


 만약 내가 개발을 공부 해보자라고 생각하고 게시판을 만들어 보자 라는 목표를 세웠을 때 어떤 서버에, 어떤 언어로 언떤 환경으로 어떻게 만들까? 필요한 기술이 무엇 무엇인지? 내가 무엇이 부족한지 책을 사고 공부를 다 하고 시작 했다면? 아마도 재미 없어서 그만 뒀을 것 같다.


 나는 그랬다. 그냥 만들고 싶은게 있으면 필요 한 것을 찾고, 실패 하면 새로운 방법으로 도전해 보고, 새로운 기능 생각나면 추가 하거나, 안되면 그냥 생각나는 걸 만들어 볼 수 있는 새로운 걸 만들었다. 그게 새로운 개념이건, 다른 언어이건 뭐건 상관 없었다. 내가 생각한데로 만들 수 만 있으면 됐다. 


 그냥 그게 좋아서 개발자가 되었다. 

 아무것도 모르던 내가 그렇게 개발자가 되었다. 최근 몇번의 면접을 보면서 내가 초라해 지기도 했고, 챙피 하기도 했다. 그런데 생각해 보면, 그럴 필요가 없다. 아무 것도 몰라도 개발자가 될 수 있었다.


 시작은 무엇이든 쉽고 재미있어야만 한다. 


 처음 개발 시작 할 때, 또 처음 무언가를 만들었을때 기술적으로든 이론적으로든 완벽 하였는가? 실패하면서 배우며 완성해 갔던 그 기억을 잊지 말고 끝까지 간다. 포기란 없다.

'YcPark' 카테고리의 다른 글

노트북 하나로 개발하는 습관을 들여 보려 한다.  (0) 2017.07.27
가지 않은 길  (0) 2017.07.24
실패 하지 않는 방법  (0) 2017.07.18
공평한 업무 분배  (0) 2017.07.17
서비스 개발의 우선순위  (0) 2017.07.14
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함