site-icon Hong Cheung
    1. 나의 궁극의 스택 선택.

      마침내 정착한 것은... Expo - 웹과 모바일 모두를 위해 순수 웹 앱을 개발하고 Capacitor 같은 것으로 감싸는 편리함을 원했지만(심지어 Tauri도 포함해서), 웹뷰가 현대 기술과 너무 다르게 동작하는 탓에 Android에서 작동시키는 데 애를 먹었다. Tauri는 데스크톱에 집중할 수 있다는 점이 장점이다. 그러나 기껏해야 모든 플랫폼을 위한 래퍼에 불과하다. 웹 기술의 한계, 예컨대 휴대폰에서 드래그 제스처를 위한 우회 방법이 필요하다든지, 오프라인 저장 용량 같은 문제를 겪게 될 것이다. 어쨌든 나...

      더 읽기 →

    1. 이 블로그의 미래? 로그인과 댓글 시스템?

      이 사이트에 백엔드를 추가한다고? 사이트에서 자체 댓글 시스템과 알림 기능을 운영하고 싶다. 그래야 방문자가 관심 있는 주제를 구독할 수 있다. 그리고 이 계정은 내 Intenca 프로젝트 계정을 사용할 것이다. 내 글을 보는 사람은 대부분 학습자일 테니(아마도?), 학습 또는 공부 도구 브랜드를 만들고 싶다. 방문자는 자유롭게 댓글을 달고 태그를 구독할 수 있을 것이다. 아니면 이 사이트에서 사용할 수 있는 앱을 몇 개 제공할 수도 있다. 하지만 무슨 일이 있어도 먼저 그 도구 모음을 만들어야 한다.

    1. JSON 파일을 사용하는 프로젝트 페이지를 추가했습니다.

      예전 개인 사이트에서 이 사이트로 이전하기 아직 "Website" JSON을 이 사이트로 옮기지는 못했습니다. 하지만 지금까지는 "Apps" 쪽은 꽤 잘 되어 가고 있습니다. 인라인 Javascript를 다룰 때 Astro는 NextJS만큼 편리하지는 않습니다. 그래도 기본적인 클라이언트 사이드 렌더링에는 충분합니다. 방문자도 늘어난 것 같습니다 WordPress 사이트에서 이 Astro 사이트로 바꾼 뒤로 방문자가 늘어난 것 같습니다. 착각이 아니라면요. 그래도 WordPress보다 웹 개발 프레임워크가 좋습니...

      더 읽기 →

    1. 이 사이트를 다듬는 데 이틀이 걸렸습니다.

      거의 다 됐어요! 그동안 저는 이 웹사이트의 콘텐츠를 공급하기 위해 Obsidian을 CMS로 사용하려고 해 왔습니다. 블로그 글과 피드까지 포함해서요. 관리가 더 쉽다는 이유로 개인 사이트와 블로그를 분리하던 방식을 하나로 통합했습니다. 또 블로그로 유입되는 트래픽이 제 사이드 앱과 앞으로의 사업에 도움이 될 수 있을지도 확인해 보고 싶었습니다. 그래서 저는 개인 브랜드를 구축하는 쪽에 더 가깝습니다. 그와 동시에 글쓰기 실력도 연습하고 있고요. 소셜 미디어와 영상을 할 수도 있었지만, 저는 그런 사람이 아닙니다. 차...

      더 읽기 →

    1. 피드와 블로그를 모두 제공하는 웹사이트 만들기

      아이디어 제 개인 블로그와 개인 웹사이트가 분리되어 있었습니다. 그래서 두 사이트를 하나로 합쳐서 쉽게 관리하고 싶었습니다. 그래서 이 사이트에서는 제 개인 프로젝트와 피드, 그리고 글을 모두 보여줄 예정입니다. 템플릿 Astro-Yi를 기반으로 삼아 제 취향에 맞게 수정하고 있습니다. 만드신 분의 노력에 정말 감사드립니다. 이 사이트 템플릿은 훌륭하고 제가 필요로 하는 모든 것을 충족해 줍니다. 뒷이야기 다만 한 가지는 다르게 하고 있습니다. 바로 Obsidian을 CMS로 사용하는 것입니다. 원래부터 노트를...

      더 읽기 →

    1. 이 사이트에 레이더 차트를 추가했습니다

      레이더 차트와 소개를 추가했습니다. 좀 더 길게 쓰고 싶기도 하지만, 간단하게 정리하겠습니다. 제가 해오던 일과 맞추기 위해 웹사이트를 개편하고 있습니다. 일본어와 스페인어를 진지하게 배우고 있어서, 그 과정에서 얻은 발견과 학습 방법을 웹사이트에서 공유하고 싶습니다. 다만 어떻게, 어디에 올릴지는 아직 고민 중입니다.

    1. 차세대 빅씽 스택 재고…

      Android에서 Capacitor는 너무 짜증나... 구형 웹뷰. tailwind가 작동하게 만들 수 없었다. 스타일을 적용할 수 있다 해도, Android에서는 상태가 왠지 반응형으로 작동하지 않는다. 아니면, 내비게이션 문제가 생길 것이다. Expo와 함께 React Native 재고 의존성 지옥은 사실이지만, 내 다음 프로젝트는 오프라인 우선의 로컬 설치 가능 앱이어야 한다. 그래서 모바일에는 RN을 쓰고 Electron으로 감싸는 것이 로컬 React로 감싼 앱보다 더 합리적이다. 하지만 Appwrite +...

      더 읽기 →

    1. ZenTube 4.1 제출 및 Capacitor + Next.js 관련 문제

      ZenTube 4.1 - 심사 대기 중... 오늘 4.1 버전의 버그 몇 가지를 수정하고 App Store 심사에 제출했습니다. 평소처럼 기다리는 중입니다... 다음 업데이트에서는 딥 링크를 구현해야 합니다. React Native Web VS Next.js 웹 앱 + Capacitor 사이의 고민 Next.js 웹 앱에 Capacitor를 사용하려고 했습니다. 그런데 몇 가지 사실을 알게 되었습니다: 1. Android에서의 Capacitor <Link> 문제 iOS에서는 잘 작동하지만, Android...

      더 읽기 →

    1. ZenTube 4.1 (출시 예정 기능) & 이 로그에 Gicus 댓글 추가

      새로운 기능 - (탐색용) 토글 옵션: - 검색 결과의 Shorts - 검색 기록 텍스트 - 댓글 - 탐색 탭에서 바로 나중에 볼 영상에 추가 - 검색 바를 탭할 때 검색 제안 숨기기 ## 로그 & 교훈 하루 종일 ZenTube 작업을 했습니다. 꽤 오랜만이었지만, 해서 기쁩니다. ZenTube에 1점 리뷰가 2개 더 달린 것도 보입니다. 직감적으로는 제가 그 기능들을 작업하겠다고 했는데 앱을 업데이트하지 않아서인가? 아니면 그냥 화난 사용자들인가? 전혀 알 수 없습니다. 리뷰를 전혀 남기지 않았...

      더 읽기 →

    1. 마침내 Appwrite와 RxDB에서 오프라인 동기화를 작동시키다

      서론 어렵지는 않았지만, 그렇다고 해서 바로 쓸 수 있는 건 아니었다. 기반을 제대로 돌아가게 만드는 데 몇 주가 걸렸는데, 가장 큰 어려움은 예제와 튜토리얼이 부족하다는 점이었다. Powersync + Supabase와 비교하거나 그냥 Firebase를 쓰는 것과 비교하면, 이건 확실히 어느 정도 설정이 필요하다. 구현 Appwrite + RxDB를 구현하는 방법에 대한 git 예제가 포함된 공식 블로그 글이 있었다. 하지만 내가 직접 해보니 다소 버그가 있었고, 실시간 동기화도 되지 않았다. 그래서 결국 Appwri...

      더 읽기 →

    1. ZenTube 백엔드에 새로운 기능 추가하기

      퇴근 후 반나절을 ZenTube 앱에 새로운 API 엔드포인트를 추가하는 데만 썼다. 브라우저에서는 JSON 응답이 깨져 나왔는데 curl로는 완벽하게 잘 나왔다. 그래서 문제의 원인이 소스가 아니라 API가 응답을 처리하거나 반환하는 방식이라는 걸 알 수 있었다. 몇 시간 후에 해결책을 찾았는데, 에서 읽어볼 수 있다. 사용자들에게 약속한 걸 지키기 위해 ZenTube 개발을 계속할...

      더 읽기 →

    1. 개발 로그 타임라인을 정적 독립 페이지로 생성하도록 업데이트함

      타임라인 개발 로그를 독립 페이지로 확장 이 웹사이트 작업을 마친 뒤 몇 시간을 더 보냈다. 당신이 긱이라는 건 알고 있다. 내 사이트는 셀프 호스팅 로컬 Directus 위에 구축되어 있고, 정적 출력은 NextJS로 만든다. Directus가 훌륭한 이유 나는 이 타임라인을 CMS로 Directus를 사용해 만들었다. 예전에 이것저것 만져본 경험이 있어서 자연스럽게 선택하게 되었다. 장점 - 매우 다재다능함 - 물론 셀프 호스팅 - 내가 직접 만드는 모든 것의 백엔드로 사용할 수 있음 단점 - 없음 :...

      더 읽기 →

    1. 다음 대형 프로젝트를 위한 최종 스택 결정 - Appwrite + Capacitor + RxDB

      자본주의에서 벗어나기 위해 모든 것을 셀프 호스팅하는 방법을 고민해 왔는데, 정말 쉽지 않았습니다. 규모의 경제와 자본주의는 떼려야 뗄 수 없는 관계입니다. 회사가 클수록 더 저렴하고 더 나은 서비스를 제공할 수 있죠. 이런 독점 기업들에게 아니라고 말하기 위해서는 어느 정도 희생을 감수해야 합니다. 저는 시간을 들여 배우고 이것저것 만져 보았습니다. 정말 그만한 가치가 있기를 바랍니다. 지난 몇 주 동안 크로스 플랫폼, 로컬 우선 동기화를 구현하기 위해 수많은 스택을 시도해 보았습니다. 네이티브 플랫폼, RN Expo, Le...

      더 읽기 →

    1. 오프라인 동기화를 구현하기 위해 Supabase 셀프 호스팅과 LegendState를 학습했습니다

      최적의 스택을 찾아내려고 하루를 또 보냈습니다. 아직 Appwrite를 시도하고 있었는데, 100% 작동하게 만든 적이 없습니다. Supabase + LegendState 조합은 별다른 설정 없이도 충분히 쓸 만한 것 같습니다. 다음 프로젝트에 이걸 사용할 겁니다. 다음 단계는 메일 지원 등으로 인스턴스를 세밀하게 조정하는 것이겠죠. 그러면 다음 대작을 만들 준비가 될 겁니다, 하하. 내일은 ZenTube 작업을 할 겁니다.

    1. ZenTube 4.0 출시, LegendState·Appwrite·Supabase를 두고 고민하며 배우는 중.

      ZenTube 새 버전을 출시한 뒤로 불만 메일이 한 통도 오지 않아서, 잘 돌아가고 있는 것 같아요! 이제 큰일(데이터베이스 마이그레이션)은 끝났으니 앞으로도 계속 버그를 고치고 새 기능을 추가할 생각이에요. 머릿속에 있는 아이디어는 이렇습니다: 1. 시청 타임스탬프 추가 2. 카테고리 타이머 - 카테고리별로 얼마나 시간을 썼는지 스스로 돌아볼 수 있는 차트를 보여주거나, 아예 시간 제한을 설정할 수 있게 하는 것. Appwrite와 LegendState 배우기 오프라인 우선 동기화를 지원하는 LegendState...

      더 읽기 →

    1. ZenTube 4.0.3 업데이트를 심사에 제출했습니다. 동생의 웹사이트 작업을 계속합니다.

      - ZenTube 4.0.3을 Apple에 심사 제출했습니다. 모든 게 잘 풀리길 바랍니다! (행운을 빌며) - 동생의 웹사이트 작업을 계속하고 있습니다. 다른 페이지들을 말이죠. 다만 생각보다 오래 걸리고 있는데, 원본처럼 슬라이드가 들어오고 나가는 멋진 애니메이션을 넣고 싶었기 때문입니다. 그런데 그런 작업은 시간이 오래 걸리네요. 동생이 쓸 수 있도록 첫 버전을 완성하려면 당장은 눈이 번쩍 뜨이는 요소 몇 가지는 건너뛰어야 할 것 같습니다.

    1. 앱 스토어에 제출하기 전 ZenTube 추가 테스트

      드디어 의 동기화 기능을 완성했습니다. 앱 로직을 GRDB에서 CoreData를 사용하도록 다시 작성하는 데 꽤 오랜 시간이 걸렸네요. 이제 사용자들이 모든 기기에서 수동으로 업로드하고 다운로드할 필요 없이 더 효율적으로 동기화할 수 있습니다.

    1. 프로필 웹사이트로 만든 파이널 판타지 7 메뉴

      동생의 웹사이트를 만들고 있었어요. 동생이 파이널 판타지 VII를 정말 좋아해서, 이렇게 만들어 주기로 했습니다:

    1. 진행 상황을 기록하기 위해 이 타임라인을 만들었습니다

      이 날짜 이전에도 많은 일을 해왔습니다. 여기에는 2~3년 동안 프로그래밍을 독학해 온 여정도 포함됩니다. 그 과정에서 몇몇 앱과 웹사이트를 만들었습니다. 저는 제 웹사이트에 진행 상황을 기록하기 시작하기로 했습니다. 주로 제 유산을 저장하는 데 빅테크나 어떤 제3자에게도 의존하고 싶지 않기 때문입니다. 어떤 의미에서 자본주의에 '아니오'라고 말하는 저만의 방식인 셈이죠.

    1. 안녕하세요, 세계

      안녕하세요, 세계!

Copyright 2026
사이트맵
개인정보 처리방침
서비스 약관

테마 제공 Astro-Yi