반응형 독서/토비의 스프링8 토비의 스프링 Vol.1 8장 스프링이란 무엇인가 8.1 스프링이란 무엇인가? 스프링에 대해 가장 잘 알려진 정의는 '자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크'다. 이 문장을 풀어서 살펴보자. 애플리케이션 프레임워크 경량급 자바 엔터프라이즈 개발을 편하게 오픈소스 애플리케이션 프레임워크는 특정 계층이나, 기술, 업무 분야에 국한되지 않고 애플리케이션의 전 영역을 포괄하는 범용적인 프레임워크를 말한다. 애플리케이션 프레임워크는 애플리케이션 개발의 전 과정을 빠르고 편리하며 효율적으로 진행하는데 일차적인 목표를 두는 프레임워크다. 경량급 스프링이 가볍다는 건 기술수준이 가볍다거나, 스프링이 유치하고 용도가 제한적이라는 의미가 아니다. 불필요하게 무겁지 않고 가볍고 단순한 환경에서도 엔터프라이즈 개발의 고급 기술을 대부분.. 독서/토비의 스프링 2023. 2. 21. 토비의 스프링 Vol.1 6장 트랜잭션 포스팅을 시작하겠습니다. 아래는 우리가 작성한 TransactionAdvice의 invoke 메서드 코드다. public Object invoke(MethodInvocation invocation) throws Throwable { TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition()); try{ Object ret = invocation.proceed(); transactionManager.commit(status); return ret; } catch(RuntimeException e){ transactionManager.rollback(status); throw e; } } 우리가 .. 독서/토비의 스프링 2023. 2. 19. 토비의 스프링 Vol.1 6장 AOP 포스팅 시작하겠습니다. 6.1 트랜잭션 코드의 분리 지난 챕터에서 우리는 서비스 추상화를 이용해 UserService에서 특정 트랜잭션 기술에 종속적이지 않은 깔끔한 코드를 만들었다. 그러나 여전히 비즈니스 로직을 수행해야만 하는 UserService에 트랜잭션 기술 코드가 들어있다. 이를 해결하기 위해 데코레이터 패턴을 적용했다. UserService 인터페이스를 만들고 이를 구현한 비즈니스 로직을 수행하는 UserServiceImpl 클래스와 트랜잭션을 수행할 UserServiceTx 구현클래스를 작성했다. UserServiceTx가 UserServiceImpl을 인스턴스 변수로 받아 트랜잭션 경계 설정 코드를 진행하고 비즈니스 로직 관련 부분은 UserServiceImpl 메서드를 호출하면서 위임한.. 독서/토비의 스프링 2023. 2. 18. 토비의 스프링 Vol.1 5장 서비스 추상화 실습 코드는 아래에서 확인 가능합니다. https://github.com/happysubin/book-study/commits/main GitHub - happysubin/book-study Contribute to happysubin/book-study development by creating an account on GitHub. github.com 5.1 사용자 레벨 기능 추가 이전 시간까지는 UserDao에서 User 객체를 단순히 CRUD 하는 작업만 가능했는데, 이번 파트 부터는 특별한 비즈니스 로직을 추가했다. UserDao에서 User 객체를 모두 가져와서 일정 방문 횟수와 추천 수를 넘기면 User 객체의 레벨을 올리는 로직이다. 레벨을 나타내기 위해 Enum을 사용했다. 이번 파트에서.. 독서/토비의 스프링 2023. 2. 17. 토비의 스프링 Vol.1 2장 테스트 2장은 테스트에 관련된 내용입니다. 실습은 아래에서 확인할 수 있습니다. https://github.com/happysubin/book-study/commit/d31fcf6587d719e39cb28e62abc7ff7634b7c179 Feat: 토비의 스프링 2장 학습 마무리 · happysubin/book-study@d31fcf6 Show file tree Showing 4 changed files with 127 additions and 33 deletions. github.com 스프링이 제공하는 가장 중요한 가치는 객체지향과 테스트다. 이번 2장에서는 스프링이 제공하는 가장 중요한 가치 중 하나인 테스트에 대해 살펴본다. 애플리케이션은 요구사항이 들어오면서 변하고 복잡해진다. 테스트 코드를 잘 작성.. 독서/토비의 스프링 2023. 2. 14. 토비의 스프링 Vol.1 4장 예외 4장은 예외 관련 내용입니다. 이전에 강의에서 배운 스프링 DB 1편에서 배운 내용과 비슷한 부분이 있습니다. 아래 예외 관련 포스팅도 보시면 좋을 것 같습니다. https://devdebin.tistory.com/208?category=1028513 예외와 예외 처리 본 게시글은 인프런 김영한 선생님 강의 스프링 DB 1편을 완강하고 배운 것을 남기고자 적은 포스팅입니다. 강의 링크는 아래와 같습니다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-1/das.. devdebin.tistory.com 그럼 포스팅 시작하겠습니다. 사라진 SQLException 우선 예외를 처리할 때 지켜야할 절대적인 핵심 원칙은 하나다. 모든예외는 적절하게.. 독서/토비의 스프링 2022. 7. 23. 토비의 스프링 Vol.1 3장 템플릿 3장은 템플릿에 관련된 내용입니다. 템플릿이란 바뀌는 성질이 다른 코드 중에서 변경이 거의 일어나지 않으며 일정한 패턴으로 유지되는 특성을 가진 부분을 자유롭게 변경되는 성질을 가진 부분으로부터 독립시켜서 효과적으로 활용할 수 있도록 하는 기법이다. 3.1 초난감 DAO 예외 처리 우리는 1장에서 초난감 DAO를 멋지게 리팩토링했다. 전략 패턴을 바탕으로 추상화에 의존하며, DI를 바탕으로 OCP(개방폐쇄 원칙)을 지키도록 했다. 또한 관심사를 멋지게 분리해냈다. 그러나 저번 시간에 잠깐 언급했는데 예외 처리에 관한 부분을 다루지 않았다. 잠깐만 UserDao 실습 코드를 살펴보자. PreparedStatement ps = connection.prepareStatement("delete from user.. 독서/토비의 스프링 2022. 7. 23. 토비의 스프링 Vol.1 1장 오브젝트와 의존관계 2023.02.13 복습 및 정리 실습 레포는 아래와 같습니다. https://github.com/happysubin/book-study/tree/main/%ED%86%A0%EB%B9%84%EC%9D%98%20%EC%8A%A4%ED%94%84%EB%A7%81 이번 포스팅은 토비의 스프링 3.1 1장에 관한 학습 기록입니다. 1장 도입부 자바는 객체지향 언어다. 우리가 학습하는 스프링은 자바를 기반으로 한 프레임워크다. 자바를 기반으로 만들어진 기술, 스프링이 제일 중요하게 여기는 핵심 가치는 바로 객체지향적인 프로그래밍이다. 그러므로 스프링은 오브젝트(객체)에 제일 관심을 많이 둔다. 오브젝트 간의 관계에 집중하며, 라이프 사이클에 집중한다. 더 나아가서는 오브젝트 설계, 어떤 단위로 만들어지는지까지 관.. 독서/토비의 스프링 2022. 7. 21. 이전 1 다음 반응형