Java 102

Get, Post 요청 방식

사전 기반 지식1. HTTP 메세지클라이언트에서 요청을 하면 HTTP 메세지가 만들어 진다. 2. URI 와 URLURI와 URL의 주소 방식은 인터넷 세상에서 리소스를 식별하고 접근하기 위한 개념이다. URI (Uniform Resource Identifier)URI는 인터넷에서 리소스를 식별하기 위한 문자열이다. URI는 특정 리소스를 고유하게 식별하며, 리소스의 위치와 상관없이 해당 리소스를 지칭할 수 있다.// 리소스의 이름만 나타냄domainname.com/my-infourn:isbn:0451450523 // URN 예제http://www.domainname.com/my-info // URL 예제 (URL은 URI의 한 형태)  URL (Uniform Resource Locator)URL은..

Java 2024.07.03

서블릿 작성, 배포, web.xml 설정

서블릿 배포서블릿 배포는 개발된 서블릿을 애플리케이션 서버(예 : 아파치 톰캣)에 올려서 클라이언트가 접근할 수 있도록 준비하는 과정을 말한다. 배포된 서블릿은 클라이언트의 HTTP 요청을 받아 처리하고, 동적 웹 페이지를 생성하여 응답한다. 배포 과정의 주요 단계1. 웹 애플리케이션 구조 설정서블릿을 포함한 모든 웹 애플리케이션 파일을 특정 디렉토리 구조에 맞게 배치한다.2. 배포 기술web.xml 파일 또는 애노테이션을 사용하여 서블릿, 필터, 리스너 등을 설정한다.3. WAR 파일 생성 및 배포웹 애플리케이션을 WAR (Web Application Archive) 파일로 패키징하여 배포할 수 있다.4. 서버 설정웹 서버 또는 애플리케이션 서버에 웹 애플리케이션을 등록하고 실행한다. 웹 애플리케이션 ..

Java 2024.07.03

서블릿 Life Cycle

사전 기반 지식WAS--------웹컨테이너 -----------------------서블릿 컨테이너 ----------------------------- 서블릿 클래스 로딩 ----------------------------- 서블릿 인스턴스 생성(생성자 호출) ----------------------------- 서블릿 초기화(init 호출) ----------------------------- 요청 처리( service, doGet, doPost)----------------------------- 서블릿 소멸(destroy) ----------------------- JSP 컨테이너  서블릿 라이프 사이클 단계서블릿 라이프 사이클은 서블릿이 생성되고, 요청을 처리하며, 소멸되는 전체 과정이다. 서..

Java 2024.07.03

서블릿

서블릿서블릿(Servlet)은 자바 언어로 작성된 서버 측 컴포넌트로, 웹 애플리케이션에서 클라이언트의 HTTP 요청을 처리하고 동적인 웹 페이지를 생상하여 응답하는 역할을 한다. 서블릿은 Java EE (Enterprise Edition) 사양의 일부로, 주로 HTML 페이지를 생성하고 데이터베이스와 연동하여 데이터를 처리하는 데 사용된다. ! 컴포넌트란여기서 "컴포넌트" 라는 개념은 독립적으로 사용할 수 있는 소프트웨어의 작은 단위이다. 서블릿은 웹 서버에서 독립적으로 실행되며, 클라이언트의 요청을 처리하고 응답을 생성하는 역할을 한다. 예를 들어, 데스크톱 프로그램이나 모바일 앱에 사용되는 메뉴바, 툴바, 본문 영역 등이 각각의 컴포넌트로 볼 수 있다. 서블릿의 역할1. HTTP 요청 처리서블릿은 ..

Java 2024.07.03

WAS와 웹 컨테이너의 역할

복습-WAS 서버의 주요 역할동적 콘텐츠 생성 : 서블릿, JSP, EJB 등을 통해 동적인 웹 페이지와 서비스를 생성한다.비즈니스 로직 처리 : 애플리케이션의 핵심 로직을 실행하고 처리한다.데이터베이스 연동 : 데이터베이스와의 연동을 통해 데이터를 조회하고 업데이트한다.트랜잭션 관리 : 데이터베이스와의 복잡한 트랜잭션을 관리한다.보안 관리 : 사용자 인증, 권한 부여, 데이터 암호화 등 보안을 관리한다.세션 관리 : 사용자 세션을 유지하고 관리한다. 웹 컨테이너웹 컨테이너는 WAS의 일부로, 서블릿과 JSP를 실행하고 관리하는 역할을 한다. 웹 컨테이너는 웹 애플리케이션의 요청과 응답을 처리하며, 서블릿과 JSP의 라이프사이클을 관리한다. 서블릿 코드import java.io.IOException;im..

