일기

2013 년 10월을 맞으며 ...

모지사바하 2013. 10. 2. 11:10

2013년 10월을 맞으며...


좀 이른감이 있긴하지만 올 한해를 기억하기 위해 기록을 남긴다..


이렇게 따로 기록을 남기는 이유는 올 한해가 나에게 아주 의미있고 많은 발전을 이룬 해라고 생각하기 때문이다..


2013년 1월 3일 中小OOOO공단에 프리랜서로 1년 계약을 하였다.


이곳은 일이 거의 없어 시간이 매우 널널하였고, 늘 6시 칼퇴근이 가능한 곳이다..


웹프로그램 개발자로 일을 하면서


첫 2년간은 매우 열정적으로 공부하고 적용하였는데, 흔히들 그러하듯 나 또한 이바닥에서 몇번의 좌절을 겪고,


호되게 데이고 심하게 표현하자면 환멸을 느낀 이후로 이 바닥을 뜨고 싶단 생각도 했었지만 배운게 도둑질이라 


마땅히 할 게 없어서 계속 개발 일을 하며 아무 공부도 하지 않고 그저 Copy & Paste 를 하고 구글신 도움을 받아가며


'기능만 돌아가도록 하면 되지.. 적당히 해서 돈만 벌면 된다' 라는 생각을 하게 된 '무늬만 개발자' 가 되었었다..



中小OOOO공단 에 프리랜서로 계약하기 전, 지금은 망하고 없어진 유아짱 이라는 회사에서 SNS 프로젝트를 진행하였는데, 그때 스프링 프레임워크 + 마이바티스 프레임워크로 프로젝트를 사용하여 개발을 하였다.


그때 내가 너무 원리를 모른다는 생각을 아주 뼈저리게 했었다..


그리고 12년 4월 25일 사랑하는 딸 예령이가 태어나서 무럭무럭 자라고 있었고 1억이나 되는 큰돈을 대출받아 집을 장만하였기에 나의 어깨는 매우매우 무거워진 상태였다


하여, 개발일을 계속 할거면 이대로는 도저히 안되겠다는 생각을.. 많이 늦었지만 하게 되었다.


中小OOOO공단에서의 근무생활은 출근해서 퇴근할때까지 일이 하나도 없는 날이 거의 대부분이였기 때문에, 공부를 하기 위한 최적의 조건을 갖추었다.


지난 9개월간, 

우선 토비의 스프링프레임워크 3.1 VOL1, VOL2 를 3독 정독했다. 공부를 하면서 정말 정말 너무 많은 것을 배웠다.. 


3독 정독 한 후에 스프링 내부 소스를 보면서 내부에 녹아있는 패턴을 살펴보고 개발원칙을 어떻게 지키고 있는지.

어떻게 객체지향적으로 설계 되었는지를 살펴보았다.


토비의 스프링을 공부하면서 Effective Java 를 곁들여 보다가 , 나중에 이것도 3독 정독하였다.. 보면 볼 수록 내용이 맛있었다..


토비의 스프링 책을 보면 계속해서 테스트의 중요성에 대해 강조하고 또 강조하고 테스트를 효과적으로 하기 위한 예재도 매우 많아서 테스트의 중요성에 대해 알게 되었다..


채수원 저 테스트주도 개발 고품질 쾌속개발을 위한 TDD 라는 책을 사보았다.(마침 11번가에서 50% 할인행사) 


내가 기대했던 만큼은 아니였지만 그래도 많은 도움이 되었다.. 


회사에 마틴 파울러의 리팩토링 이란 책이 필요하다고 사달라고 하여서 읽어봤다.. 


일반적으로 개발해야할 때 피해야할 안티패턴 과 지향해야 할 패턴. 지켜야 할 원칙에 대해 정말 많이 알게 되었다..


완벽하게 1독 정독하진 못했다 . 왜냐하면 뒤쪽은 리팩토링 기법이 카탈로그 형식으로 나오기 때문에 그때그때 찾아보면 되지않을까 라고 생각하여서이다.


스프링 시큐리티를 공부하였는데 정말 너무 신기하고 편했다 .. 이 스프링 시큐리티는 내부 원리를 구체적으로 공부하진 않았다.. 그냥 이렇게 하면 이렇게 되는구나. 라는 정도로만 공부를 하였다.


