2021-05-12 30일차

2021. 5. 12. 23:12공부 기록

  • DB / JDBC PPT 완성하기
  • DB / JDBC 위키 완성하기
  • KOTLIN SIMPLE SSG Member 영속성 추가하기

자주하는 실수

내가 모르는 것

  • KOTLIN 에서 JDBC 연결하는것도 해보고 PPT에 추가하려 했는데 어떻게 하는지 잘 모르겠다

느낀점

  • getMemberByLoginId 함수 만드는데 정말 힘들었다 기존 로직이랑 크게 바뀌는게 없는데 readStrFomeFile()함수를 사용해서 파일을 가져오거나 아니면 새로운 함수를 만들어서 가져오는쪽으로만 생각했는데 답이 안보여서 기존로직처럼 members를 가져와보는 방법으로 생각을 바꿔봣더니 쉽게 해결되었다
fun getMemberByLoginId(loginId: String): Member? {
        val members = getMembers()
        for (i in 0 .. members.size){
            try {
                if (members[i].loginId == loginId){
                    return members[i]
                }
            }
            catch (e:IndexOutOfBoundsException){
                return null
            }
        }
        return null
    }

DB / JDBC

DB

  • DB (Database)
    • 여러사람이 공유하여 사용할 목적으로체계화해 통합, 관리하는 데이터의 집합이다.
    • 작성된 목록으로써 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음이다.

  • 데이터베이스의 개요
    • 데이터베이스는 자료의 중복을 배제한다
      • 데이터베이스는 똑같은 자료를 중복하여 저장하지 않는 통합된 자료 덩어리입니다. 통합해서 저장함으로써 자료의 검색을 용이하게 하며 데이터 트리를 만들어 구조화 할 수 있습니다. 이 작업은 데이터 검색과 세부 데이터 색인, 자료의 카테고리화를 가능하게 만들어 데이터 관리 작업의 편리성과 효율성을 증대 시킵니다.
        • 정리 : 회사에 A사원과 B사원이 동일한 자료인 1번자료를 데이터베이스에 올린다 하더라도 2개가 올라가지 않고 1개가 올라갑니다
    • 데이터베이스는 구성원이 엑세스 가능해야 한다
      • 데이터베이스는 한 조직 또는 사용자의 컴퓨터가 액세스하여 처리할 수 있는 저장장치, 즉 서버에 수록된 자료입니다. 데이터의 양이 많아질 수록 더욱 많고 세분화된 카테고리가 나뉘어지므로 시간이 갈수록 서버의 속도와 안정성이 중요해지고 있습니다.
        • 정리 : 회사내에 A부장님이나 신입사원 B씨 가 업무를 처리하는데 필요한 자료가있다면 언제든 데이터베이스에서 자료를 가지고올수 있습니다
    • 데이터베이스는 조직의 가장 중요한 자료의 창고이다
      • 데이터베이스는 어떤 조직의 기능을 수행하는 데 없어서는 안 되며 존재 목적이 뚜렷하고 유용성있는 운영 자료의 집합체이기 때문에 임시로 필요해서 모아놓은 데이터나, 단순한 입 출력 자료와는 구분지어야 합니다.
        • 정리 : 회사내에서 가장 중요한 정보도서관이 데이터베이스이기 때문에 신입사원B씨가 오늘 할일을 적어놓은 데이터처럼 임시로 필요해서 만들어놓은 데이터를 저장해선 안됩니다
    • 데이터베이스는 조직의 공동 소유의 자료이다
      • 한 조직에서 가지는 데이터베이스는 그 조직 내의 모든 사람들이 소유하고 유지하며 이용하는 공동의 자료로서 각 사용자는 같은 데이터라 할지라도 각자의 응용 목적에 따라 다르게 사용할 수 있으며, 수정이나 보관, 삭제의 책임이 구성원에게 있습니다.
        • 정리 : 보험회사에 다니는 A대리님은 B고객의 정보를 조회하여 어떤보험에 들었는지를 조회할수 있고 C부장님은 B고객의 정보를가지고 보험금을 지급할수도 있습니다 그리고 D신입사원이 마음대로 B고객의 정보를 수정해서 없는 보험에 가입되어있도록 만든다던지 B고객의 가입정보를 삭제시킨다던지 하면 A대리님이나 C부장님이 업무를 처리하는데 큰 지장이있을겁니다 그렇기때문에 데이터베이스의 수정 보관 삭제의 책임은 구성원에게 있습니다
  • 데이터베이스는 갈수록 방대하지고 빠른 검색을 위한 효율성이 중요해지고 있고, 또 그 이용에 따른 구성원의 책임도 늘어가는 경향이 있어 데이터베이스 관리자의 위치가 점점 높아지고 있다

  • 데이터베이스의 특징
    • 실시간 접근성
      • 사용자가 데이터 조작 및 검색을 요구하는 경우 실시간으로 응답이 가능해야한다
    • 지속적인 변화
      • 사용자가 데이터를 추가하거나 수정하거나 삭제하는경우에도 데이터를 바꿔서 항상 데이터의 최신정보를 유지해야한다
    • 동시 공유
      • 여러 사용자가 동시에 자기가 원하는 데이터를 사용할수 있어야한다
    • 내용에 대한 참조
      • 데이터를 사용할 때 데이터의 위치나 주소가 아니라 사용자가 요구하는 데이터의 내용에 의해서 접근한다
    • 데이터의 독립성
      • 논리적 독립성 : 응용 프로그램과 데이터베이를 독립시켜서 데이터의 논리적 구조를 변경하더라도 응용 프로그램은 변경되지 않는다
      • 물리적 독립성 : 응용 프로그램과 보조기억장치같은 물리적 장치를 독립시킴으로써 혹시나 시스템 성능향상을 위하여 새로운 디스크를 도입하더라도 응용프로그램에는 영향을 주지 않고 물리적인 구조만 변경한다

  • 데이터베이스의 장단점
    • 데이터베이스 장점
        1. 데이터의 중복을 피할 수 있음
        1. 저장된 자료를 공동으로 이용할 수 있음
        1. 데이터의 일관성을 유지 할 수 있음
        1. 데이터의 무결성을 유지 할 수 있음
        1. 보안을 유지할 수 있음
        1. 데이터를 표준화 할 수 있음
        1. 데이터를 통합관리 할 수 있음
        1. 항상 최신의 데이터를 유지함
        1. 실시간 처리가 가능함
        1. 데이터의 논리적 물리적 독립성이 보장

    • 데이터베이스 단점
        1. DB전문가 부족 ( 이게 단점이냐 그냥 현실이지...)
        1. 전산화 비용이 증가함
        1. 대용량 디스크로의 집중적인 접근으로 과부화 발생
        1. 파일의 백업과 회복이 어려움
        1. 시스템이 복잡함

