본문 바로가기

전체 글435

9. GET 요청 HTTP 요청 중 GET요청에 대해 살펴본다. web02 프로젝트를 배치하여 톰캣 서버를 실행한다.이후 http://localhost:9999/web02/GetTest.html 링크를 실행한다. 이렇게 링크 실행 화면이 뜬다. 웹 브라우저 주소창에 URL을 입력하여 서버의 자원을 요청하는 경우 GET 요청이 발생한다. GET 요청의 3가지 3종세트 예시가 보인다. 크롬의 DevTools의 Network 탭에서 요청정보를 확인할 수 있다. GET 요청이 이루어진 것을 확인할 수 있다. 링크를 클릭할 때에도 GET 요청이 발생한다. GetTest.html 링크 화면에서 '구글'링크를 클릭한다. GET 요청 2: 링크를 클릭할 때 구글 페이스북 태그는 GET 요청을 만든다. 크롬의 DevTools의 Netwo.. 2022. 1. 4.
8. HTTP 프로토콜의 이해 (2) 클라이언트와 서버가 주고받는 데이터 형식만 안다면 누구나 클라이언트나 서버를 개발할 수 있다. 간단한 HTTP 클라이언트를 만들었다. package lesson02.client; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.Socket; public class SimpleHttpClient { public static void main(String[] args) throws Exception { //1. 소켓 및 입출력 스트림 준비 //Socket socket = new Socket("www.hani.co.kr", 80); Socket socket = ne.. 2022. 1. 3.
7. HTTP 프로토콜의 이해 (1) HTTP 프로토콜은 웹 브라우저와 웹 서버 사이의 데이터 통신 규칙이다. HTTP 프로토콜은 단순히 HTML 페이지나 이미지 파일을 전송하는 차원을 넘어 원격 컴퓨터에 로딩된 함수나 객체의 메소드를 호출할 때도 사용된다. 이 HTTP 프로토콜을 응용하거나 확장한 기술은 SOAP(Simple Object Access Protocol), RESTful(REpresentational State Transfer), webDAV(World Wide Web Distributed Authoring and Versioning), CalDAV 등이 있다. 구글 크롬의 DevTools를 사용하여 웹 브라우저와 웹 서버 사이에 주고받는 데이터를 살펴본다. 요청이나 응답을 처리할 때 참고하라고 알려주는 정보를 헤더라고 한다... 2022. 1. 2.
6. 웹 애플리케이션 아키텍처의 특징 웹 기술을 활용한 클라이언트·서버(C/S)의 또 다른 진화형태인 웹 애플리케이션 서버구조를 알아본다. 웹 애플리케이션을 작성하기 위한 web01이라는 이름의 새 프로젝트를 생성하고 웹 애플리케이션을 배포할 서버를 설정했다. 서버는 Tomcat v8.5 Server를 사용하고 포트번호는 9999로 했다. 웹 애플리케이션 서버를 실행하기 위해 톰캣 서버에 배치(deployment) 했다. 배치란, 클라이언트에서 서비스를 요청했을 때 톰캣 서버가 애플리케이션을 실행할 수 있도록 설치하는 것이다. 이후 Github에 연동하기 위해 web01프로젝트를 Git 저장소에 추가하였고 Github저장소에 Commit했다(순서 1~3). 배치의 관점에서, 기존의 C/S환경은 비즈니스 처리 부분을 서버에, UI 처리 부분을.. 2022. 1. 1.
5. 클라이언트·서버 아키텍처의 진화 전통적인 클라이언트·서버 아키텍처에서 클라이언트는 UI, 비지니스 로직 처리를 담당하면 서버는 데이터 처리를 한다. PC의 분산된 자료를 하나의 서버에서 관리하면 자료 중복이나 자료가 일치하지 않는 문제를 해결한다. 하지만 프로그램이 변경되면 다시 PC에 설치해야 하는 단점이 있다. 또한 클라이언트가 DBMS로 바로 접속 하기에 보안 문제가 발생할 수 있다. 이런 문제를 개선하기 위해 개선된 클라이언트·서버 아키텍처 구조를 사용한다. 클라이언트의 업무 처리를 애플리케이션 서버로 이관하고 클라이언트는 UI만 담당하게 된다. 애플리케이션 서버는 업무 처리를 하는 비즈니스 로직을 담당하며 또한 사용자 접근을 관리하여 무효한 접근을 차단한다. 클라이언트로부터 요청을 받으면 업무 로직에 따라 DBMS 서버를 이용.. 2021. 12. 30.
4. 다중 클라이언트의 요청 처리 이전에서는 서버가 단일 클라이언트의 요청만을 처리할 수 있었다면 이번엔 서버가 Thread를 이용하여 다중 클라이언트의 요청을 병행처리하는 과정이다. 먼저 서버를 실행한다. package lesson01.exam02.multiserver; import java.net.ServerSocket; import java.net.Socket; public class CalculatorServer { private int port; public CalculatorServer(int port) {//8888 this.port = port; } public void service() throws Exception { ServerSocket serverSocket = new ServerSocket(port); Syste.. 2021. 12. 29.
3. 클라이언트·서버 애플리케이션 클라이언트와 서버간의 통신을 통한 애플리케이션의 기능 분리를 살펴봤다. package lesson01.exam02.server; import java.io.PrintStream; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; public class CalculatorServer { private int port; public CalculatorServer(int port) {//8888 this.port = port; } @SuppressWarnings("resource") public void service() throws Exception { ServerSocket serverSocket = new Ser.. 2021. 12. 28.
2. 데스크톱 애플리케이션 실습 데스크톱 애플리케이션부터 클라우드 서비스의 근간이 되는 웹 애플리케이션으로 진화하는 과정을 살펴본다. 그 첫 번째로 데스크톱 애플리케이션을 실습했다. package lesson01.exam01; import java.awt.Container; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JOpt.. 2021. 12. 27.
1. 실습 환경설정 : Github repositories에 연동 1. 설치 환경 설정 - JDK17 - Eclipse IDE for Enterprise Java and Web Developers Version: 2021-12 (4.22.0) - apache-tomcat-8.5.73-windows-x64 2. 깃헙에 repositories 생성 후 실습할 프로젝트 연동 GIT저장소에서 불러온 프로젝트를 Github에서 내 계정으로 생성한 repositories에 불러올 때, PUSH작업 중에 Github 계정과 비밀번호를 입력하던 중 not authorized오류가 발생했다. 이는 토큰을 생성하지 않았기에 발생한 것이다. 따라서 계정에 토큰을 생성한 뒤에 Github 계정 이름을 아이디에 적고 비밀번호로 토큰을 적으니 정상적으로 이클립스에서 로그인이 됬다. 이렇게 다시.. 2021. 12. 27.