분류 전체보기

    [Docker/Redis] Ubuntu에 Redis 설치 & Docker로 Redis 실행

    | Redis 설치하기 1. Ubuntu에 Redis 설치 sudo apt-get install redis-server 2. 설치 확인 redis-server --version 3. redis가 6379 포트를 쓰는지 확인 // netstat 없으면 net-tools 설치 sudo apt install net-tools // 6379 포트 쓰는지 확인 netstat -nlpt | grep 6379 tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN - tcp6 0 0 ::1:6379 :::* LISTEN - 4. redis에 접속 후 테스트 // 접속 redis-cli // 테스트 127.0.0.1:6379> set test1 testvalue OK get test1 127.0.0.1..

    [AWS] EC2 Ubuntu 서버에 JDK 설치하기

    [AWS] EC2 Ubuntu 서버에 JDK 설치하기

    | 개요 - 이번 시간에 한 작업 : 1. EC2 프리티어 계정 만들기 2. Yum 설치하기 3. JDK 설치하기 1. EC2 프리티어 계정 만들기 - 이 부분은 이전에 우분투로 프리티어 계정을 만들어둔게 있어서 그걸 활용했습니다. - 프리티어의 경우 하나의 인스턴스를 실행 시켜둘 수 있는데, 하나를 만들어두었고, 탄력적 IP를 설정해두었어요. 2. EC2 ubuntu에 Yum 설치하기 - 저는 AWS EC2로 우분투 운영체제를 사용합니다. - 리눅스 계열의 운영체제에서 패캐지를 설치하기 위해서는 RPM 또는 YUM을 사용해야 합니다. https://velog.io/@jwpark06/Linux-%ED%8C%A8%ED%82%A4%EC%A7%80-%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2..

    [JPA] 특정 상황에서 Lazy Fetch Type 변경하기 (@EntityGraph)

    | 스프링 부트 Test 중, 아래와 같이 오류가 나타났다. C:\sebinSample\cms\order-api\src\main\java\org\zerobase\cms\order\domain\model\Product.java:33: warning: @Builder will ignore the initializing expression entirely. If you want the initializing expression to serve as default, add @Builder.Default. If it is not supposed to be settable during building, make the field final. private List productItems = new ArrayList..

    [JPA] CascadeType : 상위 -> 하위 엔터티 전파 타입

    | CascadeType ALL - 상위 엔터티에서 하위 엔터티로 모든 작업을 전파 모두 전파 PERSIST - 상위 엔터티에서 저장을 하면 하위 엔터티도 저장 (영속성 전파) x.persist() 전파 MERGE - 하위 엔터티까지 병합 작업을 지속 ...(?) x.merge() 전파 REMOVE - 하위 엔터티까지 제거 작업을 지속 x.remove() 전파 REFRESH - 하위 엔터티까지 인스턴스 값 새로 고침 (다시 조회) x.refresh() 전파 DETACH - 하위 엔터티까지 엔터티 제거 x.detach() 전파 * persist() 는 리턴값이 없는 insert, merge() 는 리턴값이 없는 update @Transactional public S save(S entity) { if (t..

    Pull Request 양식 만들기 (Memo)

    https://2jinishappy.tistory.com/337

    [이커머스 프로젝트] 이메일 전송 기능 구현 (Mailgun, Feign)

    [이커머스 프로젝트] 이메일 전송 기능 구현 (Mailgun, Feign)

    | 절차 1. Mailgun 회원 가입 및 API 사용법 확인 2. Feign 라이브러리를 사용하여, Mailgun의 이메일 전송 Api 호출 3. Test 코드를 작성하여 전송 확인 1. Mailgun 회원가입 및 API 사용 방법 확인하기 [1] 회원가입 [2] 이메일 전송 API 사용 방법 확인 - Post API : 인증키를 헤더로 보내고, 쿼리 스트링으로 발신자/수신자/제목/내용을 보내는 POST API - API KEY를 인증키로 사용 - API base URL 정보에 따라서 이메일을 전송 [3] 테스트용으로 수신을 받을 수 있는 이메일을 추가해둔다. - Mailgun은 무료 계정인 경우에 이렇게 이메일을 추가해두어야만 한다고 한다. | Feign 을 사용하기 [1] 의존성 주입 ext{ se..

    [이커머스 프로젝트] Swagger2 적용

    [이커머스 프로젝트] Swagger2 적용

    | Swagger2 적용하기 [1] 의존성 주입 implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2' implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2' [2] Swagger2 UI 환경 파일 추가 package com.zerobase.cms.user.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentat..

    [이커머스 프로젝트] 멀티 모듈 생성하기

    [이커머스 프로젝트] 멀티 모듈 생성하기

    | 멀티 모듈 생성하기 - 모르는게 많은 개발자 포스팅 을 많이 참조하였습니다. [1] Root 의 build.gradle을 아래와 같이 작성한다. buildscript{ ext { springBootVersion = '2.7.5' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") classpath "io.spring.gradle:dependency-management-plugin:1.0.11.RELEASE" } } allprojects { } subprojects { apply plugin: 'java' apply ..

    [이커머스 프로젝트] API Gateway를 활용한 MSA (Micro Service Architecture)

    | MSA (Micro Service Architecture) Monolithic : 독립적으로 배포 가느안 서비스들을 모아서 하나의 application으로 만드는 설계 방식 장점 단점 - 각 어플리케이션의 독립적인 배포 가능 - 서비스의 일부를 독립적으로 수정, 개발 가능 - 특정 서비스의 scale up/out 이 가능 - 장애가 전체로 번지지 않는다. - 각 서비스의 독립적인 구성이 가능해진다. - 트랜잭션 관리가 어려움 - 배포 서비스가 늘어나고, 관련 관리 비용이 증가 - 운영의 복잡성이 증가 (너무 과하게 서비스를 쪼개는 건 피하자) DDD (Domain Driven Design) : 도메인 중심 개발 : ex. 배달 서비스의 Customer엔 DeliveryOrder API가 존재할 것. ..

    [이커머스 프로젝트] 환경 변수를 외부에서 주입하는 법

    [이커머스 프로젝트] 환경 변수를 외부에서 주입하는 법

    | 환경 변수를 외부에서 주입하는 방법 - @Value 어노테이션과 SpEL을 사용해서 application의 환경 변수 값을 가져올 수 있다. @Value("${email.key}") public String key; - 그러면 환경 변수의 값은 어디에 입력해두어야 하나? [1] application.yml 에 저장한다. --> github에 올리면 공개됨 [2] Run/Debug configuration의 VM options를 통해 "-D환경변수=값" 형식의 옵션을 건다. --> 여러 개는 관리 힘듬 [3] Run/Debug configuration의 Environment variables를 통해 name과 value를 각각 입력해준다.