철수네 소프트웨어 세상 [본점]

소프트웨어와 관련이 있다면 뭐든지 – I no longer work for Microsoft.

Software Abstractions is important because…

with one comment

No amount of refactoring, bar starting again from scratch, can rescue a system built on flawed concepts. [Software Abstractions: Logic, Language, and Analysis]

무지무지무지 중요하기 때문에 쓰기 좋아하는 단어중 하나 "추상화". 이 책에서는 설계시의 추상화가 소프트웨어 개발의 포인트라고 이야기한다. 문제는 추상과 실제 코드의 구현에서 오는 괴리이고, 코드로 추상을 검증하거나 추상을 코드로 검증할때의 오류라는 것이다.

As a notation for expressing abstractions, code is clumsy and verbose.

따라서, 추상을 검증하기 위해서 코드를 사용하는 것이 아니라 이를 위한 매개를 만들자고 이야기하며 여기서 "Formal Specification"을 이야기한다. 하지만, 이는 일반 개발자들에게는 친숙하지 않은 문제가 있기 때문에 이를 해결하기 위해서 기존의 분석방법을 바꿔 결과를 바로 알 수 있는 안을 제시한다.

소프트웨어의 추상화는 점점 그 자체로서 구체화되고 있다. 상반되는 두 단어로 추상화가 구체화되고 있다는 말을 하는 것이 어색할 수 있겠지만, 아무튼 계속해서 우리가 소프트웨어를 만드는 방법에 있어서 추상화는 계속해서 이뤄지고 있다. 자료구조를 객체로 추상화했고, 객체는 컴포넌트로 추상화되어왔고, 컴포넌트는 서비스로 추상화되고 있다. 대화를 위한 추상화인 서비스와는 다르게, 요즘은 "모델"이라는 추상화를 위한 추상화가 점차 또 하나의 방향으로 가고 있다. 소프트웨어 세상이 가는 방향을 이해하기 위해서는 "추상화"의 느낌을 익히는 것이 중요한 것이라는데에 이의가 있는 사람은 없을 것 같다.

Advertisements

Written by charlz

2006년 5월 24일 , 시간: 오전 12:15

Uncategorized에 게시됨

One Response

Subscribe to comments with RSS.

  1. 철수의 생각…

    2006년에 이렇게 쓴 적이 있었는데, 마이크로스프트에서 이번달 말 PDC 2008을 통해 그에 대한 속내를 Oslo를 통해 공개한다….

    charlz' me2DAY

    2008년 10월 3일 at 오후 12:31


답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중

%d 블로거가 이것을 좋아합니다: