ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SQL, JSP]_15일차_05.17
    프로그래밍/JSP 2021. 5. 18. 10:01

    11장. 관계형 데이터베이스의 주요 지식


    데이터베이스의 객체

    • 테이블 : 기본 저장 단위이며 행으로 구성되어 있다
    • 뷰 : 가상의 테이블
      • 테이블에서 사용자가 필요로 하는 부분만 선택하여 만들어 놓은 데이터의 집합
      • 하나 이상의 테이블에 있는 데이터의 부분집합을 논리적으로 나타낸 것
      • 뷰를 이용하면 보안적인 측면에서 좋다 (테이블의 일부분만 보여줄 수 있고, DROP이 불가능하다. 뷰가 삭제되는 것이지 데이터가 삭제되는 것이 아니기 때문)
      • 뷰의 장점 : 사용자의 편의성 + 데이터베이스의 보안
      • 뷰의 단점 : 개발자가 이 뷰를 계속 사용하면 실제 이런 데이터가 들어있다고 착각한다.
    • 시퀀스 : 숫자값을 생성
    • 인덱스 : 데이터 검색 query의 성능을 향상
      • 데이터베이스 시스템이 인덱스를 자동으로 사용하고 유지보수 하기 때문에 사용자는 인덱스를 직접 조작할 필요가 없다
      • 그렇다면 수동으로 인덱스를 만드는 이유&상황은?
        • 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 계열

    Type Script

    • 다른 언어의 도움 없이 서버,db 연동을 해서 많은 일을 할 수 있다
    • 자바스크립트에서 웹을 연동할 수 있다

    jquery ↔ Ajax 그리고 restAPI

    • jquery : javascript의 라이브러리
    • ajax : jquery 라이브러리 하위 구조(클래스 or 메소드)
      • restAPI : 통신을 위해 사용한다 (전용 툴 : postman, 인섬니아)
        • 인터넷 통신 구조
        • 서버 ↔ 클라이언트 간에 데이터 통신을 위해 사용한다
          • Server : 자원이 있는 쪽
          • Client : 자원을 요청하는 쪽
        • 데이터 전송 방식
          • GET, POST 방식
            • GET (게시판 용도)
            • POST(나머지)
          • 등등
    • 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를 쓰는게 맞지만, 웹페이지에서 에러가 발생하면
          시작페이지로 돌리거나, 에러 전용 페이지를 만들어서 출력해줌.

    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비트 숫자의 집합으로 나타낸 것)

    아스키(ASCII)코드와 유니코드(Unicode)의 이해

    '프로그래밍 > 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

    댓글

Designed by Tistory.