개발&Development/프로그래밍 일반 56

주석은 쓸모없는 것 2

"주석은 쓸모 없는 것" http://process.kaist.ac.kr/~gendoh/blog/18 이란 글을 작년에 썼는데 http://kaistizen.net/EE/index.php/weblog/benefits_of_documatation_tools/ 글을 또 발견하게 되서 좀더 보충. OOPL(Object-Oriented Programming Language)들이 Method 혹은 포괄적인 의미의 Property(최근 언어들은 Member function과 Member variable의 구분이 점점 사라져 간다)에 대한 Polymorphism을 지원하는 과정들을 볼때 나름대로 내린 결론. 운영체제를 만들거나 새로운 언어를 만드는 케이스가 아니라면 주석 따윈 필요없도록 디자인 할것.코드가 바로 주석..

GC's problem of JavaScript

http://www.barelyfitz.com/screencast/javascript/memory-leak/ Java 쪽에는 그나마 툴이나 IBM의 Technical Document들이 검색에 걸리지만 Java-Script쪽에는 드물다. 그래도 확실한것은.. 1. Circular Referance 꼬리에 꼬리를 무는 객체 참조는 자칫 참조 서클을 만들어 버린다. 외부에서 참조하는 객체가 없어도 이경우 GC가 탐지를 잘 못하게 된다. 2. Document.write 혹은 innerHTML로 객체를 와장창 변경하는 경우.. 전에 있던 객체들이 레퍼런스가 남아 있다면 지워지지 않음에 주의. 정말 Ghost가 되어버린다. DOM을 기반으로 스크립트 떡칠을 해 가며 Dynamic Page를 구성해 가면서 흔히 놓..

가비지 컬렉팅, Loosely type binding, 기타 등등

잡담 아는 사람은 안다는 티스토리 내부 개비(?) 작업중. 외형적으로는 별 차이가 없는 것으로 보이겠지만 내부적인 엄청난 코드 변화가 티스토리에 일어나고 있다. 내부 개발서버에 수십번의 커밋이 일어나고 있고 테스트 해야 하는 양도 엄청나다. 어제는 SQL문을 다중 서브쿼리까지 써 가며 몇몇 부분의 로직을 새로 작성하였고 특정 상황에서 동작하지 않는 기능을 디버깅 하기 위해 DOM 문서와 자바스크립트 문법을 펴 두고 몇시간을 해메이기도 했다. 뭐 괜히 이회사 왔다가 대학시절 한학기에 언어 4~5개 배우고 플젝하던 악몽이 다시 생각나기도 하는 시절이다. 이노무 PHP는 뭐이리 어려운 언어인지.. Loosely Type Binding Perl 혹은 PHP가 쉽다고 하는 사람들을 보면 정말 존경 스럽다. 아직 ..

Data Structure-자료구조, 프로그래밍의 교양

자료구조(Data Structure)라 하면 전산전공의 대학생이 처음으로 접하는 머리아픈 과목중 하나가 아닐까 한다. 대학마다 전공과정이 약간 다르기는 하겠지만 DS와 더불어 알고리즘, OS, 이산구조정도? 살려주세요 - 어느 대학생의 비명. 어쩌다 마주친 그대 모습은 아니고 글. 이전의 글에서는 좀 공격적이었다면 여기서는 달래는 느낌의 글??? 프로그래머라 하면 C나 C++ 혹은 최근에는 Java나 PHP만 잘 짜면.. 정확히는 대충 굴러가는 코드를 생산만 할 수 있으면 되겠지라는 생각이 있을지도 모른다. 하지만 세상은 그리 만만치만은 않은 것이다. 위의 비명글에서 간만에 "빅오"(time order)라는 용어를 보는데 DS뿐만이 아니라 알고리즘을 배울때도 아마 다시 나올것이다. 많은 사람들이 해당 과..

IsUTF8의 버그를 잡아라

이전에는 euc-kr을 쓰다가 어느 순간 많은 곳에서 Unicode를 사용하고 있다. 리눅스도 기존 데이터를 부었더니 한글이 제대로 안보이는 경우가 있고 구 터미널 프로그램들도 사용하기 어렵다. 어플리케이션도 슬슬 옮겨지는 듯 하고 웹페이지도 utf-8로 판별되는 경우가 많다. 이런 전환의 시점에서 필요한 함수중 하나가 utf-8 판별 함수. 이름하여 isUTF8. bytesbitsrepresentation17 0bbbbbbb 211 110bbbbb 10bbbbbb 3 16 1110bbbb 10bbbbbb 10bbbbbb 4 21 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb 위의 표는 php의 헬프에서 참조하였다. 대부분의 구현은 크게 위를 벗어 나지 않는다. 10bbbbbb로 시작하..

