<aside> 💡 간단한 주소록을 C로 구현해보자!
</aside>
이름, 주소, 전화번호를 관리 할 수 있는 주소록 프로그램 작성
메뉴 출력 및 화면 제어 로직을 Event loop구조를 적용하고 함수 포인터 테이블을 사용해 호출한다.
주소록 데이터 정보는 모두 파일로 저장한다.
최소 1만개 이상 더미 데이터를 넣어서 운영한다.
데이터는 파일에 존재하며 메모리에 로드하지 않는다.
SQL SELECT문의 WHERE절 스타일 조건 검색을 지원한다.
예) 이름=’홍길동’
예) 이름=’홍길동’ and 전화번호=’010-1234-5678’
예) 이름=’홍길동’ and 전화번호=’010-1234-5678’
(선택) 정규 표현식 기반 검색을 지원한다. (구현 안함)
이름, 주소, 전화번호를 용이하게 관리할 목적으로 ID를 추가했다.
메뉴는 **EXIT(종료), SELECT(조회), INSERT(추가), UPDATE(수정), DELETE(삭제)**로 구성하였고 함수 포인터 배열로 호출한다.
주소록 데이터 정보는 처음 생성시 “TEST_PhoneBook.dat” 파일로 생성되고 모두 파일에 저장한다.
이름과 주소 전화번호를 생성하는 소스코드를 만들어서 처음 실행시 1만개 데이터를 확보한다.
**인덱스(Index)**를 구현해서 검색 속도를 향상시켰다. (전화번호만 적용)
첫번째 데이터와(id=1) 마지막 데이터(id=10000) 검색 속도 비교 (약 30만 나노초 차이)
마지막 데이터를 아이디로 검색할 때와 전화번호로 검색할 때 속도 비교 (약 10배 차이)
→ 전화번호를 제외한 검색은 모두 처음 부터 파일을 순차적으로 스캔한다.