BackEnd
[토비의 스프링] 2.2 UserDaoTest 개선
UserDaoTest를 개선해보자. 1. 테스트 검증의 자동화 모든 테스트는 성공과 실패의 두 가지 결과를 갖는다. 실패의 경우 에러가 발생한 경우와, 개발자의 의도와 다른 결과가 나온 경우가 있다. 전자를 테스트 에러, 후자를 테스트 실패라고 하자. 테스트 에러의 경우 콘솔에 에러 메시지와 긴 호출 스택 정보가 출력되어 파악하기 쉽다. 테스트 실패의 경우 별도의 확인 작업과 그 결과가 있어야만 알 수 있다. 테스트 실패를 쉽게 확인할 수 있게 코드를 변경해보자. 수정 전 테스트 코드 더보기 System.out.println(user2.getName()); System.out.println(user2.getPassword()); System.out.println(user2.getId() + "조회 성공"..
[토비의 스프링] 2.1 UserDaoTest 다시 보기
2장 테스트 개요 끊임없이 변화하고 복잡한 애플리케이션 이 변화에 대응하는 첫번째 전략인 객체지향적 설계와 그것을 효과적으로 담아낼 수 있는 IoC/DI등의 기술을 알아봤다. 두번째 전략인 테스트는 만들어진 코드를 확신할 수 있게 해주고, 변화에 유연하게 대처할 수 있는 자신감을 준다. 테스트란 무엇이며, 그 가치와 장점, 활용 전략, 스프링과의 관계를 살펴보자. 테스트에 활용할 대표적인 테스트 프레임워크와 이를 이용한 학습 전략도 알아보자. 1. 테스트의 유용성 테스트는 개발자가 작성한 코드가 예상과 의도대로 동작하는지 확인하는 작업이다. 이를 통해 코드를 확신할 수 있고, 이는 즉 코드의 결함을 제거할 수 있다. 2. UserDaoTest의 특징 UserDaoTest Code 더보기 public cl..
[토비의 스프링] 1장 정리 [IoC와 DI]
스프링과 그 기본 개념인 IoC와 DI에 대해 간단하게 다뤄보겠습니다. 1. 그래서 스프링 프레임 워크가 뭔데? 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션입니다. 엔터프라이즈급 개발이란 뜻대로만 풀이하면 기업을 대상으로 하는 개발이라는 말입니다. 즉, 대규모 데이터 처리와 트랜잭션이 동시에 여러 사용자로 부터 행해지는 매우 큰 규모의 환경을 엔터프라이즈 환경이라 일컫습니다. Spirng Framework는 경량 컨테이너로 자바 객체를 담고 직접 관리합니다. 객체의 생성 및 소멸 그리고 라이프 사이클을 관리하며 언제든 Spring 컨테이너로 부터 필요한 객체를 가져와 사용할 수 있습니다. 이는 Spirng이..
[토비의 스프링] 1.8 XML을 이용한 설정
스프링에선 다양한 방법으로 DI 의존관계 설정정보를 만들 수 있다. 그 중 하나인 XML을 이용한 설정에 대해서 알아보자. (xml을 이용한 설정은 최근에 많이 사용하지 않는 추세이다.) 1. XML 설정 xml설정에 대한 기본적인 내용에 대해 다룹니다. 더보기 ConnectionMaker() 전환 자바 코드 설정정보 XML 설정정보 빈 설정파일 @Configuration 빈의 이름 @Bean methodName() @Bean ---------------------------------> id="connectionMaker" return new DConnectionMaker(); ----> class="springbook...DConnectionMaker" /> } userDao() 전환 XML의 의존관..
[토비의 스프링] 1.7 의존관계 주입(DI)
스프링을 IoC 컨테이너로 적용하는 방법과 싱글톤 저장소로서의 특징을 살펴봤다. 스프링의 IoC에 대해 좀 더 깊이 알아보자. 1. 제어의 역전(IoC)과 의존관계 주입 IoC는 소프트웨어에서 자주 발견할 수 있는 일반적인 개념 객체를 생성하고 관계를 맺어주는 등의 작업을 담당하는 기능을 일반화한 것이 스프링의 IoC 컨테이너 IoC라는 용어는 매우 느슨하게 정의돼서 폭넓게 사용되는 용어 스프링이 제공하는 IoC 방식을 핵심을 짚어주는 의존관계 주입(Dependency Injection)이라는, 좀 더 의도가 드러나는 이름을 사용 의존관계 주입, 의존성 주입, 의존 오브젝트 주입? 'Dependency Injection'은 여러 가지 우리말로 번역돼서 사용된다. 그중에서 가장 흔히 사용되는 용어가 의존성..
[토비의 스프링] 1.6 싱글톤 레지스트리와 오브젝트 스코프
오브젝트의 동일성과 동등성 자바에서 두 개의 오브젝트가 같은가라는 말은 주의해서 써야한다. 자바에서는 두 개의 오브젝트가 완전히 같은 동일한(identical) 오브젝트라고 말하는 것과, 동일한 정보를 담고 있는(equivalent) 오브젝트라고 말하는 것은 분명한 차이가 있다. 전자는 동일성(identity)비교라고 하고, 후자를 동등성(equality) 비교라고 한다. 동일성은 == 연산자로, 동등성은 equals() 메소드를 이용해 비교한다. 두 개의 오브젝트가 동일하다면 사실은 하나의 오브젝트만 존재하는 것이고 두 개의 오브젝트 레퍼런스 변수를 갖고 있을 뿐이다. 두 개의 오브젝트가 동일하지는 않지만 동등한 경우에는 두 개의 각기 다른 오브젝트가 메모리상에 존재하는 것인데, 오브젝트의 동등성 기준..