spring batch
·
카테고리 없음
보호되어 있는 글입니다.
[Java] GC
·
Language/Java
보호되어 있는 글입니다.
[Spring] 트랜잭션과 동시성
·
Spring Framework/Spring
처음 Spring을 공부할 때 감명받은 기능 중 하나가 @Transcational이었다. 애너테이션만 붙여주면 일일히 커넥션을 열고 커서를 가져오고 작업하고 리소스를 닫는 등 번거로운 작업들이 알아서 적용되니 정말 편리했다. 그러다보니 트랜잭션이 필요한 곳에서는 관성적으로 @Transactional를 추가하고 모든 문제가 해결됐다고 생각했다. 하지만 서비스 환경에서 멀티 스레드 상황이라면 문제가 생길 수 있다.트랜잭션, 격리 수준, 락킹, 동시성 제어 등 여러 용어들은 많이 들어보고, 또 알고 있다고 생각했지만 각각의 개념이 서로 연결되지 않은 느낌이 들었다. 동시성 제어에 대해 다시 공부를 시작하면서 차근차근 정리해나가려고한다. 우선은 가장 기본적인 트랜잭션과 @Transactional에 대해 포스팅을..
[Project] 4dollar - 헥사고날 아키텍처에서 패키지 구조 전환
·
프로젝트
개요사이드 프로젝트를 시작하면서 새로운 아키텍처를 사용하고 싶었다. 지금까지는 레이어드 아키텍처를 쓰거나, 진행중인 프로젝트의 기존 규칙을 따르기만해서 패키지 구조에 대해 깊이 고민한 경험이 없었다. 새로 시작하는 프로젝트인만큼 멋진 구조를 만들고 싶어서 유튜브나 책에서 많이 접해봤던 헥사고날 아키텍처를 도입했다. 직접 사용해보는건 처음이라 공부하면서 진행하느라 조금 엉성한 느낌은 있었지만 나름 적절히 적용할 수 있었다. 하지만 개발을 진행하면서 몇몇 불편한 부분이 생겨서 새로운 구조로 전환했다. 더 개선할 여지는 있지만 아직까지는 문제 없다고 생각한다. 기존 패키지 구조에서 어떤 문제점을 경험했는지, 새로운 패키지구조에 대한 고민과 어떤 부분을 변경했는지 포스팅을 남긴다.기술 스택: Java, Spri..
[Project] 4dollar - 경계간 매핑하기
·
프로젝트
시작하며헥사고날 아키텍처를 사용해보고 싶어서 시작한 사이드 프로젝트책이나 기술블로그, 세미나 등등 다양한 경로를 통해 접해봤지만 실제 적용해본 적은 없어서 코드를 작성해보며 체득하고 싶었다. 업무에서는 정해진 컨벤션이 있어서 시도해보기 어려워서 사이드 프로젝트에 적용해보면서 어떤 장점이 있는지 공부해보고 싶었다.대략적인 개념은 만들면서 배우는 클린 아키텍처 도서를 보면서 공부했다. 얇은 책이지만 예시코드가 잘 나와있어서 기본적인 갈피를 잡는데 많은 도움이 됐다.나름 DDD도 열심히 공부했는데 코드에 녹여보고 싶다.기술스택 : Spring Boot, Spring Data JPA, Postresql기회가 되면 redis도…여유가 있으면 프론트 작업도 하면 재미있을 것 같다.패키지 구성 - 카테고리 도메인패키..
[Java] Know your java
·
Language/Java
유튜브의 알고리즘에 나와서 봤던 영상을 보고 정리 유튜브 링크자바 코드를 작성할 때 주의하지 않으면 발생할 수 있는 문제들을 예시코드로 보여주고 설명해준다.이런걸 stub toe problem이라고 표현하는게 재미있다.예시 코드를 보여주고 결과를 예측해보라고 할 때 나도 풀어봤는데 그래도 얼추 맞추긴 했다.그래도 평소 신경쓰지 않았던 부분들을 다시 공부할 수 있었다.Remove 메서드// List 예제List numbers = new ArrayList(List.of(1, 2, 3));System.out.println(numbers); // 출력: [1, 2, 3]numbers.remove(1); // 인덱스 1의 요소(2)를 제거System.out.println(numbers); // 출력: [1, 3]..
[Spring Batch] 메타 데이터 테이블 정리
·
Spring Framework/Spring
Spring Batch가 배치 작업의 실행 상태와 이력을 추적하기 위해 자동으로 생성하고 관리하는 테이블사용자가 직접 조작하지 않고, Spring Batch가 내부적으로 모든 배치 실행 정보를 기록해당 테이블을 사용해서 배치 작업 모니터링도 구현해볼 수 있다.실행 이력, 성공/실패 결과 등 다양한 정보를 제공필요한 테이블의 DDL은 Spring Batch Github에서 확인할 수 있다. 여러 종류의 데이터 베이스에 대한 SQL 파일이 있어서 자신이 사용중인 데이터베이스에 맞는 쿼리를 가져와 사용하면 된다.메타 테이블 목록BATCH_JOB_INSTANCE : Job의 기본 정보(이름, hash key)BATCH_JOB_EXECUTION : Job의 실행 이력 : job id, 실행시간, 상태, 실행결과B..
JSCODE 스터디 후기
·
기타
지난 3월부터 지난주까지 매주 금요일 진행했던 자바 면접 스터디 후기입니다. 저녁 8시부터 30분동안은 멘토링을 진행하고 나머지 시간에 조를 구성해서 1인당 약 20분씩 모의 면접을 진행했습니다. 기술적인 질문뿐만 아니라 인성 면접도 준비할 수 있어서 좋았습니다.신청계기자바를 활용해서 업무를 수행하지만 막상 제대로 공부해본 적은 없는것 같아 이번 기회에 공부해보면 어떨까하고 신청했습니다. JVM, GC, 동시성, 스트림 등등 전반적인 내용 모두 공부 했습니다. 아직은 한 번 훑어본 정도긴 하지만 추후 다시 자바 스터디를 한다면 좀 더 깊게 이해 할 수 있을 것 같습니다.KPT 회고잘했던 점, 아쉬움 점, 앞으로 시도할 것을 기준으로 회고를 해봤습니다.Keep : 퇴근 후에도 공부하는 게 어렵긴 하지만 할..