본문 바로가기

전체 글

@EnableBatchProcessing 사용시 설정 Back Off Spring batch 5.1 버전 릴리즈 노트에 @EnableBatchProcessing이 자동으로 붙는다고 나와있다. What’s New in Spring Batch 5.1 :: Spring Batch What’s New in Spring Batch 5.1 :: Spring BatchEmbracing JDK 21 LTS is one of the main themes for Spring Batch 5.1, especially the support of virtual threads from Project Loom. In this release, virtual threads can be used in all areas of the framework, like running a concurrent step .. 더보기
UnsupportedProductError The client noticed that the server is not a supported distribution of Elasticsearch 사용하는 엘라스틱 서치 버전과 파이썬 라이브러리 버전이 맞지 않아서 발생하는 문제입니다. 저는 엘라스틱 서치 버전을 7.10.2로 쓰고 있습니다. version: '3.7' services: elasticsearch: build: context: elasticsearch/. # elasticsearch 전용 Dockerfile을 가져와 빌드 args: ELK_VERSION: 7.10.2 ... 하지만, pip로 다운받은 엘라스틱서치 라이브러리 버전을 확인해보니 8.12.1이었습니다. 그래서 라이브러리 버전을 다운그레이드 했습니다. pip install elasticsearch==7.11.0 더보기
Pillin 프로젝트 백엔드 개발 리뷰 https://m.onestore.co.kr/mobilepoc/apps/appsDetail.omp?prodId=0000774295 필린 - 원스토어 여러분의 건강을 책임지는 영양제 재고 관리 서비스 Pillin입니다! m.onestore.co.kr 💡 Pillin 프로젝트의 백엔드 개발에서 사용한 아키텍처 및 규칙을 정리했습니다. 백엔드 구조도 규칙 Controller는 Dto만을 사용한다. Service는 필요시 Vo, Entity에 저장된 데이터를 사용하여 연산한다. Controller에서 전달받은 데이터 자체를 변환할 수 없게 하기 위해 Vo를 사용한다. Dao는 Service로 받은 데이터로 DB에 정보를 조회한다. 요청 처리 Flow 사용자는 서버에 Rest하게 요청한다. Security Fil.. 더보기
HttpUrlConnection, RestTemplate, WebClient의 특징과 장단점 HttpUrlConnection 특징 java에서 제공하는 기본적인 HTTP 클라이언트 저수준 API로 HTTP 요청 및 응답을 다루는데 사용됨 HTTP 및 HTTPS를 지원하며, 각 요청마다 새로운 연결을 만들어 사용 직접적인 제어 가능 장점 JDK의 일부로 제공되어 외부 라이브러리의 의존성이 없음 기본적인 HTTP 통신을 다루는데 유용 단점 낮은 수준의 API로 인해 응답 처리가 복잡 코드의 가독성이 낮음 RestTemplate 특징 Spring이 제공하는 HTTP 클라이언트 간단한 API를 통해 HTTP 요청 처리 동기 방식 및 Blocking I/O 사용 장점 Spring 기반 애플리케이션 사용에 유용 간단한 사용법 단점 동기 방식으로 동작하여 비효율적일 수 있음 Non-Blocking, Reac.. 더보기
오픈소소는 공짜가 아니다. 1. 개요 2021년에 11년간 이루어졌던, 구글과 오라클의 소송이 끝났습니다. 쟁점은 오픈소스인 자바의 API에도 저작권이 인정되는가, 저작권이 인정 될 경우 구글의 API 재사용 행위가 공정이용에 해당 되는가입니다. 결국 구글행위가 공정이용에 해당되어 승소하기는 했지만, API 코드에 대한 저작권에 대한 대법원 판결은 이루어지지 않았습니다. https://zdnet.co.kr/view/?no=20210406064737 구글, '10년 자바전쟁' 오라클에 최종 승리 10년 동안 계속된 세기의 자바 저작권 소송에서 구글이 다시 승부를 뒤집으면서 최증 승리했다. 미국 연방대법원은 5일(현지시간) 자바 저작권 소송에서 6대2로 구글... zdnet.co.kr 그만큼 저작권이라는 것은 매우 중요한데요, 오픈소.. 더보기
헥사고날 아키텍처 헥사고날 아키텍처란? 헥사고날 아키텍처는 응용 프로그램의 비즈니스 로직을 외부 세계로 부터 격리시켜 객체지향원칙을 잘 지키게 하는 아키텍처입니다. 대중적으로 많이 사용하는 3계층 아키텍처에 비해 더욱 유연하고 테스트하기 쉬워진다는 장점이 있습니다. 이 헥사고날 아키텍처를 만들기 위해 핵심 로직은 중앙 도메인 영역에 위치하며, 입력과 출력을 처리하는 포트와 어댑터를 통해 외부와 소통합니다. 이러한 특징으로 포트 및 어댑터 아키텍처라고도 불립니다. 이 헥사고날 아키텍처의 핵심은 내부 영역과 외부 영역을 분리 하는 것 입니다. 내부 영역 💡 Domain Model Layer 및 Application Layer 위 그림에서 회색 부분이 내부 영역입니다. Domain Model Layer는 DomainModel이.. 더보기
클라우드 네이티브란? 1. 개요 이전의 많은 IT 회사들은 자신의 회사 내부에 서버 장비 및 소프트웨어를 설치하여 서비스를 제공해 왔습니다. 이를 온프레미스방식이라 합니다. 이와 대조적으로, 클라우드 네이티브는 AWS와 같은 클라우드 서비스 제공 업체가 제공하는 서버에 서비스를 설치하여 서비스를 제공하는 방법입니다. 즉, 두 개의 가장 큰 차이점은 회사 내 하드웨어 서버의 존재 유무입니다. 온프레미스 방식은 회사에 하드웨어 서버가 있는 것이고, 클라우드 네이티브 방식은 회사 내에 하드웨어 서버가 없습니다. 2. 클라우드 네이티브 클라우드 환경에서 소프트웨어(서비스)를 개발, 배포, 운영, 확장하는 방식. 네이티브(Native)란, 어떤 지역이나 특정 환경에서 자연적으로 존재하는 것을 의미합니다. 여기서 클라우드 네이티브는 이.. 더보기
REST API와 HTTP Header REST API REST(Representational State Transfer)의 약어로, 인터넷을 통해 통신할 수 있게 하는 인터페이스입니다. 조금 더 자세히 설명하면, REST API는 HTTP URI를 통해 제어할 자원(Resource)을 명시하고, HTTP Method(GET, POST, PUT, DELETE)을 통해 해당 자원을 제어하는 명령을 내리는 방식의 아키텍처입니다. 위 아키텍처 방법을 통해 전송하는 것이 REST API 입니다. 💡 REST API는 TCP/IP 프토로콜의 5계층인 응용 계층에 해당됩니다. REST API의 요청과 응답은 Header와 Body 부분이 있습니다. HTTP Header Header는 요청과 응답에 대한 전반적인 정보를 담고 있습니다. HTTP 1.1 버.. 더보기