스프링 10

21. 스프링 프레임 워크 - 썸네일 이미지[자바 웹을 다루는 기술]

쇼핑몰 등 에서 이미지를 나타날 때 썸네일 이미지를 사용하는 경우가 있습니다. 이미지의 개수가 많아 원본이지의 경우는 표시할 경우 오랜 시간이 걸릴 수 있습니다. 그래서 썸네일을 이용해서 목록에 축소된 이미지를 등록하여 신속하게 나타 낼 수 있습니다. pom.xml net.coobird thumbnailator 0.4.8 썸네일 라이브러리를 추가 FileDownController.java package com.myspring.pro28.ex02; .......... @Controller public class FileDownloadController { //파일 저장 위치를 지정 private static String CURR_IMAGE_REPO_PATH = "c:\\spring\\image_repo";..

개발/스프링 2022.05.30

19. 스프링 프레임워크 - 타일즈[자바웹을 다루는 기술]

스프링 타일즈라는 기능은 우리가 웹 페이지에서 공통적으로 적용되는 상단, 하단, 사이드 jsp를 레이아웃 템플릿에 적용하여 재사용하게 편하게 해주는 기능 입니다. 필자는 이전에 jsp:include 를 통해서 .jsp 페이지 마다 적용하긴 했었는데, 이 기능을 알고 시간 낭비했다고 생각 했습니다. 타일즈의 장정은 페이지 레이아웃을 쉽게 구현 할 수 있고 공통된 레이아웃읗 사용하여 유지관리를 쉽게 할 수 있습니다. 간단한 실습을 하도록 하겠습니다. pom.xml org.apache.tiles tiles-core 2.2.2 org.apache.tiles tiles-jsp 2.2.2 org.apache.tiles tiles-servlet 2.2.2 tiles 관련 라이브러리들을 pom.xml에 설정 합니다. ..

개발/스프링 2022.05.26

18. 스프링 프레임워크 - log4j[자바웹을 다루는 기술]

20년도 12월에 log4j 취약점에 대한 보안 이유가 크게 문제가 된 적이 있습니다. 특정 버전에 따라 각각의 취약점이 다른데 한 번 찾아보시길 바랍니다. 필자는 단순 공부를 목적으로 실습하느 것이라 1.x 버전을 그래도 쓰겠습니다. 업그레이드하여 사용해도 설정은 같습니다. 필자도 로그보다는 println을 통해서 콘솔에 출력하는 방법을 주로 사용합니다.(좋은 방법X) 하지만 이런경우 코드의 양이 많아지면 관리가 어려워지고 매우 번거롭습니다. 실제로 애플리케이션에서는 유지관리를 할 때 여러가지 정보를 파일로 관리를 하는데 이런 로그 관련 기능을 제공하는게 log4j 입니다. 빌드툴에서는 프로젝트를 생성하면 자동으로 log4j 라이브러리가 설치 됩니다. log4j 관련된 기능은 log4j.xml 파일엣 ..

개발/스프링 2022.05.25

15. 스프링 프레임워크 - @RequestParam[자바웹을 다루는 기술]

@RequestParam 1개의 HTTP 요청 파라미터를 받기 위해서 사용합니다. @RequestParam은 필수 여부가 true이기 때문에 기본적으로 반드시 해당 파라미터가 전송되어야 합니다.(default) 지정한 파라미터가 전송되지 않으면 Error를 유발하게 됩니다. getParameter() 메서드를 이용할 필요가 없어집니다. //@RequestParam을 이용해 받을 값을 지정한 변수에 자동으로 설정 @RequestMapping(value="/test/login.do", method= {RequestMethod.GET, RequestMethod.POST}) public ModelAndView login(@RequestParam("userID") String userID, @RequestPara..

개발/스프링 2022.05.23

14. 스프링 프레임워크 - @어노테이션[자바웹을 다루는 기술]

이전 장에서 DI, AOP 등을 XML에 설정하여 사용했습니다. 하지만 코드가 많아지고 복잡해지면 XML이 설정 파일이 매우 복잡해졌습니다. 이런점을 보완하기 나온게 Annotation(@) 입니다. 어노테이션은 주석이라는 뜻을 가지고 있지만 스프링에서는 그 이상의 기능을 가지고 있습니다. @Controller, @Component, @Service, @Repository, @Bean 등 여러가지 어노테이션을 스프링에서 자주 사용하고 있습니다. 스프링에서는 xml의 방식과 어노테이션의 방식을 혼합해서 사용하고 있습니다. 스프링에서 자주 쓰이는 어노테이션 관련 클래스 및 기능에 대해 알아보겠습니다. 어노테이션 종류 어노테이션 기능 @Controller component-scan에 의해 지정한 클래스를 컨트..

개발/스프링 2022.05.23

13. 스프링 프레임워크 - 트랜잭션 기능[자바웹을 다루는 기술]

트랜잭션을 접하기 전에 여러 개의 DML문을 한 번에 커밋하는 방법을 찾아 봤지만, 그 당시에는 그게 가능할까 하는 생각이 들었었고, 제대로 구현을 하지 못했습니다. 근데 공부를 하다보니 트랜잭션 기능에 대해 알게 되었고, 그때 이 방법을 적용 했더라면 수월하게 진행 되지 않았을까라는 생각이 들었습니다. 오늘은 어노테이션을 이용한 트랜잭션 기능을 알아보도록 하곘습니다. 트랜잭션(transaction) 트랜잭션은 "시스템에서 사용되는 쪼갤 수 없는 업무처리의 단위", "데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위" 이런식으로 정의를 내린다. 트랜잭션이라는 뜻으로 '거래' 라고 하는데, 생각해보면 거래라는 것은 거래를 진행하는 당사자들의 합의가 있어야지 거래가 성사되고 누구 한명이라도 원하지 ..

개발/스프링 2022.05.23

12. 스프링 프레임워크-마이바티스 연동[자바웹을 다루는 기술]

스프링에서 간단한 기능을 통해 쉽게 마이바티스를 사용 할 수 있습니다. 마이바티스 연동 관련 라이브러리 책에서 실습한 스프링은 버전은 3.x.x 이고, 마이바티스 라이브러리 버전도 3.x.x 입니다. 아래와 같이 실습에 필요한 파일을 준비 합니다. WEB-INF > config 1. action-mybatis.xml 2. action-service.xml 3. jdbc.properties WEB-INF 1. action-servlet.xml 2. web.xml 1. web.xml org.springframework.web.context.ContextLoaderListener contextConfigLocation /WEB-INF/config/action-mybatis.xml /WEB-INF/config/..

개발/스프링 2022.05.22

10. 스프링 프레임워크 - MyBatis[자바웹을 다루는 기술]

MyBatis란? 마이바티스는 자바 퍼시스턴스 프레임워크의 하나로 XML 서술자나 에너테이션을 사용하여 저장 프로시저나 SQL 문으로 객체를을 연결 시킨다 - 위키백과- 사전적 정의는 뭐 이렇다고 합니다. 결론 부터 얘기 하자면 기존의 JDBC 방식으로 이용하면 프로젝트가 커질 수 록 코드자체가 너무 복잡해져서 가독성이 떨어지고 유지보수에 어려움이 있기 때문입니다. 왜냐면 SQL문과 프로그래밍 코드가 섞여 있기 때문 입니다. 이런 문제점을 개선해 나온게 MyBatis 입니다. public void addGoods(GoodsVO goodsVO) throws SQLException { Connection con = dataFactory.getConnection(); Statement stmt = con.cr..

개발/스프링 2022.05.19

9. 스프링 프레임 워크 - jdbcTemplate 클래스 이용[자바웹을 다루는 기술]

JDBC? Java Database Connectivity의 약자로 말 그대로 자바에서 데이터베이스에(Oracle, MySQL 등) 접속할 수 있도록 하는 자바 API 입니다. *API란 Application Programming Interface의 줄임 말로, 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어 할 수 있게 만든 인터페이스를 뜻합니다. - 위키백과 - 브로커 같은 역할을 한다고 생각 하시면 됩니다. jdbcTemplate? 책에는 'DAO 클래스에서 실제 스프링의 JDBC 기능을 제공하는 클래스는 JdbcTemplate 입니다' 라고 정의 한다. 매우 간단하고 명료한 정의라고 생각한다. 이 API에 대해 이해를 하고 있다면.. 전에 1. Connec..

개발/스프링 2022.05.19

2. 스프링 프레임워크-[자바웹을 다루는 기술]

지난 DI(의존성 주입)에 이어서 스프링의 특징은 AOP에 대해 알아보겠습니다. AOP 풀어 쓰자면 Aspect Oriented Programming 직역 하자면 관점 지향 프로그매밍 입니다. 그래서 관점 지향 프로그래밍이 뭔데? 웹 애플리케이션을 개발하는데 핵심 관점과 부가적 관점으로 기능을 나누어 공통기능을 모듈화 하는것이 AOP 라고 합니다. 핵심 기능에 보조 기능을 일일이 구현을 해줘야 하는데 이러면 효율적이 못하고 복잡한 코드가 발생하는데 이러한 문제점을 관점 지향 프로그래밍으로 해결이 가능합니다. 위 와 같이 흩어진 관심사를 Aspect로 모듈화하고 핵심적인 비즈니스 로직에서 분리하여 재사용하겠다는 것이 AOP의 취지다. AOP 관련 용어 용어 설명 aspect 구현하고자 하는 보조 기능을 의..

개발/스프링 2022.05.03