ercnam
3k
2019-12-02 11:10:42
14
2112

저는 왜 스프링부트가 레거시보다 어려워보일까요


익숙함의 차이일까요?


국비부터 여태까지 쭉 레거시만 다뤄봤습니다.

이번 쇼핑몰 프로젝트 시작하면서

기왕 하는거 스프링부트도 써보고 Git 형상관리에 젠킨스나 쿠버네티스를 이용한 배포관리까지 쭉 해보자는 마음을 먹었는데..

(근데 젠킨스랑 쿠버네티스가 둘중 하나 택일하는 개념이 아닌가 보네요;;??)


부트부터 막히네요 ㅋㅋㅋ

아니... 초반 세팅을 미리 잡아줘서 레거시보다 건드릴게 없는게 장점 아니었나요

전 왜 레거시보다 있는게 없죠 ㅋㅋ

index.jsp 도 안만들어주고.......

properties 열어보면 레거시는 xml로 이거저거 쫙 적혀있었는데

이건 쌩 백지고....


프로젝트 만들때 dependency에 필요한거 나름 체크했는데도

pom.xml엔 몇개 안써져있는데 메이븐 폴더 보면 뭔가 엄청나게 많은게 들어있고...


좀더 찾아보니 부트는 자체적으로 톰캣 내장이라는거 같네요??

이러면 배포는 어떻게 하죠?? 서버에 톰캣을 띄울 필요 없다는것..???


아 시간허비할 여유 없는데.. 당장 서버에다 hellloworld 띄워보고 싶은데 흑흑

그런 의미에서 책 추천 부탁드립니다. 블로그 돌아다니는건 다들 말이 달라서 역시 못하겠네요 ㅋ

