전체 글

멈추지 않고 꾸준히 배우는 이들에게 도움이 되고픈 블로그입니다.
spring/spring db1

4. 스프링과 문제해결 - 트랜잭션

1. 문제점 application의 구조 프레젠테이션 계층 UI와 관련된 처리 담당 웹 요청과 응답 사용자 요청을 검증 spring MVC, web Servlet 기술 서비스 계층 비즈니스 로직 담당 주 사용 기술 : 가급적 특정 기술에 의존하지 않고, 순수 자바 코드로 작성 데이터 접근 계층 실제 db에 접근하는 code 주 사용 기술 : JDBC, JPA, File, Redis, Mongo ... 1.1. 서비스 계층 가장 중요한 계층 UI 와 db 저장 기술들은 다른 기술로 변경 가능성이 높지만 비즈니스 로직은 최대한 변경없이 유지 되어야한다. 서비스 계층은 특정 기술에 종속적이지 않게 개발되어야한다. 서비스 계층을 최대한 순수하게 유지하기 위한 목적이 크다 service 계층은 가급적busines..

spring/spring db1

3. 트랜잭션 이해

1. 트랜잭션 - 개념 이해 transaction Control (tx) data 저장시 file이 아닌 db에 저장하는 이유 db는 transaction이라는 개념을 지원하기 때문 transaction 거래 예시 : a와 b의 돈거래 : a 잔고 감소, b 잔고 증가 핵심 2가지 작업이 합쳐져서 하나의 작업처럼 동작 모든 작업이 성공해서 db에 정상 반영하는 것 : commit 작업 중 1개라도 실패해서 거래 이전으로 되돌리는 것 : rollback 2. 트랜잭션 ACID 원자성(atomictiy) : 여러작업이 하나의 작업인 것처럼 모두 성공 하거나 모두 실패 일관성(consistency) : db 상태를 유지 - 무결성 제약 조건을 만족 격리성(isolation) : 동시에 같은 데이터를 수정하지 ..

spring/spring db1

2. connectionPool 과 datasource 이해

1. connectionPool의 이해 connection을 새로 만드는 것은 과정이 복잡하고 시간도 많이 소모된다. - app과 db의 connection 맺는 과정에서 3 way handshake가 수행되기 때문 문제점 DB , app server에서도 tcp/ip 컨넥션을 새로 생성하기 위한 리소스를 매번 사용 고객이 app을 사용할 때, SQL을 실행하는 시간, connection을 새로 만드는 시간이 추가되기 때문에 결과적으로 응답 속도에 영향을 준다. 해결방안 connection을 미리 생성해두고 사용하는 connection pool 방법 이용 connection pool app이 시작되는 시점에 connection pool은 필요한 만큼 connection을 미리 확보해서 pool에 보관한다..

spring/spring db1

1. JDBC의 이해

spring boot db dependency JDBC API H2 Database Lombok test code에서 lombok 사용 시, dependency 추가 test code에서 @Slfj4 사용 하기 위함 testComileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' 1. H2 db 설정 개발, 테스트 용도로 사용하는 가벼운 db sql 작성 화면 제공 설치 다운로드 및 설치 : https://www.h2database.com h2 다운로드 버전확인: https://www.h2database.com/html/download-archive.html h2 데이터베이스 버전은 스프링 부트 버전에 ..

프로그램셋업 & 명령어/H2

Spring boot 에서 사용하는 h2

1. H2 db 개발, 테스트 용도로 사용하는 가벼운 db sql 작성 화면 제공 임베디드모드 존재 2. springboot에서의 h2 springboot에서 사용시, h2 jdbc 드라이버를 등록을 했었을 것이다. 이 때, spring boot에서 권장하는 h2 version이 존재하므로 library에서 확인한 후 해당 version에 맞는 h2를 다운로드 받아야한다. 3. 설치 다운로드 및 설치 : https://www.h2database.com h2 다운로드 버전확인: https://www.h2database.com/html/download-archive.html h2 데이터베이스 버전은 스프링 부트 버전에 맞춘다. : External Libraries -> h2database:version 4...

프로그램셋업 & 명령어/MySQL

MySQL local 계정 생성 및 database 생성

cli 환경에서도 가능하지만 절차가 조금 복잡해서 실수할 가능성이 높기 때문에 MySQLWorkbench 이용 cli 환경에서 생성하는 방법 blog : https://daseul.tistory.com/34 1. root 계정 접속 root 계정 기본으로 root 계정을 준다. root 계정은 모든 db에 접근이 가능한 최고 권한 계정 수행할 작업 root 계정에 들어가서 local 계정 생성 후, schema(db) 생성 local 계정에 특정 schema 접근 권한을 주어, 허용한 db에만 접근하도록 수행 2. 하위 계정 만들기 좌측 nav: MANAGEMENT -> User and Privileges main 하단 : Add Account 계정 설정 이름 접근 권한 (limit to host mat..

DB/DB

DBMS, Instance, DB, Schema, 사용자 계정

1. 용어 1.1. DBMS DBMS는 데이터베이스 관리 시스템(Database Management System)의 약자로, 데이터를 저장, 검색, 수정 및 관리하는 데 사용되는 소프트웨어 == DB + Instance 합한 db 내의 데이터에 접근할 수 있도록 해주는 소프트웨어 DBMS는 데이터베이스 시스템의 핵심 구성 요소로 데이터를 효율적으로 저장하고 조작하는 데 필요한 기능을 제공 ex) MySQL, PostgreSQL, Oracle, SQL Server 등 존재 1.2. SQL RDBMS의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어 1.3. 인스턴스 데이터베이스 서버의 실행 및 운영 환경 == DBMS 서버에서 process 와 memory 영역 하나의 물리적 또는 가상 서버에서..

프로그램셋업 & 명령어/MySQL

MySQL 및 MySQLWorkbench 설치, 설치시 에러 해결

1. MySQL m1 mac 용 - homebrew 이용 # 선 수행 brew update brew upgrade mysql 설치 - 현재 시점으로는 8.0 version을 권장하여 @8.0을 붙여서 설치함. 없을 시 최신 버전으로 설치됨 brew install mysql # 8.1 version 설치된다. brew install mysql@8.0 mysql 설치 확인 - 해당 명령어는 homebrew로 설치한 모든 서버 프로그램의 실행, 정지 상태 brew services brew services list mysql 서버 실행 # 권장 방식 2가지 brew services start mysql brew services restart mysql # 가능은 함 mysql.server start mysql ..

wooweee
코아일체