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

Eden님의 프로필 이미지
Eden

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

공부법 질문드립니다

작성

·

815

0

안녕하세요 공부방법 질문드립니다!

저는 비전공자이고 자바만 공부했는데요 자바 배웠으면  프레임워크인 스프링을 공부해야 된다고 해서 주변 사람들에게 추천을 받아 이 강의를 듣게 되었습니다. 김영한 강사님의 커리큘럼 그대로 따라가려고 했는데요

입문 강의임에도 불구하고 생각했던것 보다 어렵고 마음과 다르게 진도 나가기가 힘드네요...

강의를 들으면서 완전 아예 이해가 전혀 안된다! 이건 아닌데요 그래도 많이 어렵습니다.

어려워서 스프링공부법 관련해서 인터넷에 계속 검색하다 보니 스프링 공부 전 jsp를 먼저 공부하는게 좋다는 말들이 있는데요

저 혼자 jsp를 따로 공부한 후에 지금 이 강의 들으면서 김영한강사님의 커리큘럼을 따라가는게 맞는건가요?

jsp를 먼저 공부하고 와야 할까요? 공부법 조언해주시면 감사하겠습니다 !

답변 2

3

음...비전공자 분이고 미래의 진로에 대해 고민하시는 것 같아서 부족하지만 답변을 드립니다.

비전공자 분들이 기본적으로 자바를 공부하게 되는 계기는 다른 언어들보다 쉬웠기 때문입니다.

또한 프레임워크 중 하나인 스프링, 스프링부트를 사용하게 되는 것은 아무래도 일상생활에서 쉽게 접할 수 있는 웹에 대한 경험이 있기 때문입니다.

사실 자바를 배웠다고 해서 스프링을 꼭 배워야 하는 것은 아닙니다.

정확히는 본인이 어떤 일을 하고싶은지가 제일 중요할 것 같아요.

모든 서비스에는 프론트엔드와 백엔드로 구분됩니다.

(프론트엔드와 백엔드에 대한 개념을 알아보시면 좋을 것 같습니다. )

그리고 말씀하신 스프링은 프론트와 백엔드를 동시에 할 수 있지만, 현업에서는 주로 백엔드로 많이 사용합니다.

저는 조금 걱정되는 부분이 자바를 배우라고 해서 자바를 배웠고, 사람들이 스프링은 해야된다고 해서 스프링을 해야하나?라고 생각하고 계시는 모습이 조금 안타깝습니다.

우선 하고싶으신 분야를 정하는게 먼저일 것 같아요.

웹, 게임개발, 기계자동화 등등 IT, 프로그래머들 사이에서도 큰 그룹이 있습니다.

어떤쪽 개발을 하고 싶으신지를 먼저 정하신 이후에 스프링을 공부하셔도 될것 같습니다.

아. 취업에 대한 걱정도 하실 수 있는데, 스프링관련 분야는 사람도 많이 뽑고 많은 분야에서 사용되어서 취업은 잘 됩니다.

Eden님의 프로필 이미지
Eden
질문자

진심으로 조언해주셔서 감사합니다!

웹 개발자 되고 싶어서 프론트 배우다가  백엔드로 취업하고 싶어서 알아봤더니  자바+스프링 해야 된다고 해서 공부 시작했습니다. 가고자 하는 방향은 명확한데 너무 늦게 시작한건가 싶고 또 막상 시작하니 어렵기도 해서 멘탈이 흔들리는 것 같습니다. 자바까지는 괜찮았는데 스프링이 생각보다 많이 어렵더라구요ㅜ

배우기 시작 전 제 진로에 대해 진지하게 고민해 볼 수 있는 시간을 가져보도록 하겠습니다

답변 감사드립니다 :)

그렇군요. 오히려 명확하게 정해져있어서 다행이라는 생각도 듭니다.

백엔드는 아주 매력적인 분야고, 조금더 딥하게 들어가면 데이터 분석가나, DBA등 다양한 직무가 있습니다. 물론 서버개발자들도 있구요

스프링을 공부하신다고 했는데, 스프링은 정말 시작이 반입니다.

스프링을 사용하기 위해 설치하는 과정자체가 너무 어렵고, 만약 그런과정들을 모두 다 이해하고 넘어가려면 생각보다 많은 어려움이 있을 겁니다.

Maven과 gradle 관련된 내용 공부

bean에 대하여

