일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- spring scheduler
- spring-web
- MongoDB
- docker
- webframework
- 값객체
- mongo
- MSA
- 바운디드컨텍스트
- springboot
- 개발자
- springboot3
- 애그리거트
- springcloud
- ifkakao
- armeria
- spring6
- Conference
- zuul
- IDDD
- Redis
- java17
- 반버논
- ddd
- 신입
- Spring
- Kotlin
- spring caching
- kakao
- Pay
- Today
- Total
목록Spring (11)
Easy Understanding

계기와 결심 라이브러리나 프레임워크를 사용하는 것은 개발자에겐 일상이다. 시간이 지날수록 프레임워크들은 편리하게 발전하고 있으며, 그 때문에 우리는 비즈니스 로직을 처리하는 것에만 집중하면 된다. 책 하나 정도만 파보면 사용법을 익히는 건 어려운 일은 아니다. 그런데 그러다가 가끔 코딩하다 문제가 생겼을 때 혹시나 라이브러리를 한 번 까보면 신세계가 펼쳐진다. 도대체 내가 보고 있는 코드는 다른 차원의 코드인가 하는 생각이 든다. 그러다보니 코드에 대해서 두려움이 해소가 되지 않는다. 나는 예전부터 자기가 필요한 프로그램을 만드는 사람이 신기했다. 도대체 이 사람은 이런 프로그램을 어떻게 만들었을까라는 궁금증이었다. - VSCode에 있는 플러그인도 직접 개발한다고 하는데 도대체 어떻게 개발했을까? - ..

Non-Blocking Service 최근 웹 기술에는 많은 기술들이 화두가 되고 있지만, 그 중에서도 동시에 많은 요청을 처리하기 위한 기술들이 화두입니다. Java에는 RxJava, Reactor 등 Reactive Streams API를 구현한 라이브러리들이 가장 유명합니다. 그리고 스프링에서는 Reactive Streams API의 구현체 중 하나인 Reactor를 이용하여 'Spring Webflux 프레임워크'를 제공하고 있습니다. Webflux는 Non-Blocking한 서비스를 통해서 많은 요청을 효율적으로 처리할 수 있도록 해줍니다. 몇 년이 지나기는 했지만 아직까지는 이러한 기술들이 성숙기가 되고 한 기술로 정착되기에는 시간이 걸릴 것 같습니다. Webflux를 전문적으로 설명하고 있는..
11. Spring Cloud Spring Initializr를 보시면 스프링 클라우드와 관련된 모듈들이 굉장히 많은 것을 보실 수 있습니다. 최근 개발의 트렌드는 MSA 환경과 Container 환경을 중심으로 새로운 기술들이 많이 나오고 발전하고 있는데, Spring Cloud 또한 그러한 흐름에 맞게 관리되고 있는 프로젝트라고 할 수 있습니다. 스프링 클라우드는 MSA 아키텍쳐라고 하여, 많은 어플리케이션들이 하나의 어플리케이션처럼 동작하는 것처럼 보이도록 하는 여러가지 기능을 제공합니다. MSA와 관련해서 가장 많이 참조되고 있는 글인 'The 12 Factor App'입니다. 12factor.net/ko/ The Twelve-Factor App (한국어) 배경 이 문서에 기여한 사람들은 수백개 ..
7. Messaging 메시징은 어플리케이션 간에 요청 / 행동 전달 등을 할 때 이용합니다. 어플리케이션 A에서 어떤 일이 일어났다면 어플리케이션 B에서 그 일에 대한 일을 처리합니다. 여러 어플리케이션이 상호작용 한다면 메시지 큐를 사이에 두어서 그 일들을 잇게 됩니다. - Spring Integration(필요시 사용) Spring Integeration은 메시징과 관련된 패턴을 구현한 모듈입니다. 처음에는 메시징이 Integration과 무슨 상관이 있지라고 생각했지만 다른 뜻이 있더라구요. Enterprise Integration Patterns(EIP) 라고 유명한 책이 있는데 거기에서 이름을 따왔습니다. 이 책에 의하면 기업에서 다양한 어플리케이션들을 개발하고 그것들끼리 소통하는 데에 적합한..

