[프로그래머스_1] 이상한 문자 만들기 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE import java.util.*; class Solution { public String solution(String s) { StringBuffer sb = new StringBuffer(); int idx = 0; for(int i = 0; i < s.length(); i++) { if(s.charAt(i) == ' ') { sb.append(" "); idx = 0; continue; } if(idx % 2 == 0) sb.append(Character.toUpperCase(s.charAt(i..
[프로그래머스_1] 3진법 뒤집기 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE import java.util.*; class Solution { public int solution(int n) { int answer = 0; StringBuffer sb = new StringBuffer(Integer.toString(n, 3)); sb.reverse(); answer = Integer.parseInt(sb.toString(), 3); return answer; } } 문제 난이도가 쉬운 편이라 설명은 생략! 실행 결과
[프로그래머스_1] 최대공약수와 최소공배수 JAVA
·
알고리즘/알고리즘 풀이
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr CODE class Solution { public int[] solution(int n, int m) { int[] answer = {0, 0}; answer[0] = gcd(n, m); answer[1] = (n * m) / answer[0]; return answer; } public int gcd(int a, int b) { if(a % b == 0) { return b; } return gcd(b, a%b); } } 유클리드 호제법을 이용해 풀이했다. 실행 결과
[백준] 12891_DNA 비밀번호 - JAVA
·
알고리즘/알고리즘 유형
백준_12891 12891번: DNA 비밀번호 평소에 문자열을 가지고 노는 것을 좋아하는 민호는 DNA 문자열을 알게 되었다. DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열을 말한다. 예를 들어 “ACKA” www.acmicpc.net 슬라이딩 윈도우 슬라이딩 윈도우 알고리즘은 두 개의 포인터로 범위를 지정한 다음, 그 범위를 유지한 채로 이동하며 문제를 해결한다. 예를들면, 슬라이딩 윈도우의 배열이 3인 슬라이딩 윈도우의 첫 번째 for문 범위는 아래와 같다. 그 다음 반복일 때는 슬라이딩 윈도우가 옆으로 이동하여 아래 그림과 같이 범위가 지정된다. 슬라이딩 윈도우의 범위만큼만 탐색을 진행하기 때문에 O(n)의 시간 복잡도로 문제를 해결할 수 있다. 코드..
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_Catalogs and Orders Microservice_4
·
공부/Spring
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Orders Microservice 기능 마이크로서비스 URI(API Gateway 사용 시) HTTP Method 상품 목록 조회 Catalogs Microservice /catalog-service/catalogs GET 사용자 별 상품 주문 Orders Microservice /order-service/{user_id}/orders POST 사용자 별 주문 내역 조회 Orders Microservice /order-service/{user_id}/orders GET 프로젝트 생성 강의에서는 Spring Boot 버전을 2.4.2를 선택했고, 나는 3.0.4 버전을 선택했다. Model Mapper 라이브러리 추가 build.gra..
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_Catalogs and Orders Microservice_3
·
공부/Spring
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Catalogs Microservice 프로젝트 생성 강의에서는 스프링부트 버전을 2.4.2로 선택, 나는 3.0.3으로 선택했다. build.gradle ModelMapper dependancy 추가 implementation 'org.modelmapper:modelmapper:2.4.2' application.yml server: port: 0 spring: application: name: catalog-service h2: console: enabled: true settings: web-allow-others: true path: /h2-console jpa: hibernate: ddl-auto: create-drop show..
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_Catalogs and Orders Microservice_2
·
공부/Spring
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Users Microservice - 사용자 조회 User의 전체 사용자 목록과 상세 정보 보기 기능을 추가해보자. UserController의 각 메서드 uri 매핑 주소에 prefix 격으로 '/user-service/'가 들어간다. 그러므로 클래스 블럭에 있는 @RequestMapping() 어노테이션에 해당 uri를 기재하고, 각 메서드 XXXMapping()에 적혀있는 '/user-service/'는 지워주자. @RequestMapping("/user-service/") public class UserController { ... } ResponseUser vo에 회원 주문 목록을 볼 수 있도록 필드를 하나 추가한다. 아직 R..
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_Catalogs and Orders Microservice_1
·
공부/Spring
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Users Microservice와 Spring Cloud Gateway 연동 Controller에서 port 출력 @GetMapping("/health_check") public String status() { return String.format("It's Working in User Service on PORT %s", env.getProperty("local.server.port")); } apigateway-service 프로젝트 route 정보 입력 application.yml routes: - id: user-service uri: lb://USER-SERVICE predicates: - Path=/user-service/..
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_Users Microservice-1-2
·
공부/Spring
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..
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_Users Microservice-1-1
·
공부/Spring
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..
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_E-commerce 애플리케이션
·
공부/Spring
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) E-commerce 애플리케이션 너무 복잡한 애플리케이션을 만들진 못하고 간단하게 세 가지의 마이크로 서비스를 만들어보자. CATALOG-SERVICE USER-SERVICE ORDER-SERVICE 전체적인 애플리케이션 구성 전체적인 애플리케이션 구성 구성요소 설명 Git Repository 마이크로서비스 소스 관리 및 프로파일 관리 Config Server Git 저장소에 등록된 프로파일 정보 및 설정 정보 Eureka Server 마이크로서비스 등록 및 검색 API Gateway Server 마이크로서비스 부하 분산 및 서비스 라우팅 Microservices 회원 MS, 주문 MS, 상품(카테고리) MS Queuing System..
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_API Gateway Service_7
·
공부/Spring
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Spring Cloud Gateway - Load Balancer Eureka 설정 dependencies 확인(gradle) - 세 개 프로젝트에 모두 적용 implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client' application.yml 설정 - 세 개 프로젝트에 모두 적용 eureka: client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://localhost:8761/eureka 아래 코드는 apigateway-service 프로..
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_API Gateway Service_6
·
공부/Spring
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Spring Cloud Gateway-Logging Filter Global Filter와 비슷한 Logginfg Filter를 작성해보자. 그럼 이 프로젝트에 적용된 필터는 3개이다. Custom Filter, Global Filter, Logging Filter. 이 필터들의 순서는 다음과 같다. Global Filter PRE Custom Filter PRE Logging Filter PRE Logging Filter POST Custom Filter POST Global Filter POST LoggingFilter.java 생성 @Override public GatewayFilter apply(Config config) { G..
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_API Gateway Service_5
·
공부/Spring
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Spring Cloud Gateway - Custom Filter 적용 CustomFilter.java 생성 @Component @Slf4j public class CustomFilter extends AbstractGatewayFilterFactory { public CustomFilter() { super(Config.class); } @Override public GatewayFilter apply(Config config) { // Custom Pre Filter return (exchange, chain) -> { ServerHttpRequest request = exchange.getRequest(); ServerHttpRe..
Spring Cloud로 개발하는 마이크로서비스 애플리케이션_API Gateway Service_4
·
공부/Spring
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) Spring Cloud Gateway - Filter 적용(Java 소스) 자바 코드로 필터 설정을 하기 위해 application.yml에 설정했던 route 관련 설정을 주석처리한다. spring: application: name: apigateway-service # cloud: # gateway: # routes: # - id: first-service # uri: http://localhost:8081/ # predicates: # - Path=/first-service/** # - id: second-service # uri: http://localhost:8082/ # predicates: # - Path=/second-s..