728x90
반응형
SMALL

Spring 21

Spring DB 데이터 접근 기술

데이터 접근 기술SQLMapper : SQL을 작성하면 해당 SQL의 결과를 객체로 편리하게 매핑JdbcTemplateMyBatisORM 관련 기술 : 기본적인 SQL은 JPA가 처리하고, 개발자는 객체를 마치 자바 컬렉션에 저장하고 조회하듯이 사용JPA, Hibernate스프링 데이터 JPAQuerydslDTO (Data Transfer Object)- 데이터 전송객체- 특별한 기능은 없고 데이터를 전달하는 용도로 사용되는 객체JdbcTemplateJdbc를 직접 사용했을 경우 반복문제를 해결할 수 있다.동적쿼리는 해결하기가 어렵다.private final JdbcTemplate template;public JdbcTemplateItemRepository(DataSource datasource){ ..

Spring 2024.09.30

Spring DB 예외처리

자바예외예외 계층예외 기본 규칙예외는 잡아서 처리하거나 던져야한다. 예외를 잡거나 던질ㄷ 때 지정한 예외뿐만 아니라 하위 예외까지 함께 처리된다.체크예외 VS 언체크예외 (런타임예외)체크예외체크예외는 예외를 잡아서 처리할 수 없을 때, 예외를 밖으로 던지는 'throw'를 반드시 선언해야한다. 그렇지 않으면 컴파일 오류가 발생언체크예외 (런타임예외)예외를 잡아서 처리하지 않아도 'throw'를 생략할 수 있다.언체크예외를 사용해야하는 이유복구 불가능한 예외예를들면 SQLException 예외는 데이터베이스에서 발생하는 예외이다.이런 예외는 서비스나 컨트롤러에서는 처리가 불가능하다.따라서 이런 문제들을 일관성있게 공통으로 처리해야한다.의존 관계에 대한 문제예를들면 마찬가지로 SQLException 예외를 ..

Spring 2024.09.30

Spring DB 트랜잭션

트랜잭션트랜잭션 개념쪼갤 수 없는 업무 처리의 최소 단위 (거래내역)하나의 거래를 안전하게 처리하도록 보장해주는 것을 뜻함.예를들면 계좌이체 경우 A계좌에서 B계좌로 이체시 A의 돈이 빠져나가고B의 돈이 들어온 거래내역을 하나의 작업으로 동작해야하는걸 보장해야한다.트랜잭션 ACID원자성(Atomicity) : 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인것 처럼 모두 성공 또는 실패해야한다.일관성(Consistency) : 모든 트랜잭션은 일관성 있는 데이터베이스 상태를 유지해야한다.격리성(Isolation) : 동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않도록 격리한다. 예를 들면 동시에 데이터를 수정하지 못하도록 해야 한다.지속성(Durability) : 트랜잭션을 성공적으로 끝내면 그..

Spring 2024.09.30

Spring DB JDBC

JDBC 이해JDBC 표준 인터페이스JDBC(Java DataBase Connectivity)는 자바에서 데이터베이스에접속할 수 있도록 하는 자바 APIJDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공JDBC를 사용하여 데이터베이스가 변경되어도 JDBC 표준 인터페이스만 의존하면 된다.DriverManager JDBC가 제공하는 DriverManager는 라이브러리에 등록된 DB 드라이버들을 관리하고, 커넥션을 획득하는 기능일 제공 public class DBConnectionUtil { public static Connection getConnection() { try { Connection connection = DriverMana..

Spring 2024.09.30

Spring MVC 파일업로드

파일 업로드HTML 폼 전송 방식multipart/form-dataform 태그에 별도의 'enctype="multipart/form-data"를 지정해야한다.서블릿을 이용한 파일 업로드 파일 업로드 경로설정 application.properties file.dir=파일업로드 경로 (/Users/Seung/uplad/ 마지막에 '/' 추가된 것에 주의 업로드 사이즈 제한 spring.servlet.multipart.max-file-size=1MB spring.servlet.multipart.max-request-size=10MB file-size: 파일하나의 최대사이즈, 기본 1MB request-size: 여러파일 업로드시 전체합, 기..

Spring 2024.09.30

Spring MVC 컨버터와 포매터

스프링 타입 컨버터스프링은 자동으로 타입 변환 적용을 해준다스프링 MVC 요청 파라미터@RequestParam, @ModelAttribute, @PathVariable@Value 등으로 YML 정보 읽기XML에 넣은 스프링 빈 정보를 반환뷰를 렌더링 할때타입 컨버터 - Converter타입 컨버터는 동일한 이름의 인터페이스가 많으니 해당 인터페이스 사용 'org.springframework.core.convert.convert.Converter'타입 컨버터 인터페이스 public interface Converter{ T convert(S source);}타입 컨버터 사용 예시 (String -> Integer)public class StringToIntegerConverter implements Co..

Spring 2024.09.30

Spring MVC 예외처리

예외처리와 오류페이지예외처리서블릿 예외처리예외발생 흐름WAS(여기까지 전파) response.sendError(HTTP 상태코드, 오류메시지)WAS(SendError 호출기록확인) 필터 -> 서블릿 -> 인터셉터 -> 컨트롤러(에러페이지 컨트롤러) -> view(오류페이지)정리하자면 예외가 발생시 WAS까지 전파후 오류페이지를 찾아서 다시 오류 페이지를 호출하는 방식서블릿 예외처리 (필터/인터셉터)컨트롤러에서 예외가 발생하기전에 필터나 인터셉터를 호출 하였는데이후에 예외가 발생하고 오류페이지를 요청시 다시한번 호출해야하는데해당 필터나 인터셉터가 한번 더 호출되는 것은 비효율적이다.필터DispatcherType필터는 위에 말한 비효율적인 방법을 개선하기 위해 해당 옵션을 제공함. > 1. RE..

Spring 2024.09.30

Spring MVC 인터셉터

쿠키 & 세션쿠키영속 쿠키 : 만료 날짜를 입력하면 해당 날짜까지 유지세션 쿠키 : 만료 날짜를 생략하면 브라우저 종료시 까지만 유지쿠키 사용 (로그인/로그아웃)로그아웃시Cookie cookie = new Cookie("쿠키명",null);cookie.setMaxAge(0);response.addCookie(cookie);쿠키 값을 null처리 후 setMaxAge(0)으로 종료날짜를 0으로 지정로그인시Cookie cookie = new Cookie("쿠키명","쿠키값");response.addCookie(cookie);쿠키를 생성하고 HttpServletResponse에 담아둔다.쿠키로만 사용시 보안문제가 발생임의로 클라이언트가 쿠키값 변경 가능쿠키에 보관된 정보를 훔쳐 갈수 있다.세션을 함께 사용하여..

Spring 2024.09.30

Spring MVC 메시지와 국제화

메시지와 국제화메시지messages.properties 라는 메시지 관리용 파일을 만들고 사용item=상품item.itemName=상품명item.itemPrice=상품가격국제화messages_en.properties, messages_ko.properteis 등국제화가 적용되지 않을 경우 기본인 messages.properties가 기본이다.해당 경로는 /resource/messages.properties이다. messages.properties hello=안녕 hello.name=안녕 {0} messages_en.properties hello=hello hello.name=hello {0}스프링부트 메시지 소스 설정application.properties 설정spring.messages.basenam..

Spring 2024.09.30

Spring MVC 동작 방식

MVC란MVC패턴이라고 Model, View, Controller 의 약자이다.[출처 : 김영한의 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술]컨트롤러 : HTTP 요청을 받아서 검증하고, 비즈니스 로직을 실행한다.그리고 뷰에 전달할 결과 데이터를 조회해서 모델에 담는다,모델 : 뷰에 출력할 데이터를 담아둔다. 뷰에 필요한 데이터를 모두 모델에 담아서 전달해주는 덕분에 뷰는 비즈니스 로직이나 데이터 접근을 몰라도 된다.뷰 : 모델에 담겨있는 데이터를 사용해서 화면을 만든다.스프링 MVC[출처 : 김영한의 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술]동작순서핸들러 조회 : 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러(컨트롤러)를 조회한다.핸들러 어댑터 조회 : 핸들러를 실행할 수 있는 핸들러..

Spring 2024.09.30
728x90
반응형
LIST