전체 글
-
[AWS] ElastiCache Redis 생성 및 접속 테스트 절차클라우드/aws 2021. 1. 23. 00:58
1단계 - Bastion용 EC2 인스턴스 생성 ElastiCache의 경우 AWS 외부에서 접속이 불가능하므로 AWS VPC 내부에 인스턴스를 통해서 접속 가능 Bastion용으로 EC2 인스턴스를 생성 01. EC2 서비스로 이동해서 [인스턴스 시작] 버튼 클릭 02. 프리티어의 Amazon Linux 2 AMI (HVM), SSD Volume Type 선택 03. t2.micro 선택 후 [다음: 인스턴스 세부 정보 구성] 선택 04. 인스턴스 세부 정보 구성 네트워크의 경우 인스턴스가 생성될 VPC 선택 서브넷의 경우 Bastion용 EC2이기 때문에 퍼블릭 서브넷 선택 외부에서 접속을 위해서 [퍼블릭 IP 자동 할당] 기능 활성화 05. 스토리지 추가 30GB까지 프리 티어에서 사용가능하므로 3..
-
[MAC] 맥북프로 터치바에 fn 기능키를 기본으로 표시하는 방법운영체제/mac 2021. 1. 22. 15:20
안녕하세요 이번 시간에는 맥북 프로를 사용 시 터치바에 일반 키보드 처럼 ESC, F1 ~ F12가 표시되도록 설정하는 방법에 대해서 알아보도록 하겠습니다. 윈도우만 사용하다가 맥북으로 넘어와서 가장 불편했던게 F버튼을 사용할 때 fn 키를 누른다음 사용하는 것이였는데요. 설정을 통해서 특정 앱을 사용할 때 일반 키보드처럼 ESC, F1 ~ F12를 항상 표시하도록 하는 설정을 알아보겠습니다. [시스템 환경설정] - [키보드]를 선택 [단축키] 탭 - [기능 키] - [+] 버튼을 눌러서 특정 앱을 추가 앱을 추가하게 되면 해당 앱이 실행되는 동안 터치바는 fn 기능키가 default로 보여지게 됩니다. 저의 경우 Intellij를 실행하는 동안에는 터치바에 fn 기능키가 default로 보여지도록 설정..
-
[JUnit] 테스트 클래스 안에서 변수 공유하기스프링프레임워크/junit 2021. 1. 21. 21:47
이번 시간에는 테스트 클래스 안에서 변수 값을 공유해서 사용하는 방법에 대해서 알아보도록 하겠습니다. 아래 테스트 케이스는 전부 성공적으로 종료됩니다. 그 이유는 각각의 test 함수가 호출 될 때마다 새로운 AddTest 객체가 생성되기 때문에 sum의 값은 각각의 test마다 1로 초기화 됩니다. @SpringBootTest public class AddTest { private int sum = 1; @Test void addingTwoReturnsThree() { sum += 2; assertEquals(3, sum); } @Test void addingThreeReturnsFour() { sum += 3; assertEquals(4, sum); } } 각각의 테스트 전에 호출되는 @BeforeA..
-
[AWS] spring-cloud-aws-messaging을 이용한 FIFO 유형의 AWS SQS 연동하기클라우드/aws 2021. 1. 21. 11:00
이번 시간에는 Spring Boot 프로젝트에서 spring-cloud-aws-messaging를 이용해서 FIFO 유형의 AWS SQS를 연동하는 방법에 대해서 알아보도록 하겠습니다. SQS란? SQS(Simple Queue Service)는 마이크로 서비스와 분산 시스템, 그리고 서버리스 애플리케이션을 쉽게 분리하고 확장할 수 있는 ‘완전관리형 메시지 대기열 서비스’입니다. 01. dependency 추가 build.gradle 설정을 통해서 SQS 관련 dependencies를 추가합니다. spring-cloud-starter-aws spring-cloud-aws-messaging plugins { id 'java' id 'eclipse' id 'idea' id 'org.springframework..
-
[JAVA] Streams를 이용한 Map Collection 사용 방법자바/자바8 2021. 1. 20. 12:55
이번 시간에는 Streams을 통해서 Map을 제어하는 방법에 대해서 알아보도록 하겠습니다. map 생성 (key는 책이름, value는 재고개수) Map books = new HashMap(); key-value pairs의 set을 구하는 방법 Set entries = books.entrySet(); map의 key set을 구하는 방법 Set keySet = books.keySet(); map의 value collection을 구하는 방법 Collection values = books.values(); 위의 collection들은 Streams을 이용하여 Map을 처리할 수 있는 진입점을 아래와 같이 제공해줍니다. Stream entriesStream = entries.stream(); Stream..
-
[MapStruct] Enum과 Integer 간에 매핑 설정 방법자바/mapstruct 2021. 1. 16. 02:22
이번 시간에는 MapStruct를 이용하여 Mapper 생성 시 Enum과 Integer간에 매핑하는 방법에 대해서 알아보도록 하겠습니다. 우선 다음과 같이 01은 MALE을 뜻하고 02는 FEMAIL을 뜻하는 Enum이 존재합니다. 클라이언트로부터 성별의 값으로 01, 02의 Integer 값을 수신하므로 그 뜻을 좀더 명확하게 표현하기 위해서 Enum을 생성합니다. public enum Gender { MALE(01), FEMALE(02), ; private Integer value; private static Map map = new HashMap(); Gender(Integer value) { this.value = value; } static { for (Gender gender : Gender..
-
[JPA] ID 참조와 조인 테이블을 이용한 단방향 M:N 매핑스프링프레임워크/jpa 2021. 1. 14. 17:19
이번 포스트에서는 ID 참조를 이용해서 엔티티 간 단방향 M:N 연관 관계를 해결하는 방법을 알아보도록 하겠습니다. Product와 Category의 관계가 아래와 같다고 가정합니다. Product와 Category는 M:N 연관관계이다. 특정 Category에 있는 Product 정보 조회 기능이 필요하다. 특정 Product가 속해 있는 Category 정보 조회 기능은 필요없다. 위와 같은 가정하에서는 Product와 Category는 양방향 매핑 관계를 가질 필요가 없게되고, 단방향 매핑을 통해서 요구 사항을 만족 시킬 수 있게 됩니다. 이 때 엔티티간에 연관 관계를 맺을 수도 있지만 아래와 같이 ID 참조를 이용해서 더 간편하게 표현 할 수 있습니다. 우선 Product 클래스를 아래와 같이 구..
-
[JPA] 영속성 컨텍스트스프링프레임워크/jpa 2021. 1. 13. 23:24
EntityManagerFactory Client의 요청이 올 때마다 EntityManager를 생성합니다. EntityManager 데이터베이스 Connection을 사용해서 DB 처리를 진행합니다. Entity의 생명 주기 비영속 (new/transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속 (managed) 영속성 컨텍스트에 Entity가 관리되는 상태 EntityManager.persist(entity) 아직 DB에 저장되지 않고 이후 transaction을 commit한 후에 DB에 저장됩니다. 준영속 (detached) 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제 (removed) 삭제된 상태 EntityManager em = emf.createEntityManager(..