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