Skip to content
This page has been auto-translated and may contain errors.View in English

title: 연락처 관리 앱 description: 루프 형태로 실행되는 CLI 앱으로, 세션 중에 연락처를 추가, 검색, 목록으로 볼 수 있습니다.

연락처 관리 앱

Pip 안녕! 나는 연락처들이 여러 곳에 흩어져 있어서 자꾸 잃어버려. 번호, 이메일, 뭐 다 말이야. 터미널에서 실행할 수 있는 간단한 연락처 관리 앱을 만들어줄 수 있을까? 사람을 추가하고, 이름으로 검색하고, 모두 목록으로 보기. 복잡한 건 필요 없고, 그냥 잘 작동하는 것만 있으면 돼 🙏

만들 것

Commands: add / search / list / quit

> add
Name: 김철수
Phone: 010-1234-5678
Email: [email protected]
Saved.

> search
Name: 철수
김철수 - 010-1234-5678 - [email protected]

> list
1. 김철수 - 010-1234-5678
2. ...

> quit

필요한 것들

  • Dictionaries - 각 연락처는 딕셔너리이고, 연락처 관리 앱은 이들의 리스트입니다
  • Lists - 모든 연락처를 하나의 리스트에 모아서 루프로 순회할 수 있습니다
  • Functions - 명령어마다 함수를 하나씩 만들면 깔끔하고 읽기 좋습니다
  • Control flow - 사용자가 "quit"을 입력할 때까지 계속 실행되는 루프
  • Strings - 대소문자를 구분하지 않는 검색, 이름 포맷팅

힌트

각 연락처를 딕셔너리로 저장하세요. "name", "phone", "email" 같은 키를 사용합니다. 모든 연락처를 루프 밖의 리스트에 보관하면 명령 사이에도 유지됩니다.

while 루프에 명령어 확인이 들어가는 구조가 자연스럽습니다. 명령어를 읽고, 해당하는 함수를 호출하고, 반복합니다. 사용자가 "quit"을 입력하면 빠져나갑니다.

검색할 때는 완전일치보다 부분일치가 더 유용합니다. 검색어가 이름의 어딘가에 포함되어 있는지 대소문자를 구분하지 않고 확인하면, "철수"로 "김철수"를 찾을 수 있습니다.

더 나아가기

핵심 루프가 작동하면:

  • 저장과 불러오기. 사용자가 종료할 때, 모든 연락처를 JSON 파일에 씁니다. 스크립트가 시작할 때, 그 파일이 있으면 불러옵니다. 이 기능은 파일 챕터가 필요합니다.
  • 연락처 삭제. delete 명령어를 추가해서 이름으로 연락처를 제거할 수 있게 합니다.
  • 정렬된 목록. 목록 출력 전에 이름순으로 알파벳 정렬합니다.