📕 제 2장 웹 프로그래밍 기초 다지기 1-1. HTTP 프로토콜 - 웹 브라우저와 웹 서버 사이의 데이터 통신 규칙 - 웹 페이지의 링크를 클릭하면 웹 브라우저가 보낸 데이터를 분석하여 요청받은 일을 처리하고 응답한다 - 웹 브라우저에서 요청한 파일을 찾아 보내주며, 데이터를 보낼 때에는 HTTP 응답 형식에 맞추어 보낸다 - HTTP 프로토콜은 단순히 파일을 전송하는 것 뿐만아니라 - 원격 컴퓨터에 로딩되어 있는 함수나 객체의 메서드를 호출할 때에도 사용된다 HTTP 프로토콜 응용 기술 1. SOAP(Simple Object Access Protocol) - HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜이다 - SOAP은 웹 서비스에서 기본..
web.xml 파일의 구조(2) 서블릿 매핑 WAS는 프로그램이 실행되자마자, web.xml를 찾아 내부 코드를 확인하고 객체를 생성한다 정확히는 , 태그 내부의 코드를 확인하고 서블릿 객체를 생성한다 즉, Servelet의 객체를 servlet-name에 지정된 별칭으로 생성한다 이러한 과정을 서블릿 매핑 이라고 말한다 기본 구조에는 서블릿 매핑을 위한 코드가 없으므로, 직접 입력해주어야 한다 먼저 컨테이너(WAS)에게 객체를 생성할 서블릿의 이름과, 서블릿이 어떤 패키지에 들어있는지를 알려준다 서블릿의 패키지 경로(FQCN)는 태그 안에 작성하고 서블릿의 이름(Alias)은 태그 안에 작성한다 서블릿의 이름(Alias), 패키지 패키지 경로(FQCN)는 태그 안에 작성해야 한다 servlet-clas..
web.xml 파일의 구조(1) Welcome file web.xml 을 열어보면 위와 같은 기본 구조를 갖는다 에는 현재 프로젝트의 이름이 작성되어 있다 그리고 안에는 Welcome File이 여러 개 나열되어있다 Welcome File : 웹 어플리케이션이 실행되기위한 디렉토리의 기본 웹 페이지 클라이언트가 디렉토리까지만 지정해서 요청한다면 웹 서버는 해당 디렉토리에서 웰컴 파일을 찾아서 응답한다. 웹 클라이어트가 프로젝트 디렉토리까지만 지정해서 요청하면 404에러가 발생한다. 웹 페이지를 찾을 수 없다고 말한다 만약 프로젝트 안에 index.html 이 있다면 요청을 원하는 파일을 지정하지 않아도 자동으로 index.html이 실행된다 위와 같이 index.html 을 생성하고, 다시한번 프로젝트 ..
제어의 역전 (Inversion of Control) 개발자가 객체를 생성하고, 메서드를 호출하던 JVM에서와는 다르게 WAS는 직접 객체를 생성하고 메서드를 호출한다. 이를 제어의 역전이라고 한다 제어의 역전(Inversion of Control)은 프로그램의 제어 흐름 구조가 거꾸로 되는 것이다 프로그램은 main() 에서 시작해 사용할 오브젝트를 결정하고 그 오브젝트를 만들어 메서드를 호출하는 일을 반복한다. main() 이 어떤 객체를 생성하고, 메소드를 호출하는 등 개발자가 능동적으로 결정하고 만드는 구조이다 반면, 제어의 역전은 기능만 구현해 놓으면 알아서 호출되어 사용되는 수동적인 구조를 갖는다 객체의 생성부터 소멸까지 객체의 모든 생명주기를 개발자가 아닌 컨테이너(WAS)가 담당한다 컨테이..
✏️ 프로세스(Process) 프로세스 : 어플리케이션을 실행하면 OS로부터 메모리의 일정 영역을 할당받아 동작한다 멀티 프로세스 : OS는 동시에 여러 프로세스를 실행할 수 있다 프로세스는 동작하기위해 데이터, 메모리 등의 자원과 하나 이상의 스레드(Thread)로 구성된다 멀티 프로세스가 동작하고, 동일한 어플리케이션을 실행하더라도 프로세스 간의 자원 및 스레드 공유는 발생하지 않는다 ✏️ 스레드(Thread) 프로세스 동작의 최소 단위를 말한다. 프로세스는 하나 이상의 스레드로 구성된다 둘 이상의 스레드로 구성된 프로세스를 멀티 스레드 프로세스라고 말한다 예를 들면 카카오톡은 채팅을 하는 동시에 파일을 전송할 수 있다 단일 스레드 프로세스였다면, 파일을 전송하는 동안 채팅을 할 수 없다 이처럼 스레..
✏️ Collection API 여러 객체를 담아내는 인터페이스들의 특징을 말한다 Collection API : 자료를 저장하는 방식 (HashSet, ArrayList, HashMap) Collection 인터페이스는 가장 원시적인 방법으로 객체를 저장하는 특징을 가진다 Collection API에서는 toString()이 데이터를 리턴하도록 자체적으로 오버라이딩 되어있다 ✏️ Collection Interface Collection 인터페이스는 가장 원시적이므로, 순서가 없고 중복을 허용한다 Set 인터페이스는 Collection 다음으로 원시적이고, 순서가 없고 중복을 허용하지 않는다 List 인터페이스는 내부에서 index로 관리되므로, 순서를 가지고 중복을 허용한다 Map 인터페이스는 key-v..
이클립스에서 MySQL을 연결하려면 MySQL Connector/j 을 다운로드 받아야한다. MySQL을 처음 설치할 때 같이 설치했다면 설치는 건너뛰어도 되는데, 나처럼 한 번에 설치하지 않은 분들에게 도움이 되길 바라며 기록해본다. 01) https://dev.mysql.com/downloads/connector/j/ 으로 접속 MySQL :: Download Connector/J MySQL Connector/J 8.0 is highly recommended for use with MySQL Server 8.0, 5.7 and 5.6. Please upgrade to MySQL Connector/J 8.0. dev.mysql.com 02) Select Operating System 옵션을 Platfo..
✏️ static 키워드 - 객체 생성 없이 접근할 수 있는 멤버임을 의미하며, 변수나 메서드에 키워드로 사용된다 - static 키워드를 통해 생성한 멤버는 클래스가 메모리에 올라갈 때 자동으로 생성된다 = 객체 생성 없이 접근 가능하다 - 변하지 않고 유지되는 값은 매번 메모리에 로딩하는 과정을 거치는 것보다, 자동으로 올라가도록 하는 것이 더 효율적! - 즉, 인스턴스 없이 사용이 가능하므로 프로그램 내에서 공통으로 사용되는 데이터들을 관리할 때 사용된다 - static은 공통으로 값을 일정하게 유지하고 싶은 경우에만 사용하고 남발해서는 안된다 (예) 상수, 싱글톤 패턴... // 객체 생성할 필요가 없다 System.out.println(Math.abs(-10)); // 10 - java.lang..
✏️ 싱글톤 패턴 - 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다 - 최초 생성 이후에 호출된 생성자는 최초에 생성자가 생성한 객체를 리턴한다. - 고정된 메모리 영역을 얻으면서 동시에 단 한 번만 new를 사용하여 메모리 낭비를 방지할 수 있다. ✏️ 구현하기 private static BankService instance; 객체의 인스턴스를 저장할 필드를 생성한다. 싱글톤 패턴의 인스턴스는 단 하나만이 허용되므로, 모든 객체에서 공유하도록 static 필드로 생성한다. 접근 지정자는 private로 지정하여, 외부 접근을 막는다 private BankService() { customers = new Customer[MAX_CUSTOMERS]; numberOfCustomers = 0; } 객..