[Why] 왜 오브젝트를 읽는가?

whythis·2022년 7월 25일
0

Why

목록 보기
2/2
post-thumbnail

왜 오브젝트를 읽게 되었는가?😏

친구의 추천으로 조영호 님의 오브젝트라는 책에 대해서 접했다. 이 책을 읽기 전에 나는 OOP와 class는 동일시 되는 개념인줄 알았고 그 안에서 있는 SOLID원칙에 대해서도 굉장히 생소했다.

SOLID의 S는 Singleton 패턴의 S입니다.

내가 실제로 아는 형에게 했던 말이였다🤣. 뭔지 잘 알지도 못하고 S가 들어갔으니 대충 그렇겠거니 하고 때려맞췄고 짧은 지식이지만 아는체하고 싶었나보다. 이내 SOLID의 S 는 Single responsibility principle이라는 사실이 드러났고 나는 굉장히 창피했었다. OOP에 대해서 정말 하나도 모른다는 생각이 이때 처음으로 들었다.

이때까지만 해도 OOP가 굳이 왜 필요해? 라는 의문이 들었다. 이는 원래 express와 react를 사용하며 웹 개발을 할때 딱히 OOP에 관한 개념이 나오지 않아서 더욱 그랬던것 같다. 원래 같았으면 NestJs를 공부하면서도 그냥 NestJs에서 제공해주는데로 service, controller와 같이 나눠서 구조화하고 DI같은 것도 뭐 그냥 그렇구나.. 하면서 쓸 법 했지만 이보다는 왜 NestJs의 구조가 이러한 형식을 띄게 되었는가를 알아야 더욱 본질에 가깝게 공부를 할 수 있을거 같았다. 게다가 DI라는 개념이 정말 정말 많이 등장하는데 도무지DI(dependency injection)를 왜 쓰는지가 이해가 가지 않았기 떄문에 OOP에 대해서 공부해야겠다고 생각했다.

이후 친구에게 OOP관련 책으로 오브젝트를 추천받았고 바로 사서 읽게되었다.

목적은?😏

https://notjustmoney.github.io/2022/02/21/what-is-essence-of-oop/#more
객체지향에 대해 적어놓은 친구의 블로그이다.

객체지향 프로그래밍은 메세징이다.

블로그를 요약하면(?) 아마 위의 말로 압축이 될것 같다. 오브젝트에서도 메세징에 대해서 수없이 많이 강조하는 걸로 보아 이 책을 읽고 영감을 받아 작성한 글이 아닐까 싶다.

뭐 여튼, 메세징이라는 말이 굉장히 많이 강조되는데 이 단어가 굉장히 생소했다.

class를 사용한다.
private로 프로퍼티를 감추고 get, set 메서드를 활용한다
캡슐화, 상속, 다형성, 추상화 와 같은 원칙이 필요하다.
모르긴 몰라도 SOLID 라는 원칙이 적용된다.
굉장히 많은곳에 OOP가 적용되어 있다.

내가 아는 OOP는 이정도에 그쳤다😂 하지만 메세징이라니? 도무지 와닿지가 않았다.
그 이외에도 응집도, 결합도, 협력, 결합도를 낮추기 위한 DI 와 같은 어려운 단어들이 나를 힘들게 했었고 네다섯번을 읽어봐도 그렇게 크게 와닿지 않았다.

나의 이러한 무지함이 오브젝트를 읽으면서 깨지기를 바라며 OOP에 대한 올바른 시각을 가질 수 있으면 좋겠다. 이를 통해 NestJs를 비롯한 수많은 라이브러리, 프레임워크들의 본질을 꿰뚫을 수 있기를 기대한다.

profile
why this?

0개의 댓글