ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Dev Book] 협업과 애자일 패턴에 관한 이야기 - 클린 소프트웨어
    쾌락없는 책임 (공부)/개발 관련 책 이야기 2022. 12. 2. 17:12
    반응형

    개요

    이 책은 친구의 추천을 받아 보게 된 책입니다. 다른 분야에서 개발을 하고 있는 친구지만 개발은 개발. 협업과 더 깔끔한 코드에 대한 고민이 있었지만 이 고민의 해결책을 모르고 있을 때 추천을 받은 책입니다.

    평소 책들은 대부분 Java를 기반으로 하게 됩니다. 아무래도 게임보다는 다른 개발 분야가 파이가 더 크기도 하고 정보 공유가 더 활발하기에 대부분의 책들은 Java 기반으로 설명을 주는 느낌입니다. 

    하지만 이 책은 C++의 코드도 포함을 하고 있고 Java 코드들이 있지만 Java에만 한정된 이야기도 아닐뿐더러 코드도 충분히 읽을만한 간단한 코드들이 나오기에 책을 읽으며 많은 깨달음을 얻었습니다.

     

    이 책을 추천받은 뒤 스스로 성장을 했다고 생각을 합니다. 그만큼 협업, 클린코드에 대한 지식이 없다면 앞으로의 개발에 있어서 도움이 될 책이라는 것이죠. 때문에 다른 고민이 있는 분들을 위해, 이제 개발을 시작하면서 협업, 좋은 코드, 디자인 패턴에 대한 고민이 있으신 분들에게 추천하기 위해서 이 글을 작성해 봅니다.

     

     

    이 책에는 어떤 이야기가 들어 있는가

    - 애자일 설계 원칙
    - 디자인 패턴
    - 사례를 통해 위 지식들의 실제 상황을 보기

     

    이 책은 애자일과 관련한 이야기부터 디자인 패턴, 사례를 통한 실습 엿보기(?) 이야기들이 있습니다. 항상 '애자일 개발' 이라고 하면 두리뭉실하게 '아무튼 빠르게 변화에 적응'이라는 말만 해서 실제 코드 단계에서 어떤 일을 해야 하나에 대한 의문이 있었습니다. 

     

    이 책에서는 '나쁜 코드는 무엇인가'에 대한 이야기로 시작해 SRP, OCP, LSP, DIP, ISP의 애자일 설계 원칙을 시작으로 설명을 해 줍니다. 그런 다음 다양한 디자인 패턴을 통해서 더 생산성이 있는, 유지보수가 잘 되는 코드를 작성하는 법을 알려주는 것이죠. 맨날 나오는 '애자일 패턴의 장점'만 이야기하는 게 아닌 코드를 어떻게 설계해야 하는지에 대한 이야기들이 들어 있어 좋습니다.

     

    특히 이 책을 보고 나서 평소 고민이 있던 '게임 내 적용할 수 있는 디자인 패턴'에 대해 눈이 트인 느낌입니다. 인터페이스를 적극 활용해서 프로젝트의 코드가 점점 좋아졌거든요.

     

     

    이런 분들에게 추천합니다

    • 협업을 처음 시작하거나 협업을 어떤 방식으로 해야 잘 할지 모르시는 분
    • 이제 프로그래밍 언어에 대한 지식을 갖추고 개발을 시작하는 분
    • 디자인 패턴에 대해서 배우고 싶을 때 (디자인 패턴에 대한 설명도 좋습니다)
    • 관련 책을 읽지 않았을 때 (입문용으로 좋습니다)
    • 인터페이스(interface, abstract 등)가 왜 있는지 모를 때 (저의 이야기입니다)

    책의 난이도가 높지 않은 편이라 관련 책을 읽지 않아도, 개발을 시작한 지 얼마 안돼도 충분히 흡수하면서 읽을만합니다.

     

     

    저는 이렇게 공부했습니다

    뭐 어떨지는 모르겠지만 이런 이야기도 한번 해보겠습니다. 

     

    일단 매일 1 챕터를 노션에 정리를 시작합니다. 한 챕터가 30개가 되니 여유롭게 해서 한 달 반 정도이고 몇 가지 짧은 부분들이 있으니 그러면 하루에 여러 개 정리한다 하면 한 달에 여유롭게 정리할 수 있을 겁니다. 저는 1달 하고 20일 걸렸으니... 주말 제외하고 여유롭게 하면 저 기간이 나오겠네요.

    그런 다음에는 기존 프로젝트에서 Issue를 활용해 기존 스크립트들을 리팩토링 하는 시간을 거쳤습니다. 역시 뭐라고 해도 코드에 직접 치는 게 확실히 익숙해지거든요. 혹시나 참고하실 분들은... 부끄럽지만 이때의 제 글을 봐주시면 도움이 될까요..?

     

    [Refactor] 오브젝트 풀링 관련 스크립트들 리팩토링 제안서 + abstract 클래스에 대한 코딩 컨벤션 ·

    개요 생각외로 오브젝트 풀링을 사용하는 친구들이 많은데 이들에 대한 일관성을 명시하고 이후 작업에 있어서 '오브젝트 풀링을 하는 객체' 와 '오브젝트 풀에서 관리되는 객체'를 분리해 작업

    github.com

     

    반응형

    댓글

Designed by Tistory.