개발자
대학 4학년 재학중이고 현재 스타트업 초기 개발자로 근무를 시작했습니다. 프론트는 flutter, DB는 postresql, 백 프레임워크는 python Django를 이용해 하이브리드 어플리케이션을 개발하고자 합니다. 장소 table을 만들면서 주소 column을 만들어야 하는데, 서울/부산/울산 등 지역별 필터링이 가능하도록 설계해야 합니다. 1. 단순히 textfield 를 하기엔 필터링마다 모든 row의 주소 column에서 해당 단어들을 찾아야 하는 부담이 있고, arrayfield(char)을 하기엔 프론트에서 받아와서 처리하는 것에 어려움이 있을 것 같습니다. 2. 프론트에서 주소 입력하는 형태가 아직 정해지지 않았는데, 아마 도로명 주소 검색해서 선택하고 상세주소를 입력하는 방법을 도입할 것 같습니다. 이 기능을 구현해본 적이 없어 어떤 식으로 DB를 설계하고 입력/저장/출력을 관리하면 좋을지 조언을 구하고 싶습니다. 덧붙여서, 혹시 지도 api 등을 연결해서 주소를 등록하게 되더라도 DB 설계에는 변함이 없는게 맞는건지 궁금합니다. 감사합니다.
답변 0
첫 답변을 기다리고 있어요.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 05월 22일
주소를 저장하기 위한 DB 설계는 여러가지 방법이 있습니다. 하나의 방법으로, 주소를 '도시', '구', '동/읍/면' 등의 열로 나눌 수 있습니다. 이렇게 하면 지역별 필터링을 할 때 각 열에서 검색할 수 있어 처리 부하를 줄일 수 있습니다. 대략적인 테이블은 아래와 같이 될 것입니다: ``` CREATE TABLE places ( id SERIAL PRIMARY KEY, name VARCHAR(50), city VARCHAR(20), district VARCHAR(20), neighborhood VARCHAR(40), street_address TEXT ); ``` 도로명 주소 검색 후 상세주소를 입력하는 경우라면 사용자의 입력을 분해하여 각 필드에 저장하면 됩니다. 이 경우 도로명 주소 검색 API에서 반환되는 정보와 이후 사용자가 직접 입력하는 상세 주소 정보에 대한 처리 로직이 필요합니다. 그리고 Django에서는 GeoDjango라는 GIS 기능을 제공합니다. 지리적 위치에 관련된 자료형과 데이터베이스 함수를 사용하여, 위치 기반 검색 및 쿼리 등을 쉽게 구현할 수 있습니다. 만약 이런 기능들을 활용한다면 데이터베이스 설계에 영향을 미칠 수 있는 점도 고려해야 합니다. 마지막으로, 당신의 추가 질문에 대한 답변은, 지도 API를 사용하더라도 DB 설계 자체는 크게 변하지 않습니다. 그러나 API에서 반환되는 데이터 형식이나 내용 등에 따라 주소 정보를 어떻게 파싱하고 저장할지가 달라질 수 있습니다. 따라서 지도 API 선택 후, 그 API의 문서를 잘 읽어보고 적절한 데이터베이스 설계를 결정하는 것이 중요합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!