토비의 스프링
-
토비의 스프링[8] 스프링이란 무엇일까?Spring 2021. 7. 19. 11:08
스프링 프레임워크 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크 애플리케이션의 전 영역을 관통하는 일관된 프로그래밍 모델과 핵심 기술을 바탕으로 해서 각 분야의 특성에 맞는 필요를 채워주고 있기 때문에, 애플리케이션을 빠르고 효과적으로 개발할 수가 있다. 이것이 스프링이 애플리케이션 프레임워크라 불리는 이유다. 스프링을 MVC프레임워크 혹은 JDBC/ORM 지원 프레임워크라고 생각하는 것은 스프링이 다루는 일부 영역만 봤기 때문이다. 스프링을 IoC/DI 프레임워크나 AOP 툴이라고 보는 이유는 스프링이 제공하는 핵심 기술에만 주목했기 때문이다. 스프링의 일차적인 존재 목적은 핵심 기술에 담긴 프로그래밍 모델을 일관되게 적용해서 엔터프라이즈 애플리케이션 전 계층과 전 영역..
-
토비의 스프링[4] 예외처리Spring 2021. 1. 27. 06:05
서론 UserDao를 JdbcTemplate로 변경하면서 SQLException이 사라진 이유와 예외처리 및 전환 방법에 대해 알아보자. 예외의 종류와 특징 자바에서 throw를 발생시킬 수 있는 예외는 크게 세 가지가 있다. Error 시스템에 뭔가 비정상적인 상황이 발생했을 경우에 사용된다. 주로 자바 VM에서 발생시키며, 애플리케이션에서 코드로 잡을 수 없으며, 별도로 처리하지 않아도 된다. Exception 과 체크 예외 java.lang.Exception 클래스와 그 서브클래스로 정의되며, 에러와 달리 개발자들이 만든 애플리케이션 코드의 작업중 예외상황이 발생할 경우 사용된다. 체크예외는 throw로 던지던가, catch 로 잡아 주어야 컴파일 에러가 발생하지 않는다. RunTimeExcepti..
-
토비의 스프링[2] 테스트Spring 2020. 12. 23. 19:11
서론 효율적인 테스트 방법과 기능에 대한 확신을 주는방법에 대해 알아보자. ** 본 예제는 SpringBoot JUnit5로 진행했습니다. ** DAO 테스트 문제점 DAO를 테스트 하기 위하여 JSP 뷰 등 모든 레이어의 기능을 다 만들고 테스트를 할 경우 어디서 문제가 발생 했는지를 찾아내는 수고도 필요하며, 너무 많은 코드를 구성했기에 비효율적이다. 단위 테스트 1. 한 가지 관심에 집중할 수 있는 작은 단위의 테스트다. 2. 크기가 어느정도인지 정확하게 정해진건 아니다. 3. 일반적으로 단위는 작을수록 좋다. 4. 매번 DB의 상태가 달라지고, 테스트를 위해 DB를 특정 상태로 만들 수 없다면 단위 테스트로서 가치가 없어진다. 자동수행 테스트 코드 1. 매번 웹 화면을 통한 테스트를 진행하는것에 ..
-
토비의 스프링[1] 오브젝트와 의존관계Spring 2020. 12. 17. 01:20
서론 관심사 분리하여 DAO를 처리하는 방법과 싱글톤 패턴 및 애플리케이션 컨텍스트에 대해 알아보며, 제어의 역전(IoC)에 대해 알아보자. 관심사 분리 초난감 DAO 처리하기 public class UserDao { public void add(User user) throws SQLException, ClassNotFoundException { Class.forName("com.mysql.cj.jdbc.Driver"); Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/sys?serverTimezone=UTC&characterEncoding=UTF-8", "root", "1234"); PreparedStatement ps =..