개발자
스프링부트로 백엔드 서버를 개발 중인 대학생입니다. 맨날 소스파일 한 두개 쓰는 장난 코드만 적다가 제대로 프로젝트 만들어보는 건 이번이 처음이에요. 코드 자체는 굉장히 간단한데 클래스 구조를 설계하는 과정에서 시간이 너무 많이 지체되는 것 같아서 고민입니다. 여기서는 인터페이스를 쓰는게 좋지 않을까, 얘는 상속 쓰면 겹치는 코드를 줄일 수 있을 거 같기는 한데 구조가 복잡해보여서 오히려 프로젝트가 더 복잡해지는 건 아닐까, 이 기능은 어떤 서비스 객체에 넣는게 더 자연스러울까, 어디에도 넣기가 부자연스러운데 차라리 서비스 객체를 분리할까 등등 만들면서 코드 짜는 시간보다 클래스 간의 구조를 짜는데 시간이 더 많이 걸립니다. 주변에 동기들 보면 금방금방 코드 짜고 포트폴리오 완성하는 것 같은데 저는 아무리 시간을 쏟아도 성과가 빠르게 나오지 않아서 걱정입니다. 최근에는 인터넷에 잘 만든 코드를 먼저 검색해본 후에 구조를 따라 하는 식으로 공부하고 있는데, 코드를 찾아보고 왜 저 구조를 쓴 건지 이해하는데 또 시간이 소모됩니다. 계속 이렇게 진행하는게 맞을까요? 너무 초조해요...
답변 1
공부는 그게 맞지만 Product는 그렇게 해서는 안될것 같네요. 리딩하는 사람이 없으니 이것저것 해보고 하지만 거기서 나온 경험을 체득하여 실제 서비스를 만들때는 정해진 기한내에 적용할수 있는 기술을 적용하여 오픈기한을 지켜야되거든요. 물론 아키텍처와 개발방법론을 먼저 정한뒤 오픈기한을 정하는 케이스도 있겠지만요. 그리고 만약 질문자님이 그런거에 박탈감을 느끼신다면, 우선은 돌아가게 만드는 프로그램을 한번 짜본다 라고 생각하고 리팩토링을 위하여 TODO 주석을 많이 남겨두시는건 어떨까 싶습니다. 그렇게 남겨두는것만으로도 github code에 관련된 포트폴리오는 가산점이 되지않을까 싶습니다.
익명
작성자
2024년 03월 18일
답변 감사합니다. 구조가 좀 불만족스럽더라도 일단 완성한 후에 리팩터링하는 방식으로 가볼게요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 03월 18일
당신의 경우에는 클래스 구조와 아키텍처 설계에 대한 이해가 아직까지 완전하게 이루어지지 않은 것 같아요. 하지만 걱정하지 마세요, 소프트웨어 개발에서 아키텍처 및 설계는 가장 어려운 부분 중 하나입니다. 1. **학습 단계**: 이 단계에서는 다양한 인터넷 자료를 찾아보고, 서적을 읽으면서 객체 지향 프로그래밍, 디자인 패턴, 아키텍처 등을 체계적으로 공부하는 것이 필요합니다. 이 과정에서 시간이 좀 소비될 수 있습니다. 2. **응용 단계**: 위의 지식을 바탕으로 작은 프로젝트를 만들어 보면서, 실제로 설계와 구현이 어떻게 진행되는지를 경험하게 됩니다. 3. **실전 단계**: 여러 프로젝트를 진행하면서 획득한 지식과 경험을 바탕으로, 프로젝트의 규모가 커져도 잘 관리할 수 있는 방법들을 찾아가게 됩니다. 4. **리팩터링 단계**: 이 말은 기존 코드를 단순하게 재구성하는 것이 아니라, 비즈니스 로직을 유지한 채로 코드의 품질을 개선하는 과정입니다. 이를 통해 설계 및 구현 능력을 향상시킬 수 있습니다. 또한 다른 사람들의 코드를 참고하는 것은 매우 좋은 학습 방법입니다. 하지만 그냥 복사해서 사용하기보다는, 왜 그런 설계 결정이 이루어졌는지 이해하려 노력하기 바랍니다. 마지막으로, 속도에 너무 집착하지 않으셔도 좋습니다. 초기에는 시간이 오래 걸릴 수 있지만, 시간이 지나면서 경험이 쌓이게 되면 속도도 자연스럽게 빨라질 것입니다. 프로그래밍은 마라톤과 같아서, 처음부터 빠르게 달리기보다는 꾸준히 달리는 것이 중요합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!