인프런 커뮤니티 질문&답변

이진섭님의 프로필 이미지

작성한 질문수

Java/Spring 주니어 개발자를 위한 오답노트

강의와 크게 상관은 없지만 공부의 방향성에 대해서 질문합니다.

해결된 질문

작성

·

486

1

저는 올해 4월에 입사해서 이제 막 4개월차 주니어 개발자 입니다.

퇴근 후에 공부를 하려고 하다가 매번 생각이 많아지는 주제인데요.

저의 주요 업무는 전자정부프레임워크 기반의 jsp사이트를 ui유지보수하는 업무입니다.

더 좋은 회사를 합격하지 못해서 아쉽긴하지만 그래도 신입받아주는 회사들이 많이 없어서 일단은 기분좋게 다니려고 하고 있습니다.

그런데 회사 업무를 하는 데 앞서서 공부를 하려고 하다보면 자꾸만 그런생각이 들더라구요.

jsp/mybatis 를 이렇게 까지 공부해야하나? 전자정부프레임워크 어차피 다른 서비스 기업으로 이직하게 되면 안쓸텐데 굳이 이렇게 공부해야할까 하고요.

그래서 회사기술스택에 맞춰서 해야할지 지금듣고 있는 김영한님 스프링강의를 들으면서 개인 포트폴리오를 보강하는 것이 나은지 둘다 하면 되지않냐고도 할수 있지만 그게 정말 맞는 방법인지 하는 의구심이 듭니다.

최우선적으로 뭘 중점적으로 해야하는지 우선순위를 명확하게 알고싶습니다!!

답변 2

3

김우근님의 프로필 이미지
김우근
지식공유자

안녕하세요. 다른 질문들과 마찬가지로 답변이 늦었습니다. 죄송합니다.

음… 생각보다 어려운 주제를 건네주신 것 같습니다. 저도 동일한 상황이었다면 똑같은 고민을 했을 것 같습니다. 더불어 주변에도 비슷한 상황을 겪는 친구들이 많아서 어떤 상황일지도 대충 짐작은 갑니다.

그래서 두서없이 개인적인 생각을 풀어보겠습니다. 시작하기 전에 저도 여러분이 생각하시는 것만큼 그렇게 연차가 높은 사람은 아니니 아래 답변은 모두 이를 감안하고 들어주시길 바랍니다.

일단 저는 어떤 고민이 들면 항상 하는 습관이 있습니다. 고민되는 포인트들을 제가 어떻게 해결할 수 있는 일과 제가 해결할 수 없는 일을 분리하는 것입니다. 그래서 제가 질문자님이라고 감정이입하고 이를 정리해 보겠습니다.

  1. 회사의 변화를 기대하는 것

회사가 어느 날 레거시 프로젝트를 종료하고 최신 기술 스택으로 변경한다면 너무 좋을 것입니다. 그래서 어떻게 회사를 설득하는 방향에 대해서도 고민해 보겠지만, 애석하게도 이러한 일이 벌어질 가능성이 매우 희박하기 때문에 이를 행동으로 옮기진 않을 것입니다. 이미 잘 알고 계시겠지만 회사가 이런 결정을 하지 않을 것이라 생각하는 이유는 아래와 같습니다. 😭

  • 제 생각에 JSP와 MyBatis를 버리고 JPA로 시스템을 바꾼다고 해도 뭔가 새로운 가치를 창출하지 못합니다. 페이지 로딩속도가 비약적으로 빨라지는 것도 아니고 사용자가 느끼는 체감상의 변화가 없을 것이라는 의미입니다. 그렇다면 기술 스택을 바꾸자는 이야기는 똑같은 시스템을 기술 스택만 최신으로 바꾸어 개발하겠다는 주장이 되어버립니다. 그리고 이 의견을 받아들여줄 회사는 없습니다. 아무런 가치도 못 만드는 데 몇 개월이 걸리는 대공사를 비싼 돈 들여가며 쓰는 개발자에게 시킬 이유가 없습니다.

  • 게다가 기존의 시스템을 최신 시스템으로 바꾸면서 생기는 부작용을 예측할 수가 없습니다. 따라서 회사가 이러한 리스크를 지는 행동을 할 이유가 없습니다.

  • 비즈니스를 이끌어가는 사람들의 입장에서 봤을 때 애플리케이션의 가치는 ‘얼마나 좋은 기술 스택을 사용했냐?’보다 ‘사용자에게 어떤 기능을 제공하냐?’입니다. 실제로 이게 올바른 방향입니다.

그래서 회사의 변화를 기대하는 것은 되기만 한다면 너무 좋은 일이지만 제가 어떻게 할 수 있는 일이 아닙니다. 그렇다면 여기서 생각을 그만두는 것이 좋습니다.

  1. JSP와 MyBatis 공부를 멈추는 것

