본문 바로가기

공부/Spring

[서적 핵심 정리 - 토비의 스프링 3] Ch5. 서비스 추상화 Enum자바 5 이상에서 제공숫자 형식으로 정의된 상수를 정의하는 것보다 Enum으로 필요한 값을 정의하는 것이 예외 상황을 피하기 좋음 트랜잭션 (Transaction)데이터베이스에서 최소 작업 단위 (더 이상 나눌수 없음)데이터베이스 트랜잭션의 ACID 특성원자성(Atomicity)트랜잭션은 더 이상 나눌수 없는 작업 단위트랜잭션은 모두 실행되거나, 모두 실패해야 함 일관성 (Consistency)트랜잭션은 데이터 무결성 조건을 만족해야 함트랜잭션이 성공하면, 데이터베이스는 언제나 일관성 있는 상태로 유지되어야 함고립성 (Isolation)트랜잭션은 다른 트랜잭션과 독립적으로 수행되어야 함 (서로 영향을 주어서는 안됨)지속성 (Durability)성공적으로 수행된 트랜잭션에 대해 그 결과가 물리적으로.. 더보기
[서적 핵심 정리 - 토비의 스프링 3] Ch4. 예외 대표적인 잘못된 예외처리예외 블랙홀try-catch 구문으로 감싼 코드 중, 예외에 대한 어떤 처리도 하지 않는 코드를 지칭모든 예외는 적절하게 복구되거나, 작업을 중단하고 운영자/개발자에게 통보되어야 함무의미하고 무책임한 throws특별한 사유 없이 throws Exception을 붙여 예외를 넘겨버리는 코드이렇게 처리한 메소드를 사용하는 메소드에서는 Exception에 대해 try-catch하거나, throws Exception으로 넘겨버릴 수 밖에 없음 예외의 종류와 특징Errorjava.lang.Error 클래스의 서브 클래스VM에서 발생시키고, 애플리케이션에서 해결할 수 없는 에러이므로, 특별한 상황 외에 처리할 필요 없음e.g. OutOfMemoryError, ThreadDeath체크 예외 (.. 더보기
[서적 핵심 정리 - 토비의 스프링 3] Ch3. 템플릿 템플릿-콜백 패턴전략 패턴의 구조를 가지나, 익명 내부 클래스로 전략을 생성하여, 이를 넘겨주는 형태의 패턴템플릿전략 패턴의 컨텍스트즉, 전략을 수행하기 전/후의 작업이나 전략 수행 과정을 정의한 클래스콜백Functional Object전략의 실행 과정을 기술한 오브젝트로, 다른 오브젝트의 메소드에 전달되는 오브젝트 스프링에는 다양한 자바 엔터프라이즈 기술에서 사용할 수 있도록 미리 만들어져 제공되는 수십가지 템플릿/콜백 클래스와 API가 존재 JdbcTemplete스프링에서 제공하는 템플릿-콜백 형태의 JdbcTemplete 더보기
[서적 핵심 정리 - 토비의 스프링 3] Ch2. 테스트 단위 테스트 (Unit Test)주로 클래스/메소드 단위로 수행하는 작은 단위의 테스트주로 프로그래머에 의해 만들어지므로, 프로그래머 테스트라고 하기도 함 JUnit자바 단위 테스트 프레임워크사용 방법@Test메소드에 @Test 어노테이션을 부여하고 JUnit을 실행하면 테스트를 수행assertThat2개의 매개변수를 (조건에 의해) 비교하여, 올바르지 않을 경우 예외를 발생@Test(expect=[Exception 종류].class)특정 Exception이 발생함을 검증하기 위해 사용하는 어노테이션@Before, @After매 JUnit 테스트 케이스를 실행하기 전후에 수행할 메소드에 사용하는 어노테이션이 어노테이션은 매 테스트 케이스마다 실행되므로, 모든 테스트에 공통으로 사용하는 정보나 오브젝트(F.. 더보기
[서적 핵심 정리 - 토비의 스프링 3] Ch1. 오브젝트와 의존 관계 관심사의 분리 (Separation of Concerns)관심이 같은 것끼리 하나의 객체 또는 친한 객체로 모음관심이 다른 것은 가능한 따로 떨어져서 서로 영향을 주지 않도록 분리즉, 객체지향 설계의 기본 원칙인 High Cohesion, Low Coupling과 동일한 의미 리팩토링 (Refactoring)기존의 코드를 외부의 동작 방식에 변화 없이 내부 구조를 변경해서 재구성하는 작업 또는 기술을 의미 템플릿 메소드 패턴 (Templete Method Pattern)변하지 않는 기능을 슈퍼 클래스에 정의하고, 확장할 기능을 서브클래스에서 상속하여 정의하게 한다. 확장할 메소드를 템플릿 메소드라고 하며, 아래와 같은 방법으로 정의할 수 있다.추상 메소드 (abstract method) 훅 메소드 (ho.. 더보기
[서적 핵심 정리] 토비의 스프링 개요 책을 구입한지 어언... 1년이 되어가는 것 같다... 그동안 이런 핑계, 저런 핑계로 책을 읽지 못했다... 그 중 가장 큰 이유는 아마도 나약한 내 정신력과그냥 되는 대로 살자 식의 인생과의 합의? 물론, Spring 관련된 교육을 일부 받긴 했지만...일단 현재 종사 분야가 그리 Spring을 접할 만한 기회가 없기에 많은 부분을 까먹은 것 같다. 다시 공부를 시작할 겸해서책에 있는 예제들이나 중요 개념을 내 나름대로 정리할 예정이다. 책에 있는 것만 따라하는 건 그리 좋은 방법이 아닌 것 같다.내 나름대로 진행하면서 그동안 공부했던 다른 툴이나 기술을 활용하여예제를 완성해나가는 것도 나름 재미있을 것 같다. 일단... 꾸준히 한번 시작해보자... 더보기