글자 크기

Choviet

베트남 당근마켓 Choviet 빌드 로그

5주차 빌드 로그: 채팅 V1 — 거래는 결국 대화다

이번 주에 내가 만든 건 단순히 채팅 기능이 아니다. 앱 안에 “사람과 사람 사이의 길”을 하나 뚫어 둔 것에 가깝다. 마켓이든 동네 앱이든, 결국 마지막은 늘 이 한 문장으로 귀결된다. “혹시 지금 가능하세요?” “네, 어디서 볼까요?” 그 대화를 앱 안에서 시작할 수 있게 만드는 것. 그게 이번 5주차의 목표였고, 결론적으로 Chat V1을 완성했다. 이번 주의 계속 읽기 →

5주차 빌드 로그: 채팅 V1 — 거래는 결국 대화다 더 읽기"

4주차 빌드 로그: 검색이 풀리지 않게 만들었다

4주차의 목표는 단순했다. 사람들이 글(포스트)을 더 잘 찾게 만들기. 근데 개발은 늘 그렇다. 검색 기능 추가는 쉬운데, 검색이 풀리지 않게 만드는 건 어렵다. 검색어를 넣고, 필터를 고르고, 정렬까지 선택해놓고 2페이지를 눌렀더니… 전부 초기화. 이건 사용자가 아니라, 개발자가 사람을 배신한 UX다. 그래서 이번 주는 기능보다 더 중요한 것— 문맥(context)을 지키는 검색 경험을 만드는 데 집중했다. 1) 계속 읽기 →

4주차 빌드 로그: 검색이 풀리지 않게 만들었다 더 읽기"

Lightsail 인스턴스 업그레이드 삽질기 — 512MB에서 2GB로, 생각보다 험난했던 여정

— 512MB에서 2GB로, 생각보다 험난했던 여정 시작은 단순했다 choviet.chat은 베트남 커뮤니티를 위한 서비스다. 당근마켓처럼 중고거래, 질문답변, 자유게시판이 있다. 그런데 서버가 512MB RAM이었다. MVP라서 작게 시작했지만, 아무리 MVP라도 512MB는 너무 작았다. 이미지 업로드, 검색, 실시간 알림까지 생각하면 최소 1~2GB는 필요했다. “업그레이드하자.” 단순한 결정이었다. 그런데 Lightsail은 단순하지 않았다. Lightsail의 불편한 진실 AWS Lightsail에서는 인스턴스를 직접 업그레이드할 수 계속 읽기 →

Lightsail 인스턴스 업그레이드 삽질기 — 512MB에서 2GB로, 생각보다 험난했던 여정 더 읽기"

CI는 고쳐야 할 문제가 아니라, 말을 걸어오는 방식이다

배포가 성공했다는 건, 사실 끝이 아니라 시작이다. 특히 혼자 만들고, 혼자 배포하고, 혼자 책임지는 프로젝트라면 더 그렇다. healthnote는 며칠 전 무사히 프로덕션에 올라갔다. 도메인도 붙었고, 모바일에서도 접속된다. 겉으로 보면 “이제 되는 것처럼” 보인다. 하지만 진짜 일은 그다음부터 시작됐다. CI가 말을 걸어오기 시작했기 때문이다. “로컬에서는 되는데요?” CI 에러의 시작은 늘 이 문장이다. 로컬에서는 되는데요? 이번에도 그랬다. 계속 읽기 →

CI는 고쳐야 할 문제가 아니라, 말을 걸어오는 방식이다 더 읽기"

Choviet 빌드 로그 8화: 세상에 문을 연다

만들기만 하면 뭐하나. 세상에 내놓아야 한다. 서랍 속 원고는 소설이 아니다. 💡 만들기만 하면 뭐하나.세상에 내놓아야 한다. 서버에 안 올린 앱은 앱이 아니다. 배포 무서운 단어다. 코드가 내 컴퓨터를 떠나서, 인터넷 어딘가에 살게 된다. 누구나 접속할 수 있다. 누구나 내 실수를 볼 수 있다. 그래도 해야 한다. Render.com Heroku 무료가 사라진 뒤, 가장 좋은 대안. 계속 읽기 →

