일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- redis
- Jenkins
- 도커
- docker
- Spring Error
- PostgreSQL
- or some instances in your deployment group are experiencing problems.
- JavaScript
- SQL
- codepipeline
- VPN
- aws cicd
- Flux
- codedeploy error
- aws
- Spring
- Kafka
- chart.js
- codedeploy
- AWS CI/CD 구축하기
- bootstrap
- java bigdecimal
- COALESCE
- IntelliJ
- node
- Python
- codebuild
- kubeflow
- chartjs
- Airflow
- Today
- Total
목록백엔드/Spring (133)
Small Asteroid Blog
Reactive MongoDB 를 사용할 때 Flux, Mono 는 데이터를 처리하는 중요한 두가지 방식이다. buffer 와 next 를 사용한 스트리밍 방식Flux dataStream = mongoTemplate.aggregate(aggregation, "result_data", ResultResponse.class);return dataStream .buffer(pageSize) // 요청한 사이즈만큼 버퍼링 .next() // 첫 번째 페이지만 가져오기 .defaultIfEmpty(Collections.emptyList()) // 데이터가 없을 경우 빈 리스트 반환 .map(res -> { String ne..
ReactiveMongoTemplate과 ReactiveMongoRepository는 반응형 MongoDB 작업을 수행하는 두 가지 주요 방식이다. ReactiveMongoRepository를 사용해야 하는 경우ReactiveMongoRepository는 주로 기본적인 CRUD 작업을 간편하게 처리할 때 유용하다.단순한 조회, 저장, 삭제 등의 작업이 자주 필요할 때는 repository가 더 직관적이고, 필요한 메서드들이 미리 정의되어 있어 코드가 간결해진다. 단순한 CRUD 작업: 기본적인 조회(findById, findAll), 저장(save), 삭제(deleteById) 등의 작업메서드 이름을 통한 쿼리 정의: findByName, findByStatus 등 메서드 이름만으로 간단한 조건 기반 조..
Spring에서 몽고디비를 사용할 때스트리밍 조회(Stream Processing)와 MongoDB Aggregation 중어떤 방법이 더 좋은지 데이터의 특성과 사용 목적을 고려해야 한다. 스트리밍 조회 (Stream Processing)장점메모리 효율성: 전체 데이터를 한 번에 메모리에 로드하지 않고, 하나씩 처리하기 때문에 메모리 부담이 적다.단순한 로직: 데이터 하나하나를 순차적으로 처리하는 데 적합하여, 복잡한 집계나 가공 작업을 서버 측 코드에서 쉽게 처리할 수 있다.단점네트워크 부담: 모든 데이터를 서버로 전송해야 하므로 네트워크 트래픽이 높아질 수 있다.속도 저하 가능성: MongoDB 내에서 바로 처리하지 않고, 애플리케이션 서버에서 작업을 수행해야 하므로 처리 속도가 느려질 수 있다...
spring 에서 mongodb 를 사용하려고 하는데 두개의 dependency 정보가 있었다. 이중 어떤 것을 사용하는것이 좋은지에 대해 찾아 보았다. spring-boot-starter-data-mongodb 동기 방식호출 시 요청이 완료될 때까지 코드 실행이 멈춘다.전통적인 블로킹 방식각 요청에 대해 독립적인 쓰레드가 할당되므로, 다수의 데이터 요청이 있을 때 많은 시스템 리소스를 사용한다.간단한 API 호출에 유리데이터베이스 호출이 적거나 동기 방식으로 데이터를 처리해도 성능에 영향이 없는 경우에 적합하다.MongoTemplateMongoTemplate과 MongoRepository를 사용하여 데이터를 CRUD 할 수 있다. import org.springframework.data.mongod..

AES 대칭키 암호화 알고리즘 CBC (Ciper Block Chanining) Mode블록 암호화 알고리즘에서 데이터의 보안성을 높이기 위해 사용되는 운영모드 중 하나로 블록 암호화 운영 모드 중 보안성이 제일 높은 암호화 방법이다.CBC 주요 특징은 key 암호화 뿐만 아니라 초기화 벡터(IV) 라는 무작위 값과 XOR 연산을 수행해야 한다. 암호문이 블록의 배수가 되기 때문에 입력되는 평문 데이터가 블록 크기와 맞지 않으면 Padding(패딩)을 추가해서 처리해야 한다. 일반적으로 PKCS5Padding을 사용해 평문의 길이를 블록 크기의 배수로 맞춰준다. 사용 코드아래 코드는 AES CBC 모드를 사용하여 데이터를 암호화하고 복호화 하는 코드를 작성해두었다. Bearer 토큰을 통해 동적으..

포인트컷 지시자 AspectJ 는 포인트컷을 편리하게 표현하기 위해 특별한 표현식을 사용한다. 포인트컷 표현식은 AspectJ가 제공하는 포인트컷 표현식을 줄여서 말하는 것으로execution 같은 포인트컷 지시자(Pointcut Designator, PCD)로 시작한다. 지시자 종류 execution : 메소드 실행 조인 포인트를 매칭한다. 스프링 AOP 에서 가장 많이 사용하고 기능도 복잡하다. within : 특정 타입 내의 조인 포인트를 매칭한다.args : 인자가 주어진 타입의 인스턴스인 조인 포인트this : 스프링 AOP 프록시를 대상으로 하는 포인트target : 스프링 AOP 프록시가 가리키는 실제 대상으로 하는 조인 포인트@target : 실행 객체의 클래스에 주어진 타입의 어노테이션..