커널소스를 읽는다라는 개념이 무엇인지 잘 모르겠습니다.
글쓴이: jwoo0122 / 작성시간: 화, 2013/08/13 - 1:24오후
어떤 분이 저에게 리눅스나 os x 커널 소스를 읽어보길 권하셨습니다.
정확히 "소스를 읽고 또 읽어라"라고 하셨습니다.
일단 www.kernel.org에서 소스를 받아두었고
opensource.apple 에서 xnu 소스도 받아두었습니다.
소스를 읽다보면 문서작업이 필요한 곳이 어딘지 알게 될 것이도,
그런 부분의 문서작업을 해나가면서 운영체제의 알고리즘, 데이터구조등에 익숙해 지라고 하셨는데
소스를 읽는다 라는 표현이 정말 c 등의 언어로 코딩된 소스파일을 컴퓨터로 열어서 읽으라는 뜻이고,
문서작업은 그 소스가 어디에 쓰이고 어떤 기능을 하는지 소스 파일 안에 주석을 달아주라는 뜻인건가요?
만약 제가 알고있는 의미가 아니라면 어떤 의미인지 정확하게 설명해주셨으면 좋겠습니다.
감사합니다.
Forums:
음. 살짝 핀트가 어긋난건지 제가 이해를 못한건지..
"소스코드를 읽고 또 읽어라"
라는 말은 유명한 말입니다. 나름,
뭐 구체적으로 말하자면 글쓴이님 처럼 하는게 맞습니다.
더 나아가서 동료의 코딩을 보는게 좋겠네요.
동료들의 코드를 보다보면 스타일이 상당히 다릅니다.
저같은 경우는 그냥 책으로만 한권하고 인터넷서핑으로 기술을 채득한지라 상당히 특이한테 저 같은 케이스는 수두룩하거든요.
암튼, 동료들의 코드를 보다보면 같은 것을 할지라도 성능에서도 차이가 있고 가독성에서도 차이가 납니다.
이럴 때 성능이 좋고, 참신하면서 가독성이 좋은 그런 것들을 보면서 자신의 코딩 실력을 업시키라는 말입니다.
그리고 문서 작업같은 경우는 제가 보기엔 README 파일 처럼 정리를 하라라는 말같네요.
이 함수는 어디에서 쓰이고 그런게 중요할 수 도 있지만, 전체적인 맥락같은 것을 적으라는게 아닐까요.
주석은 아닐겁니다. 주석다는게 문서작업은 아니잖습니까;;
무협지나 중국영화를 보면요..
일단 지금 님나이의 분에게 커널 소스를 읽어라 라는 말이 무엇인지는 납득시키기도 어렵고 , 말해줘도 님이 그 뜻을 다 알아듣지 못하십니다.
만약 님께서 지금 당장 컴퓨터 프로그래밍 회사에 연구원으로 취직하거나 혹은 대학에 입학하셔서 3년정도 매주 자신이 공부하고 학습한 내용을 발표하고 다른사람들이 발표하는것을 듣고 , 또 어떤 연구주제나 프로젝트를 정해서 연구하고 발표하다보면 자연스레 문서화와 소스를 읽는다는 표현이 뭔지 체감하게 되나.. 지금 소스를 읽는것이 뭔지.. 문서화가 뭔지.. 이런의미에대해 말해줘도 님께서 다 체감하지못합니다. 그리고 이런 표현에 대해 님께서 이렇게 물어보는것도 당연한겁니다.
이런걸 통틀어서 저는 연구 능력 이라고 하고싶네요.. 연구능력이 우선 갖춰져야 소스를 읽고 , 문서화를 하고 할수 있는것 같습니다.
무협지나 중국 영화를 보면요..
무술을 배우고싶은 사람이 고수에게 찾아가서 어떻게 해야 잘할수있습니까? 라고 물어보면 뭐라고 대답하나요? 그냥 열심히 수련해라 입니다.
님께서 한 100장 , 200장 , 300장 아무렇게나 정리를 해보세요.. 그러다보면 그중에 한장정도 쓸만한게 있겠죠..
소스를 읽고 문서화하고 ,, 이게 마치 공부의 시작을 하는 방법 처럼 들리는 문장이지만.. 사실은 공부가 어느정도 되어야 저 의미를 알수있습니다. 님께서 이부분에있어서 무언가 받아들이는데 걸리는 느낌이있어서 이런 질문을 하신것같은데 , 아무 느낌없이 받아들여지는것보다 , 이렇게 걸리는 느낌을 받는걸 행운으로 아시고 ㅎㅎ 그런 걸리는 느낌을 즐기시고 그느낌이 없어질때까지 계속 생각하고 해보세여..
http://kldp.org/node/138100 근데 여기에 글올리셨던데 답글 안읽어보셨으면 읽어보세요 ...
답변하신 말씀이 옳다는 것에는 인정하겠습니다. 그래도
답변하신 말씀이 옳다는 것에는 인정하겠습니다. 그래도 설명은 해주셨으면 좋겠습니다. 이해할 수 있는 만큼 이해하고 싶거든요.
그렇게 이해하여 습득한 지식은 모래성이나
그렇게 이해하여 습득한 지식은 모래성이나 마찬가지입니다.
기초는 정말 중요합니다.
기초부터 차근차근 습득하시기 바랍니다.
RET ;My life :P
문자 그대로, 소스코드를 열심히 읽으라는
문자 그대로, 소스코드를 열심히 읽으라는 뜻입니다.
읽으면서 왜 그렇게 작성했는지 생각해 보고, 어떻게 작동하는지 생각해 보고, 같은일을 하는 함수나 코드를 나라면 어떻게 만들었을지 생각해 봅니다.
그러다가 뭔가 적어놔야겠다는 생각이 드는게 있다면 잘 적어둡니다. 그게 문서화에요. 그런 생각이 안들면요? 그건 코드를 완전히 다 이해했거나, 전혀 이해하지 못했거나 둘 중 하나인데, 어느 경우든 어차피 적을게 없을테니 문서화 안하면 됩니다.
뻔히 아는 것에는 주석을 달 필요가 없고, 전혀 모르겠는 것에는 주석을 달 수 없습니다.
커널 소스를 읽으라 했다면, 다른 사람들이 문서화 작업해 둔 것도 읽어보세요. 커널이 왜 그렇게 생겼는지에 대한 이해와 문서화를 어떻게 해야 하는건지 알아볼 수 있습니다. 읽었는데 전혀 이해가 안된다면? 영어가 부족하거나 내공이 부족한 경우겠죠.
피할 수 있을때 즐겨라! http://melotopia.net/b
댓글 달기