공부를 하면서 개인프로젝트가 몇개 진행을 하였다. 스프링 3.2의 DeferredResult 를 이용한 엉터리 SNS 와

Callable 을 이용한 파일업로드.


스프링시큐리티 와 AOP 를 이용해 회원가입시 선택한 정치성향에 따라 암호화 되는 정치 게시판.


등등 이것저것 많이 만들었다 .. 개인 프로젝트를 해보니 역시 머리로만 이해하는거와는 달리 수많은 난관에 부딪쳤다.


취약했던 데이터베이스 를 보완하고자 데이터베이스 설계와 구축을 공부하였는데 이 책이 또 물건이였다..


정규화와 설계에 대해 정말 개념을 확실하게 잡아주었다 .. 이건 정말 완전 필독서였다.. 설명도 너무 이해하기 쉽게 돼있고 머릿속에 쏙쏙 잘 들어왔다 .. 


데이터베이스 설계와 구축을 공부를 하고나서 오래전부터 궁금했던 ORM 을 공부하고 싶어서 회사에 이야기해서 


하이버네이트 완벽가이드 를 구매하였다.. 처음에는 진짜 너무너무 지루하였고 재미가 없었다 어렵다고 느껴졌다 .


용어들도 좀 낮설고 책의 내용이 눈에 잘 안들어왔다 .. 오기가 생겨서 읽고 읽고 읽고 하다보니 이게 어느순간 눈에 들어

오기 시작하였다.. 그러더니 급기야 재밌어지고 신기해졌다 ..


ORM 은 정말 뭐랄까.. 음.. 선물과도 같은 프레임워크다 .. 네이티브 쿼리를 거의 작성하지 않아도 되고, 객체와 관계형 


디비에 발생하는 불일치의 문제를 해소시켜준다.. 또한 어느정도 러닝 코스트를 지불하니 엄청 직관적이고 오히려 훨씬 


편하게 느껴진다. 또한 늦초기화를 하이버네이트에서 자동으로 해주니 성능상 많은 이점을 가져오고 자연스럽다. 


그렇긴한데, 화면이 로딩되고나서 영속성컨텍스트가 닫히면서 늦초기화 예외가 발생했을 때는 진짜 고민을 무지무지 많이 했었다 .. 그러면서 OSIV 를 알게 되고 OSIV 가 많은 논란이 있다는것도 알게 되었다 ..


공부하면서 약간은 섬찟(?)했던 부분은 이거 섯불리 쓰다간 진짜 망하겠구나 ... 싶은 생각이 들었다..


N+1 조회 문제와 너무 많은 카디널리티 문제가 그 이유다 .. 하이버네이트 완벽가이드에서 상황에 따른 최적의 매핑에 대한 설명이 자세히 나와있으니 확실하게 공부하고 정확히 사용해야 할 것이다.


하이버네이트를 공부하고나서 MySQL 과 하이버네이트 를 사용하여 답변형 게시판을 개인프로젝트로 만들어봤는데 , 


답변 글 수 에 제한이 없는 방식으로 자기참조를 통한 방식으로 만들었는데 , 답변 글 깊이 문제 때문에 진짜 많은 어려움을 느꼈다. 


공부를 하면서 그간 몰랐던 국내 스타급 개발자분들도 많이 알게 되었다. 


그분들의 블로그에서 정말 많이 배웠다.. 


토비님 블로그, 백기선님 블로그, 이터니티님 블로그, 손권남님 블로그, 찬욱님 블로그, DEV용식님 블로그 등..


내가 지금 열심히 열심히 공부하고 이해하고 놀라는 것들을 이 분들은 2007년 에 이미 공부했다는 사실에 부끄럽기도 했다..


생각하는 프로그래밍 이였나.. 그 책에서 이런 내용을 봤다. '가장 큰 약점은 약점을 보일 것에 대한 두려움이다.' 


이 말이 내 가슴에 너무너무 와닿았다 .. 사실 경력은 어느정도 먹었지.. 아는건 별로 없지. 그래서 뭘 몰라도 모른다는 말을 하기가 쪽팔리기도 하고 무시당할까봐 질문도 못하고,


