해결된 질문
작성
·
220
1
강의와는 관련이 없는데, 개인적인 질문이 있습니다.
저는 자바 스프링 신입 개발자를 준비하고 있는 학생입니다.
지금까지는 MVC 패턴만 사용하고, 모놀리틱 아키텍처를 사용해서 배포를 진행하고 프로젝트를 해왔습니다.
제가 알기로는 학습적으로나 포트폴리오적으로나 필요성을 느껴서 하는 공부가 제일 좋다고 들었습니다. 근데, 최근에는 어떤 필요성을 느끼지 못하면서 대규모 시스템 강의,헥사고날 아키텍처가 중요하다고 하니 강의 등을 듣고 있습니다.
왜냐하면, 본격적인 취업은 내년이고 시간이 좀 남았습니다. 그래서 해당 강의들을 들어두면 언젠가 개인 프로젝트나 현업에서 사용할 수 있지 않을까하고 듣고있습니다만, 제가 사용했던 MVC 패턴의 장단점 등 기본적인 것들도 알지 못하는 상태에서 계속 진도 나가듯이 이런 저런 강의를 듣고 하는게 괜찮을까요?
즉, 아직 기본도 잘 모르면서 계속 새로운 걸 배우는 과정들이 괜찮을까하는 걱정이 드네요.
하지만, 한편으로는 CS지식이 너무 방대해서 기초를 다 잡아두고 다음 단계로 넘어간다는 것도 솔직히 엄두가 안납니다. 그래서 우선은 쭉 이것저것 배워두고 나중에 필요하면 다시 찾아보면서 공부하면 되지 않을까 싶은데, 토비님은 어떤 방향이 더 괜찮다고 생각하시나요??
답변 2
5
신입 개발자로 준비하고 계시는군요.
요즘처럼 처음 개발을 시작하는 분들에게도 서비스가 급격하게 성장하는 특정 시점에나 필요한 대용량 시스템 설계나 트래픽을 다루는 부분이나, 복잡한 문제를 해결하기 위해서 필요한 서비스 등을 활용하는 법까지 공부해야할 것 같은 부담이 느껴지시는 것 같습니다.
혼자서 그런 모든 필요한 기술을 다 적용해야 하는 특별한 책임을 맡는 작은 스타트업에서 일을 하는 스타트업에서 일하시는 경우가 아니라면, 대체로 신입이나 저연차 주니어 개발자는 대부분의 서비스에서 공통적으로 필요로 하는, 기본적인 구조의 시스템을 깔끔하고 안정적으로 개발하는 훈련이 가장 중요합니다. 사실 이런 건, 무슨 MSA 같은 이름이 붙어있지 않습니다. 반대로 기초기 필요하다고 CS 공부를 요구 받기도 하는데 이것도 체계적으로 공부하기에는 취업후에 그다지 필요가 없습니다. OS나 네트워크 스택을 직접 개발하는 특별한 일을 하실 게 아니라면요.
여러 강의를 듣고 지식을 넓히시는 것이 나쁜 건 아니지만, 본격적으로 개발자로 일을 하기 위해서 가장 중요한 실력을 잘 준비하시는 게 우선입니다. 자바와 스프링을 선택하셨다면, 가장 보편적인 웹과 DB를 사용하는 애플리케이션을 기본적인 설계부터 시작해서 코드로 만들고 이를 쉬운 방법을 찾아서 배포하고,지속적으로 개선해보는 작업이죠.
이런 과정을 통해서 어떻게 코드를 작성하는 것이 다음에 새로운 기능이 추가되거나 변경이 될 때, 더 쉽고 편리한지, 그동안 공부하신 여러 원리들과 좋은 개발 습관을 적용하는 것이 어떤 도움이 되는지를 느껴보는게 무엇보다도 중요합니다. 혼자서 공부하신다면 더더욱 그렇습니다.
물론 웹과 DB, 그리고 자바 코드로 애플리케이션의 로직을 작성하느데 필요한 충붕한 실력을 갖추셔야죠. MSA 공부했다고 당장에 써먹을 데가 없습니다. 왜냐하면 그건 기본적인 구조로 만들어진 시스템이 아주 크게 성장해서 특별한 요구가 생겼을 때 필요하기 때문인데, 그게 정말 필요한 경우가 많지 않고 막상 적용한다고 해도 고려해야할 것이 너무 많기 때문입니다.
그래서 기초에 해당하는 웹 기술(HTTP와 HTML, JS, 스프링에서는 MVC)은 강의나 자료를 구해서 꼼꼼하게 보고, 조금씩 응용해서 실전 예제를 만들어보세요. 반대로 DB쪽도 꾸준히 공부해야 합니다. MySQL과 같이 많이 쓰이는 DB를 이용하는 방법, 데이터 설계와 조회, 조작을 위한 쿼리 작성하는 방법 등을 익히고 이걸 자바에서 사용할 때 많이 쓰는 JDBC, JPA 등은 기초부터 할 수 있는 만큼 차근차근 공부해야 합니다.
그리고 그 중간에 애플리케이션의 로직을 담아주는 코드를 어떻게 만들 것인지도 공부하세요. 제 강의가 그 부분에서 도움을 많이 드릴 겁니다. 그러다 보면 테스트 코드도 더 잘 작성하는 방법을 찾아서 익히게 되고, 또 코드를 리팩터링하는 방법도 필요하겠죠. 다양한 개발 패턴들도 만나게 되는데, 그런 건 그때마다 찾아서 공부하시면 됩니다.
그리고 Git 사용해서 코드를 리포지토리에 저장하고, 이를 관리하는 방법 기초적인 CI 그리고, 배포할 수 있는 클라우드나 서버를 구할 수 있다면 배포 방법도 가장 쉬운 것부터 하나 적용해보세요.
이 정도만 한번 다 자기 손으로 해보고 느낀 점이 있고, 그리고 자바 코드로 주어진 도메인 로직을 잘 작성하고, 테스트까지 만들 수 있다면 기회가 될 때 좋은 곳에 신입으로 들어갈 수 있지 않을까 기대해봅니다.
결론적으로 개발팀에서 주니어 개발자로 맡겨질 일을 해내는데 필요한 것에 집중해서 공부하시는 게 중요하고, 너무 CS라든가 복잡한 기술은 지금 시간을 많이 안 들이시는게 좋습니다. 그걸 공부하면 다음에 학습을 위해서 간단한 서비스 개발을 해보는데 도움이 될 부분이 있는지 생각해 보시면 될 겁니다.
그래도 애매한 부분이 있으면 언제든 질문 남겨주세요. 제 강의에서 설명하는 부분은 꼼꼼하게 공부하고, 자기의 언어로 다시 설명할 수 있으면 좋습니다. 스프링이나 부트의 기초가 더 필요하다고 생각되면 제 이전 강의를 보시거나, 공식 문서 등을 통해서 공부하시고요.
0
안녕하세요, 인프런 AI 인턴입니다. blackhole124님께서 고민 중인 학습 방법에 대해 의견을 공유드리겠습니다.
현재 blackhole124님께서 느끼는 그 갈등은 자연스러운 부분입니다. 특히 IT 분야에서는 최신 기술과 기존 기술 모두 중요하게 다루어지며, 무엇을 우선 학습해야 할지를 선택하는 데 있어서 고민이 많을 수 있습니다.
기초와 깊이의 균형 찾기:
신기술에 대한 오픈 마인드:
필요할 때 찾을 수 있는 구조:
개인 프로젝트 활용:
비슷한 고민을 한 다른 학습자들의 질문과 답변을 참고하시면 더욱 도움이 될 수 있습니다:
- 공부 방법에 대해서 질문드립니다.
- 스프링, 스프링부트,배치, JPA, MVC, 디자인 패턴 등등 어떻게 공부 해야 할지 조언 부탁드립니다
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
안녕하세요 토비님
말씀해주신 내용 감사합니다. 앞으로도 공부하는데 많은 길잡이가 될 것 같습니다 !