그리고 제일 효율성을 갖는 어노테이션 (@Autowire 같은 )을 공부하면 이후에는 많이 코드를 작성하면서 경험과 동시에 스킬이 늘어날 겁니다.

처음부터 효율적인 코드를 짜려고 하지 말고 어떻게든 결과를 뽑아내는게 중요합니다. 정령 그게 진짜 컨트롤 C, V로 이루어진 코드라고 해도 말이져 

백엔드는 다양한 솔루션들이 있습니다.

스프링, Nodejs, RoR(Ruby on Rails) 등이 있습니다.

범용적으로는 스프링, Node.js이고 특수성으로는 RoR 이 있져 ( RoR 같은 경우는 대표적으로 당근마켓에서 사용하는 것으로 알고 있습니다. )

사실 스프링과 Node.js의 차이라기보다는 명확하게 사용해야하는 상황?에 따라서 선택하여 쓰고 있고, Node.js 가  js로 만드는 백엔드다보니까 프론트 개발자들이 비교적 쉽게 접근할 수 있어서 빠르게 발전 했습니다. 

향후에 프론트에도 관심이 생길수도 있고 지금도 있으실 수 있는데, 그렇다면 Node.js도 한번 보시는 것 추천 드립니다.

그럼에도 불구하고 스프링이 곧 내길이다 라고 생각되시면, 스프링과 스프링부트의 차이를 확인하시고 편하신거 쓰시면 됩니다.

( 요즘에는 스프링부트 사용하는 회사 많습니다. )

Eden님의 프로필 이미지
Eden
질문자

저 그럼 마지막으로 한가지만 여쭤보겠습니다.

주변에 같은 진로를 선택한 사람이 없어서 혼자 고민했던 부분인데요

저는 파이썬이랑 html, css, js 이렇게 공부했었는데요 공부를 하다보니 프론트 개발자가 아닌 백엔드 개발자가 하고 싶었습니다. 그래서 nodejs,  jango 이쪽에 관심을 갖고 공부하고 싶었던 마음이었는데요

제가 원하는 회사들의 채용공고를 쭉 보다보니 백엔드 개발자는 거의 다 자바+스프링,스프링부트 이 조합이 지원자격이더라구요. 그리고 채용공고만 봐도 자바개발자를 훨씬 많이 뽑는것 같아보이더라구요

'스프링이 곧 내길이다' ,'내가 공부 하고싶다'가 아닌 제가 원하는 회사들, 그리고 채용시장을 보았을 때 보통 자바 개발자를 많이 뽑는다고 생각했기 때문에 지금 이렇게 선택하고 공부중이었는데요

그냥 이 상태로 자바 스프링부트 하는게 낫겠죠..? 

저 솔직히 잘 모르겠습니다. 스프링부트 배우면 지원할 수 있는 회사들이 더 많아지지 않을까 생각해서 시작했는데요... ㅠㅠㅠ 잘 모르겠습니다...

이 부분에 대해 어떻게 생각하시는지 여쭤보고싶습니다 

우선 답변부터 말씀드리면 맞습니다.

원하시는 회사가 어디인지는 모르겠으나, 많은 회사에서 아직 스프링을 사용하고 있는 것은 사실입니다.

그리고 그것은 향후에도 많이 사용할 것입니다. 그렇기 때문에 취업을 조금 더 빠르게, 혹은 다른 언어들보다 편하게(?) 하고 싶다면 스프링을 하시는 방법이 나쁘지 않습니다.

단순히는 아니지만 지금 상황에서는 백앤드 개발을 하고 싶다 + 취업에도 도움이 되고 싶다 = 스프링을 공부하는 것이 지금 작성자님 입장에서는 충분한 타협점이 될 수 있을 것 같습니다.

스프링은 전자정부프레임워크에도 사용되고, 그외 다른 큰 기업에서도 많이들 사용합니다.

특히 B2B 서비스를 하고 있는 회사의 경우는 거의 스프링이 압도적이죠. 

이유는 B2C보다 트래픽도 적을 것이고 수정이 오래걸리더라도 빠른 개발보다는 '꾸준한 관리'에 조금 더 포커싱이 되기 때문인데요.