이게 아닌거 같아도 혹시 내가 틀렸을까봐 말도 못하고.. 그랬던 적이 많았다. 


'가장 큰 약점은 약점을 보일 것에 대한 두려움이다.'  이 글귀를 읽고나서 난 내 약점을 드러내는 것에 대해 두려움을 갖


지 않기로 다짐 했다.. 물론 그게 쉽게 되지는 않겠지만...


테스트주도개발에 흥미가 많아서 스프링 테스트 프레임워크에 대해 공부를 많이 했는데, 너무 좋다 .. 최근에는 MockMVC 가 너무 좋다.. 좋다라는 말만 해서 이상하게 들릴지 모르겠지만 그냥 좋다.. 테스트를 함으로써 


녹색막대를 봄으로써 안정되는 마음..빨간막대를 봐도 안정된다. 뭐가 문제랴 테스튼데? 그래서 테스트주도 개발 기법에는 실패하는 테스트를 먼저 만들라 라는 말도 있다.


하이버네이트를 공부하고 나서 Spring Data JPA 를 사용해봤는데 너무 편한것 같았다 .. 하여 제대로 공부를 해보고자 Spring Data 원서를 사서 봤는데 이건 좀..... 미스 였던 거 같다 .. 눈에 안들어온다 영어라..



메이븐을 한참 쓰다가 손권남님 블로그에서 메이븐을 버리고 그래들을 사용하자 라는 글을 읽고 그래들을 한동안 공부를 하긴 했으나 아직도 메이븐에 비해서 뭐가 좋은지 잘은 모르겠다.. 일단 플러그인이 너무 빈약해 보이고 IDE 지원이 빈약하다.. 좋다고 느낀건 문법이 간편하다는것.. 이건 좀 더 공부해야할듯..


Git 이 많이 대두화 되어서 Git 관련 책을 검색하던 중, 


Pro Git 책을 살펴보다가 DEV용식님 블로그에서 Pro Git 책 번역 링크를 보고 공부를 했는데 브랜치 가 너무 매력적이라고  느껴졌다 .. 진짜 브랜치 너무 좋아보였다 .. 아직 실무에서 써보진 못했지만..





이터니티 님 블로그에서 DDD를 쭉 읽고 토비님이 2007년에 작성하신 스프링프레임워크와 DDD를 읽고 Domain 에 대해 다시 한번 깊이 고민을 하게 되었다 ..


최근에는 제임스고슬링이 쓴 자바스프로그래밍 언어와 Thinking In Java 를 샀다 .. 자바 기초 서적은 신입때 한동안 보다가 손놓은지가 너무 오래됐고 각종 프레임워크와 객체지향에 대해 고민을 하다보니 다시 볼 필요성을 느꼈다

 

11번가에서 책을 사면 박스에 이런 글귀가 있다


"좋은 책을 읽는 것은

지난 몇 세기에 걸쳐 가장 훌륭한 사람들과 대화하는 것과 같다

- 데카르트"


이건 정말 맞는 말인 것 같다. 

좋은 책을 읽는 것은 

개빈 킹, 마틴 파울러, 에릭 에반스, 유겐 할러, 로드 존슨, 조슈아 블로치, 이일민님, 이춘식님이 나의 스승이 되는것과 같다..


이러한 공부를 올해 하면서 ,, 지인이 중견기업에 다니고 있는데 나를 추천서를 써줬는데 서류에서 떨어졌다 .. 

문제는 학력인듯.. 하다 ..


한동안 쉬었던 방송통신대학교를 다시 등록하여 한학기(6과목)을 이수하였고 지금 2학기를 등록하였다 .. 곧 중간고사다 ㅠㅠ


이번학기만 마치면 한 학기만 더 하면 대학교도 졸업이다.


저녁 6시까지 빡시게 공부를 하면 .. 머리가 잘 안돌아간다 .. 하여 칼퇴근을 한다. 집에가서 에너자이저인 딸과 10시까지 


놀아주다가 재우고 와이프와 도란도란 이야기를 나누다가 잔다.. ㅎ


이렇게 9 개월을 보내고나니 올 한해 뿌듯하고 의미있는 해 구나 .. 라는 느낌이 든다 ..