728x90
@Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService() { return new OrderServiceImpl(memberRepository(), discountPolicy()); } @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository()..
이 글은 AWS에서 예상치 못한 과금을 때려맞은 본인의 환불 기록을 담은 글이다. 나는 이런 글을 쓰게 될 줄 몰랐고, 평생 안 쓸 생각이었다. 그런데 인간은 생각보다 멍청했고, 나도 그러했다ㅋ.. 사건 수습 이후, 누구든 실수로 인해 AWS에서 과금폭탄을 맞은 경우 멘붕없이 이 글을 보며 차분히 대처할 수 있기를 바라는 마음에 기록으로 남겨보고자 글을 적게 되었다. 여행 중, 갑작스런 비용 결제 알림 💸 즐거운 제주도 가족 여행 마지막 날 새벽 6시 50분,,, 내 폰에 한 통의 결제 알림이 수신되었다. AWS로부터 결제 금액 75000원 가량이 빠져나가려다 잔액부족으로 실패했다는 알림이었다. 해당 계좌에는 다행히(?) 잔액을 만원만 입금해놓았기 때문에 돈이 출금되지는 않았고, 당황했지만 침착하게 원인..
🧐 Test Double이란?테스트 더블이란 실제 구현체로 테스트를 진행하기 어려운 경우, 이를 대신해서 테스트를 진행할 수 있도록 만들어지는 객체이다. Test Double 이란 명칭의 유래 💭영화를 촬영하는 경우, 위험한 장면 촬영할 때 실제 배우를 대신해서 촬영하는 스턴트 더블에서 유래된 단어이다. 사용 이유 💭이전에 '테스트 주도개발 시작하기' 라는 책을 읽은 적이 있는데, 해당 책 저자의 말을 빌리자면 테스트 더블은 외부 요인에 의존하는 객체에 대한 테스트를 작성할 때 "실패하는 테스트는 항상 실패하고, 성공하는 테스트는 항상 성공한다" 라는 테스트의 일관성을 지키기 위해 사용한다고 했다. 예를 들어 DB, 외부 API 등을 사용할 때, 네트워크 연결 상태 등을 포함한 다양한 변칙적 이유에..
Swap 메모리란?RAM 용량이 부족할 경우 HDD의 일부를 RAM 처럼 사용하는 것이다.이걸 사용해서 RAM 용량이 부족하여 시스템에 문제가 생기는 일을 방지할 수 있다. RAM이 2GB 이하인 경우 AWS에서 권하는 스왑 공간은 2배이다. 즉, 1GB인 RAM을 사용하는 현제 ec2 t2.micro환경은스왑 메모리 방식을 통해 2GB를 추가하여총 3GB의 메모리로 사용이 가능하다. sudo dd if=/dev/zero of=/swapfile bs=128M count=16 dd 명령어를 통해 swap 메모리를 생성할 수 있다. of : swapfile 경로bs : Block 사이즈count : Block 갯수 지정한 블록 사이즈는 인스턴스에서 사용 가능한 메모리보다 작아야한다. 그렇지 않으면 me..
🚨 오류 발생 지점 API모듈에서 Domain모듈을 implementation하여 사용하는 상황에서API모듈에서 Domain모듈의 의존성에 추가된 JPA 사용 시, 아래와 같은 오류가 발생했다.Cannot access 'org.springframework.data.jpa.repository.JpaRepository' which is a supertype of 'com.th.plu.domain.domain.member.repository.MemberRepository'. Check your module classpath for missing or conflicting dependencies 현재 의존성은 다음과 같이 연결된 상태이다.API모듈 -> Domain 모듈 implementation,Doma..
스프링부트 서버 한국 시간(KTC)으로 배포하는 방법 문제 상황 🔥 라이온하트의 챌린지 기능요소 중, 출석체크 기능이 존재하기 때문에 DB에 출석 시간을 저장하는 로직이 존재한다.때문에 EC2 인스턴스에서 timedatectl 설정과 localtime 설정(아래)을 통해 인스턴스의 시간을 한국 시간으로 맞춰놓았다.# ubuntu22.04 localtime 설정sudo rm /etc/localtimesudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime 이렇게 설정하니 Database에 시간 값을 입력할 때, 한국 기준 시간이 제대로 입력되는 것을 확인할 수 있었다. 하지만 출석 체크 시간 필드가 존재하는 레코드를 자바의 엔티티 객체와 매핑하는 과정에서,L..