개인적으로 개발할 때 참고하는 문서들입니다.
공식/대표 사이트 검색. 구글 이미지 검색에서 다이어그램을 찾는 것은 새로운 개념을 이해하는 좋은 방법이다.
대부분의 기술 혹은 라이브러리 등은 공식 사이트를 가지고 있다. 거의 대부분 여기서 출발하는게 제일 좋다. 처음 이해를 돕기 위한 tutorial 이든 개발간 정확한 사용을 위한 api 문서든 우선은 여기서 찾아야 한다. java, android, mfc, jquery, jquery ui, mybatis, spring, apache httpd, tomcat, ckeditor, google apps api, mysql, oracle, … 등 대부분의 플랫폼, 언어, 오픈소스 프로젝트, 상용 제품 들이 공식 사이트들을 제공한다. 영어를 독해하느라 느릴꺼 같지만, 대게는 제일 빠르고 정확하다.
http://docs.oracle.com/javase/7/docs/api/
여기 들어가도 되지만,
보통 그냥 google에서 java Calendar 이렇게 검색하면 최상단 혹은 근처에 Calendar 클래스에 대한 api 문서 링크가 나온다.
http://docs.oracle.com/javase/tutorial/
java se 에 대한 튜토리얼이다.
기본적인 주제들도 많지만,, 새로 나온 고급주제들도 잘설명되어 있다.
보고 싶은 주제만 골라서 보면된다.
collection, reflexion, annotation, swing 등을 공부할 때 꽤 도움이 되었던 기억이 난다.
가끔 상업적인 제품이나 기술들의 경우는, 공식사이트에서도 뭔가 모호한 설명이나 자랑만 늘어놓는 경우가 있다. 이럴때는 명확한 개념 정리를 위해서 위키피디아에서 ‘정의’ 부분을 읽어주는것이 좋다. 위키피디아에는 거의 항상 정확한 설명과 냉정한 평가가 나온다.
공식 사이트와 위키피디아를 봤는데도 감이 없으면 네이버에서 검색해보고 힌트를 얻는다.
주의 할 점은, 권위가 없는 블로그 등의 소스 코드나 글을 진리로 받아선 안되다. 이런 글들은 개념이 없을때 참고하는 용도로만 사용하고, 실재로 해당 내용을 가져다 쓸때는, 공식 사이트에서 표준 문서 등을 꼭 확인하는 것이 좋다.
한편, 한글/인코딩 관련 문제는 네이버에서 찾을 때 더 좋은 경우가 많다.
해외에서 유명한 개발 관련 문의/답변 사이트이다. 개발하다가 문제 발생했을때 구글에서 검색하다보면 이 사이트에 답변이 달린 경우가 많다.
네이버와 마찬가지로 일반인이 작성한 글이긴 하지만, 단순한 개인적인 의견이 아니라, 상호 평가에 의해, 믿을만한 좋은 답변이 어떤 것인지 판단할 수 있다. 답변글 좌측에 투표(vote) 값이 10 이하인 경우는 조금더 검토해보는 것이 좋을 것 같다. 반대로, 투표(vote) 값이 높고, 표준문서 링크까지 달아주는 성의 있는 답변의 경우는 거의 믿을만하다고 생각하면 된다.
개인적으로는 아무리 인터넷에 검색해보아도 해결할 수 없는 문제는 이사이트에 직접 질문을 올린다. 고급 개발자라면 많이들 알만한 타당한 질문이라면 30분도 안되어 답변이 오는 경우를 여러번 보아싸. 영작이 서툴어도 대충 올리면 알아서 답변을 해준다. 정말 친절한 사람들은 영문법 첨삭까지 해주기도 한다.
http, ftp, dns, … 이렇게 오래되고 널리 사용되는 통신 프로토콜 들은 대부분 rfc 문서로 정의 되어 있다. 비교적 쉬운 영어로 되어 있다. 예를 들어 http 헤더에 cache-control 의 정확한 설명이 필요하다면, 구글에서 http cache-control 로 검색하여 rfc 문서를 살펴볼 수 있다.
친절한 표준 문서를 찾기 어려운 기술들은 친절한 tutorial 사이트들이 있을 수도 있다.
개인적으로 좋아했던 사이트들..
리눅스 명령어의 어떤 옵션이 무슨 의미인지 궁금하다면,, -help 으로 옵션 리스트를 보던지, 아니면 man 페이지를 보는 것이 좋다.
예를 들면 ls 명령이 궁금하다면
ls -help
이렇게 실행해보거나,
man ls
이렇게 실행해보자.
오픈 소스 프로젝트인데 뭔가 설명이 부족하다면, 소스코드를 직접 보는 것이 제일 정확하다. 요즘 웹개발 등에는 인터넷에 워낙 좋은 문서들이 널려 있지만, 예전에는 소스코드와 주석을 보며 이해를 하는 방법 외에는 다른 방법이 없는 경우가 많았다. 디버거 까지 세팅하면 실재로 특정 변수에 들어가 있는 값을 따라가보며, 정확하게 이해하는데 큰 도움이 된다.
선언 부로 이동.
클래스 상속관계 보기.
함수 호출 관계 보기. 특정 함수를 누가 호출하는지 확인해볼 수 있다.
메소드 및 변수 리스트 보기. 한 번 더 누르면 상속 받은 상위 클래스를 포함한 메소드 및 변수 리스트가 나온다.
요즘같이 인터넷에 잘 정리된 문서도 많고, 구글에서 찾기도 쉬운 세상에 도서를 읽을 일이 별로 없을것 같긴 하다. 그래서 열정만 있다면, 차라리 영어공부를 좀더 하고, 책값을 아끼는 것이 현명한 선택이 아닌가 생각된다. 특히 요즘은, 새로운 기술이 많이 나오고, 어떤 기술이든 빠르게 적응하는 능력이 중요해지는 시대이다. 그래서 책을 보는 것이 인터넷을 찾아보거나, 옆에 사람에게 물어보는 것보다 오히려 비효율적이라고 말하는 사람들도 많이 생겨나고 있다.
나도 사실 기술 서적에 대한 지나친 의존성 좋지 않게 생각한다. 그래도 여전히 책은 필요하다. 아무래도 표준문서가 영어다보니 생소한 주제에 대해서는 접근하는 경우 한글 문서보다는 효율성이 떨어지는 경우가 있다. 꼭 영어 때문만은 아니다. 전문가의 수많은 경험에서 나오는 안목과 노하우는 인터넷에서 얻기 힘든 경우가 많다.
저는 웹 개발 경험은 2년이 좀 못되고, 이전 회사에서는 자바와 C로 프레임워크 개발을 했습니다. 개발 분야를 변경하여 웹 개발을 시작하면서 여러번 느꼈던 것 중 하나는, 일하다가 어떤 문제에 직면했을때, 인터넷에 ‘좋은’ 문서들이 너무 많다는 것이었습니다.
같은 팀에 부탁하신 분도 있기도 하고, 아무쪼록, 누군가에게는 동기부여가 되었으면 하는 마음에 몇자 적었습니다.