spring

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 데이터베이스 버전은 스프링 부트 버전에 ..

spring/spring db2

4. 데이터 접근 기술 - MyBatis(spring, maven) 활용

생성해야하는 파일 myBatis-config.xml 수정 DTO 생성 파일명 : ~~~.Dto DAO 생성 파일명 : ~~~Dao || DaoImpl Mapper 생성 파일명 : ~~~~Mapper.xml 1. myBatis-config.xml 자주하는 실수 : 별명을 무조건 올린다. mapper에서 returntype으로 그냥 쓸 때 에러 발생 / 별명(alias)가 중복되면 안된다. 2. DTO 생성 package com.teamProject.ezmeal.domain; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @AllArgsConstructor @NoArgsConstructor..

spring/spring 흐름

2. spring mvc1

1. WAS 작동 큰 그림 서블릿이라는게 http message의 실제 필요한 부분만 logic에 사용할 수 있도록 반복 작업을 다 수행해준다. request, response 라는 것을 이용해서 요청온 정보중 원하는 부분만 가지고 올 수 있고 내가 보내고 싶은 정보를 보낼 수 있다. 2. 서블릿 2.1. 기본 임시저장소 request.setAttribute(name, value) request.getAttribute(name) 세션관리 request.getSession(create: true) 요청 queryParams, html api text json 2.2. 요청 queary params, html form 조회 메서드 // http://localhost:8080/request-param?user..

spring/spring 흐름

1. spring 핵심 요약

0. 자세한 내용 1~2 chapter: 스프링 핵심 원리 이해 2 - 객체 지향 원리 적용 , 스프링 핵심 원리 이해 3 - 스프링 컨테이너와 스프링 빈 3 chapter: 스프링 핵심 원리 이해 4 - 싱글톤 컨테이너 4 chapter: 스프링 핵심 원리 이해 5 - 컴포넌트 스캔 5~6 chapter: 스프링 핵심 원리 이해 6 - 의존관계 자동 주입 7 chapter: 스프링 핵심 원리 이해 7 - bean 생명주기 callback 8 chapter: 스프링 핵심 원리 이해 8 - bean scope 1. appConfig srp, dip, ocp 지키는 방법 수동 빈 등록 방법 종류 appConfig.java appConfig.xml @Configuration @ComponentScan이 읽고 ..

spring/spring db2

4. 데이터 접근 기술 - MyBatis(spring, maven) 이론

0. summary_설정 library 받기 root-context에서 libaray로 부터 받은 2가지 1) sqlSessionFactory 2) sqlSession 의 설정을 해준다. sqlSessionFactory dataSource: bean으로 등록된 dataSource를 myBatis에게 전달 configLocation: myBatis의 내부 설정 파일 등록 mapperLocations: myBatis는 repository인 DAO와 sqlQuery인 mapper를 따로 분리 해서 사용하는데 그 중 mapper의 위치를 지정하는 설정 sqlSession repository Dao에서 sqlSession의 method를 이용해서 mapper의 sqlQuery를 사용한다. 2.1.2의 config..

wooweee
'spring' 카테고리의 글 목록 (4 Page)