«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

올해는 머신러닝이다.

1단계 간단한 파일입출력 리펙토링(템플릿/콜백 패턴 사용) 본문

스프링프레임워크공부중/1부 템플릿 패턴 따라잡기

1단계 간단한 파일입출력 리펙토링(템플릿/콜백 패턴 사용)

행복한 수지아빠 2010. 12. 18. 18:22
출처 : 1400페이지짜리 '토비의 스프링' 서적
간단한 파일 입출력 리펙토링 과정을 보여준다.

우선 기본적으로 알아야 하는 건 JUnit 방법이다..

검색해보면 금방 알수 있으므로 해보삼^^

실제 계산하는 Calculator.java

package springbook.learningtest.template;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Calculator {
public Integer calcSum(String filepath) throws IOException{
BufferedReader br = new BufferedReader(new FileReader(filepath));
int sum = 0;
String line = null;
while( (line=br.readLine())!=null ){
sum += Integer.parseInt(line);
}
br.close();
return sum;
}
}

이걸 이용하는 구현 클래스는 CalcSumTest.java

여기서 빨간부분을 주의해서 보도록..

package springbook.learningtest.template;

import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;

import java.io.IOException;

import org.junit.Test;

public class CalcSumTest {
@Test
public void sumOfNumber() throws IOException{
Calculator calculator = new Calculator();
int sum = calculator.calcSum(getClass().getResource("numbers.txt").getPath());
assertThat(sum,is(10));
}
}


여기서 문제점은 try/catch/finally를 안넣어서 중간에 예외가 발생하면 자원반납을 안해줘서 문제가 됨.

그래서 2단계에선 묶어줌..