Java 2024.07.02

웹 서버와 웹 애플리케이션 서버(WAS)

웹 서버 - 정적 콘텐츠 제공자웹 서버는 클라이언트(주로 웹 브라우저)로부터 HTTP 요청을 받아 정적인 HTML 파일, 이미지, CSS 파일등을 제공하는 서버이다. 웹 서버는 요청된 리소스를 클라이언트에게 그대로 반환한다. 웹 서버는 일반적으로 특정 폴더(웹 루트 디렉토리)에 정적 콘텐츠를 저장한다. 클라이언트의 요청이 들어오면, 웹 서버(컴퓨터)는 이 폴더에서 요청된 파일을 찾아 클라이언트에게 전달한다. 가장 유명한 웹 서버로는 아파치 HTTP 서버(Apache HTTP Server)와 Nginx가 있다.  즉, 인터넷에 연결된 컴퓨터에서 누구나 접근할 수 있는 규칙을 정한 특정 폴더 안에 넣어둔 정적인 파일들을 제공해주는 프로그램이다. 이 프로그램을 웹 서버라고 하며, HTML 파일, 이미지, CS..

Java 2024.07.02

HTTP 사전 기반 기초 지식

1. 인코딩과 포트언어에서의 약속문장의 의미는 문장을 구성하는 단어의 의미, 문법 구조, 맥락, 독자의 배경 지식 등으로 결정된다.이 중 단어의 의미와 문법은 사회적으로 합의되어 있다. 인코딩컴퓨터의 모든 데이터는 0과 1로 구성된다. 지금 보고 있는 글도 사실은 0과 1의 집합이다. “사과”가 사과를 가리키는 데 약속이 필요하듯, 0과 1로 우리의 문자를 표현하는 것도 일종의 약속 덕분이다. 이런 약속들을 특별히 인코딩(Encoding) 표준이라고 부르는데, 대표적으로 아스키(Ascii)와 유니코드(Unicode)가 있다. 아스키는 7비트 데이터에 대한 인코딩 표준이다. 이를 이용하면 알파벳과 특수 문자 등을 표현할 수 있다. 예를 들어, 아스키에서 1 한 개, 0 다섯 개, 1 한 개를 이어 붙이면 ..

Java 2024.07.02

JDBC 성능 최적화

PreparedStatement 사용의 장점 PreparedStatement는 SQL 쿼리를 미리 컴파일하고, 동일한 쿼리를 반복해서 실행할 때 효율적으로 사용할 수 있는 인터페이스이다. 이는 성능과 보안 측면에서 많은 장점을 제공한다. 성능 향상:쿼리 컴파일: SQL 쿼리를 미리 컴파일하여, 쿼리를 여러 번 실행할 때 컴파일 시간을 절약할 수 있다.쿼리 계획 재사용: 동일한 쿼리를 반복적으로 실행할 때, 쿼리 계획을 재사용하여 실행 시간을 단축할 수 있다.보안 향상:SQL 인젝션 방지: 쿼리와 데이터가 분리되어 있어 SQL 인젝션 공격을 방지할 수 있다.  예시 코드String sql = "INSERT INTO users (name, email) VALUES (?, ?)";try (Connection ..

Java 2024.06.27

JDBC를 활용한 CRUD 와 SOLID 원칙

콘솔을 활용한 간단한 퀴즈 게임 만들어 보기 1. DB , 테이블 설계 2. 기본 데이터 입력(정규화) 3. 자바측 라이브러리 설정 4. 자바측 기능 구현 및 테스트 5. 리팩토링 -- 데이터베이스 생성 create database quizdb; use quizdb;drop table quiz;create table quiz( id int auto_increment primary key, question varchar(500) not null, answer varchar(500) not null);desc quiz;-- 기본 샘플 데이터 입력 insert into quiz(question, answer ) values ('대한민국의 수도는?', '서울'), ('한반도의 남쪽에 ..

Java 2024.06.27