Inflearn brand logo image

인프런 커뮤니티 질문&답변

오개발님의 프로필 이미지
오개발

작성한 질문수

Readable Code: 읽기 좋은 코드를 작성하는 사고법

매직 넘버, 매직 스트링

안녕하세요 질문드립니다,

작성

·

166

·

수정됨

0

안녕하세요 강사님, 뒷내용을 다 보진 못했지만 여기까지 보고 궁금한게 있어서 질문드려봅니다,

 

비즈니스로직의 대한 구체화와 추상화에 대한, 숫자를 전부 10으로 맞추는게 좋다고 하셨는데, 여기서 궁금한게 결국 private으로 메소드 이름으로 추상적 내용을 담아 코드의 읽힘 가속성이 좋은 코드가 되는것까지 이해 하였습니다,

 

여기서 궁금한건,

  1. 하나의 클래스에 private 메소드 즉, 추상 메소드가 많아지면 관리차원에서 힘들까요? 여기서 강의에서도 말씀하셨지만 궁금하면 메소드를 들어가 보긴 할텐데, 해당 상황이 많을것 같아서 궁금합니다, 아니면, 상황에 따라 클래스를 분리하고 관리 할지, 궁금합니다.

  2. 결국 핵심 비즈니스 로직은, 추상적으로 메서드 추상화된 네이밍을 읽어 읽기 좋은 코드가 된다고 생각합니다만 맞을까요?

 

답변 2

1

박우빈님의 프로필 이미지
박우빈
지식공유자

안녕하세요, 최강개발자 님!

 

1. 하나의 클래스에 private 메소드 즉, 추상 메소드가 많아지면 관리차원에서 힘들까요? 여기서 강의에서도 말씀하셨지만 궁금하면 메소드를 들어가 보긴 할텐데, 해당 상황이 많을것 같아서 궁금합니다, 아니면, 상황에 따라 클래스를 분리하고 관리 할지, 궁금합니다.

뒤쪽에서 이야기하겠지만, private 메서드가 너무 많아지면 객체를 분리할 시점이 아닌지 의심해보는 것이 좋습니다. (물론 고민의 결론이 분리를 하지 않는 것으로 나올 수도 있고요.)
하나의 객체가 너무 많은 책임을 가지고 있기 때문에, private 메서드가 많이 생겨나지 않았을까? 라고 의심해보는 과정이 필요합니다.

 

2. 결국 핵심 비즈니스 로직은, 추상적으로 메서드 추상화된 네이밍을 읽어 읽기 좋은 코드가 된다고 생각합니다만 맞을까요?

네, 이해하신 내용이 맞습니다.

감사합니다. 🙂

0

안녕하세요, 인프런 AI 인턴입니다.

최강개발자님께서 질문하신 비즈니스 로직의 구체화와 추상화, 그리고 클래스 내 private 메소드 관리에 대한 고민은 많은 개발자들이 공통적으로 겪는 문제입니다. 이에 대해 기존 유사한 질문과 답변을 바탕으로 도움을 드리겠습니다.

  1. 클래스 내 많은 private 메소드 관리의 어려움 및 해결 방법:

    • 클래스 내에 많은 private 메소드가 존재하게 되면 코드가 복잡해질 수 있으며, 이는 관리의 어려움으로 이어질 수 있습니다. 일반적인 해결 방법으로는 클래스의 책임을 명확히 하고 기능을 기준으로 클래스를 적절히 분리하는 것이 있습니다. 기능별로 클래스를 분리하여 각 클래스가 자신만의 책임을 갖도록 한다면, private 메소드의 수가 줄어들고 가독성이 높아질 수 있습니다.
    • 이미 유사한 질문에 대한 답변으로, 안녕하세요. 객체의 책임 분리와 관련해서 질문이 있습니다. 이 링크에서 객체의 책임 분리와 클래스 설계 측면을 다루고 있습니다. 객체지향적 관점에서의 설계와 클래스 분리 방법에 대한 풍부한 설명이 있습니다.
  2. 비즈니스 로직의 추상화와 읽기 좋은 코드:

    • 핵심 비즈니스 로직을 추상화된 메서드 네이밍을 통해 표현하는 것은 읽기 좋은 코드를 만드는 핵심 요소 중 하나입니다. 메서드 이름 만으로 그 함수의 목적과 기능이 명확히 드러난다면, 읽기 좋은 코드 작성에 도움이 됩니다. 클린 코드 원칙 중 하나는 변수와 메서드의 이름을 보고 그 용도를 쉽게 알 수 있도록 하는 것입니다.
    • 이에 대해 추가적인 학습과 연습이 필요하시다면, 강의에 포함된 메서드 네이밍 관련해서 질문 있습니다! 질문을 통해 더 많은 팁을 얻을 수 있습니다.

클래스를 적절히 분리하고 책임을 명확히 함으로써 관리의 복잡성을 줄이고, 메서드 네이밍을 통해 의도를 명확히 하는 것은 코드의 가독성 향상에 큰 도움이 됩니다. 이러한 원칙들을 잘 이해하고 적용하신다면, 유지보수하기 좋고 읽기 쉬운 코드를 작성하는 데 큰 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

오개발님의 프로필 이미지
오개발

작성한 질문수

질문하기