본문 바로가기

(23)
파일 업로드 부터 수정까지 1. head사이에 script넣지말고 바디태그 밑에 넣기 스크립트를 문서의 태그 안에 위치시킨 경우, DOM이 완전히 로드되기 전에 스크립트가 실행되어 작동하지 않을 수 있습니다. 2. . https://kimvampa.tistory.com/m/220
트랜잭션이란!??!?!!?!??! 1. 트랜잭션의 개념 논리적 단위로 어떤 한 부분의 작업이 완료되었다 하더라도 , 다른 부분의 작업이 완료되지 않을 경우 전체 취소되는 것입니다. 이때 , 작업이 완료되는 것을 커밋(commit)이라고 하고 , 작업이 취소되는 것을 롤백(rollback)이라고 합니다. 영화 예매를 할 경우 카드 결제 작업과 마일리지 적립 작업 2. 스프링 트랜잭션 사용방법 트랜잭션 처리를 하지 않았을 경우 rollback이 되지 않는 경우입니다 조건에 안 맞는 데이터가 들어왔을때 '매표소 직원' 테이블에는 제약조건에 걸린 값만 들어오지만 '카드 결제' 컬럼에선 제약조건이 없기때문에 그 데이터가 그대로 남아있다 => 문제생김! 3. 스프링 트랜잭션을 이용하기 위한 설정 *. servlet-context.xml *. Dao..
Spring Validator를 이용한 검증 회원가입할때 많이 씀. 값을 받아와서, 커맨드 객체는 dto.class 컨트롤러단의 validator 객체로 검증 실시 후 view단 => 클라이언트 공통기능을 하는 클래스를 하나 만들어서(StudentValidator), 값 체크하는 메소드를 넣어줌 ValidationUtils 클래스 오류 있으면 각 오류에 맞는 메시지를 보여준다. @Valid와 @InitBinder @Valid 오류 발생시 실습 그대로 전송 이거대신 ValidationUtils.rejectIfEmptyOrWhitespace(errors, "id","trouble"); ValidationUtils.rejectIfEmptyOrWhitespace(errors, "pw","trouble"); 이게 더 간편 로그보면잘나옴 소스코드 packag..
스프링부트 3. 스프링 부트 동작원리 1. 스프링부트 동작원리 (1) 내장 톰켓을 가진다. 톰켓을 따로 설치할 필요 없이 바로 실행가능하다. 우선 톰켓에대한 개념 정리 다시필요. 소켓이 뭔지 알아야함. 소켓 : 운영체제가 가지고 있는 것. a가 5000번 포트를 열고 b가 ip주소 5000을 넣으면 서로 통신이 가능함. 그런데 이미 b가 a의 5000번 포트를 쓰고 있으면 c는 5000 번 포트로 연결할 방법이 없음 ⇒5000번 포트는 연결용도로만 쓰고 새로운 포트를 랜덤 생성해서 그걸로 통신함 근데 이렇게 되면 다른 사용자의 요청을 받을 수 없음 cpu가 b와 5001번으로 소통하고 있기 때문에 ⇒ 5001번을 만들때는 새로운 스레드를 만들어줌, 그리고 스레드가 만들어지면 원래 5000번은 끊김 소켓통신 : 시간을 쪼개서 동작. 장점: 연..
스프링 부트 2. JPA JPA란? JPA는 Java Persistence API 이다. JPA는 ORM 기술이다. JPA는 반복적인 CRUD 작업을 생략하게 해준다. JPA는 영속성 컨텍스트를 가지고 있다. JPA는 DB와 OOP의 불일치성을 해결하기 위한 방법론을 제공한다. (DB는 객체저장 불가능) JPA는 OOP의 관점에서 모델링을 할 수 있게 해준다. (상속, 콤포지션, 연관관계) 방언 처리가 용이하여 Migration하기 좋음. 유지보수에도 좋음. JPA는 쉽지만 어렵다. JPA는 Java Persistence API 이다. ⇒ persistence: 영속성 컴퓨터의 ram에 있는 데이터는 휘발성이다. 이 데이터를 날아가지 못하게 하기 위해 하드디스크에 영구적으로 저장을 한다. 영속성 : 데이터를 생성한 프로그램이 종..
스프링부트 1. 기본개념정리 스프링부트 1.기본개념정리 스프링부트 강좌 개념 정리 스프링은 프레임워크이다. 프레임워크이므로 우리가 아무리 내용을 바꿔도 스프링이 만든 틀안에 속하게된다. 틀 안에서 개발을 하면 아무리 이상하게 해도 최소한 틀 밖에 튀어나가지는 않는다! 스프링은 오픈소스이다. 오픈소스이기에 스프링의 내부 구조를 사용자가 볼 수 있으며, 불편한 부분을 내가 고칠수도 있다. 스프링은 IoC 컨테이너를 가진다. 스프링은 DI 를 지원한다. 스프링은 엄청나게 많은 필터를 가지고 있다. 스프링은 엄청나게 많은 어노테이션을 가지고 있다. (리플렉션, 컴파일체킹) 스프링은 MessageConverter를 가지고 있다. 기본값은 현재 Json이다. 스프링은 BufferedReader와 BufferedWriter를 쉽게 사용할 수 있..
oracle과 jsp를 연동해서 간단한 게시판(CRUD) 만들기 프로젝트 TO DO LIST 게시글 정보를 담을 수 있는 클래스 정의 BoardVo.java 데이터베이스에 접근하는 클래스 BoardDao.java WEB.XML INDEX.JSP지 CRUD 쿼리문