이번 글은 Spring Initialzr(start.spring.io/)에서 추가할 수 있는 스프링의 모듈은 어떤 것이 있는가를 전체적으로 쭉 훑어보고자 합니다. 간단한 설명과 함께 참조할만한 링크들을 함께 작성할 예정입니다. SpringBoot 2.3.5 버전을 기준으로 설명합니다. 스프링은 기본적으로는 웹 서비스를 만들 수 있는 자바의 대표적인 웹 프레임워크입니다. 앞으로도 설명하겠지만 지원할 수 있는 건 다 지원한다 싶을 정도로 엄청난 생태계를 갖추고 있습니다. 많은 모듈들이 있으나 실제로 적용해야할 모듈은 몇 개 되지 않을 수도 있습니다. 그럼에도 어떤 도구가 있는지 미리 알아두는 것은 스프링을 사용하는 데에 있어서 도움이 됩니다. 스프링 initializr에서는 원하는 모듈을 Dependenci..
초보 주의 예전 개발 경험이 적을 때 작성한 거라서 지금 저의 시점으로 보니 너무 도움이 안 되는 글이네요... 솔직히 지우고 싶으나 풋풋함을 기억하기 위해서 남겨둡니다. (심지어 지금 결제 도메인 개발 중이라 더 부끄러움) 이제 무엇을 더 적용해봐야할까 아직 시스템엔 추가해야 하는 기능과, 개선하고자 하는 것들이 남아 있습니다. 제가 이번에 적용하려고 하는 것은 1. 최근에 기록된 거래들만 빠르게 확인할 수 있는 캐싱 시스템 2. 하루 내에 송금을 받지 않았을 경우에 송금 취소하고 원래대로 돌려놓기 위와 같은 두 가지 기능을 기존 시스템에 보완해볼 예정입니다. 간단한 캐싱 적용해보기 캐싱은 자주 사용되는 데이터베이스에 대한 빠른 접근을 위해 사용합니다. 여기에서는 거래 내역을 조회하는 것에 캐싱을 적용..

초보 주의 예전 개발 경험이 적을 때 작성한 거라서 지금 저의 시점으로 보니 너무 도움이 안 되는 글이네요... 솔직히 지우고 싶으나 풋풋함을 기억하기 위해서 남겨둡니다. (심지어 지금 결제 도메인 개발 중이라 더 부끄러움) MSA, Spring Cloud란? MSA라는 단어는 많이들 들어보셨을겁니다. Micro Service Architecture 를 줄여서 MSA라고 합니다. MSA는 기술/기법으로 여겨지기도 하지만, 단어 자체로는 어떠한 개념을 뜻합니다. Micro: 작게 Service: 서비스를 Architecture: 구성하라 저는 위의 느낌으로 MSA를 이해했습니다. 기존에 하나의 서비스에 여러가지를 넣어서 개발하던 시기와 다른 개발 방식이죠. 저의 세 가지 프로젝트들(조회/결제/송금)을 만들..

초보 주의 예전 개발 경험이 적을 때 작성한 거라서 지금 저의 시점으로 보니 너무 도움이 안 되는 글이네요... 솔직히 지우고 싶으나 풋풋함을 기억하기 위해서 남겨둡니다. (심지어 지금 결제 도메인 개발 중이라 더 부끄러움) Why Kotlin? Kotlin은 Java의 뒤를 이어서 Java를 대체할 수 있는 언어로 나온 핫한 언어입니다. 안드로이드에서는 공식 언어로 지원을 받고 있을 정도로 검증된 언어이기도 합니다. - 요새 많은 회사들에서 Java에서 Kotlin으로의 전환을 고려하고 있다는 점 - Kotlin의 활용성이 최신 언어적 특성을 반영한 트렌디한 언어라는 점 - Java와의 높은 호환성 - 그리고 기존 Springboot 프레임워크를 사용하여 러닝커브가 낮다는 점 이런 점들을 고려하여 Ko..