[오브젝트 OBJECTS] Chapter 4. 설계 품질과 트레이드오프

Chapter 4. 설계 품질과 트레이드오프 객체지향 설계의 핵심은 역할,책임,협력이다. 협력은 애플리케이션의 기능을 구현하기 위해 메시지를 주고받는 객체들 사이의 상호작용 이다. 책임은 객체가 다른 객체와 협력 하기 위해 수행하는 행동이고 역할은 대체 가능한 책임의 집합이다. 책임 주도 설계라는 이름에 나오는 것처럼 저 셋중 가장 중요한 것은 책임이다. 책임이 객체지향 애플리케이션 전체의 품질을 결정한다. 객체지향 설계란 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 창조하는 활동이다. 객체지향 설계에 관한 두 가지 관점이 섞여 있다....

October 26, 2021

[오브젝트 OBJECTS] Chapter 3. 역할, 책임, 협력

Chapter 3. 역할, 책임, 협력 객체지향 패러다임의 관점에서 핵심은 역할, 책임, 협력이다. 애플리케이션의 기능을 구현하기 위해 수행하는 상호작용을 협력, 객체 자체가 협력에 참여하기 위해 수행하는 로직을 책임이라 한다. 객체들이 협력 안에서 수행하는 책임들이 모여 객체가 수행하는 역할을 구성한다 객체지향의 본질은 협력하는 객체들의 공동체를 창조하는 것이다. 클래스와 상속은 객체들의 책임과 협력이 어느 정도 자리를 잡은 후에 사용할 수 있는 구현 메커니즘일 뿐이다. 역할, 책임 협력이 제자리를 찾지 못한 상태라면 응집도 높은 클래스와 중복 없는 상속 계층을 구현한다고 하더라도 애플리케이션이 침몰하는 것을 구원하지는 못한다....

October 13, 2021

[오브젝트 OBJECTS] Chapter 2. 객체지향 프로그래밍

Chapter 2. 객체지향 프로그래밍 제목처럼 챕터 2에서는 객체지향 프로그래밍에 대해 이야기한다 협력, 객체, 클래스 객체지향이란 말 그대로 객체를 지향하는 것이다. 그리고 객체지향에 익숙한 사람이라면 클래스에 대해 고민할 것이고 어떤 속성과 메서드가 들어갈 것인가를 고민할 것이다. 하지만 이건 객체지향의 본질과는 거리가 멀다. 위에 말한 것처럼 객체지향은 객체를 지향하는 것이다. 진정한 객체지향 패러다임으로의 전환은 클래스가 아닌 개체에 초점을 맞춰야 얻을 수 있다. 그러기 위해서는 우리는 두 가지에 집중해야 한다. 어떤 클래스가 필요한지 고민하기 전에 어떤 객체들이 필요한지 고민하기...

October 12, 2021

[오브젝트 OBJECTS] Chapter 1. 객체, 설계

Chapter 1. 객체, 설계 챕터의 초반에 소프트웨어 모듈에 대해 이야기한다. 실행 중에 제대로 동작하는 것 변경을 위해 존재하는 것 코드를 읽는 사람과 의사소통하는 것 그리고 위에 있는 주제를 가지고 예제를 들어 이야기한다. 변경에 취약한 코드 객체 사이의 의존성에 관련된 문제, 물론 의존성을 완전히 없애는 것이 아니라 의존성을 낮추며 협력하는 객체들의 공동체를 만드는 것이 좋다. 이렇게 객체들 간의 의존성이 과한 경우 결합도가 높다고 한다. 이 결합도가 높을 경우 코드 변경에 있어 어려움을 겪을 수가 있다....

October 7, 2021

카카오 TV 챗봇 만들기

카카오TV 챗봇 만들기 일 년도 더 넘게 글을 쓰지 않았다. 이제 가끔씩 다시 적어보려고 하는데 시작이 카카오티비 챗봇이다. 이미 작년에 만들었는데 카카오TV가 죽어서 사용하질 않고 있다. 시청자가 500명 정도되는 방에서 테스트까지 끝낸 챗봇인데 테스트가 끝날 때 즈음 사람들이 대부분 트위치로 이동해 사용하질 않았다. 궁금해하는 사람이 있을 수도 있으니 어떻게 만들었는지 개발기를 적어보도록 해야겠다. 우선 카카오TV는 트위치 처럼 API를 제공하지 않는다. 하지만 Web은 제공한다 ([?]팟플레이어라는 플레이어를 사용해 보는사람들이 많다. 웹은 트위치처럼 좋지 않고 기능이적어 사람들이 잘안쓴다....

January 4, 2021