본문 바로가기
반응형

전체글587

테스트 코드에선 LocalDate.now()를 쓰지말자. 여러 사람의 코드를 볼때 가끔 테스트 코드에서 LocalDate.now() 를 사용하는걸 종종 보게 됩니다. 아무래도 편하게 작성할 수 있다보니 사용된것 같지만, 이는 좋은 패턴이 아닙니다. 그래서 예제로 테스트 코드에서 LocalDate.now()를 쓰면 안되는 이유를 소개하겠습니다. 예제 예를 들어 다음과 같은 코드가 있다고 가정합니다. 배송 예정일을 구합니다. 배송 예정일은 주문일 +3 영업일입니다. 즉, 월요일에 주문했다면 +3일인 목요일을, 목요일에 주문 했다면 금/월/화로 되어 화요일이 배송 예정일이 됩니다. 주말외에 공휴일 판단을 위해 공휴일 여부 판단 엔티티가 존재합니다. 위 조건을 만족하는 2개의 엔티티 클래스들입니다. 첫번째는 공휴일 여부를 가지는 엔티티입니다. @Getter @NoAr.. 2019. 5. 3.
더티 체킹 (Dirty Checking)이란? Spring Data Jpa와 같은 ORM 구현체를 사용하다보면 더티 체킹이란 단어를 종종 듣게 됩니다. 더티 체킹이란 단어를 처음 듣는분들을 몇번 만나게 되어 이번 시간엔 더티 체킹이 무엇인지 알아보겠습니다. 모든 코드는 Github에 있습니다. 예를 들어 다음과 같은 코드가 있습니다. (Spring Data Jpa가 익숙하시겠지만, 네이티브한 코드 먼저 보고 가겠습니다.) @Slf4j @RequiredArgsConstructor @Service public class PayService { public void updateNative(Long id, String tradeNo) { EntityManager em = entityManagerFactory.createEntityManager(); Enti.. 2019. 4. 29.
Spring Batch JPA에서 N+1 문제 해결 안녕하세요? 이번 시간엔 Spring batch에서 N+1 문제 해결을 진행해보려고 합니다. 모든 코드는 Github에 있기 때문에 함께 보시면 더 이해하기 쉬우실 것 같습니다. (공부한 내용을 정리하는 Github와 세미나+책 후기를 정리하는 Github, 이 모든 내용을 담고 있는 블로그가 있습니다. ) 1. 테스트 환경 프로젝트는 SpringBoot Batch + Lombok + Spock으로 구성됩니다. 스프링부트의 버전은 2.2.7 입니다. 해당 기술들이 처음이셔도 기존에 사용되던 기술과 크게 다르지 않기 때문에 보시는데 어려움이 없으실 것 같습니다. 다음은 기본적인 Entity와 Repository를 생성하겠습니다. 엔티티는 총 4개로 구성됩니다. 3개의 엔티티의 코드는 다음과 같습니다. (굳.. 2019. 4. 20.
오늘의 질문 2019.04.03 Q.1 Q. 신입을 백엔드 개발로만 사용하는 곳이 있는지. 제가 알고 있는 대부분의 서비스 회사가 완전히 백엔드만 하는 팀은 많지 않습니다. 실제 B2C 서비스의 프론트 엔드를 만들진 않지만, 본인 팀 서비스의 어드민 / 모니터링 등은 직접 만들기 때문에 웹프론트 엔드를 대부분은 다루고 있습니다. 단지, 주력으로 쓰는게 아니라서 꼭 Vue, React 등을 필수로 사용하지 않을 뿐입니다. 백엔드 개발자라고 해서 배우면 안되는 기술은 없습니다. 필요한게 있다면 직접 만들 수 있는 마음가짐이 필요합니다. 운영팀, 기획팀이 자주 요청하는 데이터가 있다면 통계 화면을 만들어서 그 화면을 확인하시라고 얘기하는 일을 당연하게 생각하시면 좋습니다. 중점적으로 공부할것과 아닌것의 차이이지, 어떤 기술이든 피할수는 없습.. 2019. 4. 4.
일급 컬렉션 (First Class Collection)의 소개와 써야할 이유 최근 클린코드 & TDD 강의의 리뷰어로 참가하면서 많은 분들이 공통적으로 어려워 하는 개념 한가지를 발견하게 되었습니다. 바로 일급 컬렉션인데요. 왜 객체지향적으로, 리팩토링하기 쉬운 코드로 갈려면 일급 컬렉션이 필요한지에 대해 많은 분들이 공감하지 못하는걸 보게 되었습니다. 그래서 이번 시간에는 일급 컬렉션 (First Class Collection) 이 무엇인지, 어떤 장점들이 있는지에 대해 소개드립니다. 일급 컬렉션이란 단어는 소트웍스 앤솔로지 의 객체지향 생활체조 파트에서 언급이 되었습니다. 규칙 8: 일급 콜렉션 사용 이 규칙의 적용은 간단하다. 콜렉션을 포함한 클래스는 반드시 다른 멤버 변수가 없어야 한다. 각 콜렉션은 그 자체로 포장돼 있으므로 이제 콜렉션과 관련된 동작은 근거지가 마련된셈.. 2019. 4. 1.
AWS Credentials were refreshed 발생시 해결 방법 S3를 사용하는 젠킨스 서버에서 갑자기 아래와 같은 에러가 발생했습니다. fatal error: Credentials were refreshed, but the refreshed credentials are still expired. EC2에 등록된 인증 방식이 만료되었다는 의미인데요. 저는 access_key와 secret_key를 등록하지 않았습니다. 그럼에도 발생한것이죠. 이유는 IAM Role로 할당한 것 역시 인증 방식으로 보기 때문입니다. 그래서 이를 갱신하겠습니다. EC2의 IAM 교체를 선택합니다.갱신을 해야하니 아래와 같이 진행합니다. 기존과 다른 Role을 선택해서 저장 저장 완료 되면 다시 기존 Role 선택해서 저장 여기서 기존과 같은 Role을 선택하는 이유는 EC2에 할당된 인증.. 2019. 3. 23.

728x90
반응형