Now Loading ...
-
바로그림 프로젝트 설계와 시행착오 정리
바로그림 프로젝트를 시작하면서 마인드맵을 만들고, 이미지 정보와 프롬프트를 어떻게 다룰지 정리했다. 이 글은 작업일지에서 프로젝트 방향과 시행착오가 확인되는 내용만 추려 압축한 회고다. 개인 정보, 서버 설정, 운영 로그, 핵심 프로젝트 이미지는 넣지 않았다.
설계에서 먼저 정리한 것
초기에는 기능을 마인드맵으로 나누고, ERD와 Flow Chart를 보완하려 했다. 태그 정보, 게시판 성격의 데이터, 인덱스 고려 사항을 메모했고, 이미지에서 얻을 수 있는 EXIF 정보도 기능 후보로 검토했다.
이 단계의 기록은 확정된 설계서가 아니라 기능과 데이터 관계를 정리하는 과정이었다. 그래서 어떤 테이블과 인덱스가 실제로 최종 반영되었는지는 이 회고에서 단정하지 않는다.
EXIF 수집 방식의 변경
초기 크롤러는 페이지를 넘기며 정보를 모으는 방식이었다. 페이지 번호가 제한된 화면에서 다음 구간으로 이동하는 방법을 고민했고, 동적 페이지와 iframe 요소를 처리하는 방법도 확인했다.
진행하면서 기존 방식이 수작업 성격이 강하고 오류가 발생하면 유지하기 어렵다고 판단했다. 이후 바이트 형태의 EXIF 정보를 디코딩하고, PIL을 활용해 추출하는 방향을 시도했다. 예외 처리와 모듈화, 데이터 수집 부분의 try except 적용도 보완 과제로 남겼다.
검색과 데이터 연동을 위한 검토
MySQL의 이미지 정보를 Elasticsearch에 가져오고, 프롬프트·부정 프롬프트·태그를 검색에 사용할 방법을 고민했다. 검색 로그와 태그를 시간 정보와 함께 쌓아 트렌드에 반영하는 안도 메모했다.
이 내용은 데이터 흐름과 검색 조건에 대한 구상이다. 원문에는 구현을 위한 SQL, query, 가중치에 대한 시도도 있지만, 모든 시도가 완료되거나 성능 개선으로 이어졌다고 볼 근거는 없었다. 그래서 결과가 확인되지 않은 사항은 계획과 검토 단계로 남겼다.
배포와 운영에서 남은 과제
Elasticsearch 설치 환경에서는 Windows에서 리소스 제한을 다루는 방법을 여러 방향으로 시도했다. 배포 환경으로는 Synology, AWS, goorm IDE, Azure, Docker 구성을 비교했고, 도메인과 SSL 인증서 발급 절차도 미리 조사했다.
Logstash는 일정 주기로 데이터를 가져오는 방식과 파이프라인을 분리해 실행하는 문제를 기록했다. 다만 당시 작업일지에는 환경별 설정, 내부 주소, 운영 로그가 섞여 있어 이 글에는 옮기지 않았다. 공개 가능한 회고로 남길 수 있는 사실은 문제를 발견하고 대안을 비교·검토했다는 과정까지다.
정리 기준
작업일지의 짧은 TODO, 강의별 메모, 중복된 검색 설명은 각각 따로 게시하지 않았다. Django와 Elasticsearch의 일반 개념은 별도 내용 정리 글로 합쳤고, 이 글에는 바로그림에서 어떤 문제를 고민하고 어떤 방향으로 바꾸려 했는지만 남겼다.
Touch background to close