← Back to All Projects
CASE STUDY 12/2023.09경 — 2023년 말
지도 위에 위치와 감정을 기록하고 친구와 공유하는 감정 중심 Android SNS 앱.

THEIA

일반적인 SNS의 과시적 소통 대신 일상의 감정과 추억을 솔직하게 공유할 수 있도록 기획한 위치 기반 소셜 서비스다. 사용자는 지도에 감정별 핑을 남기고 주변 기록과 친구의 프로필을 탐색할 수 있다. 백엔드 전체 개발을 담당해 FastAPI·MySQL 기반 게시물·사용자 API와 데이터 저장 로직을 구현했으며, 앱은 완성했으나 외부에 배포하지 않았다.

Period2023.09경 — 2023년 말
Role & Contribution백엔드 전체 · API·DB·이미지 처리·클라이언트 연동 QA팀 WAY
Tech Stack
PythonFastAPISQLAlchemyMySQLPyMySQLAndroidKotlinJetpack ComposeGoogle Maps카카오 로그인
01감정 핑이 표시된 지도 메인 화면
02친구 프로필과 팔로우 화면
03사용자 검색과 검색 결과 화면
04지도에 남길 감정을 선택하는 화면
05카카오 로그인과 신규 사용자 진입 화면
01 / Project Details

만들게 된 배경

기존 SNS에서는 자신의 모습을 꾸며 보여 주거나 관계를 관리해야 한다는 부담이 생기고, 진솔한 감정 표현은 상대적으로 어려워진다는 문제의식에서 출발했다. THEIA는 장소와 감정을 연결해 일상의 순간을 기록하고 친한 사람들과 공유할 수 있도록 기획한 SNS다.

개발 기간

2023년 9월경 — 2023년 말

02 / Project Details

해결하려던 문제와 목표

텍스트·사진 위주의 일반적인 피드 대신 사용자 위치와 감정을 결합한 지도형 게시물(핑)을 핵심 경험으로 설정했다. 사용자가 감정을 남긴 장소와 주변 기록을 확인하고, 검색·팔로우 기능으로 친구와 연결되는 Android 서비스를 구현하는 것이 목표였다.

03 / Project Details

주요 기능

  1. 로그인 및 사용자 관리: 카카오 계정 로그인과 신규 가입 화면, 자동 로그인 흐름을 구성. 백엔드에서 사용자 정보 조회 등 관련 API를 처리.
  2. 위치 기반 감정 핑 작성: 위치 좌표·내용·감정·작성자 정보를 게시물로 저장하는 API 구현. Android 지도에서 감정별 핑을 작성하는 화면 제공.
  3. 이미지 첨부 게시물: 선택적 이미지 업로드를 받아 서버 정적 폴더에 저장하고 게시물 레코드에 이미지 경로 연결. 친한 친구 공개 여부를 표현하는 데이터 필드 존재.
  4. 사용자 검색·팔로우: 앱의 검색·프로필·팔로우 화면과 이에 대응하는 백엔드 API 구성. 연동 QA 기록에서 관련 수정 사항 확인.
  5. 주변 핑 조회: 사용자 및 위치 좌표를 전달받아 주변 기록을 조회하는 API 구성. 테스트 로그에서 관련 요청의 정상 HTTP 응답 확인.
04 / Project Details

내가 직접 구현하거나 담당한 부분

백엔드 전체 개발을 담당했다.

  • API: FastAPI 기반 사용자·게시물·검색·팔로우·주변 핑 조회 기능.
  • 데이터: SQLAlchemy·MySQL을 통한 저장·조회 구조.
  • 게시물·이미지: 텍스트·위치·감정·공개 범위 처리와 선택적 이미지 파일 저장.
  • 연동·QA: 클라이언트 연동 단계에서 검색·주변 게시물·팔로우 관련 API 점검·수정.

Jetpack Compose 기반 Android UI와 지도 화면은 다른 팀원이 담당했다.

팀 구성과 역할

팀 WAY / 백엔드 전체 개발 담당 · Android 프론트엔드는 팀원 담당

05 / Project Details

설계 구조와 기술

Android(Kotlin·Jetpack Compose·Google Maps) → FastAPI(Python) → MySQL 구조다. 앱은 로그인·지도·핑 작성·사용자 탐색을 제공하고, 백엔드는 SQLAlchemy로 데이터를 처리한다.

/create_post/는 작성자 ID, 텍스트, 위도·경도, 감정, 친한 친구 공개 여부와 선택적 이미지를 받는다. 이미지는 static/images/posts/에 저장하고 경로를 게시물에 연결한다. 주변 핑 조회에는 사용자 정보와 좌표를 전달한다.

기술 구성

  • Mobile (팀원 담당): Android, Kotlin, Jetpack Compose, Google Maps
  • Backend (본인 담당): Python, FastAPI, SQLAlchemy
  • Database: MySQL, PyMySQL
  • External: 카카오 로그인, Google Maps
  • File Storage: 서버 정적 디렉터리에 게시물 이미지 저장
06 / Project Details

가장 어려웠던 문제

가장 어려웠던 문제: 프런트엔드 개발 일정이 늦어져 백엔드 통합 QA가 마감 직전에 집중된 것.

진행 과정: 화면과 API를 연결하면서 사용자 이름 검색(search_users_by_name), 주변 게시물의 본인 핑 노출과 팔로우 정보 관련 API를 점검·수정했다.

결과: 프로젝트를 완성했으며, 2023년 12월 21일 서버 테스트에서 게시물 생성·주변 핑·사용자 상세·팔로워 조회의 200 OK 응답을 확인했다.

07 / Project Details

최종 결과 / 실제 사용 여부

Android 앱과 FastAPI 백엔드를 완성하고 API 연동 테스트를 진행했다. 외부 배포와 앱 스토어 출시는 진행하지 않았다.

08 / Project Details

배운 점

FastAPI·SQLAlchemy·MySQL로 위치·감정·이미지·공개 범위를 가진 게시물 데이터를 처리하고, Android 클라이언트의 요구 사항을 백엔드 API에 연결하는 경험을 얻었다. 특히 프론트엔드 일정이 늦어지면 백엔드의 통합 QA와 버그 수정 기간까지 압축된다는 점을 겪으며, 초기 API 규격 합의와 단계별 연동 테스트의 중요성을 확인했다.

09 / Project Details

개선 방향

API 명세와 테스트 요청을 먼저 공유하고, 검색·팔로우·주변 핑 노출을 단계별로 검증하는 협업 절차를 보완할 수 있다. 친구 공개 범위의 서버 접근 제어와 이미지 업로드 검증도 테스트를 강화할 영역이다.