728x90

토비의스프링 6

[Java] Spring 토비의 스프링

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

JAVA 2021.07.26

[Spring] 3장 템플릿

리소스 반환과 close() Connection이나 PreparedStatement에는 close()메소드가 있음. 이름 그대로 열린것을 닫는 역할인데 보통 리소스를 반환하는 의미로 이해하는것이 좋다. Connection과 PreparedStatement는 보통 풀(pool) 방식으로 운영. 미리 정해진 풀 안에 제한된 수의 리소스(Connection, Statement)를 만들어 두고 필요할 때 이를 할당하고, 반환하면 다시 풀에 넣는 방식으로 운영. 요청이 매우 많은 서버환경에서는 매번 새로운 리소스를 생성하는 대신 풀에 미리 만들어둔 리소스를 돌려가며 사용하는편이 훨씬 유리함. 대신 사용한 리소스는 빠르게 반환해야한다. 그렇지 않으면 풀에 있는 리소스가 고갈되고 결국 문제가 발생하게 된다. clos..

JAVA 2021.06.24

[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장 오브젝트와 의존관계(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
728x90