프로젝트를 하며 사수가 정해져 있지는 않고 다른 동료 및 선배님께 프로그램의 구조나 Thread로직 등에 대해 물어보며 진행하고 있는 상황입니다.
새로운 프로젝트를 진행하며 다음과 같은 고민이 있습니다.
유지보수와 프로그램 안정성을 위해 개발 문화 및 프로젝트 구조가 올바른 방향으로 잡혀나가고 있는지?
전체적으로 코드리뷰를 받아본다면 어떤 점을 더 채워 나갈 수 있는지 알거같은 느낌이지만 비용, 멘토링을 찾지못함
WPF를 사용함으로 윈도우 프로그래밍에 대한 부분을 더 깊게 봐야 하는 건지?
JAVA, Python, JS 등 웹에 관련된 멘토링은 검색해도 바로 나오고 점점 늘어나는 추세지만 C#은 그런 멘토링을 찾아볼 수 조차 없더라구요, 있어봤자 유니티? 혹시 이와 관련된 고민이 있을 때 어떻게 해결하셨는지 아니면 좋은 멘토링 사이트나 강의가 있는지 여쭤보고 싶습니다.
저는 사수나 팀원들의 도움을 받을 수 없는 환경에서 닷넷을 시작했는데, 구글링으로 그 때 그 때 필요한 코드만을 찾다가 MVVM 패턴에 대해 다루는 블로그 아티클을 통해 MVVM 패턴을 알게 되면서 이후로는 좀 더 거시적인 프로그래밍 방법론으로 분야를 넓혀 공부하고 있습니다.
1의 경우 각자 처한 환경이 다르고, 회사의 개발 문화가 다르며, 프로그램의 구조가 다르기 때문에 정답이 없는 문제라고 봅니다. 가령 다형성을 염두에 두고 설계를 한다면 코드 결합성을 낮추고 유연한 개발을 돕는다고 하지만, 그 다형성을 구현하는 방법만 놓고 보더라도 개발자별로, 프로그램의 목적별로 다를 수밖에 없습니다. 사실 괄호를 어떻게 열고 닫느냐만 가지고도 사람마다 취향이 갈리니 당연한 문제라고 봐야겠죠.
따라서 기본적인 프로그래밍 방법론을 토대로 많은 코드나 아티클을 찾아보면서 본인이 스스로 잡아나가는 게 좋다고 생각합니다.
MVVM 패턴을 예시로 들면 뷰와 뷰모델, 모델을 분리한다는 원칙은 동일하지만 어떤 방식으로 놓고 분리할 것인지만 해도 사람들마다 차이가 있습니다. 또, 결합성을 낮추기 위해 프로젝트 구성 요소를 별도의 어셈블리로 철저히 분리하는 사람이 있는 반면, 동일한 어셈블리 내에서 분리하거나 경우에 따라서는 효율적인 프로그래밍을 위해 오히려 결합성을 본인만의 적정선까지 올리는 경우도 있습니다.
아티클도 코드만 복붙해 단순히 어느 기능을 하는 코드만 알려주는 아티클이 있는 반면, 코드 자체보다는 좀 더 방법론적인 목적으로 접근하거나 코드에 작성자 본인의 코멘트를 정성스럽게 곁들인 아티클도 있습니다. 이런 아티클에는 그 사람의 생각이 담겨 있습니다. MVVM 패턴에 관한 아티클이 있다고 치면, 기본적인 샘플 코드와 MVVM 패턴에 대한 본인의 생각이 첨부된 아티클은 이 사람은 MVVM 패턴을 어떤 식으로 접근하고 있는지에 대해 많은 영감을 줍니다. 커뮤니티에서 질문을 작성하거나 토론에 참여해 보는 것도 다른 사람들이 어떻게 생각하고 있는지 알아보는 것에 도움이 됩니다.
최대한 많은 코드를 보고, 많은 아티클을 보고, 커뮤니티 활동도 많이 하면서 이 사람은 왜 이렇게 설계했는지, 어떤 방식으로 접근하고 있는지에 대해 고민하다 보면 결국 본인에게 알맞는 정답을 찾을 수 있을 거라고 믿습니다.
저도 현재 루나시아님처럼 프로젝트를 진행하며 그때 그때 찾아가며 필요한 방법으로 진행하는 중입니다.
조금 다른점이 있다면 동료들과 함께 찾아가는 중이란 점이 다를 수 있겠네요
스스로 찾아가다보니 그저 작동만하는 프로그램이 만들어지는것 같아 걱정입니다.
말씀해주신대로 다양한 토론과 커뮤니티 활동, 다른 프로젝트를 많이 보는게 중요한 것 같습니다.
이 사람은 왜 이렇게 설계했는지. 라고 하셨는데 설계한 부분을 보려면 어떤 기획 블로그나 프로젝트를 참고 해야할텐데 이런부분은 github나 블로그를 통해 보셨을까요? 추천해 주실만한 MVVM방식으로 개발된 프로젝트가 있으실까요?
깃헙에서 mvvm 또는 mvvm-pattern을 주제로 한 레포를 검색해 보시면 됩니다. mvvm은 MVVM 패턴을 지원하는 라이브러리가 올라오기도 하기 때문에, 순전히 MVVM 패턴을 차용한 프로젝트만 확인해 보고 싶으면 mvvm-pattern이 수고스러움은 덜할 것 같습니다.
혹은 닷넷데브의 튜토리얼, 팁, 강좌나 내가 만들었어요 탭으로 올라오는 WPF 프로젝트들은 대부분 MVVM 패턴을 차용하고 있으므로, 이를 참고해 보셔도 좋을 것 같습니다. 궁금하면 바로 댓글로 질문하고 답변하는 것이 가능하니까요! 특히 MVVM 이해를 돕는 목적으로 만들어진 것들도 많아서 MVVM에 익숙하지 않다면 많은 도움이 될 겁니다.
또한 프로젝트는 아니지만, 제가 자주 보는 국내 블로그 몇 곳을 첨부합니다. MVVM이라는 것을 처음 접했을 때 MVVM 패턴을 이해하고 제 나름대로의 관점을 정립하는데 많은 도움이 되었습니다.