ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 001. Eclipse 설치 및 JDBC 개념
    SsY/Class 2023. 4. 20. 17:51
    728x90
    • Eclipse 다운로드
    더보기

    배포자료 다운받아서 c드라이브에 eclipse 폴더 만든 후 그 안에서 압축해제 

    설치하는 형태로 사용하는 것은 아니고 해당 파일 더블클릭해서 실행하면 됨
    JDBCStudy로 설정

    체크박스는 실무에서도 선택하지 말것!
    왜냐하면 한 번에 여러 개의 프로젝트를 병행해야 할 경우도 있기 때문

    빨간색 박스 안에 있는 어떤 것을 통해서 초기 화면으로 들어가든 똑같다
    이클립스 초기화면. 정 중앙의 흰 화면에서 작업을 하게 된다

    처음 들어와서 확인해야 할 것 - 우측상단

    해당 화면에서 확인하면 EE는 즉 ENTERPRISE 버전이라는 뜻
    여기 들어가서 선택해야 함
    선택해서 나오면 이렇게 아이콘이 변경된다
    JAVA 선택시 좌측 화면이 PACKAGE Explorer 로 바뀌는 것을 확인할 수 있다.

    단축키를 잘 외워서 활용하자

    JDBC
    JDBC(Java DataBase Connectivity) 개념

    1. JDBC(Java DataBase Connectivity)는 자바 프로그램이 DBMS에
       일관된 방식으로 접근할 수 있도록 API 를 제공하는
       자바 클래스들의 모임으로 다음과 같은 특징을 가진다.

       1) JDBC 는 함수 호출용 SQL 인터페이스
       2) JDBC 는 ANSI SQL-92 표준을 지원
       3) JDBC 는 공통된 SQL 인터페이스를 바탕
       4) JDBC 는 익히고 사용하기 쉽다.

    ==> JDBC 란 데이터베이스에 연결 및 작업을 하기 위한 JAVA 의 표준 인터페이스이다.

    이후에 다른 프로그램을 연결하기 위해도 많이 사용할거기 때문에 잘 배워두자!


    2. JDBC 구성

       1) 응용 프로그램 (-- 그림에서의 application)
         a. 데이터베이스에 연결을 요청
         b. 데이터베이스에 SQL 문을 전송
         c. SQL 문의 처리 결과 요청
         d. 오류가 발생하는 경우에 오류 처리
         e. 트랜잭션을 제어
         f. 연결 종료

       2) 드라이버 매니저 (-- 드라이버를 관리하게 되는 보조수단)
         a. 데이터베이스에 맞는 드라이버 검색
         b. JDBC 초기화를 위한 작업 수행

       3) 드라이버  
         a. 데이터베이스에 연결
         b. 데이터베이스에 SQL 문을 전달
         c. 응용 프로그램에 검색 결과를 전달
         d. 필요한 경우 커서를 조작
         e. 필요한 경우 트랜잭션을 시작

       4) DBMS (-- 그림에서의 db)
         a. 데이터가 저장되어 있는 장소



    3. System Architecture

        JDBC API 는 2-tier 와 3-tier 를 모두 지원한다

      ※ tier : 일련의 유사한 객체가 나열된 상태에서 열 또는 계층을 의미한다.
                  프로그램의 일부가 여러 계층에 나뉘어 존재할 수 있으며, 
                  그 계층 또한 네트워크 상의 서로 다른 컴퓨터에 위치할 수 있다.
         (게임에서 나오는 높은 등급 같은 느낌은 아님!)
      
        1) 2-tier   (-- 시골 국수집의 할머니와 나...) 
          a. 자바 애플릿이나 애플리케이션이 JDBC 를 이용하여 DBMS 에 직접 접근
          b. 가장 대표적인 C/S 구조 (-- 클라이언트/서버 구조)
          c. 프로그램이 간단하다는 장점
          d. 보안, 로드밸런싱, 확장성(오브젝트 재사용) 등의 문제점
          e. 2-tier 디자인이 적합한 경우 (-- 상황에 따라서 2-tier 가 좋은 경우도 있다)
             - 애플리케이션이 하나의 데이터베이스만을 사용
             - 데이터베이스 엔진이 하나의 CPU에서 동작
             - 데이터베이스가 계속 거의 같은 크기로 유지
             - 사용자 기반이 같은 크기로 유지
             - 요구가 확정되어 변화 가능성이 극히 적거나 없는 경우
             - 애플리케이션을 종료한 후에도 최소한의 지속성을 요구하는 경우

        2) 3-tier  (-- 중간에 번호 표 받아서 나누어 줌) 
          a. 자바 애플릿이나 애플리케이션이 DBMS 에 직접 접근하는 것이 아니라
             중간에 미들웨어(미들티어) 를 거쳐 데이터베이스에 접근
          b. 데이터베이스와의 연동 부분을 분리시킴으로써
              Presentation Layer(클라이언트와 맞닿아 있는 부분) 가 데이터베이스 저장 방법에 신경을 쓰지 않아도 된다.
          c. 클라이언트는 단지 미들티어를 참조
          d. 미들티어 서버는 DBMS 와 같이 특정한 작업만 수행하는 최종 서버와
             통신을 하여 결과를 얻은 후 이 결과를 클라이언트에 전달
          e. 2-tier 모델보다 안정적이고 유연하며 보안이 강화
             - tier 1 : 사용자 인터페이스를 담당하는 클라이언트
             - tier 2 : http, 코바 등을 지원하는 응용 처리 서버
             - tier 3 : DBMS 와 같이 사용자가 최종적으로 원하는 기능을 수행할 서버

       ※ 보통... 3-tier  라고 하면
           클라이언트 - 애플리케이션 서버 - DB 서버의 구조를 말한다.
           클라이언트에 쿼리문이 있고 없고는 개발에 따라 다른 문제일 뿐이지 
            3 티어냐 2티어냐는 그다지 해당 사항이 없다. 
           다만, 해킹 위험이나 기타 데이터구조의 노출 위험 등
           여러 문제 때문에 DB 서버에 대한 직접 접근을 막고,
           쿼리의 구조를 클라이언트에게 노출되지 않게 하고,
           애플리케이션 서버단에서 데이터 처리 등의 일을 하게 되는 것이다.
           클라이언트는 주 업무가 애플리케이션에서 보여주는 데이터의 처리 및
           보여주기 역할에 집중하게 되는 것이라 하겠다.
           다만, 이런 것도 하나의 방법이기 때문에 정답은 없다.
           가벼운 클라이언트, 무거운 애플리케이션 서버가 꼭 정답은 아닌 것이다. 
           (-- 헬스장에 락커룸 설치 : 서버 부담, 미설치 : 클라이언트 부담이 되는데 이는 문제가 되지 않는다는 것
                한 때, 리소스가 비쌌던 때에는 클라이언트에게 서버의 부담을 덜어주게 하는 것이 이득일 때가 있었고,
                하드웨어가 남아돌 때는 서버에 모든 부담을 치중하는 것으로 했는데,
                이는 정답이 있는 것이 아니라 상황에 따라 판단해야 한다는 것이다.)



    4. JDBC Driver 유형 (-- application 과 DB를 잇는 다리 부분의 유형)
        Type 1 >>>> Type 4 로 갈수록 속도는 빨라진다

       1) Type 1
         - JDBC-ODBC Driver
         - 특징
           가. 데이터베이스를 연동하기 위해 브릿지 기술을 사용
           나. ODBC API 로의 게이트웨이를 제공하여
               실제로는 ODBC의 API 를 구현함으로써 데이터베이스를 연동
           다. 브릿지 솔루션은 보통 클라이언트에 소프트웨어가 설치될 것을 요구
           라. JDBC-ODBC Driver 는 ODBC Driver 가 풍부하기 때문에
               거의 대부분 데이터베이스 시스템에서 사용할 수 있으며, 
               JDBC-ODBC Driver 를 사용하는 클라이언트에
               사전에 ODBC Driver 가 설치되어 있는 경우, 매우 유용하게 사용할 수 있다.
           마. 속도와 관련한 가장 큰 문제
               JDBC 를 통해 호출된 명령이 다시 ODBC 를 통해 나가야 하기 때문에 
               두 개의 브릿지를 거치며, 이로 인해 빠른 속도를 기대하기 어렵다.
               빠른 성능을 요구하는 애플리케이션의 경우에는
               Type 1. JDBC-ODBC 브릿지는 적당하지 않다.
           바. JDBC-ODBC 브릿지를 사용하는 시스템에는
               반드시 해당 데이터베이스에 연결하기 위한 ODBC Driver 가 설치되어야 하며,
               이 단점은 애플릿에서 JDBC 를 사용하여 프로그래밍 해야 하는 경우
               많은 문제가 된다.
               애플릿을 사용하여 JDBC-ODBC 를 사용할 경우, 
               애플릿을 다운받은 클라이언트에 미리 ODBC Driver 가 설치되어
               있어야 하기 때문에 배포 등에 많은 문제가 발생하게 된다.

       2) Type 2
         - Native-API / Partly Java Driver (사용 일부 자바)(-- Java 연결하는 다리가 C나 C++ 등 다른 언어로 만들어진 경우)
         - 특징
           가. 각각의 데이터베이스 제조업체들이 제공한 C 혹은 C++ 메소드를
               자바 코드가 호출하는 방식
           나. 부분적으로 자바 드라이버인 원시 API 라고 일컬어짐
           다. 데이터베이스와 연결되는 부분이 Native Code 로 구현되어 있는 만큼
               JDBC ODBC 브릿지에 비해 빠른 속도를 제공한다.
           라. JDBC Driver 를 사용하고자 하는 각각의 클라이언트에
               DBMS Vender 의 데이터베이스 라이브러리가 로드되어야 하기 때문에
               인터넷이나 CS 환경에서는 사용하기 적합하지 않다.
               또한, Type 3, 4 드라이버에 비해 낮은 성능

    호환성은 3, 4 가 뛰어남

       3) Type 3
         - Net-Protocol / All-Java Driver (순수 자바)
         - 클라이언트에서 일반적인 Network API 를 이용해 보낸 정보를
           서버가 Database 에 독점적 형태로 변환하는 방식
         - 특징
           가. 클라이언트에 존재하는 JDBC Driver 는 소켓을 사용하여
               서버에 존재하는 미들웨어(Middleware) 애플리케이션에 연결
           나. 애플리케이션은 클라이언트의 요청을 사용하고자 하는
               데이터베이스에 독점적인 API 로 전환
           다. 하나의 드라이버로 여러 개의 데이터베이스를 연동
           라. 클라이언트에 소프트웨어를 설치할 필요가 없음

       4) Type 4
         - Native-Protocol / All-Java Driver (순수 자바)
         - Database Engine 에 사용되는 Network Protocol 을
           Java Socket 으로 직접 Database 에 교신하는 방식
         - 특징
           가. 가장 직접적인 순수 자바 솔루션
           나. 거의 대부분 데이터베이스의 제조업체가 제공한다.
           다. ODBC 나 NativeLib 형태로 request 를 변환하지 않기 때문에 
               Performance 가 매우 좋다.
               또한, 특별하게 Driver 나 Lib, Middleware 등을
               설치할 필요가 없기 때문에 배포 등이 매우 용이하다.



    5. Oracle JDBC Driver
     
       1) Type 4
          오라클 『Thin Driver』라고 불리운다.

          자바로 작성된 Net8 의 TCP/IP(--통신프로토콜) 버전의 자체적인 실행을 포함하여
          플랫폼에 독립적이고(-- 플랫폼 : 운영체제 이 바뀌어도 상관없음)
          실행 시간(런 타임 시)에 브라우저로 다운로드 된다.
          그리고 서버 측에서는 TCP/IP Listener 가 필요하며,
          연결 스트링은 TNSNAMES 엔트리가 아닌 TCP/IP 주소와 포트번호이다.

          URL Format →    jdbc:oracle:thin:@[host]:[port]:[database]   
                               →   "jdbc:oracle:thin:@(IP 주소) :1521:xe"
    더보기

    오라클 리스너 포트번호 1521 설명할 때 나온 LISTENER
     →  리스너란 약간 삐끼같은 것...?....
    TNSNAMES 는 주소를 찾는 느낌...?

    LISTENER 가 호출하고 TNSNAMES 가 찾아가게 되는 느낌



    6. JDBC API

       JDBC API 는 데이터베이스의 데이터를 액세스할 수 있도록 제공되는
       표준 자바 API 클래스와 인터페이스로 구성되며
       다음의 기능을 실행하기 위한 클래스와 인터페이스를 제공한다.
       
       - JAVA 프로그램에서 데이터베이스 서버에 접속
       - SQL 문을 구성, 데이터베이스 서버에서 실행
       - 데이터베이스 서버가 처리한 결과 가져오기
       - 데이터베이스의 정보, 처리 결과에 대한 정보 등을 가져오기

       ※ 『java.sql.*』패키지  (별도의 환경 구성 필요함)
          - JAVA Application 으로부터 Database 를 조작하는 API 는
            JDK 의 코어(core) API 로 java.sql 패키지에 설정되어 있다.
          - JDBC 는 데이터베이스에 접속하기 위해
            한 개의 클래스(java.sql.DriverManager)와
            두 개의 인터페이스(java.sql.Driver 와 java.sql.Connection)를 사용한다.

    728x90
Designed by planet-si