피드로 돌아가기
Organizing flash messages in Phoenix
Dev.toDev.to
Backend

Pattern Matching 기반의 Flash Message 렌더링 구조 최적화

Organizing flash messages in Phoenix

Guilherme Yamakawa de Oliveira2026년 5월 1일5beginner

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으로 분리하여 단일 책임 원칙 준수

원문 읽기