소개
호주에 살고 있는 소프트웨어 개발자입니다. 30년간 다양한 분야의 시스템과 서비스를 개발해본 경험이 있습니다.
스프링 프레임워크와 관련 기술을 좋아하고 JVM 기반 언어를 주로 사용합니다.
한국스프링사용자모임(KSUG)을 설립하고 활동했고, 토비의 스프링이라는 책을 쓰기도 했습니다.
개발과 관련된 다양한 주제에 관해 이야기하는 것을 좋아합니다.
강의
전체1수강평
- 스프링 부트에 대한 깊은 이해를 할 수 있습니다. 꼭 수강하세요 후회 안하실 거에요..
DEVOCEAN
2024.04.16
1
- 좋은지식 많이 배우고갑니다.
shokoku
2024.04.01
1
- 잔잔하고 명확하게 설명해주시는게 괜히 토비가 아니네요..
Glacier
2024.03.25
1
게시글
질문&답변
2024.04.21
섹션6. 자동 구성 정보 파일 분리 강의에서 질문 있습니다
어려운 걸 분석해보고 계시네요. ImportSelector는 스프링에서도 독특하게 사용되는 오브젝트가 구현하는 인터페이스로 보입니다. 다른 @Configuration 클래스를 생성해내는 작업을 담당하고 있으니 꽤나 독특한 위치에 있죠. 어쨌든 @Import에 의해서 등록이 되고 이 오브젝트를 생성하는 건 스프링이니 필요한 클래스로더 등을 주입해주는 것도 스프링입니다. 이걸 일반 빈으로 등록할 필요는 굳이 없어보이네요.
- 0
- 2
- 112
질문&답변
2024.04.04
단위 테스트 구성 시 다른 오브젝트를 직접 구성해주는 과정의 용어가 궁금합니다.
테스트 스텁(test stub)이라고 합니다. 테스트 대상 객체가 동작하는데 필요한 협력 오브젝트의 기능을 간단히 구현해 놓은 것을 말합니다. 검색해보시면 관련된 좋은 설명을 많이 찾으실 수 있을 겁니다.
- 0
- 1
- 75
질문&답변
2024.04.01
dependency-management 버전 질문
재밌는 실험을 해보셨네요. 스프링을 비롯한 자바 서버 애플리케이션은 보통 수십 개에서 백 개가 넘는 의존 라이브러리들을 사용합니다. 표준 뿐만 아니라 오픈소스 기술도 많이 사용되고, 대부분 중복된 기능을 개발하기보다는 기존에 만들어져 검증된 라이브러리가 있으면 그걸 재사용하려고 하죠. 문제는 버전이 올라가면서 어떤 경우엔 호환성이 깨지고 오류가 나기도 합니다. 그래서 버전을 맞추는게 엄청나게 복잡한 부담입니다. dependency-management 플러그인은 그런 고민을 해결해줄 수 있도록 미리 검증된 버전의 라이브러리를 사용할 수 있게 도와주는 것으로 알고 있습니다. 그런데 이걸 최신 버전에 맞춰서 쓰지 않고 구버전을 써도 잘 동작한다는 말씀이네요. 그럴 수도 있습니다. 라이브러리들이 버전 올라간다고 모든게 다 깨지는 건 아니거든요. 하지만 그래도 스프링 개발팀이 많은 노력을 들여서 최신 스프링/부트 버전에 맞는 라이브러리들을 추천하고 사용하도록 권장하는 데는 여러 이유가 있습니다. 당장은 문제는 없어보이지만 어떤 새로운 기능을 쓸 때 문제가 튀어나올 수 있습니다. 동작하는 것처럼 보이지만 실은 버그가 있을 수도 있고요. 새 버전에서 성능이 개선됐는데 그게 안 된 버전을 사용하게 될 수도 있겠죠. 이걸 버전을 바꿔서 다시 프로젝트 전체를 로딩하고 어떻게 버전이 바뀌는지를 확인한 뒤에 하나씩 다 검증해보기 전에는, 최신 버전에서는 뭐가 개선됐는지 등등, 사실 잘 모릅니다. 제가 추천하기엔 이런 머리 아픈 작업은 스프링부트 개발팀이 제안해준 방식을 따라서 하시면 좋겠습니다. https://docs.spring.io/dependency-management-plugin/docs/current-SNAPSHOT/reference/html/ 이 문서도 한번 참고해보세요. 그리고 GitHub 프로젝트에 최신 업데이트가 어떤게 되고 있는지도 보시면 왜 계속 새 버전이 나오는지 이해하는데 도움이 되실 겁니다.
- 0
- 2
- 106
질문&답변
2024.03.22
web.xml -> dispatcherServlet 질문
위의 코드는 DispatcherServlet으로 보내는 패턴을 정의한 것입니다. 이건 그냥 / 로 등록해서 전체가 다 가게 하면 됩니다. *.do 와 같은 건 개별 컨트롤러에서 설정할 문제이지 저렇게 DispatcherServlet에 걸어주는 방식을 쓰지 않습니다. 부트에서 왜 ServletConfig을 넣으셨는지도 이해가 안 됩니다. 실제로 이런식으로 사용하지 않습니다. 그리고 뭐가 안 된다는 것인지도 모르겠네요. 저도 부트에서 이런식의 설정을 해서 써본적은 한번도 없습니다. 강의와 무관한 내용인데다 제가 테스트 해볼 수 있는 문제를 재현한 샘플 프로젝트를 공유해주신 것도 아니어서 더 이상 도움을 드리기는 어려울 것 같습니다. 부트의 레퍼런스에 샘플로 나오 방법이 아니라면, 아마도 부트를 쓰는한 지원하게 만드는 방법이 없을 수도 있습니다. 부트는 자신만의 방법을 고집하는 아주 일방적인 기술이라서요. 기존에 하던 방식을 가져올 거라면 부트를 쓸 이유가 없습니다.
- 1
- 1
- 139
질문&답변
2024.03.20
http api test
HTTPie 프로그램이 설치가 안 된 것 같습니다. https://httpie.io/docs/cli/windows 을 참고하셔서 설치하고 사용해보세요.
- 0
- 1
- 207