본문 바로가기

전체 글

Spring Cloud 로 개발하는 마이크로서비스 UserService 1-2 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Users Microservice - JPA① build.gradle_validation dependency 추가 implementation 'org.springframework.boot:spring-boot-starter-validation' VO 생성 @Data public class RequestUser { @NotNull(message = "Email cannot be null") @Size(min = 2, message = "Email not be less than two characters") @Email private String email; @NotNull(message = "Name cannot be null") @Si.. 더보기
유효성검사와 예외처리 애플리케이션의 비즈니스 로직이 올바르게 동작하려면 데이터를 사전 검증하는 작업이 필요하다. 이것은 유효성 검사 또는 데이터 검증이라한다. 유효성 검사의 예로는 여러 계층에서 들어오는 데이터에 대해 의도한 형식대로 값이 들어오는지 체크하는 과정이 있다. 이 같은 유효성 검사(validation)는 프로그래밍에서 매우 중요한 부분이며, 자바에서 가장 신경 써야 하는 것 중 하나로 NullPointException 예외가 있다. 10.3.3 스프링 부트의 유효성 검사 유효성 검사는 각 계층으로 데이터가 넘어오는 시점에 해당 데이터에 대한 검사를 실시한다. 스프링부트 프로젝트에서는 계층 간 데이터 전송에 대체로 DTO객체를 활용하고 있기 때문에 아래 그림과 같이 유효성 검사를 DTO 객체를 대상으로 수행하는 것.. 더보기
Spring Cloud 로 개발하는 마이크로서비스 UserService 1-1 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Users Microservice 개요 APIs 기능 URI(API Gateway 사용 시) URI(API Gateway 미사용 시) HTTP Method 사용자 정보 등록 /user-service/users /users POST 전체 사용자 조회 /user-service/users /users GET 사용자 정보, 주문 내역 조회 /user-service/users/{user_id} /users/{user_id} GET 작동 상태 확인 /user-service/users/health_check /users/health_check GET 환영 메시지 /user-service/users/welcome /users/welcome GET U.. 더보기
react을 Nginx 로 배포해보자 1. react-create-app 을 이용하여 "Hello World!" 띄우는 앱 만들기 작업할 디렉토리에서 터미널을 켠 다음 아래 명령어를 입력하고 실행 여기서는 test-app 디렉토리로 이동해서 실행 cd test-app npx create-react-app 만약 에러 발생 시 C 컴파일러 설치 문제일 수 있음 그럴 경우 아래 코드 순서대로 입력 후 다시 위의 명령어를 입력하고 실행하기 sudo rm -rf $(xcode-select -print-path) xcode-select --install Hello World! 를 화면에 표시하기 위해 필요한 파일 3가지 작성(수정) index.html React App index.js import React from 'react'; import Rea.. 더보기
Aws alb와 Nginx 를 이용해서 Https 를 적용해보자 일단 도메인을 필수적으로 등록해야합니다. 밑에 있는 링크를 통해 도메인부터 지정합시다. https://minwoo-it-factory.tistory.com/entry/AWS-EC2-Route53-%EB%8F%84%EB%A9%94%EC%9D%B8-%EB%93%B1%EB%A1%9D SSL 인증서 발급 방법 ALB 설정하는 방법에 앞서 먼저 AWS에서 SSL 인증서 발급받는 방법에 대해서 먼저 보도록 하겠습니다. SSL 인증서 발급이 필요없는 분들은 해당 부분은 스킵하셔도 됩니다. [ 1. Certificate Manager 접속 ] Certificate Manager 접속 [ 2. 인증서 요청 ] 인증서 요청 [ 3. 인증서 유형 선택 ] 퍼블릭 인증서 요청을 선택한 뒤 다음을 눌러주시면 됩니다. 인증서 유.. 더보기
local에서 http -> https 로 변경해서 띄우는 방법 Spring Boot App에 SSL/HTTPS를 적용하는 방법에 대해 알아보도록 한다. 1. SSL/HTTPS SSL/HTTPS에 대한 이론적인 내용은 여기에서 확인할 수 있다. Spring Boot App에 SSL/HTTPS를 적용하기 위해서는 아래와 같은 절차를 거쳐야 한다. SSL 인증서 얻기 application.yml 수정하기 ServletWebServerFactory을 @Bean으로 등록하기 1-1) SSL 인증서 얻기 실제로 배포하는 app은 정식 인증을 받은 SSL 인증서를 사용하지만 여기서는 Self Signed SSL 인증서를 사용한다. self-signed SSL 인증서의 대표적인 종류 2가지 * JKS (JAVA KeyStore)의 줄임말로 PKCS12와 비슷하지만 JAVA환경에서.. 더보기
Spring Cloud Gateway SPRING CLOUD GATEWAY란? Netty를 사용 Spring Cloud Gateway는 Tomcat이 아닌 Netty를 사용합니다. API GATEWAY는 모든 요청이 통과하는 곳이기 때문에 성능적인 측면이 매우 중요하며 기존의 1THREAD / 1REQUEST 방식인 SPRING MVC를 사용할 경우 성능적인 이슈가 발생할 수 있습니다. Netty는 비동기 WAS이고 1THREAD / MANY REQUESTS 방식이기 때문에 기존 방식보다 더 많은 요청을 처리할 수 있습니다. 동작방식 출처 :https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.1.0.RELEASE/single/spring-cloud-gateway.html 클.. 더보기
Effetive java 2장 정리 1.생성자 대신 정적 팩터리 메서드를 고려해라 public staic Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 이름을 가질 수 있습니다. 메서드를 통해 반환될 객체의 특성을 메서드 이름을 통해 명확히 묘사할 수 있는 장점이 있습니다. 예로는 BigInteger 클래스의 BigInteger.probablePrime 메서드가 있습니다. 호출될 때마다 인스턴스를 새로 생성하지 않아도 됩니다. 이 덕분에 불변 클래스는 인스턴스를 미리 만들어 놓거나, 새로 생성한 인스턴스를 캐싱하여 재활용하는 식으로 불필요한 객체 생성을 피할 수 있습니다. 반환 타입의 하위 타입 객체를 반환할 수 있습니다. 이는 반환할 객체의 클래스를 마음대.. 더보기