피드로 돌아가기
Dev.toBackend
원문 읽기
Pattern Matching 기반의 Flash Message 렌더링 구조 최적화
Organizing flash messages in Phoenix
AI 요약
Context
Phoenix Framework의 기본 layout 구조가 Flash Message 유무와 관계없이 빈 HTML 태그를 항상 렌더링하는 비효율성 발생. 이를 CSS의 :empty 선택자로 은닉 처리하는 방식은 DOM 구조상 불필요한 요소를 유지하는 한계점 존재.
Technical Solution
- View 레이어의 비즈니스 로직 분리를 위해 SharedView 모듈 도입
- Elixir의 Pipe Operator를 통한 데이터 흐름 최적화로 get_flash 결과물을 렌더링 함수로 전달
- Pattern Matching을 활용하여 info, error 등 메시지 타입에 따른 분기 처리를 함수 레벨에서 구현
- Partial Template(_flash_message.html.eex)를 도입하여 UI 컴포넌트 재사용성 확보
- Layout 파일 내 조건문(if)을 제거하고 SharedView 함수 호출로 대체하여 템플릿 가독성 향상
실천 포인트
1. 템플릿 내 복잡한 조건문(if/else) 발생 시 View 모듈로 로직을 이관했는지 검토
2. 단순 분기 처리보다 Pattern Matching을 통한 함수 다형성 구현 가능 여부 확인
3. 반복되는 UI 요소의 경우 Partial Template으로 분리하여 단일 책임 원칙 준수