본문 바로가기
728x90

Java12

예외와 예외 처리 방법 예외란? 컴퓨터 프로그램에서 예외란, 프로그램이 실행 중에 발생한 예기치 않은 오류를 말합니다. 이러한 예외 상황을 처리하지 않으면 프로그램이 비정상적으로 종료될 수 있기 때문에 모든 예외는 적절하게 복구되든지 아니면 작업을 중단시키고 운영자 또는 개발자에게 통보하고 서비스를 이용하는 사용자에게 적절한 안내 메세지를 제공하는 등의 처리를 반드시 해줘야 합니다. 예외의 종류 이번 포스트에서는 Error에 대한 설명은 제외하겠습니다. Exception (Checked Exception) Exception 클래스와 이를 상속하고 Runtime Exception을 상속하지 않은 서브 클래스로 정의되는 예외입니다. 이 예외는 컴파일 시점에 예외 처리를 하는지 검사하기 때문에 개발자가 예외 처리를 강제하는 예외입니.. 2023. 4. 9.
스프링의 템플릿/콜백 패턴 이번 포스트에서는 스프링에서 자주 등장하는 템프릿/콜백 패턴에 대해서 알아보도록 하겠습니다. 템플릿/콜백 패턴을 설명하기 전에 확장에는 자유롭게 열려있고 변경에는 굳게 닫혀 있다는 객체지향 설계의 핵심 원리인 개방 폐쇄 원칙(OCP)을 다시 한번 생각해 봅시다. 이 원칙은 코드에서 어떤 부분은 변경을 통해 그 기능이 다양해지고 확장하려는 성질이 가지고, 어떤 부분은 고정이 되어있어 변하지 않으려는 성질을 가지고 있습니다. 변화의 특성이 다른 부분을 구분 해주고(변하는 것과 변하지 않는 것), 각각 다른 목적과 다른 이유에 의해 다른 시점에 독립적으로 변경될 수 있는 효율적인 구조를 만들어주는 것이 개방 폐쇄 원칙입니다. 템플릿/콜백 패턴은 이렇게 바뀌는 성질이 다른 코드 중 거의 변경이 일어나지 않으며 .. 2023. 4. 2.
Spring - 테스트와 TDD 테스트란? 개발자가 예상하고 의도했던 대로 코드가 정확히 동작하는지 확인해서 만든 코드를 확신할 수 있게 해주는 작업입니다. 테스트하고자 하는 대상이 명확하다면 그 대상에만 집중해서 테스트하는 것이 바람직합니다. 테스트하려는 범위가 클수록 테스트가 힘들어지고 오류가 발생했을 때 정확한 원인을 찾기가 힘들어지므로 가능하면 테스트의 관심이 다르다면 테스트할 대상을 분리(관심사의 분리) 하고 작은 단위로 쪼개서 테스트를 하는 것이 좋습니다. 이것을 단위 테스트라 합니다. 이전 포스트에서 테스트를 하기 위해 사용했던 main() 메소드를 보시면 테스트를 하기 위해서 프레젠테이션, 서비스 계층이 필요 없고 한 가지 관심에 집중해서 작은 단위로 테스트를 할 수 있기 때문에 단위 테스트를 적용했다 할 수 있습니다. .. 2023. 3. 26.
Spring - 오브젝트와 의존관계(스프링의 IoC와 DI) 2023.03.19 - [Spring] - Spring - 오브젝트와 의존관계(관심사의 분리) Spring - 오브젝트와 의존관계(관심사의 분리) Spring 이란? 스프링은 자라를 기반으로 한 기술입니다. 스프링의 철학은 자바 엔터프라이즈 기술의 혼란 속에서 잃어버렸던 객체지향 기술의 진정한 가치를 회복시키고, 그로부터 객체지향 프로 rbsks.tistory.com 2023.03.19 - [Spring] - Spring - 오브젝트와 의존관계(상속을 통한 확장과 인터페이스의 도입) Spring - 오브젝트와 의존관계(상속을 통한 확장과 인터페이스의 도입) 2023.03.19 - [Spring] - Spring - 오브젝트와 의존관계(관심사의 분리) Spring - 오브젝트와 의존관계(관심사의 분리) S.. 2023. 3. 21.
Spring - 오브젝트와 의존관계(상속을 통한 확장과 인터페이스의 도입) 2023.03.19 - [Spring] - Spring - 오브젝트와 의존관계(관심사의 분리) Spring - 오브젝트와 의존관계(관심사의 분리) Spring 이란? 스프링은 자라를 기반으로 한 기술입니다. 스프링의 철학은 자바 엔터프라이즈 기술의 혼란 속에서 잃어버렸던 객체지향 기술의 진정한 가치를 회복시키고, 그로부터 객체지향 프로 rbsks.tistory.com 이전 포스트에서 리팩토링 메소드 추출 기법을 사용하여 관심사를 분리해 변화에 좀 더 유연하게 대처할 수 있는 코드를 만들어 보았습니다. 이번 포스트에서는 변화를 반기는 DAO를 만들어 보겠습니다. 앞에서 만들었던 UserDao가 인기를 끌면서 N 사와 D 사에서 사용자 관리를 위해 UserDao를 구매하겠다는 주문이 들어왔다고 가정해 봅시다.. 2023. 3. 19.
Spring - 오브젝트와 의존관계(관심사의 분리) Spring 이란? 스프링은 자라를 기반으로 한 기술입니다. 스프링의 철학은 자바 엔터프라이즈 기술의 혼란 속에서 잃어버렸던 객체지향 기술의 진정한 가치를 회복시키고, 그로부터 객체지향 프로그래밍이 제공하는 폭넓은 혜택을 누릴 수 있도록 기본으로 돌아가자는 것입니다. 스프링이 가장 관심을 많이 두는 대상은 오브젝트입니다. 애플리케이션에서 오브젝트가 생성되고 다른 오브젝트와 관계를 맺고, 사용되고, 소멸하기까지의 전 과정을 자세히 살펴보아야 합니다. 결국 오브젝트에 대한 관심은 오브젝트의 기술적인 특징과 사용법을 넘어서 오브젝트의 설계로 발전하게 됩니다. 객체지향 설계의 기초와 원칙, 다양한 목적을 위해 재활용 가능한 설계 방법인 디자인 패턴 좀 더 깔끔한 구조가 되도록 지속적으로 개선해나가는 작업인 리팩.. 2023. 3. 19.
728x90