Choviet 빌드 로그 8화: 세상에 문을 연다 더 읽기"

Choviet 빌드 로그 7화: 안전장치를 만든다

앱이 커지면, 나쁜 사람도 온다. 사기꾼, 스팸, 불쾌한 메시지. 이걸 막을 방법이 필요하다. 신고 기능 이상한 사람을 만나면, 신고 버튼을 누른다. 신고가 쌓이면, 관리자가 확인하고 조치한다. 혼자서 모든 걸 막을 순 없다. 하지만 신고할 수 있어야 한다. 차단 기능 신고보다 간단한 해결책. 그냥 안 보이게 한다. 차단한 사람의 글은 안 보인다. 메시지도 안 온다. 내 계속 읽기 →

Choviet 빌드 로그 7화: 안전장치를 만든다 더 읽기"

Choviet 빌드 로그 6화: 대화가 시작된다

중고거래의 핵심은 뭘까. 물건? 가격? 아니다. 대화다. 💡 대화 없으면 거래도 없다.그래서 채팅을 만든다. “이거 아직 있어요?” “네, 있어요. 언제 만날까요?” 이 대화가 없으면 거래도 없다. 실시간 채팅 보통 채팅은 어렵다. WebSocket, 서버 설정, 복잡한 구조. 하지만 Rails 7에는 Turbo Streams가 있다. 새로고침 없이, 메시지가 실시간으로 나타난다. 마법 같지만, 사실은 Rails가 알아서 해주는 것이다. 구조 계속 읽기 →

Choviet 빌드 로그 6화: 대화가 시작된다 더 읽기"

Choviet 빌드 로그 5화: 못생긴 앱을 예쁘게

기능은 만들었다. 하지만 못생겼다. 기본 Rails 화면. 회색, 검정, 링크 파란색. 아무도 쓰고 싶지 않은 모습이다. Tailwind CSS CSS 프레임워크. 클래스 이름만 붙이면 디자인이 된다. <button class=”bg-blue-500 text-white px-4 py-2 rounded”> 버튼 </button> 이렇게 쓰면, 파란 배경에 흰 글씨, 둥근 모서리 버튼이 나온다. 디자이너 없이도 만들 수 있다. 💡 Tailwind CSS.디자이너 없이도 만들 수 있다. 계속 읽기 →

Choviet 빌드 로그 5화: 못생긴 앱을 예쁘게 더 읽기"

Choviet 빌드 로그 4화: 첫 번째 코드

드디어 코드를 친다. 터미널을 열고, 명령어를 입력한다. rails new choviet -d postgresql 그렇게 프로젝트가 시작됐다. 첫 번째 벽: 데이터베이스 PostgreSQL. 이름부터 어렵다. 설치하고, 설정하고, 연결하고. 에러가 났다. 다시 했다. 또 에러. 삽질이라는 건 이런 거구나. 결국 됐다. 몇 시간 걸렸는지 모르겠다. 사용자 인증: Devise 회원가입, 로그인. 직접 만들면 일주일이다. 그래서 Devise를 쓴다. gem ‘devise’ rails 계속 읽기 →

Choviet 빌드 로그 4화: 첫 번째 코드 더 읽기"

Choviet 빌드 로그 3화: 코드 전에 그림을 그린다

코드를 치기 전에, 그림을 그려야 한다. 와이어프레임. 설계도 같은 것이다. 집을 지을 때 청사진 없이 벽돌부터 쌓지 않듯, 앱도 마찬가지다. 4개 화면, 하나씩 그려본다 1. 홈 화면 거래글이 카드 형태로 쭉 나열된다. 사진, 제목, 가격, 위치. 스크롤하면 더 나온다. 단순하게. 직관적으로. 2. 글쓰기 사진 올리고, 제목 쓰고, 가격 적고, 설명 넣는다. 버튼 하나 누르면 끝. 계속 읽기 →

Choviet 빌드 로그 3화: 코드 전에 그림을 그린다 더 읽기"