오브젝트 1장 - 객체, 설계

회사에서 '오브젝트' 책으로 스터디를 시작했습니다.

1장을 읽고 나서 요약과 소감을 간단히 정리했습니다.


이론이 먼저인가? 실무가 먼저인가?

> 실무가 먼저이다. 소프트웨어의 역사가 아직 짧아서 이론이 정립되지 않았기 때문


의인화

> 무생물을 생물처럼 동작하게 하는데에 위화감은 없는가?


설계란 무었일까?

> 설계는 코드를 배치하는 것이다.


좋은 코드란 무엇일까?

> 올바르게 동작해야하고, 변경이 쉬우며, 사람이 읽기 쉬워야 한다.

> - 로버트 마틴 -


> Make it work, then make it beautiful, then if you really, really have to, make it fast.

> - 조 암스트롱 (얼랭의 창시자) -


내가 작성하고 있는 코드는 좋은 코드의 조건을 만족하고 있을까?

올바른 동작, 쉬운 변경, 가독성중에 어떤 것들을 만족하고 있는가?

> 불필요한 의존성 제거, 자율적인 객체, 트레이드 오프


책에서는 예시를 계속해서 개선하고 있다. 나의 코드의 개선점은 무엇이 있을까?

개선이 필요하다면 어떤 식으로 진행할지 생각해보자.

- 무엇을 개선할 것인가

- 어떻게 개선할 것인가


응집도(cohesion)가 높은 객체는 어떤 객체인가?

> 연관된 작업만 하고, 관련이 없는 작업은 다른 객체에게 위임하는 객체


응집도를 높이려면 어떻게 해야할까?

> 객체 스스로 자신의 데이터를 책임져야한다.


절차지향과 객체지향의 근본적인 차이는 무엇일까?

> 책임이 어디에 집중되어 있는가

> 절차지향 - 책임의 소재가 한곳에 몰려있음

> 객체지향 - 각각의 객체들이 책임을 가지고 자신의 일을 한다


설계를 어렵게 만드는 것은 무엇일까?

> 의존성이 많아지면 결합도가 높아지고, 변경이 어려워진다.

> 의존성을 낮추면 응집도가 높아져 객체의 자율성이 올라간다.


설계가 왜 필요한가?

> 요구하는 기능을 온전히 수행하면서, 내일의 변경을 매끄럽게 할 수 있도록 하기 위해


객체지향 설계

> 객체지향은 요구사항 변경에 좀 더 수월하게 대응할 수 있는 가능성을 높여준다


저자의 말에 공감하는가? 객체지향이랍시고 클래스를 엄청 만들어서 더 파악하기 힘들게 만들고 있지는 않은지 돌아보자.


변경이 쉽다 라는 것은 무엇일까?

> 절차지향에 비해 쉽다는 말, 실무에서는 어려운 경우가 많은 것 같다.

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 10월 17일 오전 5:44

댓글 0

    함께 읽은 게시물

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음📚

    F-Lab 에서 주니어 개발자들이(사실 개발자라면 누구나) 보시면 좋을 아티클 모음을 공유해 주었네요! 검색엔진부터 비동기 처리, NoSQL 등 다양한 분야의 아티클들이 공유되어 있으니 관심있으신 분들은 보시면 좋겠습니다. F-Lab 에서 공유해주신 아티클 주제를 나열해보면 다음과 같습니다. 📌 구글이 직접 말하는 검색엔진의 원리 (tali.kr) 📌 검색 엔진은 어떻게 작동하는가 (xo.dev) 📌 네이버의 검색엔진의 특징과 알고리즘 (tistory.com) 📌 [네이버 블로그]네이버 검색의 원리 : 네이버 블... 더 보기

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음

    F-Lab : 상위 1% 개발자들의 멘토링

    주니어 개발자들이 읽으면 좋은 테크 아티클 모음

     • 

    저장 142 • 조회 3,856


    < '네이버 다녀요'라는 말에 아무도 무슨 일을 하는지는 묻지 않았다 >

    1

    ... 더 보기

    개발자의 장애 공유 문화

    ... 더 보기

    개발자의 장애 공유 문화

    K리그 프로그래머

    개발자의 장애 공유 문화

     • 

    저장 24 • 조회 4,260


    🤔 API 키와 토큰의 차이

    ... 더 보기

    API keys vs tokens - what's the difference?

    Medium

    API keys vs tokens - what's the difference?

     • 

    저장 313 • 조회 9,893


    🛠 개발자 생산성 높여주는 무료 맥 앱 7가지

    M

    ... 더 보기

    개발자 생산성 높여주는 무료 맥 앱 7가지 | 요즘IT

    요즘IT

    개발자 생산성 높여주는 무료 맥 앱 7가지 | 요즘IT

     • 

    저장 60 • 조회 3,517


    이력서에서 소프트스킬을 어떻게 보여줄 수 있을까요?

    ... 더 보기

    LinkedIn Seulki Kang 페이지: 소프트스킬이 드러나는 이력서, 데이터분석가 도메인 분야

    www.linkedin.com

    LinkedIn Seulki Kang 페이지: 소프트스킬이 드러나는 이력서, 데이터분석가 도메인 분야

     • 

    저장 48 • 조회 5,905