📂 프로젝트
rika_icon

Rika - 1:1 한일 문화교류 & AI 언어학습앱

#ReactNative, #Expo, #Nest.js, #Google Cloud, #Supabase,2026-02-04

1:1로 퀴즈를 주고받고 서로의 학습 내용을 공유할 수 있는, AI 기반 한일 언어 학습 서비스 RIKA를 소개합니다.

현재 운영중인 프로젝트로, 업데이트가 될 때 마다 해당 페이지 하단에 업데이트하도록 하겠습니다.

  • 일단 심사는 통과하자는 생각으로 테스트버전을 올려뒀습니다.
  • 정식버전은 심사중입니다. (26.02.05 심사 진행)

목차

  • 프로젝트 개요
  • 아키텍처
  • 주요 기능
  • 트러블슈팅
  • 성과

1. 프로젝트 개요

KOA 프로젝트를 진행하면서, 일본에 있는 많은 분들을 만날 수 있었다. 확실하게 느낀건, 10대 후반에서 20대 초반의 일본 인원들이 한국 문화에 관심을 많이 가지고 있다는 것이었고, 이와 동일하게 한국에도 일본 문화에 상당히 긍정적인 생각을 가지고 있다는 것을 확인했다.

그래서, 일본쪽에서 뭐든 해보고 싶다는 생각은 계속 하고있었다. 너무 매력적인 시장이었다.

일본에서 잠시동안 체류하면서 잊지못할 추억들을 쌓았다. 그 중 하나가 일본인 친구와 특이한 표현법에 대해 대화를 나눈 것이었다.

예를 들면 다음 표현을 한번 생각해보자.

너는 참 단호박 같은 성격이야.

부모님한테 등짝 스매싱 맞을 옷

이러한 표현들은 한국에서는 흔히 사용되지만, 일본에서는 사용되지 않는 표현들이다. 생각해보면 당연하다. 직역하면 정말 이상한 표현은 맞다.

일본에서 많이 쓰는 다음의 표현을 한번 봐보자. 동일한 느낌이다.

개구리화

한국어로 직역하면 이해하기 어렵지만, 그 뜻은 "내가 좋아하던 사람이 나를 좋아하면 싫어지는 현상..?" 이정도의 뜻을 가지고 있다.

이런 내용들을 공유하고 싶었다. 이러한 아이템이 니치마켓(Niche Market)을 형성할 수 있다고 생각했다. 그래서 개발을 시작했다.

근데, 개인적인 이유이지만 그 친구가 너무 좋아해줬다. 그냥 많은 것을 공유하고 싶었다. 개발 해볼까? 라는 생각을 실제로 실행할 수 있었던 것은 그 친구가 가장 큰 이유였던 것 같다.

2. 아키텍처

1인 개발임을 고려해서 다음 프레임워크를 선정했다.

  • React Native, Expo
  • Nest.js
  • Supabase
  • Google Cloud

이유는 단순했다. 하나의 언어만 사용하고(TypeScript) Infra 관리가 용이해야 한다고 생각했다.

그래서 ReactNative(Expo), Nest.js, Supabase를 선택했다.

프로젝트 아키텍처를 단순하게 이미지화하면 다음과 같다.

architecture.png

너무 단순하게 간 것 아닌가 싶을 수 있는데, 하나하나 무슨 의도로 선택했는지 설명하도록 하겠다.

잠깐! 채팅을 RDB 사용한 이유

사실 채팅과 같은 것은 NoSQL이 적합하다고 하는 것이 일반적이다. 나도 이에 동의한다.

하지만, MVP 기능에서부터 NoSQL을 도입하는 것은 오버엔지니어링이라고 판단했다.

또 현실적으로 1인 개발이었기에 인프라 관리가 용이해야했다. Supabase의 경우 RDB임에도 불구하고 실시간 기능을 지원하기에 RDB를 선택했다.

또, 채팅방이 여러개 있는 경우가 아니기에 이 형태로도 충분하다 판단했다.

3. 주요 기능

주요 기능은 너무 많아서, 시간 생기는대로 하나씩 게시물 형태로 추가해보도록 하겠다. (2026.02.04 해당 글 작성, 아직 업데이트 진행하지 않음.)