스프링 같은 경우는 스웨거(Swagger) 같은 것으로 API 문서 자동화나 Junit이나 jMeter 등의 테스트 툴 같은 경우도 레퍼런스가 많아서 뭐랄까 문제가 발생하거나 내가 생각하지 못한 예외로 인하여 고생하더라도 검색하면 거진 다 나오기 때문에 ( 많은 사람들이 이미 겪음 ) 그 프레임워크를 계속 더 사용하게 되는 것 같습니다.

원하시는 회사가 B2B 사업을 하는 곳이라면 스프링을 공부하는게 많은 도움이 될 것입니다.

회사에서 백엔드 개발자 기본 가이드라인으로 두번째로는 스프링을 할줄 안다면! 장고나 nodejs 같은 것들은 언어의 차이기 때문에 사용하는 상황이 나오더라도 스프링을 제대로 할 줄 안다면! 큰 어려움 없이 할거라고 생각하기 때문입니다. 

하지만 한가지 걸리는 것은 스프링이 재미 없다로 느껴지는 부분입니다.

제가 글을 제대로 읽었다면 작성자 분은 스프링에 대한 흥미가 아예 없는 것은 아닌데 다른 언어들보다 흥미가 떨어지는데 그럼에도 불구하고 스프링을 공부하는 이유는 취업을 위해서 라고 이해하였습니다.

저는 작성자분의 개인적인 사정과 놓여진 상황에 대한 이해가 없어서 사실 이부분에 대해서는 

'그래도 하고 싶으신거 해야죠!' 라거나 '마음이 끌리는 데로' 라고 말씀을 못드리겠습니다.

분명 작성자님의 상황도 있을테니까요. 

다만 작성자 분께서 오늘 이 글들로 어떠한 선택을 하시더라도, 그 선택을 번복하지 못하는 그런 극단적인 선택이 아니라는 것입니다. 뭔가 많은 고민들을 하고 신중히 선택했다고 하더라도 중간중간에 ' 아 .. 이게 아닌가?' 싶은게 인생입니다.

우선 지금은 고민을 접고 실행을 하실 때입니다. 아직 작성자분이 스프링을 제대로 겪어보지 못하여서  거부감이 드는걸 수도 있습니다. 우선 수강을 완강한다던가, 만들고 싶으신 서비스를 만들어보신 이후에 생각해도 될 것 같은 느낌이 드네요. 

할 수 있습니다.

Eden님의 프로필 이미지
Eden
질문자

글로 질문을 드렸지만 완전 정확하게 제 생각과 심정을 이해하고 캐치하셨네요

고민을 접고 실행을 해보겠습니다

아직 제대로 공부를 해보지 못했기 때문에 벌써 지루하다, 어렵다로 느끼는 것 같네요

고민도 해결되었고 특히 마지막 부분의 말씀이 큰 위로가 되었습니다

답변자님의 마지막 답변은 제가 힘들때, 혹시 뭔가 후회될때 다시 들어와서 읽고 싶어지네요

답변들 모두 메모장에 복사해놓아야겠어요

시간 내어 답변 주셔서 진심으로 감사한 마음입니다

잊지 않겠습니다 감사합니다 :)

0

안녕하세요. Eden님, 공식 서포터즈 OMG입니다.

자바와 웹개발에 대한 학습이 적은 상태라면 당연히 어려울 수 있습니다.

영한님의 스프링 강의는 자바에 대한 경험과 지식이 어느정도 되는 분들을 대상으로 진행이 됩니다.

강의에서 요구하는 선수지식으로는 자바 언어와 관계형 데이터베이스의 기초이며 해당 내용을 학습하신 분들에게 적합한 난이도라 생각됩니다.

자바 문법책을 최소 1회 독은 하셔야 문법관련하여 모르는 내용이 나왔을 때 모르는 부분만 빠르게 학습하여 강의를 원활히 진행하실 수 있습니다.

질문에서 얘기하신 JSP는 스프링 커리큘럼 중 MVC1편에서 잠깐 다루고 지나갑니다(비중이 크지 않습니다)

템플릿 엔진의 이해 측면에서 도움이 될 수 있지만 시간을 투자하면서 까지 학습하기에는 강의에서 추구하는 방향성(최신 기술 트렌드)과 맞지 않다고 봅니다.

그래서 제가 추천하는 방법은 기본적인 HTML태그, 자바와 관계형 데이터베이스 기초 관련하여 학습 후 수업을 수강하는 것을 권장드립니다.

감사합니다.

Eden님의 프로필 이미지
Eden

작성한 질문수

질문하기