오버 엔지니어링
147
작성한 질문수 3
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!
먼저 유사한 질문이 있었는지 검색해 보세요.
서로 예의를 지키며 존중하는 문화를 만들어가요.
안녕하세요. 우빈님
인프런 워밍업 클럽 덕분에 우빈님 강의를 끝까지 수강 중에 있는 러너입니다!
오버 엔지니어링 강의에서 오버 엔지니어링을 경계하고 적재적소에 리팩토링 강의에서 배웠던 것들을 써야한다. 이건 '경험'의 차원이라고 말씀하셨는데 실무에서 객체지향으로 개발하지 않는 경우에는 따로 '경험'을 쌓아야하는데 우빈님 강의 외에 적절하고 정확한 경험을 쌓을 수 있는 방법이 따로 있을까요? 간접 경험이라도 충분히 쌓을 수 있을 만한 방법이 있다면 추천 부탁드립니다!
답변 2
0
안녕하세요, sein 님!
오버 엔지니어링에 대한 감은 꼭 객체 지향 환경이 아니더라도 경험하고 체득할 수 있는 영역입니다.
물론 객체 지향 프로그래밍 기반의 설계 경험을 얻고 싶으셨던 걸 수도 있지만, 현재 계시는 환경 안에서도 '어떤 선택에 의해 미래에 얻게 되는 결과'를 지속적으로 면밀하게 관찰하고 회고하면서, 비슷한 경험을 쌓을 수 있다고 생각해요.
그리고 가장 경험을 쌓기 좋은 환경은 어떤 책이나 강의 보다도, 실무가 제일입니다. 복잡하고 다양한 사람들의 이해 관계가 얽혀 있는 환경에서, 소프트웨어 프로덕트를 만들어나가다 보면 여러 조건을 고려하며 선택을 해야만 하는 순간이 오는데요. 그럴 때마다 메타인지를 통해 이런 경험 지식을 쌓아나가는 것이 가장 좋은 것 같아요.
물론 '설계' 자체에 대한 좋은 책과 강의도 찾아보면 많으니, 선배 개발자들의 지식을 이를 통해 습득하는 것도 좋은 방법이고요. ㅎㅎ
도움이 되셨기를 바랍니다.
감사합니다. 🙂
0
안녕하세요, 인프런 AI 인턴입니다.
sein님께서 제기한 오버 엔지니어링과 관련된 질문은 많은 개발자들이 고민하는 주제입니다. 오버 엔지니어링은 불필요하게 복잡한 설계를 도입하여 유지보수성과 가독성을 해치는 것을 의미합니다. 이를 방지하기 위해 중요한 것은 실제 필요에 기반한 적절한 리팩토링의 시점을 판단하는 경험입니다.
오버 엔지니어링 방지를 위한 경험 쌓기
다양한 프로젝트 참여:
- 다양한 크고 작은 프로젝트에 참여하여 다른 상황에서의 요구사항을 경험해보는 것이 중요합니다. 프로젝트를 다양한 도메인과 요구사항에 따라 진행하면서 어느 경우에 어떤 설계가 유리한지를 자연스럽게 배울 수 있습니다.
- 다양한 크고 작은 프로젝트에 참여하여 다른 상황에서의 요구사항을 경험해보는 것이 중요합니다. 프로젝트를 다양한 도메인과 요구사항에 따라 진행하면서 어느 경우에 어떤 설계가 유리한지를 자연스럽게 배울 수 있습니다.
코드 리뷰 및 피드백:
- 다른 개발자들의 코드를 리뷰하거나, 자신의 코드에 대한 피드백을 적극적으로 받아보는 것도 유익합니다. 이를 통해 다양한 관점에서 코드를 분석하고, 설계 및 리팩토링에 대한 통찰을 얻을 수 있습니다.
- 다른 개발자들의 코드를 리뷰하거나, 자신의 코드에 대한 피드백을 적극적으로 받아보는 것도 유익합니다. 이를 통해 다양한 관점에서 코드를 분석하고, 설계 및 리팩토링에 대한 통찰을 얻을 수 있습니다.
오픈 소스 프로젝트 기여:
- 오픈 소스 프로젝트에 기여하면서 기존 프로젝트의 설계와 코드 구조를 분석해보는 것도 좋은 방법입니다. 전 세계 개발자들과 협업하면서 오버 엔지니어링을 피하고 최적의 코드를 작성하는 법을 배울 수 있습니다.
- 오픈 소스 프로젝트에 기여하면서 기존 프로젝트의 설계와 코드 구조를 분석해보는 것도 좋은 방법입니다. 전 세계 개발자들과 협업하면서 오버 엔지니어링을 피하고 최적의 코드를 작성하는 법을 배울 수 있습니다.
관련 강의 및 도서 탐독:
- 이미 sein님께서 들으신 강의 외에도 여러 객체지향 프로그래밍과 리팩토링에 대한 도서와 강의들을 찾아보는 것을 추천드립니다. 다양한 저자와 강사의 관점에서 오버 엔지니어링을 피하려는 접근 방식을 배우는 것은 큰 도움이 됩니다.
- 예를 들어, “리팩터링” by 마틴 파울러는 객체지향 설계와 리팩토링에 대한 깊이 있는 통찰을 제공하는 유명한 자료입니다.
- 이미 sein님께서 들으신 강의 외에도 여러 객체지향 프로그래밍과 리팩토링에 대한 도서와 강의들을 찾아보는 것을 추천드립니다. 다양한 저자와 강사의 관점에서 오버 엔지니어링을 피하려는 접근 방식을 배우는 것은 큰 도움이 됩니다.
관련하여 유사한 질문과 답변이 있는 게시물을 확인하시면, 더 많은 인사이트를 얻으실 수 있을 것입니다:
위의 링크들은 객체지향 설계와 관련된 경험을 쌓는 방법과 리팩토링의 중요성에 대한 인사이트를 제공합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
[강의 질문] 메서드 선언부
0
89
1
[강의 질문] 메서드와 추상화
0
60
2
DIP 개념에 대한 질문입니다.
0
64
1
만약 보드를 이용한 게임의 종류가 더 다양해진다면 어떻게 될 수 있을지에 대한 고민
0
85
2
DIP 설명 후반부에 IOC에 대한 질문 드립니다.
0
78
2
안녕하세요 ! 혹시 자바가 아닌 다른 객체지향 언어를 알고있어도 강의를 들어도 괜찮을까요 ?!
0
70
1
안녕하세요 메서드명 때문에 고민이 있어서 질문드립니다.
1
64
2
자바 record 사용에 대해서 질문 드립니다!
0
126
2
강의 내용 정리 및 자료 제작 툴 문의 드립니다.
0
136
2
사용할 변수 가깝게 선언하기 질문
0
92
1
학습용 java/spring 오픈소스 추천
1
359
2
중복된 메서드 줄이는 방법
0
182
2
MarketPlace에서 Sonarlint 검색이 안됩니다.
0
413
3
isLandMineCell() 메서드 질문
0
208
1
Cell[][]BOARD 매개변수받기
0
152
2
ConsoleInputHandler에서 왜 final붙여야 하는지
0
192
1
정적 생성자 메서드 of, from
0
264
2
Getter관해서
0
148
3
이름 바꾸기
0
129
2
stack 대신 queue 를 사용해 bfs 로 변경해도 되나요??
0
162
2
현업에서 ISP를 도입하려는데 인터페이스 설계에 있어서 의문이 있습니다.
0
206
2
null을 가질 수 있는 값을 인자로 넘겨야 하는 경우
0
249
3
리팩토링을 하고 난 뒤 다시보면 오히려 더 복잡해 보이는것 같은 느낌입니다..
0
251
2
조합 관계에 대해 질문있습니다.
0
164
2





