개발새발

4. [웹 프로그래밍 기초] 개발환경 설정 - BE 본문

[부스트코스] 웹프로그래밍/웹 프로그래밍 기초

4. [웹 프로그래밍 기초] 개발환경 설정 - BE

재래김유진 2019. 11. 20. 03:39
728x90
반응형

1) JDK 다운로드하기 및 설치하기 

java언어를 사용하는 개발자는 java언어로 작성된 소스를 컴파일하고 관리할 필요가 있다.

이때 사용되는 도구가 JDK(Java SE Development Kit).

컴파일한 결과를 실행하기 위해 JDK안에는 JRE가 포함되어있음.

 

[Mac용 설치]

http://www.oracle.com/technetwork/java/javase/downloads/index.htm

[생각해보기]

1. JDK가 운영체제별로 설치 파일을 제공하는 이유는 무엇입니까?

  - JDK가 운영체제별로 설치 파일을 제공하는 이유는 JAVA파일은 운영체제에 독립적으로 작동하기 때문입니다.
.java 파일로 작성한 자바파일이 .class파일로 컴파일되어 실행되는데, Windows든 OS든 상관없이 실행됩니다. 이렇게 운영체제에 상관없이 실행되는 것을 독립적이라고 이야기하는데, 이렇게 독립적으로 파일이 실행되기 위해서는 실행되는 환경 즉, JRE가 제대고 갖춰져 있어야 하며, 이 때문에 JDK를 설치할 때 운영체제별로 다르게 설치하는 것입니다. (JRE는 JDK에 포함됨)

 

 

2) 환경 설정하기

-> 콘솔 창에서 잘 실행될 수 있도록.

 

[windows, Mac 환경 설정]

https://www.edwith.org/boostcourse-web/lecture/16681/

 

[생각해보기]

1. 자바로 작성된 프로그램을 실행하려면 JRE만 설치하면 됩니다. 이때는 환경변수를 설정할 필요가 없습니다.

2. 그런데, JDK를 설치할 때는 환경변수를 설정해야 합니다. 환경변수를 설정하는 이유가 무엇일까요?

  - 환경변수에 등록된 경로는 컴퓨터의 어떤 경로에서라도 접근(=실행) 할 수 있다. 즉, 파일의 접근을 쉽고 편하기 하기 위함.

3. 현재 설치된 JDK보다 높은 버전의 JDK를 설치했습니다. 이때 수정해야 할 환경변수는 무엇일까요?

  - 경로가 있는 JAVA_HOME 변수를 수정해야 한다.

 

 

3) 이클립스 다운로드하기 및 설치하고 인코딩 설정하기

 

이클립스 = java 프로그램 개발할 때 좋은 도구.

다양한 운영체제에서 동작하며 다양한 언어로 개발할 수 있는 통합개발환경 (코딩, 디버그, 컴파일, 배포 다됨) 

 

[생각해보기]

1. 이클립스는 자바로 만들어진 프로그램입니다. 이클립스가 실행되기 위해서 설치되어 있어야 할 프로그램은 무엇일까요?

  - 자바로 만들어졌으면 JDK가 있어야 한다.

2. 이클립스에 모든 플러그인을 제거하면 빈 윈도우만 남는다고 하였습니다. 플러그인을 제작할 수 있다면, 이 빈 윈도우에 플러그인을 채워 넣을 수 있을 것입니다. 이런 방식으로 개발하는 것을 이클립스 RCP(Rich Client Platform)이라고 말합니다. 이클립스 RCP를 이용하여 만들어진 소프트웨어에는 어떤 것들이 있을까요?

  - Smart GWT / Windowbuilder 등

 

 

4) HelloWorld 컴파일하고 실행하기 

 

[생각해보기]

1. 이클립스와 같은 통합개발환경(IDE)이 없다면 어떻게 개발할까요? 

  - 다양한 언어들을 사용할 때마다 그 언어에 맞는 프로그램들을 하나하나 설치해야 하고

    코딩 따로 디버그 따로 컴파일 따로 배포 따로 해야겠지

   (코드 편집기로 java 프로그램 작성하고 cmd 창에서 명령어로 일일이 컴파일하고 디버깅도 힘듦)

2. 이클립스와 비슷한 통합개발환경은 어떤 것이 있을까요?

  - intellij, visual studio, android studio

 

[참고 링크] 자바 코딩 규칙(Java Code Conventions)

https://myeonguni.tistory.com

 

