해결된 질문
작성
·
824
답변 1
1
안녕하세요, Dom poo님!!! 😊 좋은 질문 올려주셔서 감사드립니다!!!
결론부터 말씀드리면 반반인 것 같습니다! 왜 반반이냐면요..!!
제가 개발을 시작한지 얼마 되지 않았을 때에는 처음부터 역할에 맞게 분리하기 : 코딩하거나 그림을 그린 후 정리하기
가 거의 10 : 90 정도였습니다. 어느 정도의 역할을 클래스마다 가져야 하는지, 어느 정도 단위로 코드를 분리해 두어야 추후 유지보수가 쉬운지에 대한 감이 없었으니까요...! 이때는 그냥 막 코딩해보고, 코드들을 이렇게도 분리해보고~ 저렇게도 분리해보면서 시간을 많이 들였던 것 같아요! 연습장에 로직의 흐름을 먼저 작성한 후 코드를 나중에 짜기도 했고요.
물론, Spring과 같은 "프레임워크"를 사용하게 되면 Controller / Service / Repository라는 큰 뼈대가 잡혀있기에 어느정도 코드를 처음부터 역할에 맞게 분리할 수 있는 장점이 있습니다. "프레임워크"의 목적 자체가 어느정도 패턴을 정형화하여 코드의 품질이 숙련도 영향을 덜 받게 해주니까요. 그래도 알고 있는 것과 실제 코드를 작성하며 구현하는 것은 달라서 선 코딩 후 정리를 많이 했던 것 같아요.
하지만 지금은 어떤 곳에 어떤 코드가 위치하면 유지보수가 쉬운지 잘 이해하고 있다보니 처음부터 역할에 맞게 분리하기 : 코딩하거나 그림을 그린 후 정리하기
가 거의 70 : 30 정도인 것 같습니다. 많은 기능을 구현하고 유지보수한 경험이 있다보니 A 기능은 이런식으로 만들었을 때 효과적이고 B 기능은 이런식으로 개발해야 코드의 역할과 책임이 잘 나눠진다는 것을 알고 있거든요.
물론 지금도 낯선 기술을 사용해 구현하거나 굉장히 복잡한 부분을 구현할 때는 머릿속으로 완벽한 코드를 떠올리는 것은 어렵기 때문에 먼저 코드를 작성한 후 작성한 코드들을 살펴보며 클래스나 함수의 역할, 이름 등을 조정해나가는 편입니다. 결국 사람이 머리로 생각할 수 있는 복잡도는 한계가 있다 보니 앞으로도 100 : 0이 되지는 않을 것 같습니다 ㅎㅎㅎ
답변이 도움이 되었으면 좋겠네요!!!
혹시나 또 궁금하신 점 있으시면 편하게 질문 남겨주세요, 감사합니다! 🙏🙏
감사합니다! 스프링부트 자체 외의 실제 현업에서 어떤 방식으로 일을 하는지가 정말 궁금했었는데, 궁금증이 많이 풀렸습니다.
좋은 강의입니다!