웹 벡엔드 질문이요

조회수 1755회

벡엔드쪽을 자바나 스프링으로 공부하라는 이야기를 듣고 공부하려는데요 자바<< 구글링을해도 스프링이나 php처럼 자바는 없네요 자바기반의 jsp를 칭하는소리가 웹에활용되는자바인가요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

3 답변

  • 아뇨 서블릿은 자바로 만드는 cgi라고 볼 수 있는 겁니다.

    php는 php로 서블릿이 아닌 cgi를 만드는 것이구요. 자바로 서블릿을 만들어 보면 느낄 수 있는데 서블릿에서 화면(html) 생성까지 해야합니다.

    자바언어로 println("") 와 같은 형식으로 html을 만들어내야 하는데 이것이 대단히 번거롭습니다. 그런이유로 jsp와 같이 html와 섞어쓸 수 있는 스크립트 형태의 기술을 내놓은겁니다.

    자바언어와 html을 섞어서 작성하면 알아서 java파일로 생성해주고 서블릿 class로 컴파일합니다.

    그 다음 mvc 프레임웍크의 대두인데... jsp의 단점은 무엇인가하면 데이터처리와 화면이 한개 파일에 몰리게되다보니 유지보수도 힘들고 재활용도 힘듭니다.

    jsp에서 데이터베이스 접속도 하고 그렇게 가져온 데이터를 가공후 화면생성까지 1개의 jsp에서 다 처리하는 겁니다. 그렇다보니 jsp 한개 파일이 보통 수천라인에서 수만라인이 넘게 됩니다. 그래도 작은 시스템이면 그럭저럭 운영할만 합니다만 규모가 커질수록 힘듭니다.

    그러한 이유로 mvc기반의 프레임워크가 각광받게 됩니다. 모델(데이터)과 뷰(화면)을 분리해서 객체지향의 5대 원칙(검색해보세요)을 최대한 지키자는 겁니다.

    프레임워크를 이용해서 개발을 하면 최소한 그 뼈대위에 만들어지게 되므로(그 뼈대를 벗어날 수 없으므로) 숙련도가 낮은 개발자가 해도 어느정도 완성도를 보장받게 됩니다.

    • 아직 정확한 공부를 해보지않아서 뜬구름같은 느낌으로 다가오지만 설명 정말 감사드립니다^^ 프론트 엔드 공부가끝나면 서블릿과 jsp 공부를 하고 그후에 스프링 공부를 해보아야겠습니다 순서를 알려주셔서 감사합니다! 알 수 없는 사용자 2018.1.17 10:00
  • 일단 용어 정리부터 하죠

    자바: 프로그래밍 언어

    스프링: 웹어플리케이션 프레임워크

    jsp: JavaServerPages 약자로 사용자가 요청시 동적으로 컴파일해서 서블릿을 만들어줍니다.

    아셔야 할 것이 jsp에서 java파일을 생성하고 컴파일하여 서블릿 즉 class 를 만들고 클래스로더가 그 class를 로딩합니다.

    자바는 무조건 class만 로딩이 가능합니다.

    또한 자바에서 웹으로 호출가능한(서비스 가능한) class를 servlet 이라고 합니다.

    즉 자바로 웹개발을 한다는 의미는 정확히는 servlet class 을 제작하는 것입니다.

    프레임워크는 그런 servlet 들을 이제 구조적으로 뼈대(프레임워크)를 잡아주는 역활을 하는 겁니다.

    • 답변감사합니다 그럼 서블릿을 만들기위한 자바를활용한 언어를 jsp라고 할수있고 서블렛을 잡아주는게 스프링 프레임워크인 거네요? Php도 서블렛을 만들기위한 언어이구요? 지금 프론트엔드쪽 공부를 마무리지으면 jsp공부를 하는게 좋을까요 어떤게 자주쓰이는지 알수있을까요? 알 수 없는 사용자 2018.1.16 19:45
  • Java라는 언어를 확장해서 WEB에 써먹는 언어가 Java Server Page라고 알고 있어요.

    Spring은, 그러한 JSP를 기반으로한 Web Framework로 알고 있고요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)