tset
·
카테고리 없음
testtest
[JPA] querydsl
·
카테고리 없음
보호되어 있는 글입니다.
[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]..
JSCODE 스터디 후기
·
기타
지난 3월부터 지난주까지 매주 금요일 진행했던 자바 면접 스터디 후기입니다. 저녁 8시부터 30분동안은 멘토링을 진행하고 나머지 시간에 조를 구성해서 1인당 약 20분씩 모의 면접을 진행했습니다. 기술적인 질문뿐만 아니라 인성 면접도 준비할 수 있어서 좋았습니다.신청계기자바를 활용해서 업무를 수행하지만 막상 제대로 공부해본 적은 없는것 같아 이번 기회에 공부해보면 어떨까하고 신청했습니다. JVM, GC, 동시성, 스트림 등등 전반적인 내용 모두 공부 했습니다. 아직은 한 번 훑어본 정도긴 하지만 추후 다시 자바 스터디를 한다면 좀 더 깊게 이해 할 수 있을 것 같습니다.KPT 회고잘했던 점, 아쉬움 점, 앞으로 시도할 것을 기준으로 회고를 해봤습니다.Keep : 퇴근 후에도 공부하는 게 어렵긴 하지만 할..
[Spring Batch] skip / retry
·
Spring Framework/Spring
Spring Batch에서 일부 오류 데이터 때문에 전체 배치가 실패하는 문제를 해결하는 방법가령 10만 건 데이터 처리 중 1건의 오류로 전체 작업이 중단되거나, 일시적인 네트워크 오류로 배치가 실패하는 상황을 방지할 수 있다.알아볼 것Spring Batch skip/retry 기능을 실제 프로젝트에 적용Reader/Processor/Writer 각 단계별 오류 처리 동작 방식 이해상황별 적절한 오류 처리 전략 수립skip잘못된 데이터를 제외하고 나머지 처리를 계속해야 할 경우retry네트워크 오류, DB 연결 실패 등 재시도로 해결 가능한 문제일 경우skip / retryskip예외 발생 시 해당 아이템만 제외하고 나머지 정상 데이터는 계속 처리한다.오류 발생 → 해당 아이템 제외 → 다음 아이템 계..
테스트 대역 용어
·
개발
테스트 코드를 작성하면서 InMemoryRepository, FakeRepository, RepositoryStub 를 별다른 기준 없이 네이밍을 작성했다.다른 개발자들과 의사소통을 위해서는 일반적으로 사용하는 네이밍 규칙을 따를 필요가 있다고 생각해 테스트 대역에 사용하는 용어들에 대해 정리Test Double우리말로 번역하면 테스트 대역이다. 여기서 대역은 대신 다른 역할을 하는걸 말한다.(잘 모를땐 주파수 대역을 떠올렸었다…)테스트에서 실제 객체를 대신하는 가짜 객체데이터베이스, 외부 API, 파일 시스템 등과 연결되어 있을 경우 테스트를 작성하기 어려워진다. 이 때 외부 의존성을 대신하는 객체를 만들어 테스트를 작성할 수 있다.외부 의존성 없이 순수하게 테스트Test Double을 사용하면:외부 ..
[DB] 격리수준
·
DB
트랜잭션의 격리 수준(Isolation Level)이란 여러 트랜잭션이 동시에 처리될 때, 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 여부를 결정하는 것이다. 트랜잭션의 격리 수준은 격리 수준이 높은 순서대로 SERIALIZABLE, REPEATABLE READ, READ COMMITTED, READ UNCOMMITED가 존재한다.격리 수준이 낮으면 의도했던 코드와 다르게 데이터가 변경될 수 있다. 격리 수준이 낮으면 변경으로 인한 부작용이 발생할 수 있고, 격리 수준이 높으면 시간당 처리할 수 있는 쿼리 수가 낮아지기 때문에 적절한 설정값을 고려해야 한다.발생할 수 있는 부작용 세 가지Dirty Read트랜잭션A에서 데이터 변경 후 커밋하기 전에 트랜잭션B에서 ..