제가 프로그래밍을 접한 시기가 97년이고, 윈도우 프로그래밍에 대한 정보를 얻기도 쉽지 않은 시기였습니다. (도서관도 시립 도서관외에는 힘들었고, 집 근처에 도서관이 없던지라 서점에 파는 책들이 전부였죠) 그런 상황에서 유닉스나, 리눅스 프로그래밍은 더 접하기 어려웠고, 그렇다보니 자연스레 윈도우 프로그래머가 되었습니다. 굳이 리눅스를 접해야만 할 이유가 없었고, 윈도우에 만족하고 있었지만, 현대 운영체제의 모태인 유닉스 계열 운영체제를 접해봐야 왜 그렇게 만들어졌는지 알아야만 윈도우 프로그래밍을 더 잘할 수도 있겠고, 유닉스 계열 운영체제가 맘에 든다면 그쪽으로 개발하는것도 괜찮겠다는 생각에 Fedora를 시작으로 리눅스를 사용하게 되었습니다. 서버 프로그래머이다보니 네트웍에 관심을 갖고 있는 것도 한..
이 책은 경험이 쌓이면서 알게되는 진리들 (성급한 최적화, 객체지향 설계가 필요한 이유, 중복 제거가 필요한 이유 등등) 을 쉽게 설명해주고 있습니다. 저는 현재 현업에서 일한지 2년이 넘었고, 취미와 학과 시절을 포함하면 10년이 넘었습니다. 그렇다보니...초급서로 느껴지는 이 책을 지금 읽기에 좀 부족하지 않냐는 생각으로 보기 시작했지만 읽다보니 전개가 재미있더군요. 전공이 컴퓨터 공학이었다보니 선후배나 동기들이 프로그래밍을 어떻게 하면 쉽게 배울 수 있느냐고 물어봅니다. 그런 부분에서는 이 책도 해답이 되긴 힘들다고 생각합니다. 이 책은 프로그래밍의 방법을 알려주는 책은 아니니까요. 제 생각에 이 책은 프로그래밍이란 과정은 알아가는데, 좀 더 유지보수하기 좋고, 이해하기 쉬운 코드를 목표로 삼고 있..
해킹 관련 서적에서는 최신 해킹 기술이 소개되지않는다. 당연하지 않는가? 취약점이 알려지면 늦어도 대게 일주일 이내에 문제가 해결된다. 그러나, 글로 작성하고 출판되는데에는 그 이상의 시간이 걸리니 말이다. 그렇다고 이 기술들이 의미가 없을까? 그건 아니다. 그 기술들이 시스템의 어떤 취약점을 파고 들었고, 어떤 원리로 그 취약점이 이용될 수 있었는지 아는 것은 매우 중요하다. 공격 코드가 어떻게 이루어져 왔는지 이해한다면, 방어적인 프로그래밍이 어떤 것인지 이해할 수 있게 된다. 이 책은 라우 레벨 차원의 여러가지 기반 지식 컴퓨터 구조 이해, 운영체제에 대한 이해, 메모리 개념에 대한 일정 수준 이상의 이해도가 필요하다고 본다. 책에서는 지금까지의 보안 취약점이 어떻게 이용되었는지를 공격 코드의 원리..
사실 저는 테스트를 별로 좋아하지 않습니다. 테스터 분들이 보시면 기분나빠하실지도 모르지만, 개발보다 지루한 작업이기 때문이죠. 하지만 테스트는 언젠가 해야하고, 프로그램의 품질에 지대한 영향을 끼칩니다. 프로그래머는 모든 상황을 생각할 수 없습니다. 현재의 코드가 미칠 여파를 모두 생각해내는건 사실상 불가능하죠. 프로그래머의 논리적 빈틈은 테스트를 통해서 해결해야합니다. 그런 코드의 빈틈을 테스터에게만 맡길 수 있을까요? 그 프로그램을 작성한 사람보다 빈틈을 더 잘 찾을 수 있을까요? 프로그래머가 하는 테스트가 꼼꼼하다면 프로그램이 공개 되고 나서 발생할 문제를 상당수 방지 하거나 해결 할 수 있습니다. 테스트 주도 개발은 기본적으로 리팩토링을 기반으로 이루어집니다. 테스트를 통해 개발을 하며, 리팩토..
- Total
- Today
- Yesterday
- SQLite Spy
- ftp
- CppSQLite
- 게임데브포에버
- 루비 온 레일즈
- TDD
- RoR
- 리버스 엔지니어링
- 좋은 프로그래머
- Ruby on Rails
- svn
- 루비
- EasyExec
- TraceRoute
- NDC2013
- 바로가기 프로그램
- 임백준
- MS-SQL
- 멀티스레드
- 게임개발포에버
- ruby
- Rails
- perfmon
- EzShortcut
- 디버깅
- 엘키
- 디자인 패턴
- c언어
- 조엘 온 소프트웨어
- SDL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |