Searching...
한국어
English
Español
简体中文
Français
Deutsch
日本語
Português
Italiano
한국어
Русский
Nederlands
العربية
Polski
हिन्दी
Tiếng Việt
Svenska
Ελληνικά
Türkçe
ไทย
Čeština
Română
Magyar
Українська
Bahasa Indonesia
Dansk
Suomi
Български
עברית
Norsk
Hrvatski
Català
Slovenčina
Lietuvių
Slovenščina
Српски
Eesti
Latviešu
فارسی
മലയാളം
தமிழ்
اردو
Beautiful Architecture

Beautiful Architecture

Leading Thinkers Reveal the Hidden Beauty in Software Design
by Diomidis Spinellis 2009 426 pages
Programming
Architecture
Technology
듣기

가지 주요 요점

1. Emacs: 강력하고 확장 가능한 텍스트 편집기

Emacs는 정오의 태양이 별들을 압도하는 것처럼 다른 모든 편집 소프트웨어를 능가합니다. 단순히 더 크고 밝을 뿐만 아니라, 다른 모든 것을 사라지게 만듭니다.

비교할 수 없는 다재다능함. Emacs는 단순한 텍스트 편집기를 넘어 완전한 컴퓨팅 환경을 제공합니다. 110만 줄 이상의 Emacs Lisp 코드로 구성되어 있으며, 기본적인 텍스트 편집부터 프로그램 디버깅, 이메일 읽기, 디렉토리 탐색, 심지어 상징적 대수 문제 해결까지 다양한 기능을 제공합니다.

독특한 사용자 경험. 전통적인 편집기와 달리 Emacs는 한 번 시작하면 계속 실행되도록 설계되었습니다. 사용자는 단일 세션 내에서 여러 파일을 편집할 수 있어 작업을 쉽게 접근할 수 있습니다. 인터페이스는 세 가지 주요 개념을 중심으로 구축되었습니다:

  • 프레임: 그래픽 사용자 인터페이스에서 창을 의미
  • 윈도우: 콘텐츠를 표시하기 위한 프레임의 하위 구분
  • 버퍼: 파일과 연관될 수도 있고 아닐 수도 있는 편집 가능한 텍스트 컨테이너

모든 것이 편집 가능. Emacs의 가장 강력한 기능 중 하나는 도움말 메시지, 검색 결과, 디렉토리 목록 등 거의 모든 콘텐츠가 편집 가능한 버퍼로 제공된다는 점입니다. 이를 통해 사용자는 정보를 유연하게 조작하고 재사용할 수 있어 복잡한 텍스트 조작 작업에 Emacs가 적합합니다.

2. Emacs 아키텍처: Lisp를 핵심으로 한 모델-뷰-컨트롤러 패턴

Emacs의 아키텍처는 대화형 애플리케이션을 위한 널리 사용되는 모델-뷰-컨트롤러 패턴을 따릅니다.

아키텍처 분해. Emacs의 아키텍처는 세 가지 주요 구성 요소로 나눌 수 있습니다:

  • 모델: 텍스트와 관련 메타데이터를 보유하는 버퍼
  • 뷰: 화면을 업데이트하는 재디스플레이 엔진
  • 컨트롤러: 사용자 입력을 처리하고 모델을 조작하는 Emacs Lisp 코드

모델로서의 버퍼. Emacs 모델의 핵심은 버퍼로, 줄 끝을 표시하는 개행 문자로 구분된 단순한 평면 문자열입니다. 버퍼는 다양한 작업을 지원합니다:

  • 텍스트 삽입 및 삭제
  • 문자열로 부분 추출
  • 정확한 문자열 또는 정규 표현식의 일치 검색
  • 여러 문자 세트 지원
  • 변경 사항을 되돌리기 위한 로그 기록

자동 재디스플레이. Emacs의 뷰 구성 요소인 재디스플레이 엔진은 Lisp 코드의 명시적 지침 없이 화면을 자동으로 업데이트합니다. 이를 통해 프로그래머는 디스플레이 업데이트에 신경 쓰지 않고 모델 조작에 집중할 수 있습니다.

3. Emacs Lisp: Emacs의 확장성과 사용자 정의를 이끄는 엔진

Emacs Lisp는 대화형입니다. 정의와 표현식을 Emacs 버퍼에 입력하고 즉시 평가할 수 있습니다.