조엘이 엄선한 소프트웨어 블로그 베스트 29선

[PURE][/PURE] 출판사에서 공짜로 보내주다 보니 읽는데 상당한 시간이 걸려버렸다. 그래도 이런 좋은 책에 대해서 서평은 써 줘야 하지 않을까. 이책을 보고나서 당신의 목표에 다음을 추가하라. "저런 수준의 글을 나도 쓸테다!" 서문에서 조엘이 중요시 하는 것은 글쓰기이다. 글들의 내용도 상당히 고민거리(정답은 아닐것이지만 충분히 고려해 볼만한 것들이다)를 주고는 있지만 조엘은 이정도의 글은 쓸 수 있도록 노력하라고 지적한다. 이정도의 책을 읽고 이해하고 공감할 수 있는 사람이라면 이제는 자신이 이런 글을 써야 하는 의무가 생기는 것이다. 최근 Web 2.0이니 Semantic Web등의 이야기를 한다. 웹 비지니스 모델이나 기술적인 측면의 이야기긴 하지만 그 배경에는 각 개인이 Content P..

개발자 표준PC - 2006년 3월 버전

이전에는 듀얼 CPU를 써야 하고 이것을 상사에게 설득 시켜야 한다느니 하다가 최근의 듀얼 코어를 보면서 이제 이 문제는 사라졌구나 생각이 들긴 한다. 약간의 코스트 추가로 이제 개발자는 멀티 시피유를 가질 수 있게 되었다. 그러고 나니 욕심이 더 생긴다고 할까나? 아무튼 현재 시점에서 개발자에게 권장되는 장비 스펙을 불러볼까 한다. 물론 UNIX같은 특별한 환경이 아니라 IBM-PC Compatible 환경에 대해.. CPU 당연 듀얼 코어다. 듀얼이 왜 필요하냐고 물으신다면 싱글코어에서는 멀티쓰레딩시의 문제를 잡는게 거의 불가능 하기 때문이라고 하고 싶다. 콘솔 어플리케이션의 개발은 물론이고 요즘 유행하는 웹 어플리케이션도 각 콤포넌트가 동시에 돌아줘야 개발타임에 뭔가 꼬여 주기도 한다. 더불어 프로..

개발자 대란

본인도 팀장이 되면서 쓸만한 개발 인력 뽑는 것을 아예 포기해 버렸고 또한 많은 곳에서 IT 인력 대란을 이야기 하곤 한다. IT 인력을 배출해 내는 교육 기관에 문제가 있기도 하고 또한 IT 경력 8년 이상의 개발자를 구하는 것은 불가능이라는 점도 있다. 99년도에 병역특례로 시작된 나의 직업 개발자의 인생도 이제 6년을 넘어 7년차가 되면서 점점 내가 원하는 연봉을 받으려니 전부 연구소장 급이 되어야 한다는 점들이 슬슬 압박으로 다가오고 있다. (본인이 연봉 욕심이 많다는 것은 어느정도 인정하긴 하지만;;) 최근 현 연구소장님과의 대화에서도 소장님의 친구분들은 개발에서 손땐지 오래라고 한다. 자신처럼 아직도 개발에 깊게 관여하는 사람은 없다란다. 개발경력 10년 이상의 사람을 한국에서 만나서 같이 일..

IRI : Internationalized Resource Identifiers

이전글중 Tatter Tools에 관련된 글에 흥미로운 코멘트가 발견되었다. IRI가 제정되었으므로 틀린것이 아니라는 의견이었다. 우선 갑작스레 IRI라는 약자가 등장하여 잠시 당혹케 했다. IRI는 URI가 무엇인지 아는 사람이라면 쉽게 추측할 수 있는 약자이며 2005년 1월에 발표된 RFC3987에 그 내용이 자세히 나와 있다. 본인도 처음 알게된 항목이다. 관심있는 분들은 읽어 보시고.. RSS 2.0에서 Link란에 URI가 아닌 IRI를 적는 것이 아니고, IRI의 스탠다드가 나온 것이지 다른 표준을 변경한 것이 아니며, 호히려 RFC3987에서는 10페이지쯤에 어플리케이션은 두단계에 걸쳐 IRI를 URI로 변경해야 한다라고 정의되어 있다. 당연하겠지만 HTTP/1.1을 뜯어 고칠 수는 없는 ..