본문 바로가기
강의/웹 프로그래밍(풀스택)

부스트코스 웹 프로그래밍(풀스택) - 1. 웹 프로그래밍 기초 - 4-6-1 강의 정리

by 리드민 2022. 4. 10.
반응형

[1] 강의

웹 프로그래밍(풀스택)

4. 개발환경 설정 -BE

6) HelloWorld 서블릿 컴파일 및 실행하기-1

https://www.boostcourse.org/web316/lecture/254267?isDesc=false 

 

웹 프로그래밍(풀스택)

부스트코스 무료 강의

www.boostcourse.org

 

[2] 개념 정리

자바 웹 어플리케이션 : 웹 브라우저와 웹 기술을 사용하여, 사용자와 대화하는 대화식으로서 인터넷을 이용하는 일종의 컴퓨터 프로그램

HttpServlet : 사용자가 정의하던 service()를 담은 상속 클래스이다. 사용자의 요청을 처리하는 doGet()/doPost() 메소드 등은 Http ServletRequest와 HttpServletResponse 객체를 매개변수로 가지고 있다. 

Dynamic Web Project : 자바 서블릿 기반의 웹 애플리케이션

서블릿(Servlet) : 웹 브라우저에서 요청이 들어오면 웹 컨테이너에서 웹 페이지를 동적으로 생성하고 웹 브라우저에 응답하는 서버 사이드 자바 프로그램

 

[3] 강의 정리

  이번 강의에서는 웹 애플리케이션 프로젝트를 생성해보도록 하겠다. 애플리케이션에 대해서 자세히 설명하기 전에 이번 수업에서는 가볍게 따라가기 방식으로 자바 웹 애플리케이션을 작성해보도록 하겠다. 자바 웹 애플리케이션을 작서하기 위해서는 프로젝트를 하나 생성해야한다. 프로젝트를 생성할 때 우리 Perspective가 Java perspective로 선택이 되어 있느나 Java EE perspecrive로 선택이 되어 있었느냐에 따라서 조금 메뉴의 구성이 달라진다. Java EE는 웹 애플리케이션을 만들 때 조금 더 편한 환경을 제공한다는 설명을 했었다. 자바 애플리케이션을 만들 때는 Java라는 Perspective가 조금 더 편한 환경을 제공한다고 설명을 했었던거 기억하는가? 프로젝트를 생성하는 메뉴에서부터 살짝 보자. 일단은 Java perspective를 선택한 상태에서 File의 New라는 메뉴를 봤더니 Java Project는 이렇게 메뉴상에 나와있는데 웹을 만들기 위한 프로젝트 위자드는 없다. 그래서 Project를 선택하고 이 Wizards에서 찾아줘야 한다. 웹이기 때문에 아래쪽으로 쭉 내려가면 Web 메뉴 안에 이런 Dynamic Web Project라는 것을 볼 수 있을 것이다. 다시 Java EE라는 Perspetive를 선택해 보자. Java EE라는 Perspective가 선택이 되어 있었을 때의 메뉴의 구성을 보니 Dynamic Web Project라는 것이 바로 선택하기 쉽게 나와있다. 웹을 개발할 때 더 편한 환경을 제공한다고 했었다. 어디에서 선택하던지 상관은 없다. 편한 부분으로 하면 된다.

  프로젝트 이름을 적으면 된다. 프로젝트는 소문자로 시작한다. 웹을 만드는데 첫 번째니 얘도 firstweb이라는 프로젝트 이름을 하나 지정해주면 된다. 다음 자바 애플리케이션은, 지금 웹 애플리케이션은 혼자 실행될 수 없고 반드시 WAS 안에 있어야지 실행이 된다고 했던거 기억하나 WAS가 이 웹 애플리케이션을 실행하도록 도와주는 기능을 가지고 있다. 그렇기 때문에 Target runtime 이라는 것을 설정해 주면된다. 우리는 WAS 중에서 톰캣을 사용한다고 했었다. 그래서 톰캣을 지정하면 된다. Target runtime을 지정할 때는 New Runtime이렇게 선택해서 지정하면 된다. 참고로 두 번째, 세 번째 웹 애플리케이션을 만들 때는 기존에 설정했던 runtime을 사용하면 되기 때문에 계속 지정해주자 하고 이 부분을 계속하지는 않는다. 앞에서 Apache Tomcat을 WAS로 사용하겠다 했기 때문에 Apache Tomcat을 이용하면 되는데 그 이외에 다른 WAS들도 많이 보이고 있는 것을 볼 수 있다. 다음에 교육 과정에서는 Apache Tomcat을 사용하지만 다른 WAS를 사용한다면 이부분에서 알맞은 WAS를 선택해주면 된다. Tomcat 중에서도 우리는 8.5 버전을 사용하기로 했기 때문에 8.5버전을 선택해주면 된다. 선택하고 Next. 그리고 이 Tomcat의 installation directory를 지정하세요라고 나올 거다. 한번 지정했던 적이 있었었기 때문에 지금 경로가 채워져서 나온다. 한 번도 지정한 적이 없으면 경로가 보이지 않을 거다. 그럴 때는 Tomcat을 설치한 경로를 찾아가서 선택해주면 이 경로를 찾아서 지정할 수가 있다. 이렇게 선택했으면 Finish하면 된다. 마지막 Finish 버튼을 선택하면 이렇게 자바 웹 애플리케이션이 생성되는 걸 볼 수 있다.

  마찬가지로 활성화시켜서 디렉토리 구조들을 잠깐 한번 보면 좋을 거 같다. 참고로 아까 Perspective 물어봤는데 이때의 Perspective는 개발자에 따라서 선호하는 부분이 다른 것 같다. 웹을 개발할 때도 Java perspective가 더 편하다고 Java perspective를 사용하는 개발자들도 있다. 그래서 Perspective에 따라서 기능이 달라지거나 이런 부분은 아니다. 조금 더 작업 환경을 편하게 해준다 정도라고 생각하면 좋다. 일단 웹 애플리케이션을 우리가 만들어 봤다. 이번 강의의 목표는 끝났다. 콘솔 창에서 보이지 않는 디렉토리나 이런 것들도 더 존재하는지 살펴보자. 콘솔 창에서 firstweb 들어가서 저번 시간에 배웠던 tree /f라는 메뉴를 이용해서 한 번 살펴보면 .classpath, .project 같은 파일들이 보인다. .settings 이 안에 파일들도 많이 들어있는 걸 볼 수 있다. build라는 디렉토리, classed라는 디렉토리. 여기에서는 보이지 않지만 그런 부분이 확인이 되는 것들도 볼 수 있다. 웹 애플리케이션을 구성하기 위해서는 저런 파일들과 저런 디렉토리들이 필요한 것을 기억하면 좋다. 이번 시간에는 이렇게 웹 애플리케이션을 하나 만들어봤다.

 

[4] 코드 정리

package examples;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class HelloServlet
 */
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
    
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
		out.println("<h1>Hello World</h1>");
	}

}
반응형