본문 바로가기

IT 공부/객체지향 설계 공부16

코드 컴플리트 5장 - 구현 설계 요약 ※5장은 설계와 관련된 실천법을 다룬다. 설계 방식과 그 정도가 모든 프로젝트에서 동일하게 취급되지 않는다는 점에 유의하라. 어떤 작은 프로젝트에서는 설계란 곧 코드를 입력하는 것이다. 어떤 프로젝트는 바로 코드로 작성할 수 있을 만큼 상세하게 설계하기도 한다. 많은 프로젝트에서 UML을 그리거나, 혹은 그리지 않고 의사코드로 만족하기도 한다. 설계 작업은 프로젝트마다 그 정도와 방식이 다르다. 그럼에도 설계와 관련된 실천을 익힌다면 어떤 방식과 강도로 설계 작업에 착수하든 도움이 될 것이다. 1. 설계의 어려움 1-1. 설계는 불명확한 문제다. 완벽한 설계란 없다! 설계자가 요구 사항으로부터 완벽하게 설계를 완성한 뒤 구현으로 넘어가는 것은 불가능한 기대다. 지금껏 그 어떤 소프트웨어도 완벽한 설계를 .. 2023. 11. 23.
코드 컴플리트 6장 - 클래스 다루기 요약 6장은 클래스를 다루기 위한 핵심 조언을 다룬다. 1. 클래스의 토대 : 추상 데이터형 1-1. ADT 사용의 좋은점 추상 데이터형(Abstract Data Type, wiki)이란 자료와 그 자료를 다루기 위한 연산을 정의한 것으로, 자료구조와는 달리 구체적인 구현을 숨긴 추상화된 데이터 타입을 뜻한다. 즉, ADT는 저수준의 구현이 아니라 문제 영역과 관련된 자료에 대한 개념과 그에 따른 조작만을 구축한다. 예를 들어, 워드 프로그램에서 텍스트의 폰트를 바꾸는 기능을 개발해보자. ADT를 사용할 경우, [CurrentFont]라는 추상 자료형을 설계할 수 있다. 그리고 이 추상 데이터(폰트)를 조작하는 일련의 연산을 아래와 같이 정의한다. CurrentFont.setSizeInPoints() Curr.. 2023. 11. 21.
클린 아키텍처 - 로버트 c 마틴 요약 part 2 로버트 c 마틴의 클린 아키텍처를 읽고 공부한 내용을 바탕으로 작성한 요약 글입니다. 챕터의 구성은 책을 따르지만, 그 내용은 인용된 부분도 있으나 대부분은 제가 이해한 방식대로 제 언어로 풀어 기록했으니, 정보를 얻으실 때 주의하기 바랍니다. 4부. 컴포넌트 원칙 12장. 컴포넌트 (발전 과정) 프로그래밍의 초기 시절, 라이브러리 함수를 사용하기 위해서는 코드에 라이브러리 소스 코드(!)를 직접 포함시켜 컴파일하는 식으로 사용했다. 즉, 애플리케이션의 소스코드는 사실상 모든 함수의 구현 코드가 있는 소스코드 덩어리였다고 해도 과언이 아니다. 실제로 초기의 라이브러리 함수들은 소스 코드로 유지되고 배포되었다. 그러나 라이브러리 함수의 규모가 커지면 커질수록 컴파일하기 위한 자원이 크게 소모되었다. 소스코.. 2023. 10. 19.
클린 아키텍처 - 로버트 C 마틴 요약 (ch1 ~ ch3) 챕터별로 정리했으나, 제가 이해한 방식대로 저의 언어를 사용해 표현했기 때문에 혹시라도 정보를 얻으실 때는 주의하시기 바랍니다. - 2023/10/17 0. 추천사 건출물과는 달리, 소프트웨어의 구조가 과연 우리의 직관과 일치하는지는 분명하지 않다. 소프트웨어는 무엇으로 구성되는가? 소프트웨어는 소프트웨어로 구성된다. 데이터를 받고, 처리해서, 결과를 뱉어낸다. 이런 코딩 거북이들이 연쇄적으로 서로를 떠받치는 형태다. 그러니 건축물에서 볼 수 있는 물리적 구조의 다양성 앞에서 소프트웨어는 무색해진다. 소프트웨어 아키텍처에서의 소프트웨어는 본질적으로 재귀적이고 프랙털 구조로 되어 있다. 0. 서문 현재의 소프트웨어는 과거와 동일한 것들로 구성된다. 컴퓨터 프로그래밍을 하는 관행을 정말 유심히 관찰해보면 지.. 2023. 10. 17.