본문 바로가기

app/metalens9

MetaLens 개인정보 처리방침 (Privacy Policy) MetaLens 개인정보 처리방침 (Privacy Policy)시행일: 2025년 9월 4일안녕하세요! johjo.net입니다. 본 개인정보 처리방침은 MetaLens 앱(이하 '앱')이 사용자의 정보를 어떻게 다루는지에 대해 투명하게 설명하기 위해 작성되었습니다.저희는 사용자의 개인정보를 매우 중요하게 생각하며, 앱의 설계 단계부터 사용자의 프라이버시를 최우선으로 고려했습니다.✅ 핵심 원칙: 저희는 당신의 데이터를 수집하지 않습니다.MetaLens의 가장 중요한 원칙은 "모든 분석은 당신의 기기 안에서만 이루어진다" 는 것입니다. 저희는 사용자의 사진, 메타데이터를 포함한 어떠한 개인정보도 수집, 저장, 또는 외부 서버로 전송하지 않습니다. 당신의 모든 데이터는 온전히 당신의 기기에만 머무릅니다.1. .. 2025. 9. 4.
최종 조립 및 완성 : 메인 뷰(View)와 사용자 경험(UX) 향상 좋은 UX는 어떻게 사용자의 궁금증을 먼저 해결해주는가?시작하며 : 단순한 '조립'을 넘어 '경험'을 설계하다지난 포스팅 2025.09.03 - [app/metalens] - 생명을 불어넣는 작업 : 재사용 가능한 UI 컴포넌트(Components) 제작 에서 앱의 얼굴을 구성할 모든 UI 부품(Components)을 완성했다. EmptyStateView부터 ScoreCircleView, SummaryCardView 까지, 각자 하나의 책임만을 다하는 잘 만들어진 '레고 블록'들이다. 이제 남은 작업은 이 블록들을 PhotoInspectorView 라는 큰 판위에 조립하여 하나의 완성된 화면을 만드는 것이다. 하지만 이번 포스팅은 단순히 블록을 조립하는 방법을 설명하는 데 그치지 않는다. 한 걸음 더 .. 2025. 9. 4.
생명을 불어넣는 작업 : 재사용 가능한 UI 컴포넌트(Components) 제작 거대한 View를 잘게 쪼개는 것의 미학 시작하며 : 왜 View를 분리해야 하는가? 이전 포스팅까지의 여정으로 앱의 두뇌(ViewModel)와 심장(Service)을 모두 구현 했다. 로직과 UI의 지휘자 : 뷰모델(ViewModel)과 비동기 처리async/await와 @Published로 우아하게 상태를 관리하는 법시작하며 : 왜 '지휘자'가 필요한가? 이전 포스팅까지의 작업으로, 사진 데이터를 주면 분석 리포트를 뱉어내는 강력한 엔진(PhotoMetadataService)johjo.net 앱의 심장을 만들다 : 메타데이터 분석 서비스(Service) 구현ImageIO 프레임워크를 파헤쳐 사진의 비밀을 캐내다시작하며 : '실제 일'을 하는 녀석의 등장지난 포스팅에서 앱의 뼈대(Model)와 소통 규.. 2025. 9. 3.
로직과 UI의 지휘자 : 뷰모델(ViewModel)과 비동기 처리 async/await와 @Published로 우아하게 상태를 관리하는 법시작하며 : 왜 '지휘자'가 필요한가? 이전 포스팅까지의 작업으로, 사진 데이터를 주면 분석 리포트를 뱉어내는 강력한 엔진(PhotoMetadataService)을 만들었다. 이제 남은 것은 이 엔진을 UI와 연결하는 일이다. 하지만 여기서 많은 개발자들이 함정에 빠진다. View 코드 안에서 직접 서비스 로직을 호출하고, 상태를 관리하려는 시도를 하는 것이다. 이는 마치 레스토랑 홀 직원이 주방에 직접 들어가 요리하는 것과 같다. 결과는 엉망이 될 수밖에 없다. 그래서 ViewModel이라는 '지휘자' 혹은 '셰프'를 둔다. View(홀 직원)는 오직 ViewModel(셰프)에게 "손님이 사진을 골랐습니다"라고 주문만 전달한다. .. 2025. 9. 3.
앱의 심장을 만들다 : 메타데이터 분석 서비스(Service) 구현 ImageIO 프레임워크를 파헤쳐 사진의 비밀을 캐내다시작하며 : '실제 일'을 하는 녀석의 등장지난 포스팅에서 앱의 뼈대(Model)와 소통 규칙(Protocol)을 정의했다. 하지만 아직 앱은 아무일도 하지 못하는 빈 껍데기일 뿐이다. 이제 드디어, 이 뼈대에 살을 붙이고 피를 돌게 할 '심장', 즉 서비스(Service) 레이어를 구현할 차례다. Service는 우리 MVVM 아키텍처에서 '실제 일'을 하는 녀석이다. ViewModel로 부터 "사진 데이터 줄 테니 분석해줘"라는 요청을 받으면, 묵묵히 사진 파일을 파헤쳐 그 안에 숨겨진 비밀(메타데이터)을 캐내고, 우리가 정한 규칙(비즈니스 로직)에 따라 '원본성 점수'를 계산하여 최종 보고서(OriginalityReport)를 만들어내는 역할이다.. 2025. 9. 3.
데이터의 뼈대를 세우다: 모델(Model)과 프로토콜(Protocol) 정의 좋은 코드는 '무엇'을 담을지와 '어떻게' 소통할지를 먼저 정의한다. 시작하며 : '데이터'가 아닌 '모델'을 설계하는 이유이전 포스팅에서 프로젝트의 기반 공사를 마쳤다. 이제 실제 사진을 분석하고, 그 결과를 보여주는 코드를 작성해야 한다. 이때 가장 먼저 해야 할 일은 무엇일까? 바로 '데이터의 청사진'을 그리는 일이다. 이것을 '모델(Model) 설계' 라고 부르는데, 단순히 String, Int 같은 변수 뭉치가 아니라, 앱이 다루는 정보의 의미와 관게를 구조적으로 정의하는 과정이다. 예를 들어, '사진 분석 결과'는 무엇으로 구성되는가? '원본이 라는 증거'는 어떤 정보를 담아야 하는가? 이 청사진이 명확해야, 이후에 만들어질 모든 로직과 UI가 흔들림 없이 견고하게 세워질 수 있다. 이번 .. 2025. 9. 2.
집을 짓기 전 땅 다지기: 프로젝트 설정과 필수 유틸리티 좋은 앱은 잘 만든 AppError 와 Logger 에서 시작된다. 시작하며 : 왜 '기반 공사'가 중요한가?이전 포스팅에서 MetaLens 라는 앱의 청사진(기획과 아키텍처)을 그렸다.2025.09.02 - [app/metalens] - 메타렌즈 프로젝트 소개2025.09.02 - [app/metalens] - 바이브코딩을 위한 MetaLens 코딩 파트너 설정기 이제 본격적으로 코드로 집을 지을 차례다. 이제 몇번 프로젝트를 진행하다 보니 앱의 안정성과 확장성을 책임지기 위해서는 기초적인 설정들이 중요하다는 것을 깨달았다. 이번 포스팅에서는 기능 개발이라는 '인테리어'에 들어가기 전, 반드시 먼저 해야 할 '기반 공사'에 대해 다룬다. 구체적으로는 아래 3가지다. 글로벌 출시를 위한 완벽한 다국어 지.. 2025. 9. 2.
바이브코딩을 위한 MetaLens 코딩 파트너 설정기 최근 7~8월에 바이브코딩을 해보면서 정보성 글의 작성은 GPT로, 코딩 작업은 Gemini로 하는 것으로 마음 먹었다. 요즘 대세는 클로드라서 곧 배송 올 "요즘 바이브 코딩 클로드 코드 완벽 가이드"를 읽어보면 또 클로드로 바뀔 수도 있다. (유독 클로드 관련 책만 많이 출시 되는것 같은 느낌은 기분 탓 인가?) 요즘 바이브 코딩 클로드 코드 완벽 가이드 - 예스24★ 200달러 MAX 플랜으로 매일 10시간씩 실험하여 얻은 노하우를 모두 담았다!★ 어디에도 없는 클로드 코드 최강 팁과 노하우, 레시피를 빠르게 알고 싶다면?★ 이 책으로 천상계에서 개발하는 진www.yes24.com 아무튼, 지금은 Gemini로 한다. ULTRA 요금제도 결제 되어 있으니 안 할 이유가 없다. Gemini에서는 ".. 2025. 9. 2.
메타렌즈 프로젝트 소개 카카오톡으로 주고 받는 사진은 원본이 맞아요? 나는 아내의 친구들 8명과 '식스틴'(16개의 눈) 이라는 단톡방에 속해 있다. IT관련 질문을 곧 잘 하는 아내의 친구들중 한명은 어느 평범한 저녁, 조심스럽게 물어왔다. 그녀의 직업은 변호사다. 단순한 질문이었지만, 내 머릿속을 강타했다. 디지털 시대에 살고 있는 우리에게 사진은 단순한 기록을 넘어, 때로는 계약의 증거가, 때로는 법적 효력을 갖는 자료가 된다. 하지만 손가락 하나로 너무나 쉽게 편집되고, 메신저를 거치며 원본 정보가 소실되는 디지털 사진의 양면성을 그 질문을 통해 다시금 깨닫게 되었다. 일반인은 물론, 변호사 같은 전문가조차 사진의 '진위'를 판별하는 데 어려움을 겪고 있다는 사실. 이 앱은 유틸성 앱이고, ImageIO, CoreL.. 2025. 9. 2.