토비의 스프링 8장 ‘스프링이란 무엇인가?’를 읽고 읽기 모임 중 나눔한 내용 참조 사이트 등을 정리합니다.스프링이 해결하려는 문제가 무었이고 또 어떤 전략과 사상을 가지고 그것을 해결하는지 전반적으로 잘 설명되어 있어서 좋았습니다. 개인적으로 이해한 것을 정리해 보면
토비의 스프링 8장 ‘스프링이란 무엇인가?’를 읽고 배우고 학습한 내용을 정리합니다.“자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크”프레임워크는 애플리케이션의 특정 계층에서 주로 동작하는 한 가지 기술 분야에 집중된다. 하지만 스프링은
선생님께 자랑하고 싶은 학생의 마음 같은 건데, 3장 템플릿/콜백을 배운 이후에 현업에서 만나는 코드들이 모두 템플릿과 콜백으로 나누어져서 보이기 시작하더라구요. 마치 당구 처음 배우면 천장에 당구대가 보인다는 느낌이랄까요? 변하는 것과 변하지 않는 것을 나누고 변하는
DI를 적용하는 건 간단해 보이지만 DI의 가치를 제대로 누리기는 쉽지 않다.DI에 필요한 유연하고 확장성이 뛰어난 오브젝트 설계를 하려면 많은 고민과 학습, 훈련, 경험이 필요하다. 객체지향 설계를 잘하는 방법은 다양하겠지만, 그중에서 추천하고 싶은 한 가지가 있다
토비의 스프링 ‘7장 스프링의 핵심 기술의 응용’을 읽고 정리합니다. 6장까지 개선해왔던 UserDao에서 SQL 쿼리문을 분리하여 손쉽게 유지보수하고 확장가능한 구조를 만들어가는 과정에 집중합니다.반복적인 JDBC 작업 흐름은 템플릿을 이용해 DAO에서 완벽하게 제거
일단 처음으로 쉽게 안 읽히더라구요. 예제 코드를 좀더 신중하게 작성해 보니 이해가 조금 더 되긴 했는데 추상화된 부분들이 계속 누적되다 보니까 잘 이해되지 않는 부분이 생기더라구요. 그래서 구체적으로 어떻게 동작한다고 주석으로도 치고 글로도 정리하니까 조금 더 이해에
토비의 스프링 6장 AOP를 읽고 더 나은 설계 및 테스트를 위한 내용을 별도로 정리합니다. 스프링의 ProxyFactoryBean의 설계를 보면서 기술적인 영역에서도 변하는 것과 변하지 않는 것을 구분하면 재사용성을 높일 수 있고 최소한의 노력으로 변경에 대처할 수
토비의 스프링 6장 AOP를 읽고 배우고 학습한 것들을 정리합니다. 특별히 최신 AOP 기술이 등장하기 까지 스프링이 걸어온 집요한 문제 해결 과정에 집중해 봅니다.Proxy : a person authorized to act on behalf of another. (
토비의 스프링 6장 AOP를 읽고 배우고 학습한 것들을 정리합니다. 특별히 Tansaction과 관련도니 부분을 따로 정리합니다. 트랜잭션을 다루는 개념들을 읽다보니 섬세하게 데이터를 다루는 일에 대한 호기심이 생겨납니다. 처음있는 일입니다. 지금까지는 섬세하게 외부
토비의 스프링 5장 서비스 추상화를 읽고 읽기모임을 하며 나눈 것, 배운 것들을 정리합니다.5장이 ‘서비스 추상화’라는 주제이긴 하지만 책 곳곳에 좋은 설계와 테스트를 위한 가이드들이 많아서 열심히 메모하며 읽었던 것 같습니다. 특히 5장 초반에 비지니스 로직을 처음으
객체지향적인 코드는 다른 오브젝트의 데이터를 가져와서 작업하는 대신 데이터를 갖고 있는 다른 오브젝트에게 작업을 요청한다. 오브젝트에게 데이터를 요구하지 말고 작업을 요청하라는 것이 객체지향 프로그래밍의 가장 기본이 되는 원리이기도 하다. 테스트 코드와 애플리케이션 코
토비의 스프링 '4장 예외'를 읽기모임 중에 기억에 남는 말들, 생각거리, 추천 링크들을 정리합니다. 현재 수행 중인 프로젝트에 예외를 받아서 의미있는 무언가(예를 들면 예외 상황 복구)를 할 수 있는 케이스가 정말 있는지 한 번 살펴보자. 그래서 Checked Exc
토비의 스프링 ‘4장 예외’ 장을 읽고 배우고 느낀점을 정리합니다.스프링은 사용자의 체크를 필수적으로 요구하는 Checked Exception을 Unchecked Exception으로 전환해서 던진다는 것(복구 가능성이 거의 없는 예외를 위해 애플리케이션에서 불필요한
토비의 스프링 ‘4장 예외’ 장을 읽고 책의 내용을 정리합니다.다음과 같은 유형의 난감한 예외처리 코드들이 있다.예외를 잡고 예외를 삼킨다. 예외가 숨겨지고 이 후에 예외가 후에 드러나면 어디서 문제가 발생했는지 찾기 어렵게 된다.콘솔 로그만 남기고 삼킨다. 콘솔로그는
‘객체란 무엇인가?’라는 질문을 받고 순간적으로 상태와 행위를 가진 프로그래밍의 단위 정도가 생각납니다. 조금 있다 문득 객체 중에는 상태가 없이(사용자가 멤버 변수를 정의하지는 않아도 사실 객체가 되기 위해 JVM이 관리하는 상태는 있을 테지만) 행위만 가지는 객체도
템플릿에 콜백을 위한 객체를 전달할 때 람다식을 사용하시나요? Functional 인터페이스를 정의한 분리된 클래스 객체를 전달하시나요?
토비의 스프링 3장(템플릿)에서 거대하고 복잡한 하나의 메서드에서 변하는 것과 변하지 않는 것을 분리하며 객체지향의 핵심 원칙(개방폐쇄원칙)을 점진적으로 구현해 나가는 과정을 보여줍니다. 중복을 제거하고 재활성을 높였으며 변경에는 닫혀 있고 확장에는 열려있는 이 코드를
토비의 스프링을 읽고 핵심적인 내용을 정리합니다.개방 폐쇄 원칙 (OCP, Open-Closed Principle)이란 자유로운 확장에는 열려있고 변경에는 굳게 닫혀 있다는 객체지향 설계의 핵심 원칙이다. 이 원칙은 코드에서 어떤 부분은 변경을 통해 그 기능이 다양해
토비의 스프링을 읽고 인상적이었던 부분과 느낀점을 정리합니다.매 장을 읽을 때 마다 새롭고 좋습니다. 3장이 변하지 않는 것과 변하는 것을 분리하는 개념이 나오는데 책에는 스프링이 버전업 되어도 변하지 않는 가치가 풍성하게 담겨있다는 생각이 듭니다. 3장에서 하나의 메
처음으로 배운 프로그래밍 언어는 대학 1학년 때 C 언어였다. 그리고 다음해 Java를 배우는데 과제를 엄청 내주셨다. C 수업에서 구구단 출력하기 같은게 과제였다면 Java 수업에서는 도서관 대출 프로그램 같은게 과제로 나왔다. 그때 나는 프로그래밍을 그만하고 싶을