THBOT의 연례 해커톤 ‘Ralph Palooa’* 목적 및 방식: 연말 해커톤으로, 2일간의 협력 프로젝트를 통해 아이디어를 실현하고 회사 전체에 발표합니다. 프로젝트 유형은 앱 개발부터 글쓰기, 기존 프로젝트 기능 추가, 내부 소프트웨어, 컨퍼런스 발표 아이디어, 디자인, 심지어 자원봉사 활동까지 다양합니다.
- Joel의 프로젝트: AI의 개발 워크플로우 활용 가능성에 대한 엄격한 실험을 진행합니다. 특히 AI를 코드 분석 도구로 사용하여 함수 호출 그래프 다이어그램을 자동으로 생성하는 방법을 탐구합니다. 수동 추적을 통한 인간 통제군과 비교하여 LLM(대규모 언어 모델)이 얼마나 정확하게 복잡한 코드베이스를 분석할 수 있는지 평가합니다. 목표는 ‘가능한가?’를 확인하는 것이며, 실험 범위를 기능 호출 그래프로 제한합니다.
- Sally의 프로젝트: Freda Kasus가 설립한 비영리 단체 Casazolo Foundation을 위한 MVP 웹사이트를 구축합니다. 동물과 BIPO(Black, Indigenous, and People of Color) 커뮤니티를 위한 안전한 안식처를 목표로 하며, 기술을 통해 좋은 사명을 지원하는 협력 프로젝트입니다. 웹사이트 구축 시 Squarespace와 같은 도구 사용 여부에 대한 논의도 포함됩니다.
Active Model 커스텀 속성 활용
- 개념: Active Model(Active Record에 포함됨)의 강력한 기능으로, 데이터베이스에 저장된 원시 값(예: 문자열, 정수)을 Ruby 애플리케이션 내에서 더 풍부하고 의미 있는 객체로 변환하고 그 반대도 가능하게 합니다. 이는 데이터 직렬화 및 역직렬화 방식을 정의합니다.
- 주요 이점: 풍부한 객체 상호작용 (데이터베이스에는 문자열로 저장된 전화번호가 애플리케이션에서는 PhoneNumber 객체로 변환되어 국제 번호 처리, 형식 지정 등 복잡한 로직을 내부에 캡슐화할 수 있습니다.) 일관된 로직 (money_rails Gem처럼 금액을 센트(정수)로 저장하고 Money 객체로 다루는 방식은 도메인 관련 연산을 단순화하고 ‘100으로 나누기/곱하기’와 같은 반복적인 코드 작성을 방지합니다.) 쿼리 시스템 통합 (where 절에 PhoneNumber 객체를 직접 전달하는 등 Active Record 쿼리 시스템과 원활하게 통합되어 쿼리 시 데이터 형식 불일치 문제를 해결합니다.) 데이터 정규화 (커스텀 속성 내에서 데이터 정규화 로직을 구현하여 데이터베이스에 일관된 형식으로 저장함으로써 쿼리 및 인덱싱 효율성을 높일 수 있습니다.) 개발자 경험(DX) 향상 (원시 데이터 값(예: 26이 26%인지 0.26%인지)에 대한 혼란을 줄이고, 특정 도메인 로직을 객체 내부에 캡슐화하여 코드베이스의 가독성과 유지보수성을 높입니다. 이는 ‘나누기 100’과 같은 반복적인 코드 패턴을 제거하고, 새로운 개발자가 코드베이스를 더 쉽게 이해하고 작업할 수 있도록 돕습니다.)
- 적용 사례: 전화번호, 금액, 측정 단위(예: 물리적 속성, 위도/경도), 시간 간격, 백분율 등 내부적으로는 원시 값으로 저장되지만 애플리케이션에서는 복잡한 도메인 로직이 필요한 경우에 유용합니다.
- 제한 사항: 단순한 정규화(Rails의 normalize 매크로)만 필요한 경우나 여러 필드를 가진 복합 객체(예: 주소)가 자체 테이블로 분리되는 것이 더 적합할 수 있습니다.