java

회사에서 개발하는 주요 프로젝트는 웹 개발로, B2B 모델이다.트래픽이 적은 대신, 초 대용량의 데이터가 담겨 있는데, 이러한 데이터를 어떻게 처리하면 좋을지 쿼리 관점에서만 블로그를 작성해 볼 예정이다. 회사 코드는 보안 사항으로, 비슷한 데이터를 만들어서 예제를 작성해 보자. 엔터티/테이블은 아래처럼 되어있다. 한 개의 parents에 1만 개의 데이터들이 존재한다 가정하자.  SELECT에서 IN절 사용하기 parent id들이 담긴 리스트를 메모리 상에 가지고 있다고 할 때, 이것들로 평범하게 data들을 조회하려고 하면 총 11번의 select쿼리가 나가게 된다. (parent 10개 조회 + data 1만개씩 10번 조회)    이걸 한 번에 처리하려면 in절 select를 해야 한다. 이 부..
애플리케이션 보호는 항상 흥미롭지만 동시에 너무 까다롭다. 우리가 고유한 코드나 프레임워크를 사용하면서 발생하는 웹 어플리케이션의 취약성을 매일 다방면으로 고려하고 대응해야 하기 때문이다. 해커들은 더 많은 취약점을 찾고, 보안 위협이 증가하고 있으며, 매일 수백 개의 보안 취약점이 발견되고 있다. 이런 어려움을 극복하기 위해 우리는 스프링 시큐리티와 같은 프레임워크를 채택하게 된다. 스프링 시큐리티는 보안에 중점을 둔 헌신적인 개발자들이 구축한 강력한 프레임워크를 제공한다. 우리는 보안 전문가가 아니지만, 스프링 시큐리티를 도입함으로써 그들이 이미 구현한 탁월한 기능을 활용할 수 있다. 1. 비즈니스 로직에 집중할 수 있는 여유 우리는 고객들의 새로운 요구사항을 수용하면서도 보다 향상된 비즈니스 로직을..
회사에서 신규 프로젝트를 하는데, 배치 서버를 구축하는 업무를 내가 맡게 되었다. 포스팅은 배치 서버를 구축하는 방법, Job을 생성하고 Tasklet 기반 Step과 Chunk 기반 Step에 대해서 다루어 볼 것이고, Chunk기반 Step은 스프링에서 기본적으로 제공하는 Reader와 Writer에 대해서 다루어 볼 것이다. 업무는 멀티모듈과 스키마 기반 멀티테넌시 환경에서, 배치 서버를 구축하는 것인데, 이는 추후에 포스팅할 것이다. 첫 글에서는, 최신 스프링 배치 버전인 Spring Batch 5의 특징을 알아보고, 간단하게 구축하는 방법을 알아보자. 1. Spring Batch 5 변경점 https://docs.spring.io/spring-batch/docs/current/reference/..
wn1331
'java' 태그의 글 목록