본문 바로가기

JUnit 개념정리 및 실습1 [ 단위테스트 JUnit ] * JUnit은 자바용 단위 테스트 작성을 위한 산업 표준 프레임워크다. 1. 단위테스트란 무엇인가? 테스트의 대상이 되는 코드 중에서 아주 작은 특정 영역을 실행해 보는 개발자가 작성한 코드 조각이다. 2 .어떤 것을 테스트 해야 하는 가? - 자신이 생각한 대로 코드가 동작하는지 검증하고자 할때 - 디스크가 꽉차있고, 네트워크가 단절되어있고, 버퍼 오버플로우가 되는 예외 상황에서도 코드가 동작되는지 알아보고자 할때 - 실제 DB 접속이 되지 않은 상태에서 설정이 제대로 되어 있는지 확인하고자 할때... [JUnit(단위테스트)] - 단위코드에서 문제 발생 소지가 있는 모든 부분을 테스트 하는 작업 - 보통 클래스의 public method를 테스트한다. - 좋은 단위 테스.. 더보기
servletSession과 springSession servletSession과 springSession send.jsp세션테스트1세션테스트2 sessionView.jsp아이디: ${id} 이름: ${name} className: ${ClassName} 유저아이디: ${userId} 유저이름: ${userName} 클래스명: ${SpringCalssName} 이동1: 이동1 a1.jsp아이디: ${id} 이름: ${name} className: ${ClassName} 유저아이디: ${userId} 유저이름: ${userName} 클래스명: ${SpringCalssName} 이동2: 이동2 servletSession package com.spring.sessionTest; import javax.servlet.http.HttpSession; import o.. 더보기
@RequestMapping void, String, ModelAndView 차이 @RequestMapping("insertForm")public void insertForm(){ } void 일 경우 return 값이 없다. 즉 return 을 적을 필요가 없다.경로를 찾는건 @RequestMapping("insertForm")에서 insertForm 가 페이지뷰가 된다.따라서 insertForm 뷰페이지가 존재해야 한다. String 일 경우는 return "insertForm"; 이런 식으로 뷰페이지 이름을 기술한다. ModelAndView 는 setViewName("insertForm") 이다. 더보기
pom.xml 설정시 참고 사이트 MVNRepository.com pom.xml 메이븐 빌더 시 필요한 값 받기https://mvnrepository.com/ 더보기
ResultMap 을 이용한 mybatis ResultMap은 DB 필드값과 DTO객체의 프라퍼티(변수)명이 다를 때 사용한다.ResultMap id에 사용할 임의의 이름을 기술하고 type(type="Department")에는 DTO명을 적어준다.column 에는 DB의 필드명을 적고 property에는 DTO 프라퍼티명을 적어준다. department_config.xml select * from departments order by department_id package com.spring.hr.model; public class Department {private int deptId;private String deptName;private String deptMgr;private String locaionId;public int getDep.. 더보기
기본 XML 설정과 사용예 mybatis.org 사이트에서 유용한 예제들을 잘 보고 복사, 붙여넣기해서 사용한다. XML 설정 시 DTD 파일 잘보고 설정해야 함. BDAO.xml (예: 임의의 파일명) // namespace 는 BDAO파일이 있는 팩키지+파일명 // select의 id 값은 메서드가 된다. 아래 BDAO를 보면 list() 라는 메서드가 된다.// resultType는 메서드의 반환타입을 적어주면 된다. select * from mybatis_bbs where bId between 10 and 15 order by bId DESC insert into mybatis_bbs(bId, bName, bContent) values(seq_mybatis_bbs.nextval,#{param1},#{param2}) dele.. 더보기
CGLIB 라이브러리 설치 자바 설정 파일:자바설정 파일 테스트를 위해 pom.xml 파일에 cglib를 추가해야한다.pom.xml 파일에 추가해서 메이븐으로 자동 다운로드 받으면 된다. cglib cglib 3.2.3 더보기
스프링 DI - 자바코드 설정 package com.spring4.practice01; public interface Car {public String brand(); } package com.spring4.practice01; public class CarImpl implements Car { @Overridepublic String brand() {return "자동차는 삼성 SM5입니다";} } package com.spring4.practice01; public interface Tire {public String mount();} package com.spring4.practice01; public class TireImpl implements Tire {public String mount(){return "타이어는 한국타이.. 더보기
스프링 DI(Dependency Injection) 2 Setter로 DI 주입 package com.spring4.practice01; public interface Car {public String brand(); } package com.spring4.practice01; public class CarHDImpl implements Car {public String brand(){return "자동차는 현대자동차 소나타입니다.";} } package com.spring4.practice01; import org.springframework.beans.factory.annotation.Autowired; public class Service { private Car car;public Service(){}public void setCar(Car car){.. 더보기
스프링 DI(Dependency Injection) 1 생성자를 이용한 DI 설정 package com.spring4.practice01; public interface Car {public String brand();} package com.spring4.practice01; public class CarHDImpl implements Car {public String brand(){return "자동차는 현대자동차 소나타입니다.";}} Car 인터페이스를 구현한 CarHDImpl을 만든다. package com.spring4.practice01; import org.springframework.beans.factory.annotation.Autowired; public class Service { private Car car;public Service().. 더보기
IoC(Inversion of Control- 제어의 역전) [IoC(Inversion of Control- 제어의 역전)란?] : IoC란 프로그램의 제어 흐름 구조가 바뀌는 것 ** 일반적인 프로그램의 흐름 구조는 main()과 같은 프로그램이 시작되는 지점에서 사용할 오브젝트를 결정, 생성하고, 생성된 오브젝트 내의 메소드를 호출하는 작업을 반복하는 구조이다. 즉, 모든 종류의 작업을 사용하는 쪽에서 제어하는 구조 ** IoC는 제어 흐름의 개념을 거꾸로 뒤집는 개념이다. 오브젝트는 자신이 사용할 오브젝트를 스스로 생성하거나 선택하지 않는다. 모든 제어 권한을 자신이 아닌 다른 대상에게 위임하는 것 프로그램의 시작을 담당하는 main()같은 엔트리 포인트를 제외하면 모든 오브젝트는 제어 권한을 위임받은 특별한 오브젝트에 의해 결정되고 만들어지는 것 - 작업을.. 더보기
Spring 파라미터 값 전달 예제 2 package com.homesi.controller; import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.servlet.ModelAndView; import com.homesi.vo.MemberVo2; @Controllerpublic class DemoController01 {@RequestMapping("/inputForm")publ.. 더보기
Mybatis 설정( pom.xml, root-context.xml) pom.xml org.mybatismybatis3.2.8org.mybatismybatis-spring1.2.2 org.springframeworkspring-jdbc${org.springframework-version} org.springframeworkspring-test${org.springframework-version} 1) servlet-context.xml에 dataSource 를 추가함.보통은 root-context.xml에 작성함. 2) root-context.xml 에 작성할 시 아래는 SimpleDriverDataSource 소스로 바꾸어서 작성했다. 더보기
파라미터 값 받기와 전달(Command 객체와 VO, http://localhost:8081/hoho/userInfo?id=this&name=aaaa&tel=010&email=this@daum.net @Controllerpublic class HomeController {//@Autowired//Command command;@RequestMapping("userInfo")public String userInfo(User user){Command command = new Command();command.getInfo(user);return "userInfo";}} package com.spring.hoho; public class User {private String id;private String name;private String tel;private S.. 더보기
스프링을 이용한 파일업로드 pom.xml 4.0.0com.springfileupfileUploadwar1.0.0-BUILD-SNAPSHOT1.63.1.1.RELEASE1.6.101.6.6org.springframeworkspring-context${org.springframework-version}commons-loggingcommons-logging org.springframeworkspring-webmvc${org.springframework-version}org.aspectjaspectjrt${org.aspectj-version}org.slf4jslf4j-api${org.slf4j-version}org.slf4jjcl-over-slf4j${org.slf4j-version}runtimeorg.slf4jslf4j-log4j12$.. 더보기
Spring에서 한글깨짐 방지를 위해 web.xml에서 한글 설정 한글 깨짐현상을 막기 위해 web.xml에 filter를 설정한다. contextConfigLocation/WEB-INF/spring/root-context.xmlorg.springframework.web.context.ContextLoaderListener appServletorg.springframework.web.servlet.DispatcherServletcontextConfigLocation/WEB-INF/spring/appServlet/servlet-context.xml1appServlet/encodingFilterorg.springframework.web.filter.CharacterEncodingFilterencodingUTF-8forceEncodingtrueencodingFilter/* 더보기
스프링 TransactionTemplate을 사용한 트랜젝션 - 실전용 package com.test.transactionEx; import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException; import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.core.PreparedStatementCreator;import org.springframework.jdbc.core.PreparedStatementSetter;import org.springframework.stereotype.Se.. 더보기
CallBack 함수 callback 함수는 이벤트가 발생할 때 알려주는 함수즉 이벤트 핸들러에 의해 호출 당하는 함수. 예를 들어 유저가 마우스를 클릭했을때 inClick() 함수가 호출되고 등등.... 중요한 개념은 개발자가 만드는 일반 함수와 달리유저의 행동등에 의해 발생하는 이벤트에 의해 호출 되는 함수이다. 더보기
스프링 트랜젝션 - 기본 [트랜잭션 전략] spring에서 제공하는 프로그래밍적인 트랜잭션 관리 방법 # PlatformTransactionManager 사용하는 방법 - 클래스 : org.springframework.jdbc.datasource.DataSourceTransactionManager - TransactionDefinition와 TransactionStatus 객체를 사용 . 트랜잭션 초기화 . 트랜잭션 커밋(commit), 롤백(rollback) # TransactionTemplate 사용하는 방법 Callback 접근 방법을 사용하는 방식, 리소스 획득과 해제작업으로부터 어플리케이션 코드를 해방시켜주는 방법 (try/catch/finall를 할 필요없음) - TransactionCallback 인터페이스 구현객체.. 더보기
JdbcTemplate를 사용한 게시판 스프링 JDBC를 위한 템플릿은 기존 게시판에서 DAO 부분만 수정하면 된다.설정은pom.xml 파일 수정,servlet-context.xml 파일 수정,StaticTemplate 파일 생서,BController 수정만 한다. [스프링 JDBC를 위한 템플릿] . 기능: Connection을 구하고, try-catch-finally로 자원을 관리하는 등의 중복된 코드를 제거 . JDBC를 위한 세개의 템플릿 클래스 1) JdbcTemplate : 스프링의 가장 기본적인 템플릿 색인된 파라미터(indexed parameter) 기반의 쿼리를 통해 데이터베이스에 액세스하는 기능을 제공 2) NamedParameterJdbcTemplate : SQL과 값들을 색인된 파라미터 대신 명명된 파라미터(named p.. 더보기