인텔리제이 스프링부트에 적합한 프론트기술을 알고싶습니다. 고수님들 꼭좀 부탁드립니다ㅠ
현재 어플을 만드는것을 목표로 공부중인 극초급개발자입니다.
국비지원교육을 통해 기초적인 스프링과 메이븐만 배운상태라 실습을 통해 추가적인 공부를 할 계획입니다.
트랜드에 맞춰 인텔리제이, 스프링부트, 그레들, 리엑트 를 통해 만들고싶습니다.
그런데 관련된 교육들을 아무리 찾아봐도 저 4가지를 통해 교육하는 곳은 여태 한번도 보지 못했습니다.
그나마 비슷한 가장 유명한 교육은 스프링부트,그레들 과 함께 타임리프 라는 프론트툴을 사용하더군요..
결론적으로,
저는 인텔리제이, 스프링부트, 그레들, 리엑트 네이티브 를 통해 최신트렌드의 어플을 만들고싶은데 욕심인걸까요?..ㅠㅠ
아니면 3가지의 조합이 충분히 가능한걸까요.. 꼭좀 답변 부탁드립니다.
읽어주셔서 감사합니다(_ _)
결론부터 말씀드리면 스프링부트+그래들+리액트를 학습하시는 것은 괜찮은 조합인 것 같습니다.
여기서 주의할 점은 학습하고 경험해보기에는 괜찮은 조합이기는 합니다만 실제 업무적으로 사용하는 것은 다른 얘기일 수 있습니다.
회사에서 개발을 한다고 하면 회사의 개발 환경 등의 영향을 받을 수 밖에 없는데
항상 위와 같은 환경에서 개발이 이루어지는 것은 아니기 때문입니다.
그럼에도 불구하고 학습하고 경험하기에 괜찮은 조합이라고 생각하는 이유는 다음과 같습니다.
1. 설명드리기에 앞서
일단 이 주제를 말씀드리기에 앞서 타임리프와 리액트는 조금 개념이 다르다고 보시면 될 것 같습니다.
타임리프는 자바쪽에서 사용되는 템플릿 엔진에 가깝고 리액트는 프론트 개발에 사용되는 프레임워크에 가깝습니다.
템플릿과 프레임워크는 개념적으로 차이가 있습니다.
템플릿은 최대한 HTML과 비슷한 방식을 취하면서 뷰쪽을 작업하기 편하게 만들기 위한 라이브러리 정도로 이해하시면 될 것 같고,
프론트 프레임워크는 뷰단을 좀 더 강력한 기능으로 구현하기 위해 Totally하게 제공되는 집합체라고 이해하시면 될 것 같습니다.
즉, 템플릿은 뷰쪽 작업을 좀 더 편하게 하기 위한 것(정말로 편한지는 논란이 있습니다만)이 목적이라면
프론트 프레임워크는 좀 더 강력하고 확장성있는 뷰를 만들기 위한 것이 목적이라고 보시면 될 것 같습니다.
2. 스프링부트+그래들의 사용
최신 트랜드의 어플을 만들고 싶어서 스프링부트+그래들을 써보고 싶다고 하셨습니다만
스프링부트+그래들이 최신 트랜드의 기술이냐 아니냐는 보는 관점에 따라 다를 것 같습니다.
하지만 최신 트랜드인지 아닌지를 떠나서 스프링부트+그래들은 많이 사용되는 서버단 프레임워크이기는 합니다.
이 환경에서의 수요는 여전이 많이 있으며 이 환경만 잘 익혀도 현재로서는 개발자들이 먹고 사는데 지장이 없습니다.
따라서 이 선택이 정답이라고 말하지는 않더라도 최소한 나쁜 선택은 아니라고 볼 수 있겠습니다.
3. 리액트의 사용
리액트가 최신 기술이냐에 대해서는 현재는 대부분은 예스라고 동의하는 상황일 것입니다.
리액트는 과거의 프론트 개발 방법을 획기적으로 바꾼 프레임워크이며 향후에도 당분간은 상승세를 유지할 것으로 보입니다.
리액트가 최신 기술인 이유는 모바일과 PC의 비약적인 발전과도 관련이 있습니다.
만약 과거의 컴퓨터 환경에서 리액트가 나왔다면 인정받지 못할 기술일 수 있습니다.
왜냐하면 리액트가 사용하는 가상 DOM은 메모리가 부족한 과거의 환경에서는 적합하지 않을 수 있기 때문입니다.
하지만 모바일이 발전하고 PC의 사양이 높아지면서 이러한 상황에 맞는 프레임워크가 결국은 등장한 것이고 그것들중의 하나가 리액트일 것입니다.
사실 그런 의미에서 우리가 서비스를 개발하기 위해 반드시 리액트를 써야 하는 것은 아닙니다.
대부분의 웹페이지는 일반적인 HTML, 자바스크립트만으로도 얼마든지 빠르고 성능 좋은 페이지를 쉽게 만들 수 있습니다.
여기서는 질문자님께서 말씀하신 "최신 트랜드"라는 기준을 감안해서 보기에 괜찮은 선택이라고 말씀드릴 수 있겠습니다.
즉, 반드시 리액트를 이용해서 만들어야 하느냐는 다른 얘기이지만 최신 트랜드이냐라는 부분에서는 그렇다고 볼 수 있겠습니다.
4. 스프링부트+그래들과 리액트의 조합
그런 의미에서 "서버 환경에서는 스프링부트, 프론트 환경에서는 리액트"로 학습하고 경험하는 것은 괜찮은 선택인 것 같습니다.
이 경험을 잘 쌓으면 앞으로 최소한 개발자로 먹고 사는데는 당분간 지장이 없을 것 같습니다.
이 경험을 통해 자바 진영과 자바스크립트 진영을 모두 익힐 수 있게 되시고,
완전히 분리된 서버와 프론트 환경에 대한 연동을 경험하실 수 있으실 것 같습니다.
그 과정에서 다양한 개발 환경과 API 구축에 대한 경험들을 쌓으실 수 있을 것 같습니다.
요컨대, 더 트랜디하고 더 생산적이 조합들이 있을 수도 있겠습니다만
어차피 완전한 정답이라는 것은 없는 것이기에 말씀하신 조합도 나중을 위해 나쁘지 않고 충분히 가능하며 괜찮은 조합일 것 같습니다.