Spring

    [30] 파일 업로드 처리 - 파일 업로드 방식

    첨부파일을 서버에 전송하는 방식은 크게 태그를 이용해서 업로드하는 방식과 Ajax를 이용하는 방식으로 나눠볼 수 있다. 주로 다음과 같은 방식을 이용하는 경우가 대부분이다. 태그를 이용하는 방식 : 브라우저의 제한이 없어야 하는 경우에 사용 - 일반적으로 페이지 이동과 동시에 첨부파일을 업로드 하는 방식 - 을 이용해서 화면의 이동 없이 첨부파일을 처리하는 방식 Ajax를 이용하는 방식 : 첨부파일을 별도로 처리하는 방식 - 을 이용하고 Ajax로 처리하는 방식 - HTML5의 Drag And Drop 기능이나 jQuery 라이브러리를 이용해서 처리하는 방식 브라우저 상에서의 방식은 다양하지만 서버쪽에서의 처리는 거의 대부분 비슷하다. 응답을 HTML 코드로 하는지 아니면 JSON 등으로 처리하는지 정도..

    [29] AOP와 트랜잭션 - 댓글과 댓글 수에 대한 처리

    tbl_board 테이블에 replyCnt 칼럼을 추가한다 (게시물 수가 많으면 시간이 오래 걸림) 기존에 댓글이 존재했다면 replyCnt에 반영해 두어야 하므로 아래의 쿼리를 실행한다. 1. 프로젝트 수정 데이터베이스가 수정되었으므로, BoardVO 클래스와 MyBatis의 SQL, BoardService 등을 수정해 줄 필요가 있다. 이전 파트에서 작성했던 'ex03' 프로젝트를 수정한느 형태로 적용한다! 1-1. BoardVO, BoardMapper 수정 - BoardVO 댓글의 숫자를 의미하는 인스턴스 변수를 하나 추가해야 한다. - BoardMapper 인터페이스에는 새롭게 replyCnt 를 업데이트 하는 메서드를 추가해야 한다. public void updateReplyCnt(@Param(..

    ERROR: org.springframework.test.context.TestContextManager - Caught exception while allowing

    트랜잭션 관련 test 코드를 실행하던중 아래와 같은 오류가 발생했다 ㅠ 책보고 따라하는 중이었는데 도무지 다른점이 없어서 뭔가했더니 프로젝트에 jdbc 라이브러리가 추가되어 있지 않아서 벌어진 일이었다... INFO : org.springframework.test.context.support.DefaultTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support..

    [28] AOP와 트랜잭션 - 스프링에서 트랜잭션 관리

    트랜잭션의 성격을 'ACID 원칙'으로 설명하곤 하는데 다음과 같다. 원자성(Atomicity) 하나의 트랜잭션은 모두 하나의 단위로 처리되어야 한다. 좀 더 쉽게 말하자면 어떤 트랜잭션이 A와 B로 구성된다면 항상 A,B의 처리 결과는 동일한 결과이어야 한다. 즉 A는 성공했지만, B는 실패할 경우 A,B는 원래 상태로 되돌려져야만 한다. 어떤 작업이 잘못되는 경우 모든 것은 다시 원점으로 되돌아가야만 한다. 일관성(Consistency) 트랜잭션이 성공했다면 데이터베이스의 모든 데이터는 일관성을 유지해야만 한다. 트랜잭션으로 처리된 데이터와 일반 데이터 사이에는 전혀 차이가 없어야만 한다. 격리(Isolation) 트랜잭션으로 처리되는 중간에 외부에서의 간섭은 없어야만 한다. 영속성(Durabilit..

    [27] AOP와 트랜잭션 - AOP 이론과 예제 실습

    AOP는 흔히 '관점 지향 프로그래밍'이라는 용어로 번역되는데, 이때 '관점'이라는 용어가 현실적으로 와닿지 않기 때문에 어렵게 느껴질 수 있다. '관점'이라는 용어는 개발자들에게는 '관심사'라는 말로 통용된다. '관심사'는 개발 시 필요한 고민이나 염두에 두어야 하는일일고 생각할 수 있는데, 코드를 작성하면서 염두에 두는 일들은 주로 다음과 같다. 파라미터가 올바르게 들어왔을까? 이 작업을 하는 사용자가 적절한 권한을 가진 사용자인가? 이 작업에서 발생할 수 있는 모든 예외는 어떻게 처리해야 하는가? 위와 같은 고민들은 '핵심 로직'은 아니지만, 코드를 온전하게 만들기 위해서 필요한 고민들인데 전통적인 방식에서는 개발자가 반복적으로 이러한 고민을 코드에 반영하게 된다. AOP는 이러한 고민에 대한 문제..

    [26] REST 방식과 Ajax를 이용하는 댓글처리 - 이벤트 처리와 HTML 처리

    5. 이벤트 처리와 HTML 처리 앞에 과정 까지는 Ajax 처리까지는 완료했다. 남은 작업은 화면에서 버튼 등에서 발생하는 이벤트를 감지하고, Ajax 호출의 결과를 화면에 반영하는 것이다. 5-1. 댓글 목록 처리 댓글의 목록을 위해서는 별도의 를 생성해서 처리해야 한다. 게시글과 관련된 화면 아래쪽에 를 추가한다. 추가하는 에는 나중에 화면의 모습을 파악할 수 있도록 간단한 텍스트 등을 구성해 둔다. 1) board/get.jsp 의 일부 Reply user00 2018-01-01 13:13 Good job! 댓글의 목록은 태그 내에 태그를 이용해서 처리한다. 각 태그는 하나의 댓글을 의미하므로 수정이나 삭제 시 이를 클릭하게 된다. 수정이나 삭제 시에는 반드시 댓글번호(rno)가 필요하므로 'da..