블로그를 시작하며

블로그를 시작합니다.

지금까지는 단순하게 계속 코드를 치고 검색하고 해결하며 정신 없이 시간을 투여해야 한다고 생각한다. 하지만 이런 방식은 점차 한계에 도달했다. JAVA만 배우면 모르겠는데, HTML, CSS, JS, JSP, SPRING, HTTP, DB 등 학습해야할 분야가 무척 많았다. 다른 것을 집중하면 이전에 하던 것을 잊기 쉽상임을 깨달았다. 각각의 분야에 대해 정리하고 내가 보기 편한 자료로 만들 필요를 느끼기 시작했다.

그리고 각각의 분야는 다르지만 또 유사해서, 매서드를 만들고 객체를 지정하고 객체를 다루는 방식들이 비슷하면서도 미묘하게 다르다. 스페이스와 콜론, 퍼센트 등 미묘한 차이로 인해 컴파일 에러가 발생하기도 한다. 이런 식의 작으며 디테일한 부분은 검색을 해도 쉽게 찾기 어려운 경우가 있다. 만약 그것을 해결한다 하더라도 그러한 문제는 미묘하기 때문에 금방 잊고 만다. 그리고 똑같은 실수를 하고 다시 검색을 한다.

그렇게 자료를 정리해야 함을 깨닫게 됐다.

한편, 자료를 정리하는 것과 블로그를 하는 것은 다르다. 나는 초보 개발자이다. 개발 기술에 대한 잘못된 이해, 혹은 낮은 이해로 인하여, 어설픈 글을 작성한다는 가능성을 이 블로그는 내포하고 있다. 안타깝게도 내 글을 독자들이 완전하게 신뢰할 수도 없고 해서도 안된다고 생각한다(나 자신조차). 그러나 나는 이러한 위험성과 공포와 부끄러움을 감수하더라도 블로그를 결심했다. 이러한 결심의 계기는 “완전한 이해”, “확실한 정보”에 대한 회의로부터 비롯한다.

String str = "hello world";
System.out.println(str);

자바를 처음 배울 때 우리는 위의 방식이 작동하는 이유를 이해하려고 하지 않는다. 저것에 익숙해지려 노력할 뿐이다. 익숙해지고 따라치고 그렇게 수 백번을 반복한다. 결국 필요할 때 머리로 먼저 생각하기보다 손가락이 먼저 움직이는 순간이 찾아온다. 우리는 이 코드들을 체화한다. 그런데 아직도 나는 위의 코드가 작동하는 근본적인 원리를 모른다. System.out.print가 어떤 원리로 console에 데이타를 출력하는지 나는 모른다. 나는 그것을 사용할 줄 아는데 그 근원적 원리를 모르는 이 격차는 어떻게 이해해야 할까?

그러나 공부를 하면 할 수록 이러한 격차를 완전 매꾸지는 못하지만 조금씩 조금씩 채워나감을 느낀다. “hello world” 밖에 못하던 나는 이제 String이 primitive type과 다른 reference type임을 이해한다. 특히 String은 array로서 index를 가질 수 있음을 안다. 객체를 다시 생성하는 것보다 재사용하는 것이 메모리를 효과적으로 활용한다는 것을 알기 때문에 stringBuffer의 필요성을 알고 있다.

언제나 지식은 부분적이라 생각한다. 동시에 순간순간 마다의 필요한(혹은 충분한) 지식과 그것의 깊이가 있다고 믿는다. 그리고 그것으로부터 발생하는 오해와 낮은 수준의 이해는 성장하며 채워나가면 된다고 믿는다. 그러니까 내가 작성하는 글들은, 나의 성장의 과정이지 숨겨야 하는 부끄러운 과거가 아니다. 만약 완전무결하여 부끄러움이 전혀 없을 때까지 기다린다면 나는 아마 평생 블로그를 할 수 없을 것이다.

그러므로 나는 나에게 필요로 하는 지식과 기술을 정리하고 블로그에 올리고자 한다. 같이 공부해 나가는 개발자 동료들과 그 정보를 공유하며 활용하는 것에 초점을 두고 싶다. 나 역시도 필요할 때마다 참고하고자 한다. 후일, 그 기술에 대한 이해의 깊이를 더하면 그때 내용을 더 추가하거나 수정하고자 한다.

익숙해지자. 이해할때까지 암기하고 따라하자. 그리고 잊지 않기 위해서 글을 남겨 놓자. 힘내자.