포트폴리오/[IoT 기반 피지컬 AI 교육일지]

[ 안드로이드 미니 프로젝트 ] #2 바이브코딩 기능 확장 및 AI 컨텍스트 관리 (39일차 기록)

개발자혜콩 2026. 4. 21. 16:25

 

"유행 일타강사: 부모-자녀 세대 소통을 돕는 트렌드 커뮤니티 앱"

 

프로젝트 소개

"유행 일타강사" 는 급변하는 신조어와 트렌드로 인해 자녀와 소통이 어려운 부모님을 위한 안드로이드 앱이다.

에듀윌 조사에 따르면 성인 10명 중 8명이 신조어 때문에 세대 간 대화에 어려움을 겪고 있다고 한다.

"두쫀쿠", "느좋", "가나디" 같은 표현은 자녀에게는 당연하지만 부모에게는 외계어나 다름없다.

이 앱은 두 가지 방향으로 문제를 해결한다.

  • 일타강사 모드 (트렌드 사전): 유행어와 핫한 간식 정보를 눈높이에 맞춰 모아놓고, 단순히 뜻만 알려주는 게 아니라 "아이들과 대화할 때 이렇게 써보세요!" 같은 실전 꿀팁까지 제공
  • 부모님 전용 커뮤니티: 회원가입 후 전용 게시판에서 유행어 질문, 자녀와의 소통 에피소드, 꿀팁 등을 자유롭게 공유

기술 스택: Java, Android Studio, Room DB (SQLite), MVVM 아키텍처, SharedPreferences

개발 기간: 3/31 ~ 4/3

(설계 0.5일 + 바이브코딩 1일 + 직접 코딩 1일 + 마무리 정리 0.5일)


1. 오늘 한 것

① 트렌드 사전 리스트 및 검색 기능 구현

  • 필터링: ChipGroup을 통해 카테고리(줄임말, 음식, 밈 등) 필터를 적용하고, TextWatcher로 입력값을 감지해 ViewModel에서 실시간 검색 쿼리를 처리함.
  • 디테일: 카테고리별로 뱃지 스타일을 분리(colors.xml, drawable)하고, 항목 클릭 시 Fragment 간 Bundle로 5개의 필드 데이터를 안전하게 넘겨주도록 구현.

② 커뮤니티 피드 및 글쓰기 기능 구성

  • 게시물 목록: OnPostActionListener 인터페이스를 통해 RecyclerView Adapter의 클릭 이벤트를 Fragment로 위임.
  • 좋아요 동기화: SharedPreferences의 StringSet을 활용해 현재 좋아요 상태를 동기 조회하고, 토글 시 DB와 Set을 동시 업데이트.
  • 상대적 시간: System.currentTimeMillis()의 차이를 계산해 "방금 전, n분 전, n일 전" 형식으로 자동 포맷팅.
  • 글쓰기 바텀 시트: Spinner를 활용해 분위기 텍스트 배열과 이모지 배열을 1:1로 매핑하여 직관적인 UX 제공.

③ 프로필 화면 및 로그아웃

  • 비로그인/로그인 상태에 따라 UI 그룹(Group)을 분기 처리.
  • LiveData 구독을 통해 유저가 작성한 게시물 수와 받은 좋아요 수를 실시간 집계.
  • 로그아웃 시 백스택(BackStack)을 완전히 비우기 위해 FLAG_ACTIVITY_NEW_TASK | CLEAR_TASK 인텐트 플래그 적용.

2. 문제 / 정렬 헷갈린 점

① 길어진 컨텍스트가 부른 AI의 환각(Hallucination)

  • 상황: 프로젝트 2일차에 접어들며 AI와의 대화 기록이 길어지자, AI가 앞뒤가 안 맞는 코드를 짜주거나 이전에 정의한 로직을 무시하기 시작함.
  • 해결: 특히 Fragment 간 데이터 전달 시 직접 객체를 넘기려 하거나, ViewModel 스코프를 잘못 잡는 치명적인 에러들이 발생. 결국 AI의 코드를 100% 맹신하지 않고, 안드로이드 생명주기 규칙에 어긋나는 부분은 직접 코드를 수정해가며 방향을 통제해야 했음.

3. 오늘 배운 핵심

  • AI 코딩은 '소통'이자 '통제'다: 뼈대를 잡는 건 빠르지만, 프로젝트가 커지고 복잡해질수록 개발자가 직접 컨텍스트를 제어하고 로직의 흐름을 바로잡는 코드 리뷰어 역할을 제대로 수행해야 한다.
  • SharedPreferences의 한계와 활용: StringSet을 이용한 좋아요 관리는 빠르고 간편하지만, 동시성 문제나 복잡한 쿼리에는 한계가 있으므로 적재적소에 Room DB와 나누어 써야 한다.

4. 다음 목표

  • AI 의존도를 잠시 낮추고, 하루 동안 홈 화면, 네비게이션, 커스텀 다이얼로그 등을 바닥부터 **'직접 코딩'**하여 핵심 컴포넌트들의 동작 원리 체득하기.