Devlog
article thumbnail

위 글은 해당 카테고리의 수업 강의 자료를 정리한 것입니다. 

 

 

 

 

1. 인터넷(네트워크 통신)의 이해

1.1 World Wide Web(WWW)의 발명

  • 1989년 HTML 개발
  • Hyperlink(문서와 문서 사이를 링크로 연결, 빠르게 이동할 수 있음) 개념을 도입한 문서 형식인 HTML(HyperText Makerup Language)도입, 인터넷 상의 논문을 연결
  • 문서에 주소를 붙이는 URL(Uniform Resource Locator) 개념 확립
  • 인터넷에 연결된 컴퓨터 사이에서 메시지를 주고 받을 수 있는 통신 규약인 HTTP 고안
  • WWW: 전 세계 인터넷 상의 콘텐츠를 연결, 공유할 수 있는 인터넷 기반 서비스

 

  • 인터넷과 WWW는 다름 (인터넷 != WWW)
    • (WWW는) 인터넷 기반의 대표 서비스 중 하나

 

  • 인터넷
    • TCP/IP 기반의 네트워크가 전세계적으로 확대되어 하나로 연결된 네트워크들의 네트워크 (네트워크의 결합체)
  • TCP/IP
    • 하드웨어, 운영체제, 접속 매체와 관계없이 동작할 수 있는 개방형 구조
    • OSI 7 계층에서 4계층으로 단순화

 

  • 서비스 (클라이언트/서버 통신)
    • 서버: 네트워크에서 서비스를 제공하는 컴퓨터
    • 클라이언트: 네트워크에서 서비스를 제공받는 컴퓨터
    • 서버와 클라이언트의 하드웨어적 구분은 사실상 없음

 

 

2. HTTP

  • HTTP(Hyper Text Transfer Protocol)
    • WWW 서비스를 위한 TCP/IP 응용계층 프로토콜 중 하나
    • 웹 서버와 클라이언트는 HTTP를 이용한 통신
    • 무 상태 연결 (stateless connection)

stateless

 

 

3. URL (Uniform Resource Locator)

  • 인터넷 상의 자원의 위치
  • 특정 웹 서버의 특정 파일에 접근하기 위한 경로 혹은 주소

 

  • 도메인명: www.cyber.co.kr과 같이 마침표로 구분하여 표현하는 이름
  • 포트번호: 엑세스 대상 서버 애플리케이션을 지정하여 사용하는 번호

 

 

 

 

