public class APTDealSAXHandler extends DefaultHandler {
.....
public void startElement(String uri, String localName, String qName, Attributes att){
if(qName.equals("item")){
house = new HouseDeal(HouseSaxParser.no++);
house.setType(HouseDeal.APT_DEAL);
houses.add(house);
}
}
public void endElement(String uri, String localName, String qName){
if(qName.equals("지역코드")) {
house.setCode(Integer.parseInt(temp));
}else if(qName.equals("아파트")) {
house.setAptName(temp.trim());
}
......(생략)
}
public void characters(char[]ch, int start, int length){
temp = new String(ch, start, length);
}
public List<HouseDeal> searchAll(HousePageBean bean){
search.clear();
List<HouseDeal> finds = new LinkedList<HouseDeal>();
boolean[] type = bean.getSearchType();
for (int i = 0, size=type.length; i < size; i++) {
if(type[i]) {
System.out.println(searchType[i]);
search.addAll(deals.get(searchType[i]));>
}
}
String dong = bean.getDong();
String aptName = bean.getAptname();
if (dong != null) {
for (HouseDeal deal : search) {
if (deal.getDong().contains(dong)) {
finds.add(deal);
}
}
}else if(aptName != null) {
for (HouseDeal deal : search) {
if(deal.getAptName().contains(aptName)) {
finds.add(deal);
}
}
}else {
finds = search;
}
return finds;
}
private void loadData() {
// 환경 정보
// euc-kr
List<List<String>> envAreaList = new ArrayList<>();
String csvFileName = "res/서울시 종로구 환경 지도점검 내역 현황.csv";
try (BufferedReader br = new BufferedReader(new FileReader(csvFileName))) {
String line;
while ((line = br.readLine()) != null) {
String[] values = line.split(",");
String name=""; //업체명
String n=""; //인허가번호
String codeNum=""; //업체코드
String codeName=""; //업종명
String date=""; //지도 점검 일자
String check=""; //지도점검구분
String checkPoint=""; //점검 사항
String checkReslt=""; //점검 결과
String address=""; //소재지 주소
for(int i = 0; i<values.length; i++) {
switch(i) {
case 0:
name = values[i].substring(1,values[i].length()-1);
break;
case 2:
codeNum = values[i].substring(1,values[i].length()-1);
break;
case 3:
codeName = values[i].substring(1,values[i].length()-1);
break;
case 4:
date = values[i].substring(1,values[i].length()-1);
break;
case 7:
check = values[i].substring(1,values[i].length()-1);
break;
case 9:
checkPoint = values[i].substring(1,values[i].length()-1);
break;
case 10:
checkReslt = values[i].substring(1,values[i].length()-1);
break;
case 12:
address = values[i].substring(1,values[i].length()-1);
break;
}
values[i] = values[i].substring(1,values[i].length()-1);
}
list.add(new Environment(name, codeName, codeNum, date, check, checkPoint, checkReslt, address));
}
} catch (IOException e) {
e.printStackTrace();
}
}
프로젝트 구조가 설계된 상태에서 특정 기능들만 구현하면 되었기에 쉬울거라 생각했으나 막상 프로젝트를 진행하며 크고 작은 어려움이 많았다. 먼저, 프로젝트를 구조를 이해하는 것이 어려웠다. DAO와 Parser, Service class를 들이 얽힌 관계를 이해하는데 오랜 시간이 걸렸다. 이는 프로젝트 설계에 대한 이해가 부족한 부분으로 앞으로 채워나가야 할 점이라 생각한다.
다음으로는 팀원과의 협업이 어려웠다. 이 프로젝트는 2인 1조가 되어 진행하는 Pair project였으나 협업 경험이 부족했던 우리는 어떻게 역할을 분담하고 협업해야 할지 몰랐다. 또한, 프로젝트의 branch를 나누고 병합하는 과정에서 불필요한 시간이 오래걸려 결국엔 대부분의 기능을 내가 구현하고 팀원이 화면 부분을 추가하는 것으로 프로젝트를 마무리했다.ㅠㅠ 이 또한 추가적인 공부가 필요할 것 같다.