나를 기록하다
article thumbnail
[객체지향의 사실과 오해] 4장. 역할, 책임, 협력
Review/Book 2023. 10. 6. 00:30

훌륭한 객체지향 설계란 겉모습은 아름답지만 협력자들을 무시하는 오만한 객체를 창조하는 것이 아니라 조화를 이루며 적극적으로 상호작용하는 협력적인 객체를 창조하는 것이다. 비록 그 객체를 따로 뗴어놓고 봤을 때는 겉모습이 다소 기묘하고 비합리적이더라도 말이다. 객체의 모양을 빚는 것은 객체가 참여하는 협력이다. 협력 누가 파이를 훔쳤지? 앨리스가 재판장에 도착했을 때 하트 왕과 하트 여왕은 옥좌에 앉아 있었다. 그리고 주위에는 온갖 종류의 새와 짐승과 한 벌의 카드가 모여 있었으며 그들 앞에 파이를 훔쳤다는 혐의를 받고 있는 하트 잭이 사슬에 묶인 채 병사들의 감시를 받으며 서 있었다. 하트 잭의 옆에는 하얀 토끼가 한 손에는 트럼펫을, 다른 한 손에는 양피지 두루마리를 들고 서 있었다. 법정의 한 가운..

article thumbnail
[객체지향의 사실과 오해] 3장. 타입과 추상화
Review/Book 2023. 10. 5. 00:30

추상화를 통한 복잡성 극복 진정한 의미에서 추상화란 현실에서 출발하되 불필요한 부분을 도려내가면서 사물의 놀라운 본질을 드러나게 하는 과정이라고 할 수 있다. Root-Bernstein 추상화는 복잡한 현실을 단순화하기 위해 사용하는 인간의 가장 기본적인 인지 수단 추상화란? 어떤 양상, 세부 사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법 복잡도를 다루기 위한 추상화의 두 가지 차원 첫 번째 차원: 구체적인 사물들 간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순하게 만드는 것 두 번째 차원: 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것 모든 경우에 추상화의 목적은 복잡성을 이해하기 쉬운..

article thumbnail
[객체지향의 사실과 오해] 2장. 이상한 나라의 객체
Review/Book 2023. 10. 2. 22:00

객체지향의 예시 - 이상한 나라의 앨리스 컴컴한 굴 속의 천장이 낮은 긴 통로 위에 떨어진 앨리스. 커튼 뒤에 숨겨져 있던 작은 문을 발견했는데, 그 곳엔 아름다운 정원이 있다. 하지만 문의 높이가 40cm가 채 되지 않았기 때문에 앨리스는 문을 지나 아름다운 정원에 들어갈 수 없다. 주위를 둘러보며 방법을 찾았다. '마셔라' 병의 액체를 마시고 앨리스의 키가 24cm 정도로 작아졌다. 케이크를 베어 물자 머리가 천장에 닿을 만큼 앨리스의 키가 커졌다. 토끼가 떨어뜨린 부채를 이용해 부채질을 하자 몸이 서서히 작아지더니 60cm 정도로 줄어들었다. 쐐기벌레가 남긴 버섯의 한쪽을 먹으면 몸이 커지고 다른 한쪽을 먹으면 몸이 작아진다. 앨리스는 버섯의 양쪽을 번갈아 먹으며 몸의 크기를 조절하여 원래 상태로 ..

article thumbnail
[KSUG Seminar] Growing Application - 애플리케이션과 객체지향
Review/Seminar 2023. 9. 30. 21:00

[Part - 1] 아키텍처(Architecture) 프로젝트에 참여하는 개발자들이 설계에 대해 공유하는 이해를 반영하는 주관적인 개념 아키텍처는 주관적 → 같은 아키텍처라고 한다고 해도 서로 다른 팀에서 말하는 것이 세부적으로 다를 수 있음 아키텍처를 변경하는 것은 매우 많은 비용이 든다. → 변경하기 어렵다. 이유: 모든 개발자들이 현재 아키텍처를 공유하고 있기 때문 아키텍처는 가급적 일찍 올바르게 결정해야 한다. 아키텍처는 관심사의 분리이다. 관심사의 분리는 서로 다르고 관련이 없는 책임들을 분리하는 것 레이어 아키텍처(Layered Architecture) 서로 다른 관심사를 분리한 아키텍처 유사한 것들을 한 레이어에 모아놓음으로써 그 레이어만 교체를 하면 전체 시스템을 다른 환경에서도 사용 가능..

article thumbnail
[우아한테크세미나]TDD와 리팩토링
Review/Seminar 2023. 9. 28. 16:05

1. 의식적인 연습이란? 의식적인 연습의 7가지 원칙 효과적인 훈련 기법이 수립되어 있는 기술 연마 개인의 컴포트 존을 벗어난 지점에서 진행, 자신의 현재 능력을 살짝 넘어가는 작업을 지속적으로 시도 명확하고 구체적인 목표를 가지고 진행 신중하고 계획적. 개인이 온전히 집중하고 의식적으로 행동할 것을 요구 피드백과 피드백에 따른 행동 변경을 수반 효과적인 심적 표상을 만들어내느 한편으로 심적 표상에 의존 기존에 습득한 기술의 특정 부분을 집중적으로 개선함으로써 발전시키고, 수정하는 과정을 수반 의식적인 연습 예시 - 우테코 프리코스 3주 동안 진행. 매주 해결해야할 미션 부여 미션 완료 후 Github의 Pull Request를 제출 공통 피드백 진행 [피드백 예시] space(공백)도 conventio..

article thumbnail
[객체지향의 사실과 오해] 1장. 협력하는 객체들의 공동체
Review/Book 2023. 9. 26. 16:09

객체지향의 시작 객체지향이란, 실세계를 직접적이고 직관적으로 모델링할 수 있는 패러다임 저자가 말하는 객체지향 객체지향의 목표는 실세계를 모방하는 것이 아닌 새로운 세계를 창조하는 것. 개발자의 역할은 단순히 실세계를 소프트웨어 안으로 옮겨 담는 것이 아니라 고객과 사용자를 만족시킬 수 있는 신세계를 창조하는 것. 객체 → 스스로 생각하고 스스로 결정하는 현실 세계의 생명체(캡슐화 + 자율성) 현실 세계의 사람들이 암묵적인 약속과 명시적인 계약을 기반으로 협력하며 목표를 달성해 나가는 과정 → 메세지를 주고받으며 공동의 목표를 달성하기 위해 협력하는 객체들의 관계를 설명하는 데 적합 실세계의 사물을 기반으로 소프트웨어 객체를 식별하고 구현까지 이어간다는 개념 → 연결완전성 역할과 책임, 그리고 협력 요청..

profile on loading

Loading...