scheme:[//[user:password@]host[:port]][/path[?query][#fragment]]

프로토콜://호스트네임.도메인네임/경로/파일

 

  • 프로토콜: 컴퓨터 사이의 원활한 데이터 전송을 위한 통신 규약 (ex. http, ftp, telnet)
  • 호스트네임: 인터넷에 연결된 컴퓨터 이름 (ex. www)
  • 도메인네임: 호스트네임의 일부분으로서 호스트네임을 더욱 세분화해서 식별, 보통 도메인이라 줄여서 부름 (ex. com, kr, net)
  • 디렉토리: 경로 표시, /로 구분하며 일반적으로 생각하는 카테고리 개념

 

 

4. 웹 프로그래밍

  • 정적인 (static) 웹 페이지 (웹프로그래밍, 퍼블리싱)
    • 웹 페이지는 HTML이라는 표준 마크업랭귀지로 작성

 

  • 정적인(static) 웹 페이지 처리 방식
    • HTML은 브라우저가 웹 페이지로 변환하는 언어
    • 정적인 웹 페이지는 파일 형태로 저장되어 있으면서 사용자의 입력에 따라 변하지 않는 HTML 문서
    • HTTP는 웹 브라우저와 웹 서버가 통신하는 프로토콜
    • 웹 브라우저는 HTTP 요청 (HTTP request) 메시지를 서버에 전달함으로써 웹 서버의 페이지를 요청함
    • 웹 서버는 HTTP 응답 (HTTP response) 메시지를 전달함으로써 HTTP 요청에 응답함, 정적인 웹 페이지에서는 HTTP 응답이 HTML 문서를 포함함

 

  • 동적인 웹 페이지를 만들어내는 모든 기술

 

  • 동적인(dynamic) 웹 페이지 처리 방식
    • 동적인 웹 페이지는 웹 어플리케이션에 의해 생성되는 HTML 문서, 웹 브라우저가 웹 애플리케이션에 전달한 파라미터 값에 따라 웹 페이지가 변함
    • 웹 서버가 동적인 웹 페이지에 대한 요청을 받으면 서버는 웹 애플리케이션으로 요청을 넘김, 그러면 애플리케이션이 HTML 문서를 생성하여 웹 서버로 결과를 전달함
    • 웹 서버는 HTML 문서를 HTTP 응답(HTTP response)으로 감싼 후 브라우저로 결과를 전달함
    • 전달 받은 HTML 문서가 정적인 HTML 파일에서 왔는지 아니면 웹 애플리케이션에 의해 동적으로 생성된 문서인지 브라우저는 알지 못함, 어느 쪽이든 브라우저는 전달받은 HTML 문서를 화면에 표시함

 

  • 정적 웹 페이지 VS 동적 웹페이지

정적 웹페이지 접근시 웹 문서 전송

 

동적 페이지 접근시 웹 문서 전송

 

  • 웹 애플리케이션에 필요한 구성 요소
    • Java 웹 애플리케이션은 JSP와 서블릿으로 구성됨
    • 서블릿 & JSP 엔진 또는 서블릿 & JSP 컨테이너는 서버에서 서블릿과 JSP를 구동할 수 있게 하는 소프트웨어
    • J2EE(Java 2 Platform, Enterprise Edition)는 웹 서버와 서블릿 & JSP 엔진이 어떻게 상호 적용해야 하는지를 명세하고 있음
    • 서블릿 & JSP 엔진이 동작하기 위해서는 SDK에 접근해야 함
    • EJB(Enterprise Java Beans)를 사용하는 웹 애플리케이션은 EJB container로 알려진 추가적인 서버 컴포넌트가 필요함

 

 

 

 

 

  • JSP 코드
<head>
<title>lecture 4 - Email List application</title>
     </head>
     <body>
     <%
        String firstName = request.getParameter("firstName");
        String lastName = request.getParameter("lastName"); 
     %>
	<h1>Thanks for joining our email list</h1> 
    <p>Here is the information that you entered:</p>
		<table cellspacing="5" cellpadding="5" border="1"> 
        	<tr>
                <td align="right">First name:</td>
                <td><%= firstName %></td> 
           </tr>
            <tr>
                <td align="right">Last name:</td> <td><%= lastName %></td>
            </tr>
        </table>
  • JSP (Java Server Page)
    • JSP는 HTML 코드 내에 Java 코드를 포함하는 형태로 구성됨
    • JSP 페이지가 처음 호출되었을 때 JSP 엔진은 JSP 코드를 서블릿으로 변환하고 컴파일함, 그리고 서블릿 엔진이 서블릿을 구동함

 

 

  • 서블릿 코드
public class EmailServlet extends HttpServlet{
        public void doGet(HttpServletRequest request,
                          HttpServletResponse response)
                          throws IOException, ServletException{
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            String firstName = request.getParameter("firstName"); 
            String lastName = request.getParameter("lastName");
            out.println(
                    "<html>\n"
                  + "<head>\n"
                  + "  <title>lecture 5 - Email List application </title>\n"
                  + "</head>\n"
                  + "<body>\n"
                  
                  + "<h1>Thanks for joining our email list</h1>\n"
                  + "<p>
                      Here is the information that you entered:
                     </p>\n"
                  + "  <table cellspacing=\"5\"
                        cellpadding=\"5\"
                        border=\"1\">\n"
                  + "  <tr><td align=\"right\">First name:</td>\n"
                  + "      <td>" + firstName + "</td>\n"
                  + "  </tr>\n"
                  + "  <tr><td align=\"right\">Last name:</td>\n"
                  + "      <td>" + lastName + "</td>\n"
                  + "  </tr>\n"
                  + "  </table>\n"
                  + "</html>);
  • 서블릿 (Servlet)
    • 서블릿은 서버에서 동작하는 Java 클래스
    • 서블릿은 HttpServlet 클래스를 상속함
    • HTML 코드를 브라우저로 리턴하기 위해서 서블릿은 out 객체의 println 메소드를 사용함, 이것은 HTML 코드를 작성하기 어렵게 만드는 요소임
    • 서블릿과 JSP로부터 최상의 결과를 얻으려면 웹 페이지를 개발할 때 이 두가지 컴포넌트(JSP, Servlet)를 조화롭게 사용해야 함, 웹 페이지를 구성하는 화면(HTML)은 JSP로 표현하고 프로세스에 관련한 부분은 서블릿이 처리하도록 해야함

'강의 > KOSTA' 카테고리의 다른 글

[Linux] Linux Introduction and Installation (Day17)  (0) 2022.03.29
[Web] JavaScript (Day16~17)  (0) 2022.03.27
[Oracle] JDBC , DAO (Day13~14)  (0) 2022.03.23
[Oracle] DCL / DDL / DML (Day12)  (0) 2022.03.21
[Oracle] SubQuery & rownum (Day12)  (0) 2022.03.21
profile

Devlog

@덩이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그