이는 멈추어선 안 된다고 봅니다. 물론 JSP는 공식적으로 스프링에서 지원을 중단하기로 했으니 솔직히 이를 더 공부하는 것이 무의미할 수 있습니다. 그런데 모든 기술 스택이 조금 오래됐다고 해서 의미가 없는 것은 아닙니다. 저도 JSP를 학부 시절에 사용해 봤기 때문에 리액트가 왜 좋다고 말하는지 이해할 수 있었습니다.

또 다른 예로 저 같은 경우 제가 처음 조직에 발령받았을 때 PM 장비를 사용해 서버를 띄웠었습니다. 그때도 메인 스트림은 쿠버네티스와 도커였지만, 저는 오히려 PM을 체험해 볼 수 있어서 다행이라고 생각했습니다. 특히 지금 와서 돌이켜보면 PM을 다루는 법, 롤링 리스타트할 때 주의해야 할 점, PM과 VM의 차이점, 쿠버네티스 같은 오케스트레이션 시스템이 없을 때 PM만으로 이를 구성하는 방법 등을 알 수 있게 돼서 굉장히 좋았습니다.

더불어 나중에 가서는 저희도 PM 환경에서 쿠버네티스로 환경 전환을 했었는데, 특히나 이때 했던 경험도 너무 가치 있었습니다. 적어도 이제 저는 PM에서 쿠버네티스로 환경 전환하려 하는 조직이 있을 때, 가서 한 마디 정도는 조언 해줄 수 있는 사람이 되었다고 생각하거든요.

무조건 최신 기술 스택을 공부하고 적용하려고만 하는 것이 능사는 아니라고 봅니다. 그래서 저는 개발 히스토리를 알게 되는 차원에서라도 JSP는 공부할 가치가 있다고 생각합니다. 그렇다면 적어도 1~2년 정도는 계속 파 볼 것 같습니다.

더불어 MyBatis는 오히려 더 파볼 가치가 있는 것 같습니다. 이전의 다른 문의에 제가 답변을 달아 두신 것을 보시면 아시겠지만 저는 요새 JPA를 사용하는 것에 ‘굳이…?’라는 입장입니다. 물론 이제는 JPA가 익숙하고 JPA가 주는 몇몇 기능들이 편하니까 앞으로도 이를 계속 사용할 것이지만, 신규 프로젝트에서 꼭 JPA를 사용해야겠다는 생각은 하고 있지 않습니다. 누군가 MyBatis를 사용하자고 하면 그러자고 할 것입니다.

이 고민은 제가 할 수 있는 일이므로 조금 더 고민해볼 필요가 있는 것 같습니다. 그리고 JSP와 MyBatis에 대한 부정적인 생각을 고쳐볼 것 같습니다. 그렇다면 JSP와 MyBatis는 계속 공부하되 JSP는 조금 덜 신경 쓸 것 같고 MyBatis는 조금 더 파 볼 것 같습니다. (MyBatis를 공부한다면 특히 나중에 JPA를 사용하게 됐을 때 장점도 비교해서 체감할 수 있는 것도 좋은 것 같고요)

  1. 업무 공부 vs 개인 공부

일단 이 내용은 질문자님이 저연차(3년 차 정도…?)에 이직을 희망한다는 가정으로 작성했습니다. 만약 이쯤의 연차에 이력서를 제출한다면 이력서를 보고 크게 두 가지 유형으로 생각하는 면접관을 만나게 될 것이라 생각합니다.

  • ‘내가 이전 회사에서 이러한 일을 어떻게 잘했다’라는 내용이 더 듣고 싶은 면접관이 있을 겁니다. 이 경우 ‘개인 공부를 통해 충분히 JPA에 대한 이해도가 높다’라고 어필하는 것이 의미가 없을 수도 있습니다. 즉 ‘개인적으로 공부해봤자 얼마나 해봤겠어. 결국 중요한 일을 줬을 때 얼마나 잘 처리하는지가 중요해.’라고 생각할 수 있습니다. 그렇다면 주어진 미션을 달성하기 위해 어떻게 문제를 해결하는지에 대해 초점을 두고 업무 경험을 어필하는 것이 더 좋을 것입니다.

  • 면접관이 면접자의 기술 스택이 회사의 기술 스택과 더 부합하는 사람을 뽑고 싶을 수 있습니다. 이전 회사에서 어떤 업무를 해왔는지는 당연히 중요하겠지만 이 경우 ‘이 정도 연차면 그래도 이 정도는 할 수 있어야 하는데..?’라고 생각할 것입니다. 그렇다면 스프링이나 JPA를 얼마나 잘 다루는지도 궁금해할 것이므로 이를 어필하는 것이 필요합니다.

