예외처리와 오류 페이지 서블릿은 Exception과 response의 sendError 이 두 방식의 예외를 처리함 Exception 자바 메인 메서드 실행할땐, 메인 메소드 하나만 쓰레드에 담겨 실행되고 실행 도중 예외가 발생하면(잡지못한) 예외 정보를 남기고 해당 스레드가 종료 된다. 웹 애플리케이션의 경우 요청별로 쓰레드가 할당되고 서블릿 컨테이너 안에서 실행된다. 만약 이 상황에서 예외를 잡지 못한다면 어떻게 되냐? 컨트롤러(예외 발생)→ 인터셉터→ 서블릿 → 필터 → WAS 까지 전파가 된다. 즉, 그냥 WAS가 500이나 404같은 기본 문구를 보여주게 됨 sendError 이걸 호출한다고 에러가 바로 발생하는건 아니고, 서블릿 컨테이너한테 오류가 발생했다는 것을 전달할 수 있게 됨 그리고, ..
검증1-validation 검증을 하는데 오류가 있으면 바로 오류페이지로 이동한다면 사용자가 너무나 불편하다 사용자에게 잘못 입력한 부분을 알려주는 정도만 해야 함 따라서, 입력에 대한 검증을 클라이언트 혹은 서버에서 해야 하는데 클라이언트에서 하게 되면 보안에 취약하고 서버에서만 하면 반응성이 떨어진다 타임리프 사용하면 POST로 전달받은 Item객체를 ModelAttribute로 넘기면 검증 실패 시에도 그대로 다시 재사용가능하게 됨 prac4에 errors란 이름의 맵에 오류들을 넣어서 모델에 담아 주는데, 그냥 errors.containsKey 호출했을 때 맵이 비어있으면 NullPointerException뜸 errors?.containsKey를 사용하면 예외 대신 null을 반환하는 문법, t..
타임리프 기본기능 이미 앵간한건 아니까 가볍게 정리함 SSR을 위해 쓰는 것 순수 HTML을 최대한 유지하는 특징이 있음 JSP를 포함한 다른 뷰 템플릿들은 JSP를 웹 브라우저에서 열어보면 JSP소스코드랑 HTML이 섞여 정상적으로 확인하기 힘들지만, Thymeleaf는 서버를 통하지 않고 웹 브라우저에서 열어도 HTML은 보이고 서버를 통하면 동적으로 결과를 렌더링할 수 있음 순수 HTML을 유지하면서도 뷰 템플릿도 사용할 수 있는 타임리프의 특징을 네츄럴 템플릿이라 한다. 텍스트 th:text=”${data}” 이렇게 사용 컨텐츠 안에서 그냥 출력하려면 [[${data}]]이렇게 사용하면 됨 컨텐츠 안이라 하면 그냥 여기 말하는 거 이런 데이터에 html 태그를 추가하면 그대로 안나옴 이..
본 게시글은 인프런 김영한님의 JPA실전 2편 을 수강하고 저의 생각을 정리한 글입니다. 저의 글은 제 생각을 정리한 것에 불과하기에 강의에 나오는 내용을 제대로 학습할 수 없다고 생각합니다. 필요하다면 해당 강의를 수강하시는 것을 권장드립니다 ! 실전1 내용 직렬화(Serialization) : 객체를 직렬화하여 전송 가능한 형태로 만드는 것, 객체들의 데이터를 연속적인 데이터로 변환하여 stream을 통해 데이터를 읽도록 해준다. 역직렬화(Deserialization) : 직렬화된 파일 등을 역으로 직렬화 하여 다시 객체 형태로 만드는 것, 저장된 파일을 읽거나 전송된 스트림데이터를 읽어 원래 객체의 형태로 복원한다. @JsonIgnore : 엔티티(자바 클래스)를 자동으로 JSON으로 만들 때 무시..
해당 글은 인프런 김영한 님의 JPA 프로그래밍 기본편를 바탕으로 저의 생각을 정리한 글입니다. 저의 글로는 해당 강의에 나오는 내용을 다 이해할 수 없습니다. 본 글을 보시고 JPA에 관심이 생기신다면 정말 좋은 강의이니 꼭 들어보시는 것을 추천합니다 ! JPA소개 ‘객체지향’ 방식인 java와 ‘관계형’ DB.. 저장을 위해선 어쩔 수 없이 SQL로 객체를 변환해서 DB에 저장을 한다. 반대로 불러오려면 SQL로 불러와서 객체로 매핑을 한다 .. RDBMS에 PK,FK써서 자바의 객체 상속 관계를 풀어낸 것을 슈퍼타입, 서브타입 관계라고 한다. 이런 상속 관계를 이용하면 조인SQL도 쓰고 각 테이블에 맞는 객체 또 매핑해야 되고 … 근데, Collection을 사용해서 다형성을 이용하면 이런 상속 관..