일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 기능개발 python
- 코틀린
- Kotlin in action 10장
- 스프링 컨테이너와 스프링 빈
- Kotlin in action 3장
- 7장 고급매핑
- Kotlin in action 5장
- spring
- 13460 구슬탈출 2
- 고급매핑
- Kotlin
- 20055
- 자바 ORM 표준 JPA 프로그래밍 7장
- Python
- 코틸린인액션
- KotlinInAction
- Kotlin in action 6장
- kotlin in action 정리
- 백준 20055 컨베이어 벨트 위의 로봇
- 컨베이어 벨트 위의 로봇 Python
- 스프링 핵심 원리
- 백준
- 스프링 핵심 원리 이해
- 코틀린인액션
- 객체 지향 설계와 스프링
- 20055 컨베이어 벨트 위의 로봇
- 백준 13460 Python
- Kotlin In Action
- 싱글톤 컨테이너
- 스프링 핵심 원리 - 기본편
- Today
- Total
목록분류 전체보기 (157)
기록하는 습관
Spring Batch 벡엔드의 배치처리 기능을 구현하는 데 사용하는 프레임워크 장점 로깅/추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작, 건너뛰기, 리소스 관리 등 대용량 레코드 처리에 필수적인 기능을 제공 최적화 및 파티셔닝 기술을 통해 대용량 및 고성능 배치 작업을 가능하게 하는 고급 기술 서비스 및 기능을 제공 배치가 실패하여 작업 재시작을 하게 된다면 처음부터가 아닌 실패한 지점부터 실행 중복 실행을 막기 위해 성공한 이력이 있는 Batch는 동일한 Parameters로 실행 시 Exception이 발생 참고 chunk 지향 프로세싱 transaction 경계 내에서 chunk 단위로 데이터를 읽고 생성하는 프로그래밍 기법 tasklet 단일 작업에 사용합니다 일반적으로 Resource ..
mybatis 가 동적이거나 커스텀이 강한, 다르게 말하면 데이터 가공이 쉽지만 데이터베이스 친화적인 성격이 강함. -> 어플리케이션에서는 독립적인 데이터셋에 대한 것을 리턴 받아 처리 되는 로직으로 인해 의존성이 데이터베이스에 종속적임. hibernate / queydel등의 ORM에서는 어플리케이션 관점에서 객체 지향적인 부분으로 데이터를 바라보고 있음. 컴파일 시점에 언어에 대한 부분을 검증 가능하지 않는 부분은 단점이 될 수도 있고 장점이 될 수 있음. JPA vs MyBatis JPA와 MyBatis의 차이 (ORM과 SQL Mapper)
2022. 1. 25 기준, 17.0.2 version 왜 흔히 Java8이 안전하다고 하는것인지? → 외부 툴과 연동할 때 Oracle JDK가 아닌, Open JDK를 사용해야 하며 생기는 이슈들이 생길 수 있음. Java8 2014년 오라클 인수 후 첫 번째 버전 2개의 버전으로 나뉨 (Oracle JDK, OpenJDK) Optional Stream 새롭게 추가된 날짜 API 애플릿 뷰어 도구 사용 가능 애플릿이란? 패널(Panel)을 상속하는 클래스로, 웹브라우저에 담겨서 실행되는 작은 응용 프로그램. String 문자열 관련 메소드가 적음 lambda 등장. lambda 파라미터에는 특수 변수 사용되지 않음 PermGen Area 제거 interface default method 추가 Java..
Hadoop 2006년 4월, 아파치에서 발표한 대용량 데이터를 분산 처리할 수 있는 자바 기반의 오픈 소스 프레임워크 map 함수가 모두 종료해야 reduce 함수가 실행됨. → 실시간 처리는 힘듦. map: 전체 데이터를 작은 단위로 나눈 청크에 대해 수행할 로직 reduce: 처리된 데이터를 병합하는 과정 map 함수의 결과가 디스크에 저장되고, 그걸 reduce 함수가 다시 읽어와야 합니다. 이것이 주는 성능상의 손실이 큼 따라서, 빅데이터 기반의 배치성 통계작업에 주로 사용됨. 맵리듀스 잡(작업)의 결과물은 hdfs에 저장해야만 하는데 hdfs는 분산파일시스템이기 때문에 저장과 로드에 상당한 비용(시간/자원소모)이 듦. 요약 저장은 HDFS에 저장하고, 분석작업은 맵리듀스를 통해 수행하고, 이러..
1. Offset 기반 페이지 단위로 데이터를 불러오는 방식. offset 기반 페이지네이션은 우리가 원하는 데이터가 '몇 번째'에 있다는 데에 집중 offset을 사용해도 되는 경우 데이터의 변화가 거의 없다시피하여 중복 데이터가 노출될 염려가 없는 경우 일반 유저에게 노출되는 리스트가 아니라 중복 데이터가 노출되어도 크게 문제 되지 않는 경우 검색엔진이 인덱싱 할 이유도, 유저가 마지막 페이지를 갈 이유도, 오래 된 데이터의 링크가 공유 될 이유도 없는 경우 애초에 row 수가 그렇게 많지 않아 특별히 퍼포먼스 걱정이 필요 없는 경우 문제점 각각의 페이지를 요청하는 사이에 데이터의 변화가 있는 경우 중복 데이터 노출 대부분의 RDBMS 에서 OFFSET 쿼리의 퍼포먼스 이슈 2. Cursor 기반 클..
ShedLock 같은 잡을 수행하는 각각 다른 서버에서의 인스턴스 A,B가 있을 때, A,B 둘 중 하나가 수행하도록, 2개 이상의 서버에서 중복 수행을 방지하도록 Lock 을 걸게 하는 라이브러리로 shedlock 이 있다. 순서 관계없이 lock을 설정한 시간 동안은 하나의 인스턴스만 작동하도록 되어있다. 0) 지원하는 저장소 MySQL Redis MongoDB In-Memory ... (굉장히 다양함) 1) 3가지 속성 name : 스케줄 작업의 고유 이름. 해당 문자열은 shedlock 테이블의 name 칼럼으로 PK 역할을 하게 되므로 스케줄 작업의 고유한 이름을 입력해야 함. name은 다른 scheduled 함수와 중복되지 않도록 고유하게 설정해야 함. lockAtLeastFor : 작업이 ..
AWS에서 제공하는 서버리스 컴퓨팅 플랫폼 사용한 컴퓨팅 시간, 용량에 대해서만 AWS에게 비용을 지불하면 됨. 장점 코드를 계속 실행시키기 보다는 특정한 시기에만 실행시키는 경우에 Lambda를 사용하면 유용하다. 서버 띄우지 않고 간단한 코드를 실행시키고 싶은 경우 특정 기간 또는 특정 주기로 코드를 실행시켜야 하는 경우 트리거가 실행될때만 코드를 실행시키고 싶은 경우 단점 코드 용량이 최대 250MB 이다. 함수 실행 시간은 최대 15분이다. 처음 함수 호출시 Cold Start를 하게되고 초기 지연시간이 발생한다. 비싸다. 적용 S3를 lambda 함수 트리거로 추가하여 객체 생성 이벤트가 발생할 때 lambda 함수를 실행시킬 수 있음. 아래 링크처럼, s3에 객체 생성 이벤트가 발생할 때 la..
S3 ##1. S3 특징 Simple Storage Service의 약자로 파일 서버의 역할을 하는 서비스 S3 자체가 수천 대 이상의 매우 성능이 좋은 웹 서버로 구성되어 있어서 EC2와 EBS로 구축했을 때 처럼 Auto Scaling이나 Load Balancing에 신경쓰지 않아도 된다. 웹하드 서비스와 비슷하지만, 별도의 클라이언트 설치나 ActiveX를 통하지 않고 HTTP 프로토콜로 파일 업로드/다운로드 처리 최소 1바이트에서 최대 5TB의 데이터를 저장하고 서비스 할 수 있으며, 저장할 수 있는 파일의 수가 제한이 없다. 파일에 인증을 붙여서 무단으로 엑세스 하지 못하도록 할 수 있다. 데이터를 여러 시설에서 중복으로 저장해 데이터의 손실이 발생할 경우 자동으로 복원한다. ##2. datac..