본문 바로가기

스프링9

[Spring] 파일첨부 [Spring] 파일첨부 파일첨부 방식에는 페이지 이동방식(form태그 이용)과 Ajax 이용방식, iframe을 이용하는 방식이 있다. 이중 iframe을 이용하는 방식은 화면이 하나 더 뜬다는 점과, 보안에 취약해 대부분의 웹사이트에서 이용하지 않고 있는 방식이다. 파일 업로드 API cos.jar cos.jar을 이용하는 방식은 2002년 이후로 개발이 종료되었고, 더 이상 사용하지 않는 것을 권장한다. commos-fileupload commos-fileupload는 일반적으로 많이 활용되며, 서블릿 3.0 이전에도 사용 가능하다. 서블릿의 API상에서 지원 서블릿 버전 3.0 이상부터는 API상에서 파일 업로드를 지원한다. 서블릿 버전 변경 및 설정 pom.xml 버전변경 ... javax.se.. 2021. 5. 28.
[Spring] 트랜잭션 [Spring] 트랜잭션 service의 메소드가 하나의 mapper메소드(쿼리)만 사용한다면 예외 발생 후에 DB에는 변화가 없다. 하지만 하나의 트랜잭션이 여러 개의 mapper메소드(쿼리)를 순차적으로 실행 후 문제 발생 시 성공한 쿼리문만 반영되어 다시 직접 복구해야하는 문제가 발생한다. 이러한 문제를 막기 위해 스프링에서는 @Transactional 어노테이션을 사용하여 한개의 트랜잭션에 문제가 발생하였을 때 rollback을 통해 전체 트랜잭션이 모두 DB에 반영되지 못하도록 막아준다. @Transactional @Override public int remove(Long rno) { log.info("remove........."+rno); board_mapper.updateReplyCnt(m.. 2021. 5. 26.
[Spring] AOP [Spring] AOP AOP란 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍을 뜻한다. 관점, 관심사 관점이란 개발에 있어서, 관심사(concern)을 의미한다. 관심사는 개발 시 필요한 것들을 생각하는 일이다. 파라미터가 잘 전달되었는가? 이 로직에서 발생할 수 있는 모든 예외를 처리하자 적절한 권한을 가진 사용자가 작업하고 있는가? 핵심 로직은 아니지만 반복적으로 개발에 필요한 관심사들이다. AOP 따라서 AOP는 이러한 것들을 모듈로 분리하여 작성하고 핵심 비지니스 로직만을 작성하도록 한다. 종단 관심사 : 핵심로직 횡단 관심사 : 주변로직 횡단 관심사를 모듈로 구현하는 것이 AOP를 구현하는 것이다. 즉, 반복적으로 나타나는 횡단괌심사를 모듈로 분리한 수 적절한.. 2021. 5. 26.
[Spring] web.xml cvc-elt.1.a: Cannot find the declaration of element 'web-app' cvc-elt.1.a: Cannot find the declaration of element 'web-app' 오류 해결방법 스프링에서 servlet 버전을 3.1로 올린 후 web.xml에서 위와 같은 오류가 발생 xsi:schemaLocation의 버전부분만 3_1로 변경하면 되는줄 알았는데 xmlns과 xsi:schemaLocation 둘다 servlet 3.1버전에 맞게 수정해야 한다. 위와 같이 수정하여 해결 참고자료 https://www.ibm.com/docs/ko/was-liberty/base?topic=31-servlet-behavior-changes 2021. 5. 26.
[Spring] REST Controller 댓글 기능 Rest방식 구현 [Spring] REST Controller 댓글 기능 Rest방식 구현 Spring에서 대표적으로 사용하는 데이터 전송 방식에는 REST가 있다. 게시판 페이지의 게시글 상세보기의 경우 댓글을 불러올 때에 페이징을 이용하는 경우가 있기 때문에, ajax를 이용해 JSON데이터를 REST로 받아오는 식으로 설계한다. REST Controller package com.heekng.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; .. 2021. 5. 23.
전자정부 표준 프레임워크 & 웹 개발 직무 전자정부 표준 프레임워크 & 웹 개발 직무 전자정부표준프레임워크(egov) 전자정부 표준 프레임워크란 이클립스와 스프링을 기반으로 한 프레임워크이다. 정부 공공 프로젝트 등 사용화 혹은 서비스해야 할 상품을 제작 할 때 이용하며 전자정부 표준 프레임워크는 표준 라이브러리만을 제공하여 더 균형있고 틀이 정해진 개발을 도와준다. 웹 개발 직무 웹 개발 직무에는 보통 백엔드와 프론트엔드로 나뉜다고 알고 있다. 엔드란 서버를 뜻하며 요청에 응답할 줄 알고, REST방식의 데이터 수송신을 할 줄 안다는 것을 뜻한다. 따라서 흔히 말하는 백엔드 중 REST방식의 데이터 통신을 하지 않는 상태에서는 백엔드가 아닌 웹 개발만을 하는 것이다. **REST방식: 데이터를 파라미터가 아니라 JSON 또는 XML파일로 보낸다.. 2021. 5. 17.
[Spring] 게시판 프로젝트 (1) [Spring] 게시판 프로젝트 (1)_errorpage, vo, mapper, service 스프링 프로젝트로 게시판을 만드는 과정. assets, images는 기존의 템플릿에서 가져왔으며, list, get, modify, register.jsp파일 작성은 따로 다루지 않는다. errorPage 설정 appServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/appServlet/servlet-context.xml throwExceptionIfNoHandlerFound true 1 web.xml의 servlet태그 속에 태그를 추가하여 noHandelrFoundException이 발생.. 2021. 5. 17.
[Spring] MVC model 2 구조 [Spring] MVC model 2 MVC model2를 사용하는 이유 1. 분업 2. 유지보수 3. 페이지가 많기 때문에 스프링 MVC model 2 Front-Controller패턴의 형태 위 이미지의 숫자와 관련 없음 사용자의 모든 Request는 Front-Controller인 DispatcherServlet을 통해 처리한다.(web.xml 참고) HandlerMapping은 Request의 처리를 담당하는 컨트롤러를 찾기 위해 존재한다. HandlerMapping 인터페이스를 구현한 여러 객체 중 @RequestMapping, @Controller 어노테이션이 적용된 것을 기준으로 판단하며, 적절한 컨트롤러가 찾아졌다면 HandlerAdapter을 이용해서 해당 컨트롤러를 동작시킨다. Cont.. 2021. 5. 10.
[Spring] HikariCP, MyBatis를 이용한 DB설정 [Spring] HikariCP, MyBatis를 이용한 DB설정 Spring에서 DataBase사용을 위한 DBCP에는 Hikari가 있다. Hikari가 보편적으로 DBCP로 이용되는 이유는 성능이 좋아서이다. Spring에서 Hikari 사용을 위한 설정과 MyBatis를 이용하는 방법을 알아본다. HikariCP설정, 사용방법 Hikari의 버전관리, 설치와 기본 설정방법은 이전 다른 설정들과 동일한 방식으로 진행된다. pom.xml의 태그 작성을 통한 설치 -> root-context.xml의 태그 작성을 통한 DB연동 설정 Hikari를 사용하기 위한 기본 설정 com.zaxxer HikariCP 2.7.4 pom.xml의 태그 안에 위 태그를 작성 > 저장 후 프로젝트 update Oracl.. 2021. 5. 9.