23. 링크 목록·분류·검색의 원리
목록은 같은 모양의 정보가 모인 것입니다
링크 하나에는 이름과 주소가 있습니다. 분류나 짧은 설명을 더할 수도 있습니다. 이런 한 항목을 여러 개 모아 보여 주는 것이 목록입니다. 먼저 항목마다 어떤 정보를 담을지 정하면 화면과 기능을 함께 생각하기 쉬워집니다.
‘웹 공부’라는 이름, 이동할 주소, ‘학습’이라는 분류가 있다면 이 세 가지가 한 항목을 이룹니다. 화면에서는 카드로 보여 줄 수도 있고 한 줄씩 보여 줄 수도 있습니다. 카드 모양은 표현 방식이며, 정보 자체와는 구분됩니다. 모양을 바꾸더라도 저장된 주소가 달라져서는 안 됩니다.
분류와 검색의 차이
분류는 미리 정한 묶음으로 목록을 좁히는 방법입니다. ‘학습’, ‘일상’, ‘참고’ 중 하나를 고르면 그 분류의 링크만 볼 수 있습니다. 검색은 사용자가 넣은 글과 항목의 내용을 비교해 찾는 방법입니다. 분류 이름을 기억하지 못해도 제목 일부로 찾을 수 있습니다.
첫 링크 모음의 검색은 내가 모아 둔 항목 안에서만 이루어집니다. 인터넷 전체를 뒤지는 검색 서비스를 만드는 것이 아닙니다. 검색할 대상이 이름인지 설명까지인지도 정해야 합니다. 이 범위가 불분명하면 AI가 만든 결과와 사용자의 기대가 달라질 수 있습니다.
검색 결과가 없을 때
검색어에 맞는 항목이 없으면 빈 화면만 보이기보다 ‘찾은 링크가 없습니다’라는 안내가 필요합니다. 아직 링크를 하나도 넣지 않은 상태와, 링크는 있지만 검색 결과가 없는 상태도 다릅니다. 전자는 첫 항목을 추가하도록, 후자는 검색어를 바꾸도록 안내할 수 있습니다.
검색어를 지우면 전체 목록이 다시 보여야 한다는 규칙도 정합니다. 분류 선택과 검색을 함께 쓰면 두 조건을 모두 만족하는 항목만 보일 수 있습니다. 처음에는 검색 하나부터 만들고, 작동을 이해한 뒤 분류를 더하면 결과를 확인하기 쉽습니다.
새 항목을 넣을 때의 판단
링크 이름이 비었거나 주소가 잘못되었다면 추가하지 않고 이유를 알려 줍니다. 같은 주소를 다시 넣을 때 중복을 허용할지도 정할 수 있습니다. 이번 실습에서는 이미 있는 주소라면 안내하고 그대로 두는 방식으로 시작합니다.
입력된 글은 글로 보여 주어야 합니다. 누군가 코드처럼 생긴 문자열을 이름에 넣었을 때 그것이 실행되어서는 안 됩니다. AI에게는 ‘입력은 화면에 텍스트로 표시하고 실행하지 말라’고 설명할 수 있습니다. 모든 보안 원리를 배우지는 않지만, 입력한 내용을 그대로 믿고 실행하면 안 된다는 경계는 알아둡니다.
목록을 만들기 전에 정보의 단위를 정하기
책 링크와 영상 링크, 모임 안내 링크를 한 목록에 넣더라도 항목마다 필요한 기본 정보는 일정하게 정할 수 있습니다. 이름, 주소, 분류 정도로 시작합니다. 자료마다 너무 다른 칸을 만들면 추가와 검색 규칙이 복잡해질 수 있습니다. 먼저 같은 구조로 담을 수 있는 작은 범위를 고릅니다.
설명을 더하고 싶다면 이름과 설명의 역할을 구분합니다. 이름은 목록에서 빠르게 구별하는 단서이고, 설명은 왜 저장했는지 알려 줄 수 있습니다. 검색할 때 이름만 볼지 설명도 볼지에 따라 결과가 달라집니다. 원하는 검색 범위를 AI에게 설명할 때 이런 정보의 역할을 함께 말합니다.
검색·분류 결과가 헷갈릴 때
같은 자료를 다르게 보여 주기
목록에서 ‘학습’을 선택해 두 항목만 보이더라도 나머지 자료가 삭제된 것은 아닙니다. 보이는 범위를 줄인 것과 실제 자료를 지운 것을 구분해야 합니다. 검색어를 지웠는데 항목이 돌아오지 않으면 검색 규칙이나 표시 상태를 확인할 문제이지, 바로 저장된 자료를 초기화할 이유는 아닙니다.
검색 중에 새 항목을 추가하면 검색어와 맞지 않아 화면에 안 보일 수도 있습니다. 실제로는 추가됐는데 실패한 것으로 느끼게 되는 상황입니다. 그래서 이번 실습에서는 추가 성공 뒤 검색어를 지워 새 항목이 보이게 정합니다. 다른 방식으로 만들 수도 있지만, 성공 여부를 사용자가 알 수 있게 한다는 기준은 같아야 합니다. 작은 기능에서도 서로 만나는 순간의 동작을 설명할 필요가 있습니다.
이름이 비슷한 두 항목
‘웹 공부’와 ‘웹 공부 자료’가 함께 있으면 검색어 ‘웹’에는 둘 다 나올 수 있습니다. 이것은 잘못된 결과가 아닙니다. 글자가 포함된 항목을 찾도록 정했다면 예상된 동작입니다. 정확히 같은 이름만 찾고 싶은지 일부 글자로 찾고 싶은지에 따라 규칙이 달라집니다.
첫 실습에서는 이름에 검색어가 포함되면 보여 주는 방식으로 시작합니다. 영문 대소문자와 앞뒤 공백을 어떻게 처리할지도 정할 수 있습니다. 이 규칙을 알면 검색 결과가 생각과 다를 때 자료가 사라졌다고 오해하기보다 어떤 비교를 했는지 질문할 수 있습니다.
분류를 너무 많이 만들면 생기는 일
처음부터 열 개가 넘는 분류를 만들면 링크를 넣을 때마다 어느 곳에 속하는지 고민할 수 있습니다. 비슷한 분류가 여러 개면 찾는 사람도 기준을 알기 어렵습니다. 우선 자신이 구별할 수 있는 몇 가지 묶음으로 시작하고 실제 자료가 늘 때 조정할 수 있습니다.
분류 이름은 짧고 의미가 드러나는 것이 좋습니다. ‘기타’가 대부분이라면 분류가 실제 사용과 맞지 않을 수 있습니다. 분류를 바꾸면 기존 자료의 값도 어떻게 바뀌는지 생각해야 합니다. 이름만 화면에서 바꾼 것과 저장된 항목의 분류를 바꾼 것은 다를 수 있습니다.
중복을 판단하는 기준
같은 주소에 다른 이름을 붙일 수도 있고, 비슷한 주소가 다른 페이지를 가리킬 수도 있습니다. 그래서 ‘중복’의 기준을 정해야 합니다. 첫 실습은 동일한 주소가 이미 있으면 안내하는 작은 규칙을 사용합니다. 이것이 인터넷의 모든 같은 자료를 알아보는 기능은 아닙니다.
주소 끝의 기호나 다른 경로를 어떻게 취급할지는 프로젝트가 커지면 더 생각할 수 있습니다. 지금은 간단한 기준을 설명하고 그 기준대로 확인합니다. AI가 복잡한 중복 판별을 자동으로 완성했다고 단정하지 않도록, 실제로 어떤 값을 비교하는지 설명을 요청할 수 있습니다.
검색과 보관은 서로 다른 일입니다
검색은 이미 있는 자료 중 어떤 항목을 보여 줄지 정합니다. 보관은 다음에 다시 쓰기 위해 자료를 남깁니다. 검색창을 만든다고 저장이 생기지 않고, 저장이 된다고 검색 규칙이 자동으로 좋아지는 것도 아닙니다. 두 기능의 완료 기준을 따로 둡니다.
검색은 단어를 넣고 지우는 행동으로 확인하고, 보관은 새로고침이나 다시 열기로 확인합니다. 검색 결과가 비어 있다고 전체 목록을 지우는 해결을 선택하지 않습니다. 어느 기능의 문제인지 구분하면 중요한 자료를 유지하면서 수정할 수 있습니다.
꼭 기억하세요
목록의 정보부터 정하고, 그 안에서 분류·검색·추가가 각각 무엇을 하는지 설명합니다.