저는 양쪽 다 타당한 의견이라 생각합니다. 그렇다면 업무 공부를 하든, 개인 공부를 하든 어느 쪽이 유리할 지는 알 수 없다는 것입니다. 복불복이라는 말입니다. 그리고 면접관이 어떤 사람 일지에 대한 고민은 제가 더 고민한다고 어떻게 할 수 있는 부분이 아닙니다. 따라서 이에 대한 고민도 의미가 없다고 생각합니다. (물론 밸런스가 제일 중요하다 생각합니다.)

결과적으로 개인 공부, 업부 공부 이에 대한 우선순위를 정하는 게 의미가 없다는 결론입니다. 그리고 JSP, MyBatis를 공부하는 게 또 마냥 이상하지만도 않다는 결론입니다.

대신 이와 관련해서 하나 알려 드리고 싶은 게 있습니다. 어떤 면접관을 만나든 주체적으로 본인이 하고 싶은 개발을 하고 있는 사람은 대체로 긍정적으로 봐준다는 것입니다. 따라서 저는 차라리 입사를 위한 공부를 한다는 생각은 버리고 만들고 싶은 프로젝트를 정해 사이드 프로젝트를 해보라고 권유하고 싶습니다. 이는 행동으로 옮길 수 있는 부분입니다.

따라서 저라면 출퇴근 길에 1시간 정도 업무와 관련된 이론 공부를 하고 나머지 시간에는 사이드 프로젝트를 하며 갈증을 해소하겠습니다. 개인적으로 돌이켜보면 실제로도 그렇게 했던 것 같고요.

  • 참고로 저는 1년 차 때 백엔드 개발이랑은 관계도 없는 JavaFx, deeplearning4j를 이용해서 딥러닝 GUI를 만들고 있었습니다. 2년 차 때는 친구들이랑 같이 리액트로 프론트 개발을 하고 있었고요. 업무 공부는 출퇴근하면서 보는 유투브 이론 영상들로도 충분했던 것 같습니다. 실무는 어차피 회사에서 8시간 가까이하니까요.

마지막으로 저는 질문자님을 책임져 줄 수 없다는 말을 당부드립니다…ㅎ; 결국 후회를 안 남기려면 지금 구미가 당기는 방향으로 공부하는 것이 맞다고 생각이 듭니다. 더 나아가 고민할 시간에 뭐가 됬든 하나라도 더 만들어 보는 것을 추천해 드립니다.

고민 상담이라 거의 2시간정도 글을 작성했는데요. 진심이 전달되길 바라며 진심으로 응원합니다. 고민에 조금이라도 도움이 되셨길 바랍니다.

이진섭님의 프로필 이미지
이진섭
질문자

구체적인 답변 정말 감사합니다!!
덕분에 보다 방향성이 구체적으로 잡힌것같습니다ㅎㅎ

0

안녕하세요, 인프런 AI 인턴이에요. 주니어 개발자로서의 공부 방향성에 대해 고민하고 계시군요. 이해해 드릴 수 있어요.

먼저, 주니어 개발자로서 회사 업무에 집중하는 것은 당연한 선택이에요. 현재 주로 전자정부프레임워크와 JSP/MyBatis를 공부하고 계시는 것은 회사의 기술 스택에 맞추기 위한 노력이며, 이는 더욱 전문성을 키우는데 도움이 될 수 있어요. 또한, 회사 업무에 집중하면서 스프링강의를 듣고 개인 포트폴리오를 보강하는 것도 좋은 선택이 될 수 있어요.

하지만 자신만의 공부 방향성을 찾기 위해서는 두 가지 사항을 고려해보시는 것이 좋아요. 첫째, 현재의 업무를 얼마나 능숙하게 수행할 수 있는지 생각해보세요. 기본적인 기술들을 충분히 숙달해야 다음 단계로 넘어갈 수 있기 때문에, 현재 업무의 기초를 탄탄하게 다지는 것도 중요하답니다.

둘째, 개인의 흥미와 장래 비전을 고려해보세요. 원래의 관심사와 원하는 분야가 있다면 그 쪽으로 조금 더 집중하는 것도 좋은 방법일 수 있어요. 예를 들어, 웹 개발이 흥미로운 분야라면 스프링강의도 계속해서 듣고 개인 프로젝트를 진행해보는 것이 도움이 될 거에요.

요약하자면, 현재 업무에 집중하면서 회사의 기술 스택을 숙달하는 것은 중요하고, 동시에 흥미로운 분야로 진입하기 위해 개인의 흥미와 비전을 고려하는 것도 중요해요. 두 가지를 균형있게 고려하면서 공부하시면 좋을 것 같아요. 행운을 빕니다!