Luminary: Week 2 — 핵심 구축
Source: Dev.to

Luminary란 무엇인가
Luminary는 여성의 업적과 사회에 대한 기여를 기념하고 인정하기 위해 만든 오픈소스 플랫폼입니다. 이 플랫폼은 다양한 분야에서 영향을 미치는 여성들을 조명하고, 그들의 작업이 더 넓은 청중에게 인정받고 발견되며 공유될 수 있는 공간을 제공하는 것을 목표로 합니다.
이 프로젝트는 프론트엔드, 백엔드, 디자인 등 여러 역할을 맡은 기여자들이 협업하여 구축하고 있으며, 확장 가능하고 접근성 높은 인정 플랫폼을 만드는 데 중점을 두고 있습니다.
이번 주에 작업한 내용
이번 주 제 작업은 주로 코드베이스 유지 관리와 핵심 백엔드 인프라 구축에 집중되었습니다. Lead Maintainer 로서 프로젝트가 안정적이고 기여자 친화적으로 유지되도록 하는 것이 제 책임의 일부이며, 기술적 격차가 있는 부분에 직접 참여하고 있습니다. 또한 Backend Lead 로서 플랫폼의 기본 백엔드 아키텍처를 구축하는 데 도움을 주었습니다.
주요 작업
- 프로젝트 웹사이트에 대한 초기 배포를 설정하고 구성함 →
- Luminary 백엔드 서비스를 구축하기 시작함
- 적절한 배포와 프로젝트 구조를 지원하도록 코드베이스의 일부를 리팩터링함
- 다음에 대한 API 엔드포인트를 구현함:
- 여성 후보 제출
- 후보 여성 디렉터리 검색
- 후보 시스템에 필요한 데이터베이스 스키마를 설계하고 구조화함
- 프로젝트를 정리되고 기여자 친화적으로 유지하기 위해 저장소 유지 관리 작업을 조정함
기술 구현 개요
Luminary 백엔드는 Node.js + Express 아키텍처를 따르며, Supabase를 통해 관리되는 PostgreSQL 데이터베이스와 통신하는 RESTful API 레이어를 제공합니다.
프론트엔드
- Netlify에 배포된 정적 사이트
- 후보자 프로필을 표시하고 후보 접수를 처리합니다
백엔드
- Express를 사용하는 Node.js 서버
- API 요청, 후보 접수 및 디렉터리 조회를 처리합니다
- 프론트엔드와 데이터베이스 사이의 미들웨어 역할을 합니다
데이터베이스
- Supabase를 통해 관리되는 PostgreSQL
- 후보 접수 기록, 접수자 정보 및 후보자 프로필을 저장합니다
Database Design
To support the nomination workflow, schemas were designed for three main entities:
Nominee (Woman)
- Name
- Field or area of contribution
- Biography or impact description
- Additional metadata related to recognition
Nominator
- Information about the individual submitting the nomination
- Enables tracking and potential moderation workflows
Nomination
- Links a nominator to a nominee
- Captures details about the achievement or impact being recognized
직면한 도전 과제
주요 기술적 문제는 Netlify 배포와 관련된 이슈였습니다. 프로젝트가 원래 index.html 파일을 pages 디렉터리 안에 두었기 때문에 Netlify가 진입점을 감지하지 못했습니다. Netlify는 배포 디렉터리의 루트에 진입 HTML 파일이 있어야 하므로 배포가 실패했습니다.
해결 방법:index.html을 프로젝트의 최상위 레벨로 이동하고 디렉터리 구조를 업데이트하여 애플리케이션 구조를 재구성했습니다. 이를 통해 Netlify가 올바르게 진입점을 식별하게 되었으며, 보다 깔끔하고 배포 친화적인 구조를 만들 수 있었습니다.
이번 주에 배운 것
- 정적 프론트엔드를 호스팅할 때 배포 제약 조건 처리
- 리드 메인테이너로서 기여를 조정하면서 프로젝트 안정성 관리
팀 및 기여자
Luminary는 많은 기여자들과 함께하는 협업 프로젝트입니다:
- Isaac Shosanya — 리드 메인테이너
- Ramnan Ramyil — 프로젝트 리드
- Awoyemi Abiola — 프로젝트 리드
- Daniel Chisom — 엔지니어링 리드
- Micheal Omonedo — 디자인 리드
- Ariyo Taiwo — UI/UX 디자이너
협업은 프로젝트를 진행하는 데 핵심이었으며, 플랫폼이 점차 형태를 갖춰 가는 모습을 보는 것이 흥미롭습니다.