코드를 짤 때 오늘 날짜, 랜덤값과 같이 변하는 값을 테스트할 때가 있다.이 값들의 결과에 따라 로직이 달라진다면 이 경우 또한 테스트를 하는게 좋다. - orderNumber가 존재한다면 해당 주문번호의 주문날짜를, 없다면 현재 날짜를 반환해야한다. private String getOrderDate(String orderNumber) { if(StringUtils.isNotEmpty(orderNumber) { return orderDate; } ZoneDateTime seoulDateTime = ZoneDateTime.now(ZoneId.of("Asia/Seoul"); return seoulDateTime.format(Date..
1. ParameterizedTest여러 개의 변수를 테스트해야 할 때 직접 입력하기보다 인자값으로 설정하여 간단하게 테스트할 수 있다.인자값을 이용하여 테스트할 때 사용한다.@ParameterizedTest는 단독으로는 사용할 수 없으며 인자값을 넣어주는 다른 어노테이션과 같이 사용할 수 있다.2. @ValueSource[as-is] private Set numbers; @BeforeEach void setUp(){ numbers = new HashSet(); numbers.add(1); numbers.add(2); numbers.add(3); } @DisplayName("1,2,3의 값이 set에 존재한다.") publ..

프리티어가 끝나면서 요금 폭탄을 맞게 되어 새로운 AWS 계정으로 이관을 진행했습니다. 옮긴 서비스는 EC2 + codeDeploy, RDS로 현재 이용중인 서비스이기 때문에 RDS 이관은 필수였습니다.출발 계정을 계정A, 목적지 계정을 계정B라고 하겠습니다. 1. 계정A에서 스냅샷 생성하기계정A의 RDS에 접속하여 작업 > 스냅샷 생성을 클릭합니다. 스냅샷 생성할 때 DB 인스턴스로 선택한 후에 스냅샷 이름을 지어줍니다. 생성된 스냅샷에서 이제 스냅샷 공유를 클릭합니다. 여기서 계정B의 AWS ID를 입력 후 저장합니다.+) AWS ID는 화면 우측 상단의 본인 계정 이름을 선택하면 밑에 토글로 나옵니다.이제 계정A에서의 할 일은 끝났습니다. 2. 계정B에서 DB로 복원하기계정B에 접속하여 RDS >..

흔히 개발 수업 시간에서 배운 call-by-value와 call-by-reference에 대해서 배웠었다. 몇 년만에 왜 이걸 다시 공부하게 되었을까? 기존의 코드 @Getter @RequiredArgsConstructor public class Car { private Long id; private String name; private String sellingDate; private List carPartList; @AllArgsConstructor public static class CarPart { private Long partId; private String partName; private boolean isAvailable; } }데이터베이스에서 Car 타입의 리스트를 받아온다. 밑의 코드..
알면 쓸모있는 디비 잡학사전 1. insert ignore이란? 데이터를 추가할 때 설정한 pk값이 중복된 경우가 있다. 해당 경우에 대해 중복된 값이 있다면 무시하고 다음 값을 넣도록 해주는 쿼리이다. INSERT IGNORE INTO TABLE ( A, B, C) VALUES (A_, B_, C_) 2. explain이란? 데이터의 값을 가져올 때 해당 값에 대해 미리 확인해볼 수 있는 쿼리이다. 이를 통해 우선적으로 쿼리의 튜닝을 검토해볼 수 있다. DB가 데이터를 찾아가는 과정을 사람이 알아보기 쉽게 DB의 결과로 보여주는 것이다. 이를 통해 기존의 쿼리를 튜닝할 수 있으며 성능 분석, 인덱스 전략 수집 등과 같이 성능 최적화에 대한 전반적인 업무를 처리할 수 있다. EXPLAIN SELECT *..

다양한 서버 모니터링이 있지만 Upptime을 이용해서 서버 모니터링을 진행하였습니다. 사용한 이유 1. 간단한 모니터링을 하고 싶어서 2. 수시로 알아서 진행되는 모니터링을 하고 싶어서 3. 큰 리소스가 들지 않는 편에서 하고 싶어서 4. 서버 상태를 확인하고 싶어서 위의 이유로 upptime을 설정하였습니다. https://github.com/upptime/upptime 이 사이트로 접속합니다. Create a new repository를 클릭합니다. 모니터링을 하고 싶은 그룹이나 사용자에 Repository를 설정합니다. initial commit이란 말과 함께 기본적인 환경이 설정되었습니다. 이제 모니터링을 원하는 사이트에 실행하겠습니다. .upptimerc.yml을 수정하겠습니다. # Chang..

이를 구현하기 위해서는 먼저 카카오 디벨로퍼스에서 내 애플리케이션 만들기를 해야 합니다. 단건 결제의 구현 순서는 결제 준비하기 -> 결제 승인하기 입니다. 0. 기본값 설정하기 그 전에 필요한 APP_ADMIN_KEY와 CID 값을 .yml에 넣어 숨깁니다. kakaopay: admin-key: XXXXX cid: TC0ONETIME admin-key값은 카카오 디벨로퍼스에서 내 애플리케이션 만들기를 통해 얻을 수 있습니다. 그 다음에 위의 값들을 사용하기 위해 Component로 설정합니다. @Component public class KakaoPayProperties { public static String adminKey; public static String cid; public static St..

0. QueryDSL이란? public interface ItemRepository extends JpaRepository { @Query("select i from Item i where i.itemDetail like %:itemDetail% order by i.price desc") List findByItemDetail(@Param("itemDetail")String itemDetail); } 위의 코드와 같이 직접 Query문을 작성하게 되면 두 가지의 단점이 있습니다. 1. 문제가 발생하는 경우 런타임 시점에 알게 됩니다. 2. 하나하나 타이핑을 해야한다.. 위의 예제는 비교적 짧지만 join이 들어간 경우 여러 줄로 작성해야 했는데 그 과정에서 띄어쓰기로 인해 작동이 안되는 경우를 겪었습니다..

인텔리제이에서 실행했을 땐 모든 테스트가 성공으로 떴지만 CI를 하는 과정에서 test를 거칠 때 계속해서 실패했습니다... contextLoads() FAILDED를 시작으로 모든 테스트가 실패했습니다.. 이 문제를 해결하는 방법은 바로.. build.gradle을 수정하는 것입니다. tasks.named('test') { useJUnitPlatform() } test { useJUnitPlatform() } 수정한 후에 성공적으로 테스트가 완료된 점을 확인할 수 있습니다.

준비과정 1. S3 버킷 생성 및 정책 설정 2. access key, secret key 다운 받기 1. application-s3.properties 설정하기 cloud.aws.stack.auto=false cloud.aws.region.static=ap-northeast-2 cloud.aws.credentials.access-key=[access key] cloud.aws.credentials.secret-key=[secret key] cloud.aws.s3.bucket=[bucket name] S3 버킷에 대한 정보를 .properties나 .yml에 넣어줍니다. 2. S3Config 파일 설정 @Configuration() public class S3Config { @Value("${cloud...

status code는 서버가 클라이언트에게 응답 코드를 보낼 때 사용됩니다. 이와 같이 메세지와 함께 해당 코드를 보냅니다. 정확하게 어떤 경우에 사용되는지 알고 싶어 자주 사용하는 코드를 정리하였습니다. 1. 2XX - 작업을 성공적으로 받았다는 의미 200 OK - 성공적으로 처리했을 때 사용된다. 201 CREATED - 성공적으로 처리되어 리소스가 만들어졌을 때 사용된다. 204 NO_CONTENT - 성공적으로 처리했지만 컨텐츠를 제공하지 않는다. 2. 4XX - 클라이언트 오류로 요청이 올바르지 않다는 의미 400 BAD_REQUEST - 요청 자체가 잘못되었을 때 사용된다. 401 UNAUTHORIZED - 인증이 필요한 리소스에 인증 없이 접근할 때 사용된다. 403 FORBIDDEN -..

프로젝트를 진행하면서 해당 데이터를 누가 생성하였는지, 언제 생성되었는지를 알아야 할 때가 있습니다. JPA에서 Auditing 기능을 제공하여 Entity가 등록된 시간, 수정된 시간, 등록한 사람. 수정한 사람을 자동으로 입력해 줍니다. 이제 이를 적용해 보겠습니다. 0. AuditorAwareImpl 생성 public class AuditorAwareImpl implements AuditorAware { @Override public Optional getCurrentAuditor() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); String userId = ""; if(authenti..
- Total
- Today
- Yesterday
- 영어끝말잇기
- Android
- AWS
- 시스템콜
- PostgreSQL
- interrupt
- 응답코드
- 괄호회전하기
- 백준
- dp
- 다음큰숫자
- 뉴스클러스터링
- ubuntu
- 머신러닝
- RDS
- qemu
- 이진변환반복하기
- 프리티어
- 최고의집합
- 정수삼각형
- springboot
- 실패율
- Auditing
- 우분투설치
- xv6
- OS
- PasswordEncoder
- 최솟값구하기
- 프로그래머스
- 운영체제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |