-
[SQL, JSP]_15일차_05.17프로그래밍/JSP 2021. 5. 18. 10:01
11장. 관계형 데이터베이스의 주요 지식
데이터베이스의 객체
- 테이블 : 기본 저장 단위이며 행으로 구성되어 있다
- 뷰 : 가상의 테이블
- 테이블에서 사용자가 필요로 하는 부분만 선택하여 만들어 놓은 데이터의 집합
- 하나 이상의 테이블에 있는 데이터의 부분집합을 논리적으로 나타낸 것
- 뷰를 이용하면 보안적인 측면에서 좋다 (테이블의 일부분만 보여줄 수 있고, DROP이 불가능하다. 뷰가 삭제되는 것이지 데이터가 삭제되는 것이 아니기 때문)
- 뷰의 장점 : 사용자의 편의성 + 데이터베이스의 보안
- 뷰의 단점 : 개발자가 이 뷰를 계속 사용하면 실제 이런 데이터가 들어있다고 착각한다.
- 시퀀스 : 숫자값을 생성
- 인덱스 : 데이터 검색 query의 성능을 향상
- 데이터베이스 시스템이 인덱스를 자동으로 사용하고 유지보수 하기 때문에 사용자는 인덱스를 직접 조작할 필요가 없다
- 그렇다면 수동으로 인덱스를 만드는 이유&상황은?
- ex) 오늘 10시에 갑자기 몇백만건의 새로운 자료가 쌓일 것을 아는 경우(급격한 트래픽)
사람은 알지만 데이터베이스는 알 수가 없기때문에 → 인덱스를 미리 만들어서 조치를 취하는 것이다
- ex) 오늘 10시에 갑자기 몇백만건의 새로운 자료가 쌓일 것을 아는 경우(급격한 트래픽)
- 동의어 : 객체에 대한 다른 이름을 부여
뷰가 있는지 확인방법
select * from tab;
뷰 생성
CREATE VIEW V_dept80 as xxx SELECT * FROM hr.employees WHERE department_id = 80; SELECT * FROM V_dept80;
기존 테이블 ↔ 뷰 조인가능
SELECT A.employee_id, A.hire_date, B.department_name, B.job_title FROM emplyees A, emp_details_view B WHERE A.employee_id = B.employee_id AND A.employee_id = 100;
옵티마이저 : 227p → 228p
계획 설명
- SQL문 드래그 → 마우스 우클릭 → 설명 → 계획 설명(실행계획)
rowid
SELECT rowid, j.* FROM jobs j; // rowid는 포인터 번호이다 (메모리의 주소지) // 하드디스크 사용하던 시절에 포인터에 바로 접근하여 속도를 향상시켰다 select rowid, j.* from jobs j // 이런식으로 사용했으나, 지금은 ssd를 사용하기 때문에 쓰지않음. where rowid = 'AAAEAZAAEAAAAC9AAA'; // 데이터베이스에서 자동으로 생성됨 // 이런것이 있다라고만 기억하기.
12장. 최 과장과 함께 패밀리 레스토랑 신규 매출 분석하기
모두의 SQL 끝!
쉽게 배우는 JSP 웹 프로그래밍
- html, css, javascript 관련 사이트
W3Schools Online Web Tutorials
XML → JSON으로 바뀌는 추세
HTML (표시가 목적, 프로그램끼리 연동하기 위한 목적이 아니다 → 명확한 한계)
- 다른 프로그램의 도움을 받는다
- Java계열
- Servlet
- JSP
- C 계열
- Java계열
Type Script
- 다른 언어의 도움 없이 서버,db 연동을 해서 많은 일을 할 수 있다
- 자바스크립트에서 웹을 연동할 수 있다
jquery ↔ Ajax 그리고 restAPI
- jquery : javascript의 라이브러리
- ajax : jquery 라이브러리 하위 구조(클래스 or 메소드)
- restAPI : 통신을 위해 사용한다 (전용 툴 : postman, 인섬니아)
- 인터넷 통신 구조
- 서버 ↔ 클라이언트 간에 데이터 통신을 위해 사용한다
- Server : 자원이 있는 쪽
- Client : 자원을 요청하는 쪽
- 데이터 전송 방식
- GET, POST 방식
- GET (게시판 용도)
- POST(나머지)
- 등등
- GET, POST 방식
- restAPI : 통신을 위해 사용한다 (전용 툴 : postman, 인섬니아)
- rest API 란
- REST 기반으로 서비스 API를 구현한 것
- REST 란
- 자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다
- API 란
- 데이터와 기능의 집합을 제공 → 컴퓨터 프로그램간 상호작용을 촉진하며, 서로 정보를 교환가능 하도록 하는 것
- RESTful 이란
- 일반적으로 REST라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어
- ‘REST API’를 제공하는 웹 서비스를 ‘RESTful’하다고 할 수 있다.
- 요약 :
- 세 녀석은 모두 서로 연관되어 있다
- jquery, Ajax는 라이브러리 & 하위 구조 / rest API는 그 라이브러리를 활용해 통신하는 데이터 전송 방식
[Network] REST란? REST API란? RESTful이란? - Heee's Development Blog
데이터를 담는 방식
- XML
- JSON
Flask ↔ JSP + Apache Tomcat
- ↔ DB 간 데이터 전송
웹의 구조
- Client (요청)→ Server (가공) → Client (응답)
JSP ↔ ASP ↔ PHP ↔ Python (서버 사이드 언어 비교)
- 어느 측에서 요청을 처리하느냐에 따라서..
CH2. 스크랩트 태그: 시작 페이지 만들기
JSP 태그의 종류
- 스크립트 태그 (자바에서 쓰는 태그)
- 디렉티브 태그 : JSP 페이지를 어떻게 처리할 것인지를 설정하는 태그
<%@ ......... %>
- 액션 태그
- 등등
스크랩트 태그의 종류
- 선언문 :
<%! .... %>
- 자바 변수나 메소드를 정의하는데 사용
- 스크립틀릿 :
<% .... %>
- 자바 로직 코드를 작성하는 데
- 표현문 :
<%= .... %>
- 변수, 계산식, 메소드 호출 결과를
문자열 형태로 출력하는 데 사용
- 변수, 계산식, 메소드 호출 결과를
// 간단하게 표현하기 <%= data %> // 간단한 변수 출력 <%-- JSP 주석 --%> <%! int data = 50; %> <% for (int i=0; i<=10; i++) { if (i%2 == 0) { out.println(i + "<hr>"); } } %> <%= data %>
디렉티브 태그
page <%@page ... %> // JSP페이지에 대한 정보 설정 include <%@ include .... > // JSP페이지의 특정 영역에 다른 문서를 포함. taglib <%@ taglib ... > // JSP페이지에서 사용할 태그 라이브러리를 설정.
- 많이 쓰는 page 디렉티브 태그
- pageEncoding 태그
- language 고정적인것,
- contentType
- import
- errorPage
- 자바에서 에러가 나면 try-catch를 쓰는게 맞지만, 웹페이지에서 에러가 발생하면
시작페이지로 돌리거나, 에러 전용 페이지를 만들어서 출력해줌.
- 자바에서 에러가 나면 try-catch를 쓰는게 맞지만, 웹페이지에서 에러가 발생하면
Q. 자바코드가 실행되는데, 그럼 class파일은 어디에 있는가?
- 웹서버 어딘가에서, 자바 class 파일이 생성되어 html ↔ 자바 코드를 왔다갔다 하면서 실행된다.
System.out.println() → os에서 출력해서 system...이다 out.println() → 웹에서 출력해서 system을 붙이지 않는다
부호체계의 변천사
- 아스키 코드 → ANSI 코드 → 유니코드
아스키코드 (부호체계)
- 미국에서 정의한 표준화한 부호체계
- 영어를 숫자로 표현 → 영어만 지원하니 문제가 발생 → 유니코드 탄생
- 7bit 사용 → 128개의 고유한 값만 사용한다
- 1bit는 통신 에러 검출을 위해 사용 (Parity bit)
- 컴퓨터의 기본 저장 단위는 1byte (8bit) 다
유니코드
- 전 세계 언어의 문자를 정의하기 위한 국제 표준 코드
- 2byte 사용 (16bit) → 65536개의 문자를 담을 수 있다
- 인코딩 방식
- EUC-kr : 이클립스는 EUC-KR 을 기본으로 사용
- UTF-8 : 한국에서는 EUC-kr 대신 UTF-8을 사용한다
문자 인코딩 형태란?
- 특정한 문자 집합 안의 문자들을
컴퓨터 시스템에서 사용할 목적으로
일정한 범위 안의 정수(코드값)들로 변환하는 방법 - 종류
- UTF-8 (유니코드 코드 포인트를 8비트 숫자의 집합으로 나타낸 것)
- UTF-16 (유니코드 코드 포인트를 16비트 숫자의 집합으로 나타낸 것)
'프로그래밍 > JSP' 카테고리의 다른 글
[JSP, DB]_21일차_05.25 (0) 2021.05.26 [JSP, DB]_20일차_05.24 (0) 2021.05.24 [JSP]_19일차_05.21 (0) 2021.05.21