일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 20055
- 코틀린인액션
- 객체 지향 설계와 스프링
- 7장 고급매핑
- 기능개발 python
- 13460 구슬탈출 2
- Kotlin in action 5장
- 코틸린인액션
- 자바 ORM 표준 JPA 프로그래밍 7장
- 싱글톤 컨테이너
- KotlinInAction
- 백준 13460 Python
- Kotlin
- 백준 20055 컨베이어 벨트 위의 로봇
- 스프링 컨테이너와 스프링 빈
- Kotlin in action 6장
- spring
- 스프링 핵심 원리 - 기본편
- kotlin in action 정리
- 스프링 핵심 원리
- 고급매핑
- 백준
- Kotlin In Action
- 컨베이어 벨트 위의 로봇 Python
- 스프링 핵심 원리 이해
- Kotlin in action 10장
- Python
- Kotlin in action 3장
- 20055 컨베이어 벨트 위의 로봇
- 코틀린
- Today
- Total
기록하는 습관
ant 특징 XML 기반 빌드 스크립트 개발 규칙이 없음 절차적이다. 생명주기를 갖지 않아 각각의 Target에 대한 의존관계와 작업을 정의해 주어야 함. 단점 스크립트의 재사용이 어렵다. maven 특징 모든 Dependency를 리스트의 형태로 Maven에게 알려서 종속성을 관리한다. XML, Repository를 가져올 수 있다. → Jar, Class Path를 선언만 하면 직접 다운로드 할 필요가 없이 Repository에서 자동으로 필요한 라이브러리 파일을 불러와 준다. 단점 라이브러리가 서로 종속할 경우 XML이 복잡해진다. 라이프 사이클(빌드 순서) Clean : 이전 빌드에서 생성된 파일들을 삭제하는 단계 Validate : 프로젝트가 올바른지 확인학고 필요한 모든 정보를 사용할 수 있는..

maven gradle id 'io.spring.dependency-management' version '1.0.11.RELEASE' Gradle 사용 시, io.spring.dependency-management 플러그인을 적용하면 자동으로 spring-boot-starter-parent을 import. Gradle 사용 시 Parent 설정 불필요한 이유 springboot & gradle version 기존 datacenter spring boot version: 1.5.4 시도한 gradle version: 7.x → 빌드는 되지만, jar를 실행하면 "기본 클래스를 로드할 수 없습니다." 에러발생 bootRepackage: 1.5 까지 사용된 스프링 부트 태스크 bootJar(or bootWar..

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 : 작업이 ..