개발자
안녕하세요! 저는 얼마 전까지 작은 스타트업에서 인턴으로 실무 경험(3개월)해보고 다시 취준하고 있는 준비생입니다. 다름 아니라 지금 공부하고 있는데 어떤게 더 좋은 방향일지에 대해서 질문을 드리고자 합니다. 우선 저는 자바, 스프링 계열을 주로 공부하고 있는 백엔드 준비생입니다. 최근 테스트코드에 대한 관심이 많이 생겨서 테스트코드에 관한 공부를 하고 있는 중입니다. 그러다 테스트코드에 관한 강의를 하나 듣게 되었는데, 레이어드 아키텍처의 문제점과 이로 인한 테스트코드 작성 시의 한계 등에 대해서 설명해주시고 이후에 클린 아키텍처(헥사고날 아키텍처)로 바꿔가면서 더 나은 테스트코드를 작성하는 법을 알려주시더라구요. 클린 아키텍처를 처음 배워서 신기했고 왜 그렇게 하는지도 느낌은 알겠는데 제가 하고 있는 고민은 '이걸 지금 신입을 준비하는 내가 하는게 맞나' 라는 의문입니다. 이제 포트폴리오를 좀 더 업그레이드 해보려고 하는데 클린 아키텍처를 적용해서 하는게 신입한테 옳은 방향인가에 대해서 조금 고민이 되네요. 유튜브 개발바닥 채널에서 신입 분들에게 피드백을 주실 때 MSA, DDD, k8s 이런 어려운 기술보다 자바 언어의 심화, SQL 공부, 객체지향스러운 코드 작성 등 항상 기본기에 더 집중하라고 하는 걸 보다보니 이런 의문이 생기는 거 같네요. 클린 아키텍처 적용을 해서 포폴을 만들게 된다면 아무래도 기존 레이어드 아키텍처보다 신경 쓸 게 더 많아지게 되면 괜히 지금 내가 더 집중해야되는 것들을 놓치게 될 수도 있는건가? 하는 의문이 생기네요. 신입으로 취준을 할 때 어떤 방향(어떤 기술에 좀 더 집중할 것인가?)으로 하는게 좋다고 생각하시는지 선배님들의 생각이 궁금합니다! 감사합니다.
답변 1
인기 답변
안녕하세요. 개발 공부중 클린 아키텍처 라는 기술 위주로 공부를 해야할 지, 기초적인 내용에 대해 공부해야할지 고민이 많으신 것 같네요. 결론만 우선 말씀드리면, 저는 기초를 먼저 공부하는 것을 추천드립니다. 일단 저도 클린아키텍처라는 것을 작성자님이 말씀하셔서 처음 접했는데요. 제가 얇게나마 파악한 바에 의하면 이 또한 결국 하나의 “패턴”으로 보입니다. 지난 역사에서 부터, 오랜시간 개발자들이 고민하는것들이 몇가지 있죠 뛰어난성능, 적은 버그, 협업시의 문제 최소화, 프로그램 변경시의 변경점 최소화 등등… 워딩이 이상할 수 있지만 제가 말하려는 것들이 무엇인지 이해하실거라 봅니다. 클린 아키텍쳐 또한, 그런 많은 고민들을 해결하기 위한 하나의 방법입니다. 물론 다른 아키텍처 또한 마찬가지이죠. 여기서 우리는 간단한 현실적인 문제를 고찰해볼 수 있습니다. 세상 모든 프로젝트가 클린아키텍쳐인 것은 아니라는 문제입니다. 작성자님이 앞으로 어떤 회사에 들어가서 어떤 프로젝트를 진행할지는 아무도 모릅니다. 해당 프로젝트가 클린아키텍처일수도, 전혀 다른 아키텍처일수도 있죠. 그게 굳이 첫번째 프로젝트만이 아닌, 두번째 혹은 세번째 이후의 프로젝트 또한 마찬가지이죠. 결국 개발자라는 존재는 개발을 하는동안 평생 학습해야 하고(아닐수도있지만 현재까지의 인식으로는…) 튼튼한 기초는 그 학습의 시간을 줄여줄 겁니다. 지금 아키텍처 공부를 해서 일주일간 공부하여 아키텍처를 이해했다고 해봅시다. 이후 다른 아키텍처를 공부할 때도 비슷한 시간이 걸린다고 가정할 수 있습니다. 하지만 지금 기초를 다져서, 하나의 아키텍처를 공부하는데에 필요한 시간을 줄일 수 있다면, 지금당장은 기초에 쏟은 시간이 더 들겠지만, 장기적인 이득으로 생각할 수 있습니다. 그 외에도 다른 다양한 이유들이 있겠지만.. 글솜씨가 부족하여 이만 마치겠습니다. 작성자님이 장래 목표하는 바를 꼭 이루시길 바라겠습니다. 감사합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!