JDBC

  • JDBC 개요
    • JDBC 는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다.
    • JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다.
    • JDBC API는 JAVA에서 제공하는 표준 API 이다

  • DBMS 접근방법
    • DBMS는 여러종류가 있는데 DBMS를 만든 회사끼리 약속을 하고 만든것이 아니기때문에 DBMS별로 전부 따로 만든 API내의 함수들이 기능은 같더라도 이름이 다를수있다
    • 우리가 Oracle 이라는 DBMS를 사용하는 중 MS SQL이라는 DBMS로 바꾼다고 가정하면 우리가 작성해논 코드들이 정상적으로 작동하지 않는다 DBMS별로 따로 제공하는 API들의 함수명이 다르기 때문이다
    • DBMS를 절대로 바꾸지 않는다고 하여도 개발자의 입장에서 DBMS별로 API를 사용하는건 굉장히 골치아픈 일이다 여러가지 DBMS들의 함수이름들을 다 알고 그걸 사용해야되기 때문이다
    • 그래서 등장한것이 JDBC이다 DBMS에 접속하기 위한 도구들을 개발자가 직접사용하지 않게하기 위함이다
    • 각 DBMS들을 사용할때 조금씩 차이가 나는부분들을 단일화해주는게 JDBC이다

'공부 기록' 카테고리의 다른 글

2021-05-14 32일차  (0) 2021.05.14
2021-05-13 31일차  (0) 2021.05.13
2021-05-11 29일차  (0) 2021.05.11
2021-05-10 28일차  (0) 2021.05.10
2021-05-09 27일차  (0) 2021.05.10