[코딩규칙] 자바 코딩 규칙(Java Code Conventions)

[코딩 규칙] 자바코딩 규칙(Java Code Conventions) 자바 프로그래밍 언어 코딩 규칙 원문 : Oracle / Code Conventions for JavaTM Programming Language / 1999-4-20 번역 : Kwangshin's Positive Blog, Java Co..

myeonguni.tistory.com

 

 

5) Tomcat 다운로드하기 및 설치하기

 

[Apache Tomcat]

WAS 중 하나.

컴퓨터에 운영체제를 설치해야 컴퓨터를 사용할 수 있는 것처럼 

자바를 이용하여 작성된 웹 애플리케이션은 WAS가 있어야 실행할 수 있다.

 

혼자 처음 tomcat 연동시킬때

내가 톰캣 경로를 libexec까지 해놔서 bin 까지 하면 안 됨.

server 가서 톰캣 연동시켰으면

[프로젝트 우클릭] - [properties] - [java build path] 가서 톰캣 추가

또는, [프로젝트 우클릭] - [properties] - [projectFacet] - 자바 클릭 - 오른쪽 runtiem tomcat 확인

 

[생각해보기]

1. Apache Tomcat 외에 WAS는 어떤 것들이 있을까요? 

  - IBM Websphere, Oracle Web Logic, Redhat JBOSS, Caucho Resin, Tmax jeus(국내 기업TmaxSoft사에서 만든 한국산 웹 애플리케이션 서버)

2. WAS가 없으면 웹 애플리케이션은 왜 실행할 수 없을까요?  

  - WAS는 PC에 Windows와 같이 Web에서의 운영체제(Operating System : OS)라고 생각하면 됩니다. 예를 들면 Web에서 사용되는 JSP나 Servlet 등이 실행되기 위해서 WAS가 필요한데, OS가 PC에서 프로그램을 실행할 수 있는 기초적인 환경을 제공하여 주는 것과 같이 WAS는 웹 애플리케이션(웹 시스템, 웹 서비스 등)을 실행할 수 있는 기초적인 환경을 제공하여 주기 때문에 WAS가 없으면 웹 애플리케이션을 실행할 수 없습니다.

 

 

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

firstWeb project를 만들고 Servlet file을 만들었는데

이렇게 에러가 났다 

원인 : "The import javax.servlet cannot be resolved" -> javax.servlet을 가져올 수 없다

해결 : [프로젝트 우클릭] - [javabuildpath] - Add External JARs - 톰캣 다운로드된 곳에서/lib -(jsp-api.jar 랑 servlet-api.jar) 가져오기

깰꼼!!

[servlet으로 web에 HelloServlet 띄우기]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package examples;
 
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
 
/**
 * Servlet implementation class HelloServlet
 */
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
    /**
     * Default constructor. 
     */
    public HelloServlet() {
        // TODO Auto-generated constructor stub
    }
 
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    
    //doGet -> 화면에 보여주겠다.
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset-UTF-8");    //응답결과는 이런내용으로 갈거야
        PrintWriter out = response.getWriter();
        out.print("<h1>Hello servlet</h1>");
    }
 
}
 
 
 

URL 주소

http://localhost:8080/{프로젝트 이름}/{URL Mapping값}

http://localhost:8080/firstWeb/HelloServlet

 

[생각해보기]

1. 어떤 과정을 거쳐서 브라우저에 'Hello World'가 출력될까요?

  - [ 웹브라우저 <-> 웹서버( 아파치 ) <-> WAS( 톰캣 ) <-> 웹 애플리케이션 ]

우선 HelloServlet.java 파일은 HelloServlet.class로 변환됩니다.  그리고 톰캣( 서블릿 컨테이너 )이 HelloServlet.class를 Servlet 규칙을 통해 실행하고 결과를 웹서버에 전달합니다. 그리고 웹서버는 http통신 프로토콜과 함께 해당 정보를 브라우저에 뿌려줍니다.

 

**Servlet의 라이프사이클은 [ 생성자 -> init() -> service() -> doGet or doPost -> destroy() ]로 되어 있습니다.

init() 다음 스레드를 생성하여 다양한 사용자들의 요청에 대응하고, 서비스는 사용자 요청이 get인지 post인지 판별해서 doGet or doPost로 보내게 됩니다.(default : get방식)

Servlet은 초기화를 init()에서 수행하게 되고 doGet과 doPost는 JSP의 작업을 구현해주어서 'Hello world'를 출력합니다.

 

728x90
반응형
Comments