연락처 책
Pip 안녕! 6개 역에 걸쳐 연락처가 흩어져 있어서 계속 잃어버리고 있어. 전화번호, 이메일이 여기저기 널려 있어. 터미널에서 실행할 수 있는 간단한 연락처 책을 만들어줄 수 있어? 사람을 추가하고, 이름으로 검색하고, 전체 목록을 볼 수 있는 것. 화려하지 않아도 돼, 그냥 제대로 작동하는 것이면 충분해 🙏
만들 것
Commands: add / search / list / quit
> add
Name: 민준
Phone: 07700 900123
Email: [email protected]
Saved.
> search
Name: 민준
민준 — 07700 900123 — [email protected]
> list
1. 민준 — 07700 900123
2. ...
> quit필요한 것
- 딕셔너리 — 각 연락처는 딕셔너리이며, 연락처 책은 그것들의 리스트입니다
- 리스트 — 모든 연락처를 하나의 리스트에 모아 반복할 수 있습니다
- 함수 — 명령마다 함수 하나씩 두면 코드가 깔끔하고 읽기 쉬워집니다
- 제어 흐름 — 사용자가 "quit"을 입력할 때까지 실행되는 루프
- 문자열 — 대소문자 구분 없는 검색, 이름 포맷팅
힌트
각 연락처를 딕셔너리로 저장하세요. "name", "phone", "email" 같은 키를 사용합니다. 모든 연락처는 루프 바깥의 리스트에 보관하여 명령 사이에도 유지되도록 합니다.
명령 확인을 포함한 while 루프가 자연스러운 구조입니다. 명령을 읽고, 적절한 함수를 호출하고, 반복합니다. 사용자가 "quit"을 입력하면 빠져나옵니다.
검색에는 정확한 일치보다 부분 일치가 더 유용합니다. 검색어가 이름 어디에든 — 대소문자 구분 없이 — 나타나는지 확인하면 "alice"로 "Alice Johnson"을 찾을 수 있습니다.
더 나아가기
핵심 루프가 작동하면:
- 저장과 불러오기. 사용자가 종료할 때 모든 연락처를 JSON 파일에 기록합니다. 스크립트가 시작될 때 그 파일이 존재하면 불러옵니다. 이는 파일 챕터가 필요합니다.
- 연락처 삭제. 이름으로 연락처를 제거하는
delete명령을 추가합니다. - 정렬된 목록. 목록 출력을 인쇄하기 전에 이름순으로 알파벳 정렬합니다.

