2022-04-08(금)

Jeongyun Heo·2022년 4월 8일
0

애플리케이션 아키텍처

thin client (성능이 낮은 컴퓨터) 가능!

서버에서 실행시키느냐 클라이언트에 실행시키느냐에 따라

Servlet : 서버에서 실행하는 작은 Application
Servlet API 규칙에 따라 만든 Java 프로그램

Java App. = Servlet

Java App. 관리자 = Servlet Container

Servlet 기술과 Java EE, Jakarta EE

Servlet 기술 (웹 애플리케이션 제작 기술)

EE = Enterprise Edition

기업에서 사용하는 프로그램의 특징
여러 사용자, 동시접속, 보안, 자원 공유

🔹 JavaEE
JavaEE : 기업에서 사용할 App. 제작 도구
Java SE를 포함하지 않는다
Java SE에 EE를 결합해야 됨

‐ 웹 기술
Servlet
JSP
JSTL
EL
...

로컬 객체
로컬이 아니라 다른 컴퓨터 있는 객체를 마치 로컬 객체처럼 사용
기업에서 사용하는 프로그램에서는 필요함
그래서 등장한 기술
‐ 분산 컴퓨팅 기술
EJB (Enterprise JavaBeans)
WebService
Java Persistance
JMS

‐ 관리 및 보안 기술
Java Security
Java Management

Eclipse 재단에 소스 관리를 위임
Java EE --> Jakarta EE
Java EE 8 이후로 Jakarta로 바뀜
패키지 이름도 바뀜
기존 소스가 100% 호환이 안 된다

Java EE 버전과 Servlet/JSP 버전

Servlet 2.5 -> 3.0
± 클래스, 메서드, 인터페이스

Java EE 5 -> 6
± 기술

3.1 버전을 쓰면 4 버전에 있는 클래스나 메서드를 사용하면 안 된다

Java EE 기술과 Implements(구현체)

Implements <- 기술 규약에 따라 동작하도록 만든 서버

Java EE | 구현체(서버)

Java EE 구현체와 애플리케이션 개발

고객사 --사용--> JEUS 7 (제품) --준수--> Java EE 6 (기술)
                                          ↑ 규칙을 따른다
                                         App 

Java EE 6 기술에 정의된 클래스와 메서드를 사용하여 프로그래밍을 한다

Tomcat과 Java EE

Java EE
‐ 웹 기술
Servlet
JSP
...
‐ 분산컴퓨팅
EJB
...

Tomcat 서버
Resin
Jetty
Undertow (JSP를 지원하지 않는다)
Servlet Container = Java EE 기술 중에서 웹 기술의 일부만 지원 = EJB 기술로 만든 자바 프로그램 실행 불가!

JEUS
Java EE 전체 기술 지원
Servlet/JSP 뿐만 아니라 EJB 기술을 사용해서 만든 클래스도 실행할 수 있다
JBoss
WebLogic (Oracle)
WebSphere (IBM)
Geronemo
GlassFish
JBoss 커뮤니티 서버

Tomcat 서버와 웹 애플리케이션

https://tomcat.apache.org/

https://tomcat.apache.org/tomcat-8.5-doc/index.html

/Users/nana/apache-tomcat-9.0.62/bin 로 가기

ls -al

chmod 755 *.sh

./startup.sh

./shutdown.sh

Web Application과 서블릿

웹 애플리케이션

/Users/nana/git/bitcamp-study/project-app3/app/build.gradle

plugins {
    id 'application'
    id 'eclipse-wtp' // 이클립스 웹 프로젝트를 다룰 수 있는 기능 추가
    id 'war' // 웹 애플리케이션 배포파일(.war)을 생성할 수 있는 기능 추가
}

repositories {
    mavenCentral()
}

dependencies {
  // Servlet API 라이브러리
  // => 컴파일 할 때만 사용하고, 배포할 때는 제외할 라이브러리
  providedCompile 'javax.servlet:javax.servlet-api:4.0.1'

  testImplementation 'junit:junit:4.13.2'
  implementation 'com.google.guava:guava:30.1.1-jre'
}

https://search.maven.org/artifact/javax.servlet/javax.servlet-api/4.0.1/jar

// gradle에서 빌드할 때 정보
tasks.withType(JavaCompile) {
    options.encoding = 'UTF-8'
    sourceCompatibility = '11'
    targetCompatibility = '11'
}

// eclipse에서 빌드할 때 정보
eclipse {
    project {
        name = "project-app3"
    }
    jdt {
      sourceCompatibility = 11
      targetCompatibility = 11
      javaRuntimeName = "JavaSE-11"
    }
}

eclipse 설정 파일 생성

웹 애플리케이션 제작

gradle build
배포 파일 생성됨

http://localhost:8080/web/index.html

@WebServlet("/hello")

gradle build

http://localhost:8080/web/hello?name=nana

다음 시간에서는 이클립스에서 톰캣을 띄우겠다

0개의 댓글