전체 글(599)
-
7. AOP 프로그래밍 #2 프록시(Proxy)와 AOP
본 글은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 도서의 내용을 복습하기 위해 작성된 글입니다. 7.2 프록시와 AOP 팩토리얼 메소드의 수행시간을 알고 싶다고 가정하자. 쉬운 방법은 메소드의 시작과 끝에서 시간을 구하고 이 두시간의 차이를 출력하는 것이다. 예를 들어 아래의 ImpleCalculator 클래스를 다음과 같이 수정하면 된다. 팩토리얼 메소드에서 수행시간을 출력하는 기능을 추가한 예제 public class ImpleCalculator implements Calculator{ @Override public long factorial(long num) { long start = System.currentTimeMillis(); long result = 1; for(long i=1; i
2021.07.27 -
7. AOP 프로그래밍 #1 프로젝트 준비
본 글은 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 도서의 내용을 복습하기 위해 작성된 글입니다. 7.1 프로젝트 준비 step1 메이븐 프로젝트의 pom.xml 파일에 aspectj.weaver 의존을 추가 후 컴파일 4.0.0 sp5 sp5-chap07 0.0.1-SNAPSHOT org.springframework spring-context 5.0.2.RELEASE org.aspectj aspectjweaver 1.8.13 maven-compiler-plugin 3.7.0 1.8 1.8 utf-8 step2 mvn compile step3 IDE에서 Import 수행 AOP 실습을 위한 클래스 정의 1. Calculator.java package chap07; public interface Ca..
2021.07.27 -
4. 함수와 프로토타입 체이닝 #3 함수의 다양한 형태
본 글은 인사이드 자바스크립트 도서의 내용을 복습하기 위해 작성된 글입니다. 4.3 함수의 다양한 형태 콜백 함수(CallBack Function) 즉시 실행 함수(Immediate Function) 내부 함수(Inner Function) 함수를 리턴하는 함수 4.3.1 콜백 함수(CallBack Function) 콜백함수는 코드를 통해 명시적으로 호출하는 함수가 아니라, 개발자는 단지 함수를 등록하기만 하고, 어떤 이벤트가 발생했거나 특정 시점에 도달했을 때 시스템에서 호출되는 함수를 말한다. 또한, 특정 함수의 인자로 넘겨서, 코드 내부에서 호출되는 함수 또한 콜백 함수가 될 수 있다. 대표적인 콜백 함수의 사용 예가 자바스크립트에서의 이벤트 핸들러 처리이다. 자바스크립트의 이벤트 처리와 콜백 함수 ..
2021.07.26 -
백준(Backjoon) 9625, BABBA
문제풀이 위 문제는 다이나이믹 프로그래밍 문제이다. N의 수에 따른 A와 B의 개수를 계산하면 아래와 같다. N A B 1 0 1 2 1 1 3 1 2 4 2 3 5 3 5 6 5 8 A와 B의 수의 변화는 피보나치 수를 따르고 있다. 단, 차이점은 A는 N==1일때 0이고 B는 N==1일때 1인점이 차이가 있다. 따라서 위 문제를 해결하기 위해서 재귀 함수를 구현하였고 메모제이션 기법을 적용하였다. 단, 메소드의 인자에 변수를 하나 추가하였다. 이 변수는 N==1일때 값을 정하는 변수(0,1)이다. 소스코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main..
2021.07.23 -
백준(Backjoon) 9093, 단어 뒤집기
문제풀이 위 문제를 해결하기 위하여 문자열 배열형식으로 입력받고 반복문을 통해서 StringBuilder 클래스 타입으로 객체를 생성후 단어를 뒤집고 결과 변수에 저장한다. 반복문이 종료되면 결과변수를 출력한다. 소스코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); in..
2021.07.22 -
백준(Backjoon) 1012, 유기농 배추
문제풀이 위 문제를 해결하기 위해서 BFS 또는 DFS 알고리즘을 수행합니다. 저는 BFS 알고리즘을 활용하여 문제를 해결하였습니다. 필요한 최소 배추흰지렁이 개수는 BFS 또는 DFS 알고리즘을 수행한 횟수와 같습니다. 소스코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; public class Main { private static int n, m, k;// 세로, 가로, 배추개수 private static int[][] map;// 배추밭, 1 : 배추, 0 : 배추없음 private ..
2021.07.22