본문 바로가기
공부기록

4월 14일 - 주소록 프로그램 구현

by project100 2023. 4. 14.

dao - 데이터와 연계, 저장 공간, Date Access Object

데이터 CRUD처리를 위한 객체, 저장소와 연결하여 데이터를 처리

C : 저장소 입력 메소드
R : 저장소의 데이터를 읽어오는 메소드
U : 저장소의 데이터를 수정하는 메소드
D : 저장소의 데이터를 삭제하는 메소드

dto - 데이터의 변수들을 묶어 놓은 것, DB테이블의 내용 그대로 가지고 옴 

 

자료를 옮기는 역할 Dto

view(콘솔 -> UI/UX html부분) - controller(순차적인 제어) - service(기능적인 제어) - dao - DB

 

 

 

 

 

 

일반적인 경우 참조변수를 사용할 경우 - return이 필요

참조 변수 - 인스턴스의 주소 값이 넘어와 데이터의 값이 바로 저장되기 때문에 return이 필요없음

    public void inputPhoneInfo(PhoneInfoDto pInfo){
        // 파라미터가 객체일 때 인스턴스의 주소가 전달됨, 주소를 사용하여 직접 인스턴스를 활용함.
        // 따라서 return이 필요없음
        pInfo.setPhName(ioc.inStr("이름 : "));
        pInfo.setPhNum(ioc.inStr("연락처 : "));
        pInfo.setPhAddress(ioc.inStr("주소 : "));
        pInfo.setPhBirth(ioc.inStr("생일 : "));
    }

 

부품의 경우 - public으로 작성

controller의 경우 private로 작성 

 

소스 분석 시작순서

main 찾기

controller 주석 살펴보기, 클래스가 다르면 변수의 이름이 동일해도 되기 때문에 변수이름을 따라가도 됨

service 

view

 

업무프로세스

 

p를 살펴서 결과를 rList 목록에 넣어줌

 

dto

public String getPhName() {
return phName;
}

public void setPhName(String phName) {
this.phName = phName;
}

 

view

// 검색 기능을 위한 화면 관련 메소드
public String searchInput(String comment){
String s = ioc.inStr(comment);
ioc.inStr("-----------------------");
return s;
}

controller 

// 이름 검색용 메소드
private void nameSearch() {
// 타이틀 출력
pv.viewTitle("이름 검색");
// 입력 받을 창
String sKeyword = pv.searchInput("이름 : ");
// 검색 작업은 서비스가 처리하여 결과를 준다.
ArrayList<PhoneInfoDto> rList = pSev.getNames(sKeyword);
pv.outputList(rList);
}

service

// 이름 검색용 메소드
public ArrayList<PhoneInfoDto> getNames(String name){
return pDao.getNameInfo(name);
}

 

dao

// 검색 출력(중복허용), 중복 허용 안 할 시 PhoneInfoDto로 받으면 된다.
public ArrayList<PhoneInfoDto> getNameInfo(String name){
ArrayList<PhoneInfoDto> rList = new ArrayList<>();
for(PhoneInfoDto p : phoneInfos){
// name.equals(p.getPhName()) 동일
if(p.getPhName().equals(name)){
rList.add(p);
}
}
return rList;
}