강력한 확장 언어. Emacs Lisp는 Emacs의 확장성의 핵심입니다. 여러 주요 기능을 제공합니다:

  • 낮은 관료주의: 작은 사용자 정의는 .emacs 파일에 쉽게 추가할 수 있습니다
  • 대화형 개발: Emacs를 재시작하지 않고 변경 사항을 만들고 평가할 수 있습니다
  • 일급 시민권: 사용자가 작성한 Lisp 코드는 내장 코드와 동일한 접근 권한을 가집니다
  • 완전한 프로그래밍 언어: 대규모 복잡한 프로그램 작성에 적합
  • 안전성: 버그가 있는 Lisp 코드가 Emacs를 크래시시키지 않아 실험을 장려합니다
  • 쉬운 문서화: 함수는 즉시 도움말을 제공하는 docstring을 포함할 수 있습니다

단점과 절충점. 그 강력함에도 불구하고 Emacs Lisp에는 몇 가지 제한이 있습니다:

  • 모듈 시스템 없음: 패키지 간 충돌을 피하기 위해 명명 규칙을 사용
  • 전역 가시성: 패키지의 모든 함수는 다른 패키지에서 볼 수 있습니다
  • 객체 시스템 없음: 특정 프로그래밍 패러다임을 더 어렵게 만들 수 있습니다

4. 기능 확장: Emacs 설계의 강점

Emacs의 기능 확장은 그 아키텍처의 직접적인 결과입니다.

기능 성장 주기. Emacs의 아키텍처는 기능의 유기적 성장을 장려합니다:

  1. 낮은 진입 장벽으로 새로운 아이디어의 쉬운 구현
  2. 개인 사용자 정의가 .emacs 파일에 추가됨
  3. 인기 있는 사용자 정의가 공유 가능한 패키지로 성장
  4. 최고의 패키지가 표준 Emacs 배포에 통합

복잡성 관리. 지속적인 기능 추가에도 불구하고 Emacs는 관리 불가능해지지 않습니다:

  • 사용자 인터페이스 복잡성은 사용자가 기능을 점진적으로 발견할 수 있도록 허용하여 완화됩니다
  • 유지 관리 가능성은 Emacs를 단일 전체가 아닌 패키지 모음으로 취급하여 보존됩니다
  • Lisp 언어는 추상화 경계를 제공하여 핵심 C 코드가 호환성을 깨지 않고 진화할 수 있게 합니다

커뮤니티 주도 개발. Emacs 기능의 성장은 주로 사용자들의 관심과 필요를 반영하는 풀뿌리 과정입니다. 이는 새로운 기능이 진정으로 유용하고 표준 배포에 포함되기 전에 잘 테스트되었음을 보장합니다.

5. Emacs와 다른 아키텍처 비교: Eclipse와 Firefox

Eclipse의 아키텍처는 플러그인이 거의 모든 중요한 기능을 제공하는 만큼 개방적입니다.

Eclipse: 강력하지만 복잡함. Eclipse는 광범위한 기능을 제공하는 플러그인 아키텍처를 제공하지만 단점도 있습니다:

  • 플러그인 개발이 안전하지 않으며, 버그가 시스템 전체를 크래시시킬 수 있습니다
  • 플러그인 작성 시 복잡한 인터페이스를 다루어야 합니다
  • 간단한 확장을 위해서도 상당한 보일러플레이트 코드가 필요합니다

Firefox: 중간 지점. Firefox의 아키텍처는 Emacs와 몇 가지 유사점을 공유합니다:

  • Emacs Lisp와 같은 해석되고 동적인 언어인 JavaScript를 사용
  • 자동 디스플레이 관리를 제공
  • 확장의 점진적 개발을 허용

Emacs의 장점. Emacs의 아키텍처는 독특한 힘과 단순함의 조합을 제공합니다:

  • 확장을 위한 안전한 실행 환경
  • 간단한 사용자 정의를 위한 낮은 진입 장벽
  • 복잡하고 완전한 기능의 확장으로 확장 가능
  • 내장 기능과 사용자 생성 기능 모두에 일관된 인터페이스 제공

6. 사용자 인터페이스의 조합 가능성의 힘

한 명령의 결과를 다른 명령의 입력으로 사용하는 것이 얼마나 쉬운가요? 인터페이스의 명령들이 서로 조합되나요? 아니면 결과가 표시된 후 막다른 길에 도달했나요?

Emacs의 조합 가능한 인터페이스. Emacs는 사용자가 명령 출력을 결합하고 재사용할 수 있도록 뛰어납니다:

  • 모든 콘텐츠가 편집 가능한 버퍼로 제공됩니다
  • 표준 텍스트 조작 명령이 모든 유형의 콘텐츠에 적용됩니다
  • 한 명령의 결과를 쉽게 다른 명령의 입력으로 사용할 수 있습니다

