Study6 [토비의 스프링] 4장. 예외 1. 예외를 잡아서 아무런 조치를 취하지 않거나 의미 없는 throws 선언을 남발하는 것은 위험하다.2. 복구할 수 없는 예외는 가능한 빨리 런타임 예외로 전환하는 것이 바람직하다.3. 스프링은 DataAccessException을 통해 DB에 독립적으로 적용 가능한 추상화된 런타임 예외 계층을 제공한다.4. 스프링은 JdbcTemplate안에서 DB별로 미리 준비된 에러 코드를 비교해서 적절한 예외를 던져준다. DB가 변경되어도 에러를 매핑하여 에러를 던져준다. 스프링에서 예외처리를 하는 다양한 방법과 지양/지향해야 하는 방향을 알려준다. 스프링의 예외처리 동작원리를 추가적으로 정리해야겠다. Study/Spring 2024. 2. 24. [토비의 스프링] 3장. 템플릿 예외처리, 디자인 패턴&DI 등을 적용해서 깔끔한 코드를 만드는 방법 등을 소개하고 있다. 템플릿/콜백 부분은 좀 어려웠다. 템플릿/콜백 부분은 대충 넘어가서 정리할 게 별로 없음.. 1. 같은 애플리케이션 안에서 여러 가지 종류의 전략을 다이내믹하게 구성하고 사용해야 한다면 컨텍스트를 이용하는 클라이언트 메소드에서 직접 전략을 정의하고 제공하게 만든다. 2. 단일 전략 메소드를 갖는 전략 패턴이면서 익명 내부 클래스를 사용해서 매번 전략을 새로 만들어 사용하고, 컨텍스트 호출과 동시에 전략 DI를 수행하는 방식을 템플릿/콜백 패턴이라고 한다. Study/Spring 2024. 2. 24. [토비의 스프링] 2장. 테스트 1. 모든 테스트는 실행 순서에 상관없이 독립적으로 항상 동일한 결과를 낼 수 있도록 해야 한다. 2. 성공하는 테스트만 골라서 만들지 말자. 3. JUnit이 테스트를 수행하는 방식 테스트 클래스에서 @Test가 붙은 public이고 void형이며 파라미터가 없는 테스트 메소드를 모두 찾는다. 테스트 클래스의 오브젝트를 하나 만든다. @Before가 붙은 메소드가 있으면 실행한다. @Test가 붙은 메소드를 하나 호출하고 테스트 결과를 저장해 둔다. @After가 붙은 메소드가 있으면 실행한다. 나머지 테스트 메소드에 대해 2~5번을 반복한다. 모든 테스트의 결과를 종합해서 돌려준다. 4. 픽스처 : 테스트를 수행하는 데 필요한 정보나 오브젝트(@Before 메소드에 정의하는 내용들) 5. @Runwi.. Study/Spring 2024. 2. 24. [토비의 스프링] 1장. 오브젝트와 의존관계 토비의 스프링 1장을 보면서 기억해야 할 핵심 용어, 개인적으로 궁금했던 점들을 찾아 정리해 보았다. (지극히 개인 학습용 자료라서 나만 알아볼 수 있게, 내가 기록하고 싶은 부분만 정리했다)용어 정리제어의 역전: 모든 종류의 작업을 사용하는 쪽에서 제어하는 구조. 오브젝트가 자신이 사용할 오브젝트를 스스로 선택하지 않는다. 또 자신이 어떻게 만들어지고 어디서 사용되는지 알 수 없다. ex) 디자인 패턴, 프레임워크빈(Bean): 스프링이 제어권을 가지고 직접 만들고 관계를 부여하는 오브젝트. 스프링 컨테이너가 생성과 관계설정, 사용 등을 제어해 주는 제어의 역전이 적용된 오브젝트스프링 컨테이너(Spring Container) : 스프링 빈의 생명주기를 관리하고 IoC를 이용해 애플리케이션 컴포넌트를 관.. Study/Spring 2024. 2. 12. [오브젝트] 2장 객체지향 프로그래밍 개인 학습용 글입니다. 객체지향 프로그래밍의 조건 어떤 클래스가 필요한지를 고민하기 전에 어떤 객체들이 필요한지를 고민하라. 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 일원으로 보라. 객체는 다른 객체에게 도움을 주거나 의존하면서 살아가는 협력적인 존재다. 객체를 협력하는 공동체의 일원으로 보는 것은 설계를 유연하고 확장 가능하게 만든다. 클래스를 구현하거나 다른 개발자에 의해 개발된 클래스를 사용할 때 가장 중요한 것은 클래스의 경계를 구분 짓는 것이다. 클래스의 내부와 외부를 구분해야 하는 이유 : 경계의 명확성이 객체의 자율성을 보장한다. 프로그래머에게 구현의 자유를 제공한다. 객체 내부에 대한 접근을 통제하는 이유 : 객체를 자율적 존재로 만들기 위함. 객체가 자율적인 .. Study/객체지향 2023. 11. 14. [오브젝트] 1장 객체, 설계 개인 학습용 글입니다. 객체지향적 설계 예시를 위해 절차지향적 코드를 객체지향적 코드로 변경하는 과정을 보여줌. 영화 티켓 판매 프로세스를 모델링함. 1장은 객체지향을 가볍게 훑고 객체지향의 중요성을 강조하기 위해 만들어진 것으로 보임. 많은 정보를 담았다기보다 이 책에서 강조하는 포인트를 독자에게 전달하기 위한 빌드업을 하는 것으로 보였음. 중요 내용 1. 객체지향 설계를 해야 하는 이유 변경에 유연하게 대응 가능하다 버그 발생률이 낮아진다(결합도가 낮기 때문) 이해하기 쉬운 코드를 만들 수 있다 2. 능동적인 객체를 만들어라 수동적인 객체를 만드는 경우 절차지향적으로 흘러간다. 능동적인 객체를 만들어라 키워드 캡슐화 응집도 절차지향 프로그래밍(Procedural Programming) 객체지향(Obj.. Study/객체지향 2023. 10. 11. 이전 1 다음