전체 글
Spring MVC - [ Transaction, commit, Rollback ]
1. Transaction Transaction (=Tx) 이란 더 이상 나눌 수 없는 작업의 단위를 의미한다. (ex. insert, update, select문 각각 하나하나 / 계좌 이체(출금+입금) 등) 계좌 이체의 경우는 출금과 입금이 하나의 Tx여야 한다. (계좌 이체 시 출금이 이루어지면 입금도 반드시 이루어져야하므로!) Transaction의 속성은 크게 ACID 4가지로 볼 수 있다. 원자성(Atomicity) : 나눌 수 없는 하나의 작업으로 다뤄져야 한다. 일관성(Consistency) : Tx 수행 전과 후가 일관된 상태를 유지해야 한다. 고립성(Isolation) : 각 Tx는 독립적으로 수행되어야 한다. 영속성(Durability) : 성공한 Tx의 결과는 유지되어야 한다. 각 ..
IntelliJ - [ 여러 프로젝트 띄우기 ]
1. 기존 프로젝트 안에 신규 모듈(프로젝트) 추가 File -> Proejct Structure -> Project Settings -> Modules -> + 아이콘 클릭 -> New Module 선택 Location을 동일한 Project 내에 생성 2. 기존에 생성되어 있는 모듈 프로젝트 안으로 Import File -> Proejct Structure -> Project Settings -> Modules -> + 아이콘 클릭 -> Import Module 선택 프로젝트 선택 후 Apply -> OK 그러면 한 프로젝트 내에서 여러 모듈을 사용할 수 있다! 참조 https://wakestand.tistory.com/632 인텔리제이 프로젝트 여러개 여는 방법 인텔리제이(IntelliJ) 에서는 ..
Spring MVC - [ Spring DI ]
1. 변경에 유리한 코드(1) - 다형성, factory method 아래와 같이 코드를 작성하면 SportsCar를 Truck으로 변경할 때 변경해야 할 포인트는 2군데이다. SportsCar car = new SportsCar(); Truck car = new Truck(); 다형성을 이용하면 변경 포인트를 한 군데로 줄일 수 있다. Car car = new SportsCar(); Car car = new Truck(); 그리고 아래처럼 메서드로 반환받을 경우, 객체를 생성하는 코드는 손 댈 필요가 없고 메서드에서 반환 타입만 변경해주면 된다. Car car = getCar(); static Car getCar() { return new SportsCar(); } static Car getCar() ..
IntelliJ - [ 단축키 / 설정 ]
Shift+Shift : 검색창 cmd + 위 방향키 : Navigation Bar esc : 에디터 창으로 focus 이동 파일 클릭 + Space Bar : 새 창에 파일 내용 미리보기 (화살표 키로 이동 가능) cmd+E / cmd+shift+E : 최근에 읽거나 편집한 파일 목록 cmd+shift+[ : 열린 탭 간 이동 cmd+/ & cmd+shift+/ : 한 줄 주석 & 여러 줄 주석 cmd+F & cmd+R : 검색 & 치환 cmd+b & cmd+option+왼쪽 화살표 : 메서드 선언부 또는 사용된 곳으로 이동 & 원래 위치로 돌아옴 cmd+shift+B : 타입 정의로 바로 이동 cmd+shift+위 아래 방향키 : 메서드 단위 이동 cmd+shift+enter : 문장 ..
Spring MVC - [ 데이터의 검증 ]
1. Validator validator란 객체를 검증하기 위한 인터페이스로, 객체 검증기(validator)구현에 사용한다. 아래는 구현 예시이다. supports 반환 결과 false이면 검증할 수 없다. public class UserValidator implements Validator { @Override public boolean supports (Class clazz) { return User. class. isAssignablefrom(clazz); // clazz가 User 또는 그 자손인지 확인 } @Override public void validate (Object target, Errors errors) { User user = (User)target; String id = user..
Spring MVC - [ 데이터의 변환 ]
1. BindingResult 요청이 들어오면 주소에 붙어온 파라미터를 WebDataBinder가 1. 타입변환, 2. 데이터 검증 실행 후 BindingResult에 결과나 에러를 담아서 컨트롤러로 보내준다고 했다. BindingResult는 파라미터에서 바인딩할 객체 바로 뒤에 넣어줘야 한다. 형변활 할 수 없는 파라미터가 들어오면 오류가 뜨지만,(ex. Date 형식에 문자열) BindingResult를 파라미터로 넣어주면 형변환 실패 시 에러페이지로 넘어가지 않고 null값으로 받아와 컨트롤러가 처리할 수 있도록 해준다. 2. 데이터 변환 어떻게 형변환 해줄 지 컨트롤러에서 @InitBinder 애노테이션을 가진 메서드를 생성해 직접 지정해 줄 수 있다. 해당 메서드가..