[DB] Database

2024. 8. 29. 19:06·Database

[작성일: 2023. 04. 22]

 

 

Database

MySQL

  • SQL 문법 기반
  • 거의 모든 운영 체계에서 사용 가능
  • 처리 속도가 빠르고 대용량 데이터 처리가 용이함
  • 설치가 쉽고 사용법이 쉬움
  • 구글, 링크드인, 아마존, 넷플릭스, 트위터 

 

 

 

MariaDB

  • MySQL을 개발한 개발자가 만든 DBMS
  • MySQL과 매우 유사
  • 상업용으로 무료
  • MySQL의 단점을 상당 보완함

 

 

 

Oracle

  • 오라클 회사에서 만든 데이터베이스
  • 세계 점유율 1위
  • 막강한 Q&A 사이트(metalink, askTom)
  • 분산처리를 통해 대용량의 성능도 cover
  • 실행계획을 제어할 수 있는 도구 제공(hint)
    • /*+    */

 

 

 

PostgreSQL

  • 대용량 처리를 위한 기능이 구현
  • 보안을 위한 암호화, 접근제어, 접근감지
  • 오픈 소스로 무료임.
  • 인스타그램, 스카이프, 이케아, 트립어드바이저

 

 

 

 

 

MyBatis

  • 데이터베이스 프로그래밍을 쉽게 할 수 있는 개발 framework
  • 프로그램에 있는 SQL들을 한 구성 파일에 저장하여 프로그램 코드와 SQL을 분리할 수 있는 장점
  • 코드의 간결성으로 인해 유지보수에 장점

 

 

 

log4jdbc-log4j2 라이브러리

  • MyBatis는 내부적으로 JDBC의 PreparedStatement를 이용해서 SQL 처리
  • 따라서 SQL에 전달되는 파라미터는 JDBC와 같이 ?로 치환되어 처리
  • 복잡한 SQL의 경우 ?가 제대로 들어갔는지 확인하기 쉽지 않음.
  • 내용을 확인하고자 log4jdbc-log4j2 라이브러리를 사용함.

 

 

설정내역 

  • pom.xml에 dependency 추가
<dependency>
   <groupId>org.bgee.log4jdbc-log4j2</groupId>
   <artifactId>log4jdbc-log4j2-jdbc4</artifactId>
   <version>1.16</version>
</dependency>

 

  • application.properties에 jdbc spy 설정
log4jdbc.spylogdelegator.name = net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
spring.datasource.hikari.driver-class-name = net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.hikari.jdbc-url = jdbc:log4jdbc:mariadb://localhost:3399:member
spring.datasource.hikari.username = root (본인 거)
spring.datasource.hikari.password = 1234 (본인 거)

 

  • log level 설정
logging.level.root = info

 

  • MyBatisConfig의 prefix를 spring.datasource.hikari로 변경

 

 

 

 

 

DB Connection Pool

  • 일반적으로 데이터 연동은 어플리케이션에서 필요할 때마다 DB에 연결
  • 매번 DB에 연결하므로 시간이 오래 걸림
  • 웹 어플리케이션이 실행되면서 DB와의 연결을 미리 설정
  • 필요할 때마다 연결 상태를 이용하여 빠르게 DB 접속 가능
  • 연결 유지하는 기술을 Connection Pool이라고 함.

 

 

Spring에서의 CP

  • Java에서는 기본적으로 DataSource라는 인터페이스를 이용하여 CP 관리
  • Spring에서는 사용자가 직접 관리하지 않고 자동화된 기법을 제공
  • SpringBoot 2.0 이전에는 tomcat-jdbc 이용
  • 2.0 이후부터 HikariCP를 기본 옵션으로 채택

 

 

 

MyBatis와 연동되어 동작

 

 

 

 

[실습1]

아이디와 비밀번호를 입력받은 후 아이디가 admin일 경우 ex10_admin.html로 이동

아이디가 user인 경우 ex10_user.html로 이동

- ex10_admin.html : 관리자 페이지 출력

- ex10_user.html : 일반 회원 페이지 출력

 

[실습2]

이름을 입력하고 출근 또는 퇴근 버튼 클릭

출근 시간은 9시, 퇴근 시간은 18시

출근 버튼 클릭 시 9시가 넘으면 지각처리

퇴근 버튼 클릭 시 18시 이전이면 업무시간이라고 처리

 

 

 

 

 

 

 

 

 

 

 


🐣 해당 게시글은 입문 개발자가 요약/정리한 글이므로 틀린 내용이나 오타가 있을 수 있습니다.

 

저작자표시 비영리 변경금지
'Database' 카테고리의 다른 글
  • [DB] Join
  • [DB] 반정규화
  • [DB] 데이터베이스 정규화
  • [DB] function
뚜비
뚜비
1년차 백엔드&iOS 개발자의 감자 탈출 블로그 🥔🥔
  • 뚜비
    뚜비의 개발로그
    뚜비
  • 전체
    오늘
    어제
  • 글쓰기     관리
    • Devlog
      • Back-End
        • Java
        • Spring
        • JPA
        • HTTP
        • Security
        • Back-End
        • Front-End
      • 알고리즘
      • iOS
        • Swift
      • Database
      • Tips
        • Git & GitHub
        • A to Z
      • 프로젝트
      • 생각정리
  • 태그

    jsp
    의존성주입
    알고리즘
    MVC
    html
    최주호
    스프링
    Java
    Swift
    자바스크립트
    HTTP
    Security
    생성자
    sql
    다형성
    spring
    객체
    Database
    게시판만들기
    데이터베이스
    김영한
    자바
    Spring Security
    변수
    성능최적화
    DB
    백준
    JPA
    javascript
    프로그래머스
  • hELLO· Designed By정상우.v4.10.0
뚜비
[DB] Database
상단으로

티스토리툴바