피드로 돌아가기
Dev.toBackend
원문 읽기
SMILES 기반 Molecule Graph 구조 설계를 통한 IUPAC 명명 시스템 구축
I Don't Know Chemistry, But I'm Building a Chemical Namer Anyway
AI 요약
Context
화학식 표현을 위한 독자적 포맷 설계 시도로 인해 모든 Edge Case 대응 실패 및 시스템 복잡도 증가라는 한계 직면. 표준 규격 부재로 인한 데이터 호환성 결여 및 단일 개발자의 구현 가능 범위를 초과하는 설계 오버헤드 발생.
Technical Solution
- SMILES 표준 포맷 채택을 통한 입력 인터페이스 단일화 및 검증된 Regular Grammar 활용
- SMILES 문자열을 Token 단위로 분리하여 Atom 정점과 Bond 간선으로 구성된 Molecule Graph 객체로 변환하는 파서 설계
- Element(화학 데이터), Atom(그래프 노드), Molecule(컨테이너), SMILESParser(구문 분석기)로 분리된 책임 중심의 클래스 구조 설계
- 괄호 밸런싱 및 Ring Number 매칭 확인을 통한 전처리 단계의 구문 검증 로직 구현
- 원자별 최대 Valence(원자가) 체크를 통해 그래프의 물리적 타당성을 검토하는 Validation 레이어 구축
실천 포인트
1. 도메인 데이터 모델링 시 업계 표준 포맷 존재 여부를 최우선으로 검토
2. 복잡한 문자열 파싱 시 [Tokenizing -> Graph Transformation -> Validation] 단계로 파이프라인 분리
3. 비즈니스 로직 진입 전 선형 시간(Linear Time) 복잡도의 기본 유효성 검증 단계 배치