조합 가능성의 이점. 이 접근 방식은 여러 가지 이점을 제공합니다:

  • 사용자가 데이터와 상호 작용하는 방식의 유연성 증가
  • 간단한 구성 요소로 복잡한 워크플로우 생성 가능
  • 시스템을 사용하는 새로운 방법을 실험하고 발견하도록 장려

다른 시스템과의 비교. Microsoft Visual Studio와 같은 많은 현대 애플리케이션은 사용자가 명령 출력과 상호 작용하는 방식을 제한하여 유연성과 창의적 문제 해결의 잠재력을 감소시킵니다.

7. 확장 언어 및 플러그인 기능 평가

확장 언어가 애플리케이션의 대부분의 새로운 기능을 구현하는 선호되는 방법인가요?

확장성 평가를 위한 주요 질문:

  1. 플러그인이 사용할 수 있는 인터페이스는 무엇인가요?
  2. 빠른 개발을 허용할 만큼 간단한가요?
  3. 개발자가 문제 도메인에 가까운 높은 수준의 추상화에서 작업할 수 있나요?
  4. 애플리케이션의 데이터가 버그가 있는 플러그인 코드로부터 어떻게 보호되나요?

Emacs의 접근 방식. Emacs는 이 영역에서 뛰어납니다:

  • Emacs Lisp는 대부분의 새로운 기능을 구현하는 데 사용됩니다
  • 확장 언어는 Emacs의 내부 기능에 완전한 접근 권한을 가집니다
  • Lisp의 높은 수준의 추상화는 빠른 개발을 허용합니다
  • Lisp 인터프리터는 안전한 실행 환경을 제공합니다

일급 확장의 중요성. 애플리케이션의 확장 언어가 강력하고 잘 통합되면 사용자 생성 기능의 활기찬 생태계를 장려합니다. 이는 애플리케이션의 원래 제작자가 상상한 것 이상으로 예상치 못한 혁신적인 사용을 이끌 수 있습니다.

Last updated:

리뷰

3.41 out of 5
Average of 100+ ratings from Goodreads and Amazon.

아름다운 아키텍처는 평균 평점 3.41/5로 다양한 평가를 받고 있다. 일부 독자들은 소프트웨어 아키텍처 원칙과 다양한 프로젝트의 실제 예제를 포괄적으로 다룬 점을 높이 평가한다. 업계 전문가들의 통찰력과 다양한 주제를 다룬 점도 긍정적으로 본다. 그러나 다른 독자들은 챕터마다 일관성이 부족하고, 다이어그램이 부족하며, 때로는 정보가 오래되었다고 비판한다. 어떤 이들은 내용이 너무 장황하고 깊이가 부족하다고 느끼는 반면, 다른 이들은 아키텍처 결정과 트레이드오프에 대한 다양한 관점을 가치 있게 여긴다. 독립적인 에세이로 구성된 책의 구조는 장점이자 단점으로 여겨진다.

저자 소개

그리스 출신의 컴퓨터 과학자이자 저자인 디오미디스 스피넬리스는 소프트웨어 공학과 시스템 아키텍처 분야에서 잘 알려져 있다. 디오미디스 스피넬리스는 코드 품질, 소프트웨어 설계, 오픈 소스 개발과 관련된 주제에 대해 광범위하게 저술해왔다. 그는 아테네 경제경영대학교의 소프트웨어 공학 교수로 재직 중이며, 다수의 오픈 소스 프로젝트에 기여해왔다. 스피넬리스는 그의 연구와 저술로 보도사키 재단 학술상을 포함한 여러 인정을 받았다. 그의 다른 저서로는 "코드 리딩"과 "코드 품질"이 있다. 스피넬리스는 실용적인 소프트웨어 개발 접근법과 복잡한 개념을 쉽게 설명하는 능력으로 유명하다.

0:00
-0:00
1x
Create a free account to unlock:
Bookmarks – save your favorite books
History – revisit books later
Ratings – rate books & see your ratings
Listening – audio summariesListen to the first takeaway of every book for free, upgrade to Pro for unlimited listening.
Unlock unlimited listening
Your first week's on us!
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 5: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Sep 28,
cancel anytime before.
Compare Features Free Pro
Read full text summaries
Summaries are free to read for everyone
Listen to full summaries
Free users can listen to the first takeaway only
Unlimited Bookmarks
Free users are limited to 10
Unlimited History
Free users are limited to 10
What our users say
15,000+ readers
“...I can 10x the number of books I can read...”
“...exceptionally accurate, engaging, and beautifully presented...”
“...better than any amazon review when I'm making a book-buying decision...”
Save 62%
Yearly
$119.88 $44.99/yr
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.