Ruby on Rails 기반 디지털 ID 플랫폼 개발 현황
1. 프로젝트 개요 및 기술 스택
- 프로젝트: 디지털 ID 플랫폼 (Digital ID Platform)
- 사용자가 디지털 카드를 생성하고 공유하며, 이름, 직책, 링크 등 상세 정보를 포함할 수 있습니다.
-
주요 기능: 카드 관리 플로우 (Card Management Flow) 개발 중.
-
백엔드: Ruby on Rails (MVC 프레임워크)
- 프런트엔드:
- CSS 프레임워크: Tailwind CSS
- UI 컴포넌트: Daisy UI
- JavaScript: StimulusJS (Hotwire 스택의 일부, 미세 인터랙션 처리)
2. 개발 과정 및 당면 과제
-
아이콘 관리: 사용자 정의 SVG 아이콘을 수동으로 추가하고, Tailwind의
current_color속성을 활용하여 아이콘 색상을 동적으로 제어합니다. -
탭 UI 구현: Daisy UI를 사용하여 ‘기본 정보(Basic Detail)’, ‘링크(Links)’, ‘커스터마이징(Customization)’ 탭을 구성합니다.
2.
- Daisy UI 탭 활성화 스타일링 문제 해결
-
문제: Daisy UI 탭에서 활성화된 탭에 특정 스타일(예: 텍스트 색상 변경, 배경색, 그림자, 테두리)을 적용하는 방법을 찾는 데 어려움을 겪었습니다.
-
초기 시도: 일반적인 CSS
:active셀렉터나 Daisy UI 문서의tab-active클래스를 활용하려 했으나, 동적으로 적용되지 않았습니다. - AI 활용:
- ChatGPT는 정확한 해결책을 제시하지 못했습니다.
- Codex의 해결책: Daisy UI 탭이 내부적으로 라디오 버튼(
input[type="radio"])을 사용하여 탭 상태를 관리한다는 점을 파악하고, CSS에서input[type="radio"]:checked + .tab과 같은 형태로checked속성을 기반으로 스타일을 적용하는 방법을 제시했습니다.
- 결과:
checked상태에 따라font-semibold,bg-white,border,shadow-md,rounded-lg등의 스타일을 성공적으로 적용하여 활성 탭을 시각적으로 구분할 수 있게 되었습니다.
2.
- 복합 모델 폼 제출 로직 구현 과제
-
문제: ‘Card’, ‘CardLink’, ‘CardCustomization’ 등 여러 모델에 걸쳐 있는 데이터를 단일 폼(
form_with model: @card) 내에서 관리하고, 하나의 ‘카드 발행(Publish Card)’ 버튼 클릭으로 모든 탭의 데이터를 동시에 제출하는 로직을 구현하는 데 난항을 겪고 있습니다. -
현재 상태: 현재는 단일
Card모델에 대한 기본 정보(예: 이름)만 성공적으로 저장되는 것을 확인했습니다. 다중 모델 데이터의 통합 제출 방식에 대한 추가적인 연구가 필요합니다.
3. 개발 환경 및 도구
-
IDE: RubyMine (JetBrains 제품)
-
재사용 가능한 컴포넌트: Ruby on Rails의 View Components를 활용하여 재사용 가능한 입력 필드 컴포넌트를 구축했습니다.
-
학습 리소스: Ruby/Rails 학습을 위한 좋은 리소스로 ‘Go Rails’를 추천했습니다.