728x90

springframework 8

[Java] Spring 토비의 스프링

정리 - 예외를 잡아서 아무런 조취를 취하지 않거나 의미 없는 throws 선언을 남발하는 것은 위험. - 예외는 복구하거나 예외처리 오브젝트로 의도적으로 전달하거나 적절한 예외로 전환 - 좀 더 의미 있는 예외로 변경하거나, 불필요한 catch/throws를 피하기 위해 런타임 예외로 포장하는 두 가지 방법의 예외 전환 - 복구 할 수 없는 예외는 가능한 빨리 런타임 예외로 전환하는것이 바람직 - 애플리케이션의 로직을 담기 위한 예외는 체크 예외로 만듬 - JDBC의 SQLException은 대부분 복구 할 수 없는 예외이므로 런타임 예외로 포장해야함 - SQLException의 에러코드는 DB에 종속되기 때문에 DB에 독립적인 예외로 전환될 필요가 있음 - 스프링은 DataAccessException..

JAVA 2021.07.26

[Spring] 2장 테스트

단위 테스트(unit test) : 작은 단위의 코드에 대해 테스트를 수행한 것. 단위 테스트를 하는 이유? 개발자가 설계하고 만든 코드가 원래 의도한 대로 동작하는지 개발자 스스로 빨리 확인하기 위해서 getUserFailure() 테스트 코드에 나타난 기능 단계 내용 코드 조건 어떤 조건을 가지고 가져올 사용자 정보가 존재하지 않는 경우에 dao.deleteAll(); assertThat(dao.getCount(), is(0)); 행위 무엇을 할 때 존재하지 않는 id로 get()을 실행하면 get("unknown_id"); 결과 어떤 결과가 나온다 특별한 예외가 던져진다 @Test(expected = EmptyResultDataAccessException.class) 테스트 주도 개발(TDD, Te..

JAVA 2021.06.14

[Spring] 1장 오브젝트와 의존관계(4)

[Spring] 1장 오브젝트와 의존관계(3) [Spring] 1장 오브젝트와 의존관계(2) [Spring] 1장 오브젝트와 의존관계(1) 스프링이란? 개발에 사용되는 애플리케이션 프레임워크. 개발을 빠르고 효율적으로 할 수 있도록 틀과 프로그래밍 모델, 기 itkjspo56.tistory.com public class UserDao{ private ConnectionMaker connectionMaker; public UserDao(ConnectionMaker connectionMaker){ this.connectionMaker = connectionMaker; } ... } DI컨테이너는 자신이 결정한 의존관계를 맺어줄 클래스의 오브젝트를 만들고 이 생성자의 파라미터로 오브젝트 레퍼런스를 전달. 바로..

JAVA 2021.06.10

[Spring] 1장 오브젝트와 의존관계(3)

[Spring] 1장 오브젝트와 의존관계(2) [Spring] 1장 오브젝트와 의존관계(1) 스프링이란? 개발에 사용되는 애플리케이션 프레임워크. 개발을 빠르고 효율적으로 할 수 있도록 틀과 프로그래밍 모델, 기술 API 등을 제공 1) 애플리케이션 itkjspo56.tistory.com [제어의 역전(IoC)] public class DaoFactory { public UserDao usreDao() { ConnectionMaker connectionMaker = new DConnectionMaker(); UserDao userDao = new UserDao(connectionMaker); //팩토리의 메소드는 UserDao 타입의 오브젝트를 어떻게 만들고, 어떻게 준비시킬지 결정 return user..

JAVA 2021.06.09

[Spring] 1장 오브젝트와 의존관계(2)

[Spring] 1장 오브젝트와 의존관계(1) 스프링이란? 개발에 사용되는 애플리케이션 프레임워크. 개발을 빠르고 효율적으로 할 수 있도록 틀과 프로그래밍 모델, 기술 API 등을 제공 1) 애플리케이션 기본틀 - 스프링 컨테이너 독립적으 itkjspo56.tistory.com 지난 시간에 이어서... [관계설정 책임의 분리] public UserDao(ConnectionMaker connectionMaker){ this.connectionMaker = connectionMaker; } 수정한 생성자의 모습. 이전의 DConnection이 사라진 이유는 DConnectionMaker를 생성하는 코드 UserDao와 특정 ConnectionMaker 구현 클래스의 오브젝트 간 관계를 맺는 책임을 담당하는 ..

JAVA 2021.06.08

[Spring] 1장 오브젝트와 의존관계(1)

스프링이란? 개발에 사용되는 애플리케이션 프레임워크. 개발을 빠르고 효율적으로 할 수 있도록 틀과 프로그래밍 모델, 기술 API 등을 제공 1) 애플리케이션 기본틀 - 스프링 컨테이너 독립적으로 동작 할 수 있으나 보통 웹 모듈에서 동작하는 서비스나 서블릿으로 등록하여 사용. 스프링을 사용하기 위해선 스프링 컨테이너를 다루는 방법과 스프링 컨테이너가 Object를 이용 할 수 있도록 설정정보를 작성하는 방법을 익히는 것이 좋다. 2) 공통 프로그래밍 모델 - IoC / DI, 서비스 추상화, AOP 스프링은 3가지 핵심 프로그래밍 모델을 지원 - IoC / DI(생명주기와 의존관계) 유연하고 확장성이 뛰어난 코드를 만들 수 있게 도와주는 객체지향 설계원칙과 디자인 패턴의 핵심 원리를 담고 있는 IoC/D..

JAVA 2021.06.07

[Spring]No qualifying bean of type [org.apache.ibatis.session.SqlSession]

Spring 환경 및 전자정부프레임워크 환경에서 bean을 자꾸 생성 하지 못해가지고 고생했던 에러... Build의 clean 및 updata를 여러번 해줬는데도 해결되지가 않았다. 전자정부프레임워크는 정말 골치덩어리임...;; (그리고 내가 부족한 탓...) 해결방법 일단 상단의 코드를 context-mapper.xml에 추가해줬더니 해결.. 일단 해결은 됬지만 뭔가 찝찝한 마음은 어쩔수가 없다. 부단한 공부만이 나의 마음을 안정시킬듯..

오류 모음집 2021.05.18

[IntelliJ] 인텔리제이 Could not target platform 에러 해결방법

IntelliJ를 처음에 Setting을 할때, 예상지 못한 오류가 나와서 잠시 적어본다. ※ 운영체제 Window 10 Pro 기준 에러문구는 바로 Execution failed for task ':compileJava' -> Could not target platform: 'Java SE 11' using tool chain: 'JDK 8(1.8)'. 대략 문구를 보니 자바 11을 써야하는데 자바 8버젼 때문에 뭔가 문제가 있는거 같다. 이클립스를 사용할때는 주로 8버젼을 썼는데, 인텔리제이로 넘어오면서 자바 11을 본격적으로 사용해보고자 한다. 인텔리제이에서 처음 보는 문구여기 여기저기 찾아보면서 JDK11의 설정이 제대로 되어있는지 확인해보았다. 1) File -> Project Structure..

오류 모음집 2021.03.09
728x90