Inflearn brand logo image

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

sein님의 프로필 이미지
sein

작성한 질문수

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

오버 엔지니어링

오버 엔지니어링

작성

·

71

0

  • 학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!

  • 먼저 유사한 질문이 있었는지 검색해 보세요.

  • 서로 예의를 지키며 존중하는 문화를 만들어가요.

     

 

안녕하세요. 우빈님

인프런 워밍업 클럽 덕분에 우빈님 강의를 끝까지 수강 중에 있는 러너입니다!

 

오버 엔지니어링 강의에서 오버 엔지니어링을 경계하고 적재적소에 리팩토링 강의에서 배웠던 것들을 써야한다. 이건 '경험'의 차원이라고 말씀하셨는데 실무에서 객체지향으로 개발하지 않는 경우에는 따로 '경험'을 쌓아야하는데 우빈님 강의 외에 적절하고 정확한 경험을 쌓을 수 있는 방법이 따로 있을까요? 간접 경험이라도 충분히 쌓을 수 있을 만한 방법이 있다면 추천 부탁드립니다!

답변 2

0

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

안녕하세요, sein 님!

오버 엔지니어링에 대한 감은 꼭 객체 지향 환경이 아니더라도 경험하고 체득할 수 있는 영역입니다.
물론 객체 지향 프로그래밍 기반의 설계 경험을 얻고 싶으셨던 걸 수도 있지만, 현재 계시는 환경 안에서도 '어떤 선택에 의해 미래에 얻게 되는 결과'를 지속적으로 면밀하게 관찰하고 회고하면서, 비슷한 경험을 쌓을 수 있다고 생각해요.

그리고 가장 경험을 쌓기 좋은 환경은 어떤 책이나 강의 보다도, 실무가 제일입니다. 복잡하고 다양한 사람들의 이해 관계가 얽혀 있는 환경에서, 소프트웨어 프로덕트를 만들어나가다 보면 여러 조건을 고려하며 선택을 해야만 하는 순간이 오는데요. 그럴 때마다 메타인지를 통해 이런 경험 지식을 쌓아나가는 것이 가장 좋은 것 같아요.

물론 '설계' 자체에 대한 좋은 책과 강의도 찾아보면 많으니, 선배 개발자들의 지식을 이를 통해 습득하는 것도 좋은 방법이고요. ㅎㅎ

도움이 되셨기를 바랍니다.
감사합니다. 🙂

0

안녕하세요, 인프런 AI 인턴입니다.
sein님께서 제기한 오버 엔지니어링과 관련된 질문은 많은 개발자들이 고민하는 주제입니다. 오버 엔지니어링은 불필요하게 복잡한 설계를 도입하여 유지보수성과 가독성을 해치는 것을 의미합니다. 이를 방지하기 위해 중요한 것은 실제 필요에 기반한 적절한 리팩토링의 시점을 판단하는 경험입니다.

오버 엔지니어링 방지를 위한 경험 쌓기

  1. 다양한 프로젝트 참여:

    • 다양한 크고 작은 프로젝트에 참여하여 다른 상황에서의 요구사항을 경험해보는 것이 중요합니다. 프로젝트를 다양한 도메인과 요구사항에 따라 진행하면서 어느 경우에 어떤 설계가 유리한지를 자연스럽게 배울 수 있습니다.
  2. 코드 리뷰 및 피드백:

    • 다른 개발자들의 코드를 리뷰하거나, 자신의 코드에 대한 피드백을 적극적으로 받아보는 것도 유익합니다. 이를 통해 다양한 관점에서 코드를 분석하고, 설계 및 리팩토링에 대한 통찰을 얻을 수 있습니다.
  3. 오픈 소스 프로젝트 기여:

    • 오픈 소스 프로젝트에 기여하면서 기존 프로젝트의 설계와 코드 구조를 분석해보는 것도 좋은 방법입니다. 전 세계 개발자들과 협업하면서 오버 엔지니어링을 피하고 최적의 코드를 작성하는 법을 배울 수 있습니다.
  4. 관련 강의 및 도서 탐독:

    • 이미 sein님께서 들으신 강의 외에도 여러 객체지향 프로그래밍과 리팩토링에 대한 도서와 강의들을 찾아보는 것을 추천드립니다. 다양한 저자와 강사의 관점에서 오버 엔지니어링을 피하려는 접근 방식을 배우는 것은 큰 도움이 됩니다.
    • 예를 들어, “리팩터링” by 마틴 파울러는 객체지향 설계와 리팩토링에 대한 깊이 있는 통찰을 제공하는 유명한 자료입니다.

관련하여 유사한 질문과 답변이 있는 게시물을 확인하시면, 더 많은 인사이트를 얻으실 수 있을 것입니다:

위의 링크들은 객체지향 설계와 관련된 경험을 쌓는 방법과 리팩토링의 중요성에 대한 인사이트를 제공합니다.

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

sein님의 프로필 이미지
sein

작성한 질문수

질문하기