본문 바로가기

java

(8)
[Java] eclipse(이클립스) marketplace(마켓플레이스) 다운로드 SSL 우회하는 법 eclipse 디렉토리의 eclipse.ini 파일의 -vmargs 아래에 두 줄을 추가한다. -vmargs -Djavax.net.ssl.trustStore=NUL -Djavax.net.ssl.trustStoreType=Windows-ROOT
[Java, Spring] 리플렉션을 활용한 프록시 동적 생성 해당 게시물은 김영한 강사님의 스프링 핵심원리 고급편 을 학습 후 정리한 내용이다. 스프링 핵심 원리 - 고급편 - 인프런 | 강의 스프링의 핵심 원리와 고급 기술들을 깊이있게 학습하고, 스프링을 자신있게 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 탬플릿 메서드 패턴, 프록시 패턴을 통해 다음의 효과를 거두었다. 변하지 않는 부분의 추상화 변하는 부분에서 변하는 부분의 분리 프록시 패턴의 문제점은 100개의 클래스 > 100개의 프록시라는 개발 공수의 증가였다. 사실 프록시 로직은 거의 유사한데, 변하는 부분만 동적으로 생성하면 프록시가 하나만 있으면 되지 않을까? 호출하는 메서드인 target.callA() , target.callB() 이 부분만 동적으로 처리할 수..
[Java, Spring] 프록시, 프록시 패턴, 데코레이터 패턴 해당 게시물은 김영한 강사님의 스프링 핵심원리 고급편 을 학습 후 정리한 내용이다. 스프링 핵심 원리 - 고급편 - 인프런 | 강의 스프링의 핵심 원리와 고급 기술들을 깊이있게 학습하고, 스프링을 자신있게 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 탬플릿 메서드 패턴 : 변하지 않는 로직(부가 기능)과 변하는 로직(핵심 기능)의 분리 템플릿 메서드 디자인 패턴의 목적은 다음과 같습니다. "작업에서 알고리즘의 골격을 정의하고 일부 단계를 하위 클래스로 연기합니다. 템플릿 메서드를 사용하면 하위 클래스가 알고리즘의 구조를 변경하지 않고도 알고리즘의 특정 단계를 재정의할 수 있습니다. [GOF] 프로그래밍에서 콜백(callback) 또는 콜애프터 함수(call-after f..
[Java, Spring] 쓰레드 로컬과 전략 패턴, 탬플릿 메서드 패턴 해당 게시물은 김영한 강사님의 스프링 핵심원리 고급편 을 학습 후 정리한 내용이다. 스프링 핵심 원리 - 고급편 - 인프런 | 강의 스프링의 핵심 원리와 고급 기술들을 깊이있게 학습하고, 스프링을 자신있게 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 부가 기능 적용하기 보통 디버깅(에러 혹은 비즈니스 흐름 분석)을 위해 로깅을 적용하는 것은 당연하다. 아래와 같은 요구 사항을 구현한다고 가정해보자. 모든 PUBLIC 메서드의 호출과 응답 정보를 로그로 출력 애플리케이션의 비즈니스 흐름을 변경하면 안됨 로그를 남긴다고 해서 비즈니스 로직의 동작에 영향을 주면 안됨 메서드 호출에 걸린 시간을 기록함 정상 흐름과 예외 흐름을 구분함 예외 발생시 예외 정보가 남아야 함 메서드 ..
[Hash] 프로그래머스 코딩테스트 연습문제 Hash 3번 위장 JAVA 풀이 import java.util.HashMap; class Solution { public int solution(String[][] clothes) { HashMap map = new HashMap(); int answer = 1; for(int i = 0 ; i < clothes.length;i++) map.put(clothes[i][1],map.getOrDefault(clothes[i][1],0)+1); for (int i: map.values()) answer*=(i+1); return answer-1; //하나도 안입은 경우 제외 } } 해시맵의 특성인 1. 키는 중복 불가 2. keySet(), values() 등을 통해 배열을 구하는 매소드가 존재 함을 이용하면 매우 쉽게 풀 수 있는 문제였다..
[Hash] 프로그래머스 전화번호 목록 문제풀이 Java 전화번호 목록 https://programmers.co.kr/learn/courses/30/lessons/42577?language=java 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한 사항 phone_book의 길이는 1 이상..
[Stack/Queue] 다리를 지나는 트럭 JAVA 솔루션 문제다리를 건너는 트럭모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다.트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다.예를 들어, 길이가 2이고 10kg 무게를 견디는 다리가 있습니다.무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다.경과 시간다리를 지난 트럭다리를 건너는 트럭대기 트럭 0[][][7,4,5,6] 1~2[][7][4,5,6] 3[7][4][5,6] 4[7][4,5][6] 5[7,4][5][6] 6~7[7,4,5][6][] 8[7,4,5,6][][] 따라서, 모든 트럭이 다리를 지나려면 최소 8초가 걸립니다.solution 함수의 매개변수로 다리 길..
[Dynamic Programming] Programmers 코딩테스트 연습 - N으로 표현 JAVA N으로 표현 문제 설명 아래와 같이 5와 사칙연산만으로 12를 표현할 수 있습니다. 12 = 5 + 5 + (5 / 5) + (5 / 5) 12 = 55 / 5 + 5 / 5 12 = (55 + 5) / 5 5를 사용한 횟수는 각각 6,5,4 입니다. 그리고 이중 가장 작은 경우는 4입니다. 이처럼 숫자 N과 number가 주어질 때, N과 사칙연산만 사용해서 표현 할 수 있는 방법 중 N 사용횟수의 최솟값을 return 하도록 solution 함수를 작성하세요. 제한사항 N은 1 이상 9 이하입니다. number는 1 이상 32,000 이하입니다. 수식에는 괄호와 사칙연산만 가능하며 나누기 연산에서 나머지는 무시합니다. 최솟값이 8보다 크면 -1을 return 합니다. 입출력 예 N number ret..