0
1
  • 댓글 14

  • 토호호
    517
    2019-12-02 11:26:01 작성 2019-12-02 11:28:52 수정됨

    레거시랑 부트랑 차이가 상당합니다.

    저도 레거시 부터 접한 사람인데 레거시에서는 잘만 되던게 부트에서는 안되는게 상당히 많습니다.

    하지만 부트의 장점도 무시 못하겠더라구요. 예를 들어 아래와 같은 생각이 드네요.

    1. 초기 설정 정말 편하게 되어 있습니다. 

    2. XML 많이 걷어내서 자바로만 가능합니다.

    3. 라이브러리 자동 설정 편리합니다.

    등등 있다고 생각합니다...


    레거시와 부트 어떤거를 사용해야 될지는 아키텍쳐 설계에서 정해야 된다고 생각합니다.

    부트의 기본 설정을 고쳐서 무언가 해야되는게 많은 시스템이 된다면 부트를 사용하면 오히려 독이 되더군요.

    예를 들어 웹 설정을 고친다거나 xml 파일로 설정을 변경한다거나 이런 경우는 무조건 레거시가 좋은거 같더라구요.


    배포는 내장톰캣을 이용해서 하실거면 jar로 그게 아니면 war로해서 기존의 외장 톰캣으로 하면 됩니다. 차이는 없고요.

    그리고 부트는 properties로 설정을 많이 합니다. xml로 설정하면 충돌나는게 많고요.

    부트 자료는 영어로 구글링해보시면 많이 나옵니다. 한국은 레거시가 메인인거 같아요...

    0
  • 더미
    14k
    2019-12-02 11:26:26
    그런것보다 공부가 좀 필요하실거 같아요.
    2
  • abilists.com
    1k
    2019-12-02 11:28:52
    다른 사람이 다 하니깐 하는것 아닐까요? 전 boot샘플 만들어보고, 필요성이 없어 계속 XML로 가고 있습니다.
    0
  • load2000
    3k
    2019-12-02 11:30:18

    궁금해하시는 것들이 스프링 부트와는 크게 상관이 없습니다.


    1. index.jsp도 안만들어주고

    => 이거는 IDE에서 프로젝트를 만들때 생성해주는거 아닌가요?

    그리고 부트는 웹MVC 전용 프레임워크가 아니다 보니 뷰페이지에 대한걸 자동으로 설정해주진 않습니다.

    또한 부트는 jsp를 권장하지 않습니다. template 엔진으로는 thymeleaf를 공식적으로 지원합니다.

    jsp를 쓰고자 한다면 관련 라이브러리를 추가하시고 webapp의 path와 view resolver등을 설정해주셔야 합니다.


    2. properties 열어보면 레거시는 xml로 이거저거 쫙 적혀있었는데

    => 기본적인 설정은 이미 다 되어 있습니다. 커스텀하게 바꿔 줄 설정만 적어주시면 됩니다.

    XML로 설정해서 읽어주시거나 javaconfig을 사용하시면 되겠습니다.


    3. 프로젝트 만들때 dependency에 필요한거 나름 체크했는데도

    pom.xml엔 몇개 안써져있는데 메이븐 폴더 보면 뭔가 엄청나게 많은게 들어있고...

    => 이건 메이븐이나 IDE의 자동생성에 관련된거니 부트랑 상관이 없네요. 패스


    4. 좀더 찾아보니 부트는 자체적으로 톰캣 내장이라는거 같네요??

    이러면 배포는 어떻게 하죠?? 서버에 톰캣을 띄울 필요 없다는것..???

    => 내장 was를  포함하고 있기 때문에 main 클래스를 실행하는 것만으로도 web applicaiton을 실행할 수 있음

    war로 배포하기 위해서는 SpringBootServletInitializer를 상속받아 오버라이드해서 war로 빌드하면 됩니다.

    0
  • load2000
    3k
    2019-12-02 11:41:28

    그리고 또 오해하시는게


    '레거시 스프링' vs 스프링부트?
    레거시라고 언급하시는 스프링은 스프링 web mvc 라이브러리를 말씀하시는것일텐데

    스프링부트에도 이 라이브러리는 있습니다.

    스프링부트로 webmvc 프로젝트를 만들어야 한다면 똑같이 이 라이브러리를 포함시켜야 합니다.

    그리고 레거시라 부르는 스프링 또한 사라진게 아니라 꾸준히 버전업되어  나오고 있습니다.(5버전까지 나와있습니다)


    스프링부트는 xml 설정이 없다?

    똑같이 xml로 설정할 수 있습니다.

    다만 xml보다는 javaconfig을 권장하고 스프링 공식홈페이지에서도 javaconfig을 기본으로 설명하고 있습니다.

    0
  • ercnam
    3k
    2019-12-02 11:53:59

    음...그렇군요..

    레거시도 계속 버전업이 된다는 의미는

    레거시가 부트로 대체되는게 아니고 둘이 나란히 간다는 의미로 봐도 되겠지용..?


    전 또 레거시는 말그대로 퇴물이고 앞으로는 꼭 부트를 써야하는줄 알고 = =;;;

    쫌 생각을 해봐야 할 문제인것 같습니다...흠흠..

    0
  • load2000
    3k
    2019-12-02 12:02:44

    네 맞습니다! ㅎㅎ

    스프링재단(?) 에서는 부트를 좀 더 밀어주고 있기는 하지만

    https://spring.io/projects 에 보시면 Spring Framework라고 별도로 되어 있습니다.

    0
  • 네파리
    200
    2019-12-02 12:13:56 작성 2019-12-02 12:14:43 수정됨

    개인적으로 그럭저럭 하고있었는데 트랜잭션 처리부터 빡치더군요.

    그리고 내부 톰켓사용시에는 jar로 배포해서 java로 실행시키시면 알아서 돌고 외부톰켓 사용하실경우에는 또 셋팅 바꾸고 war로 배포해야 합니다.

    레거시에서는 필요도 없는거 엄청 넣은거라면 부트는 내가 필요한거를 셋팅해서 붙이는 재미가 있는거 같은데 평소에 고민할 필요도 없이 호출하는것들이 셋팅한다고 생각하면 힘든게 많더라구요.

    0
  • rebwon
    394
    2019-12-02 13:26:39

    레거시 부트 둘다 사용해봤는데 저 개인적으로는 부트가 조금 더 편한거 같아요 개인차가 있겠지만

    저 같은 경우는 xml 설정이 너무 많은게 싫었어요 부트를 접하니까 커스텀한 설정은 resources 폴더에 application.properties에 써넣으면되고 개발 내적으로 설정할때도 JavaConfig가 더 편한거 같구요.

    무엇보다 레거시와 가장 큰 체감이 드는 부분이라면 라이브러리 버전에서 깨질 이유가 없다는거죠 스프링부트가 그 버전에 맞는 라이브러리만 가져오기 때문에 개발하는데 전혀 불편함이 없었어요.

    0
  • codejcd
    6
    2019-12-02 15:55:38

    저는 boot 가  더 좋습니다.

    boot 의 장점으로는 레거시할때 관습적으로 하던 comopnent-scan 설정하는거부터

    따로 안잡아줘도 되닌까요.

    logging 도 기본적으로 지원되는게 있고 properties 세팅도 간단하며,

    dbcp 도 최근 2.x 버전부터 hikari로 기본으로 세팅됩니다.

    조금만 튜토리얼 찾아보면 설정하는 법은 간단하구요.

    그리고 tomcat 세팅도 따로 할필요 조차 없죠.

    물론 레거시 해본분들이야 로컬에서 tomcat 세팅하는건 일도 아니겠지만요.

    튜토리얼은 잘 정리해둔 외국분이 있어서 공유해드립니다.

    https://github.com/eugenp/tutorials


    0
  • 빵상
    2019-12-02 16:53:51

    초기 셋팅의 간편화가 부트의 이유 아니었나요??

    부트와 레거시는 다르지 않다고 생각합니다.

    편할뿐..

    0
  • 자라선
    1k
    2019-12-02 18:09:19

    둘의 차이점으로는 임베디드 톰캣 말고는 생각나는게 없네요

    어차피 둘다 프레임워크이니 필요한것만 가져다 쓰니깐

    0
  • 즈루시
    2019-12-02 19:29:01

    설정의 편리함이죠. xml config 오탈자 나는거 찾는 수고보단 java configuration 이 얼마나 좋은데요 ㅠㅠ

    물론 모놀리식 형태로 실무에 사용할만큼 세팅하려면 꽤 많은 수고를 요하는건

    부트도 동일하다고 생각합니다


    XML 세팅으로 5분만에 JPA-REST 어플 띄울수 있나요? 부트의 강점은 작은 어플 세팅에 있는것 같아요

    점점 MSA 에 최적화 되는...

    0
  • 김을동
    541
    2019-12-03 07:11:39

    글읽고 장점 쓰려니 여러분들이 다 달아주신...ㅋㅋ

    부트 익숙해지면 자바프로세스 원하는거 만드는건 뚝딱..

    0
  • 로그인을 하시면 댓글을 등록할 수 있습니다.