AI 툴로 편집한 Spring.Net + NHibernate 학습 가이드를 만들어봤습니다. 레거시 시스템을 분석하고 유지보수 및 추후 개발을 하기 위해 완전히 동일한 형태는 아니지만, .Net 쪽에서 당시 Spring 형태로 만들려고 했던 Spring.Net 과 Nhibernate 의 이해도를 높이기 위해 작성하였습니다. 아직 가이드 데로 코딩까지는 안해봤지만, 앞으로 내용을 검토해 가며, 업데이트 하려고 합니다.
[소개영상]
🚀 당신의 .NET 엔터프라이즈 개발 여정을 위한 완벽한 가이드
.NET 생태계에서 Spring.NET과 NHibernate는 강력한 엔터프라이즈 애플리케이션을 구축하는 데 필수적인 프레임워크입니다. 하지만 아쉽게도 이 두 기술을 효과적으로 조합하여 실무에 적용하는 방법에 대한 양질의 한글 자료는 부족한 것이 현실입니다.
여기, 바로 그 갈증을 해소해 줄 프로젝트를 소개합니다! "Spring.NET + NHibernate 완벽 학습 가이드"는 기초부터 고급까지, 실무에 필요한 모든 지식을 체계적이고 단계적으로 안내하는 종합 튜토리얼 시리즈입니다.
Spring.Net 의 기본 개념
💡 왜 이 가이드를 선택해야 할까요?
한글 자료의 갈증 해소: Spring.NET과 NHibernate에 대한 깊이 있는 한글 학습 자료를 찾기 어려웠던 분들을 위해 제작되었습니다.
실전 프로젝트 중심: 단순히 이론만 나열하는 것이 아니라, 게시판, 사용자 관리, 쇼핑몰 시스템과 같은 실제 프로젝트를 직접 구축하며 학습합니다.
체계적인 단계별 학습: 00번부터 19번까지, 총 20개의 튜토리얼을 순서대로 따라가다 보면 어느새 전문가 수준의 지식을 갖추게 될 것입니다.
최신 모범 사례 반영: 의존성 주입(DI) 일관성, Spring.NET 기반의 Unit of Work 패턴, 선언적 트랜잭션, NHibernate 필터 기반 Soft Delete, 이벤트 리스너 기반 Audit Trail 등 현대적인 아키텍처 및 디자인 패턴을 적용했습니다.
완벽한 예제 코드: 각 튜토리얼마다 동작하는 완전한 예제 코드가 제공되어, 개념을 즉시 실습하고 확인할 수 있습니다.
노블 증권의 애널리스트에 따르면, ‘위쳐 3’ 확장팩 출시 일정은 2026년 5월로 예정되어 있으며, CD PROJEKT 주식 매수를 권고하고 있다. 노블 증권의 애널리스트 마테우시 크르자노프스키는 최근 보고서에서 CD 프로젝트의 주요 프로젝트 일정과 예산을 업데이트했다. 그는 2026년 5월 ‘위쳐 3’ 유료 확장팩 출시와 2027년 4분기 ‘위쳐 4’ 출시를 예상하며, 삼부작 전체의 제작 및 마케팅 비용이 크게 증가할 것으로 전망했다. 이후에는 멀티플레이어 요소가 포함된 사이버펑크 게임 ‘오리온(Orion)'이 출시될 예정이며, '시리우스(Sirius)'와 '카니스 마요리스(Canis Majoris)’ 프로젝트도 재편될 전망이다. 이 모든 것은 'GTA VI'와의 시장 경쟁 속에서 진행될 것이다. 노블 증권의 이 보고서는 12월 16일 공개되었으며, 이는 투자자 포털 '스트레파 인베스토르(Strefa Inwestorów)'가 마테우시 크르자노프스키와의 인터뷰를 게재한 직후였다. 해당 인터뷰에서 그는 자신의 예측에 대한 세부 사항 일부를 공개한 바 있다. 그는 특히 CD 프로젝트의 미발표 프로젝트 중 하나가 ‘위쳐 3'의 DLC일 것이라고 제안했는데, 이는 이전 3부작의 마지막 부분과 새 시리즈의 시작을 연결하는 가교 역할을 하며, 동시에 '위쳐 4’ 캠페인의 출시와 맞물릴 것이라고 설명했다.
2026년 5월 ‘더 위쳐 3’ 유료 확장팩 출시 및 ‘W4’ 마케팅 시작. 노블 증권의 한 애널리스트는 내년 중반 ‘더 위쳐 4’ 출시가 주요 초점이 될 것으로 전망한다. 보고서는 “2026년 5월 '위쳐 3'의 유료 확장팩(DLC) 추가 출시를 예상한다. 내년 1,100만 장 판매(개당 30달러)를 전망하며, 제작 예산은 5,200만 폴란드즈워티(PLN)로 추정된다. 이번 출시가 '위쳐 4'의 본격적인 마케팅 캠페인을 시작할 것”이라고 밝혔다. 해당 애널리스트는 내년 출시 예정인 소규모 비공개 프로젝트에 대해서도 추정치를 제시했다. 보고서는 “내년에 공개될 수 있는 기타 비공개 프로젝트의 예산을 2,800만 폴란드 즐로티로 추정하며, 내년 잠재적 매출 수익은 6,100만 폴란드 즐로티로 예상한다”고 덧붙였다.
위쳐 4는 2027년 말 출시 예정이며, 3부작 가격은 인상될 전망이다. 회사 경영진이 위쳐 4가 2027년 이전에는 출시되지 않을 것이라고 발표한 이후, 노블 증권은 제작 주기 추정치를 1년 연장하여 이제 게임이 2027년 4분기에 출시될 것으로 예상하고 있습니다. "현재 개발 비용의 연장 및 구조로 인해 게임 예산 추정치를 14억 PLN(마케팅 비용도 동일 금액)으로 상향 조정하게 되었습니다. 그러나 후속작들이 W4 기술을 기반으로 할 예정임을 고려할 때, 3부작 전체 예산은 21억 PLN에서 32억 PLN으로 증가했습니다. 또한 출시 일정 집중(경영진은 6년 내 새 3부작 전체 출시를 원함)과 브랜드 인지도 상승으로 인한 마케팅 캠페인 시너지 효과가 발생할 수 있으며, 이는 CP77 비용 기반 모델 대비 판매 비용 절감으로 이어질 수 있습니다"라고 보고서는 설명합니다.
오리온 멀티플레이어 버전 – CP77 10주년 기념 첫 공개. 사이버펑크 후속작과 관련해 노블 시큐리티스는 스튜디오의 두 번째 핵심 프랜차이즈 프로젝트를 담당하는 팀이 현재 135명으로 구성되어 있으며, 향후 2년 내 규모가 두 배로 확대될 것이라고 밝혔습니다. “멀티플레이어 모드를 제작에 통합하려는 의지로 인해, 벤치마크 W4 작업 진척 상태를 넘어 제작 기간을 연장하게 되었습니다. 그 결과 예산은 15억 PLN으로 증가했으며, 2030년 4분기(CP77 10주년) 출시를 예상합니다”라고 보고서는 덧붙였습니다... 중략...
AI 코딩 도구의 등장으로 소프트웨어 개발의 문턱이 극적으로 낮아졌습니다. 이제 누구나 간단한 아이디어만으로도 빠르게 애플리케이션을 만들 수 있는 시대가 열렸습니다. 이러한 현상 속에서 '바이브 코딩(vibe-coding)'이라는 새로운 용어가 등장했습니다. 이는 단순한 아이디어 에 의존해 코드를 짜는 것처럼, 명확한 계획 없이 즉흥적으로 AI와 상호작용하며 개발하는 방식을 의미합니다.
바이브 코딩이란 "트윗 길이의 짧은 문장으로 아이디어를 설명하고, AI가 코드를 작성하게 한 뒤, 문제가 생기면 또 다른 지시를 내려 고치는 방식"으로 정의할 수 있습니다. 실무에서 우리 모두는, 저를 포함해서, 명확한 계획 없이 일단 시작하고 보자는 유혹에 빠지곤 합니다. 바로 이 지점에서 프로젝트가 길을 잃기 시작합니다. 이 방식은 초기 프로토타입을 빠르게 만드는 데에는 효과적이지만, 두 가지 핵심적인 문제점을 안고 있습니다.
•방향성 상실:긴 슬랙(Slack) 스레드에서 대화가 길어질수록 원래 논점에서 벗어나는 경험을 해본 적이 있을 겁니다. 바이브 코딩도 이와 비슷합니다. 명확한 목표 없이 계속해서 AI에게 프롬프트를 수정하며 지시하다 보면, 처음 의도했던 것과 전혀 다른 결과물이 만들어지기 쉽습니다. 개발 과정이 중심을 잃고 표류하게 되는 것입니다.
•품질 저하:바이브 코딩은 코드 품질, 아키텍처, API 패턴, 보안 표준, 장기적인 유지보수성 등 프로덕션급 소프트웨어의 핵심 요소들을 간과하기 쉽습니다. AI는 주어진 프롬프트에만 의존하기 때문에, 전체적인 구조나 장기적인 유지보수를 고려한 코드를 생성하기 어렵습니다. 결국 초기에는 빠르게 결과물을 얻는 것처럼 보이지만, 숨겨진 버그와 기술 부채가 쌓여 나중에 더 많은 수정 작업을 초래하게 됩니다.
3. 스펙 주도 개발(SDD) 소개
이러한 문제들에 대한 해결책으로 **스펙 주도 개발(Spec-Driven Development, SDD)**이 주목받고 있습니다. SDD는 "나중에 시간을 절약해주는 잠시 멈춤"이라는 개념으로 설명할 수 있습니다. 무작정 코딩을 시작하는 대신, 먼저 만들고자 하는 소프트웨어의 기능, 요구사항, 제약 조건 등을 명확하게 정의한 '명세서(specification)' 즉, 설계도를 만드는 체계적인 접근법입니다.
이 설계도는 개발 과정에서 인간과 AI 모두가 따라야 할 명확한 '북극성'이 되어, 방향을 잃지 않고 품질 높은 소프트웨어를 만들 수 있도록 돕습니다.
그렇다면 바이브 코딩과 스펙 주도 개발은 구체적으로 어떤 차이가 있을까요? 다음 섹션에서 두 가지 접근법을 한눈에 비교해 보겠습니다.
II. 한눈에 비교하기: 스펙 주도 개발(SDD) vs. 바이브 코딩
스펙 주도 개발(SDD)과 바이브 코딩의 핵심적인 차이점을 아래 표를 통해 명확히 비교할 수 있습니다.
기준
바이브 코딩
스펙 주도 개발(SDD)
시작점
모호한 프롬프트
명확하고 구조화된 명세서
프로세스
반복적인 프롬프트 수정과 코드 생성의 순환
명세 → 계획 → 작업 → 구현의 체계적 단계
개발자의 역할
AI에게 지시하는 프롬프트 엔지니어
AI와 협력하는 시스템 설계자 및 검토자
결과물
빠른 프로토타입, 숨겨진 버그와 기술 부채 발생 가능성
신뢰성 높은 고품질 코드, 유지보수의 용이성
핵심 비유
끝없는 슬랙 스레드
모두가 공유하는 청사진(Source of Truth)
이처럼 명확한 차이를 보이는 스펙 주도 개발이 왜 더 신뢰할 수 있는 접근 방식인지, 그 구체적인 장점들을 자세히 살펴보겠습니다.
III. 왜 스펙 주도 개발(SDD)을 사용해야 할까?
소프트웨어 개발을 처음 배우는 학생의 입장에서 스펙 주도 개발(SDD)은 복잡한 프로젝트를 성공적으로 이끌어갈 수 있는 강력한 무기가 됩니다. SDD가 제공하는 핵심 이점은 다음과 같습니다.
1.명확한 목표 설정이는 앞서 언급한 '방향성 상실' 문제를 정면으로 해결합니다. 잘 정의된 명세서는 끝없는 슬랙 스레드처럼 표류하는 대신, 프로젝트의 모든 참여자가 따라야 할 명확한 등대가 되어줍니다. 이를 통해 "우리가 무엇을 만들고 있었지?"라는 개발 과정의 혼란을 방지하고, 프로젝트에 참여하는 인간과 AI 모두가 처음부터 끝까지 같은 목표를 향해 나아가게 합니다.
2.품질 높은 결과물이는 AI가 추측에 의존해 코드를 생성하며 발생하는 '품질 저하' 문제를 근본적으로 해결합니다. 명확한 명세서가 있으면 AI는 주어진 설계도에 따라 코드를 생성하기 때문에 버그가 적고, 구조적으로 더 안정적이며 일관성 있는 코드를 만들 수 있습니다. 이는 단순히 '작동하는' 코드를 넘어, 장기적으로 유지보수하기 좋은 '잘 만들어진' 코드를 얻게 됨을 의미합니다.
3.진정한 AI 협업 파트너이는 개발자의 역할을 단순한 '프롬프트 엔지니어'에서 벗어나게 합니다. SDD를 통해 AI는 단순히 명령을 수행하는 코드 생성 도구를 넘어, 개발자의 의도를 깊이 이해하고 협력하는 진정한 '파트너'가 될 수 있습니다. 명세서는 개발자의 생각을 AI에게 전달하는 가장 정확한 언어이며, 이 명확한 소통을 바탕으로 AI는 잠재력을 최대한 발휘하여 개발자를 도울 수 있습니다.
이러한 개념적 장점들이 실제 개발 과정에서는 어떻게 구체화되는지, 구인구직 앱 개발 예시를 통해 알아보겠습니다.
IV. 실전 예제: 구인구직 앱 개발로 배우는 SDD 4단계
예제 소개
여기서는 간단한'구인구직 앱(job seekers app)'개발 사례를 통해 SDD의 4단계 프로세스를 살펴보겠습니다. 이 앱은 사용자가 면접 질문에 음성으로 답변하면, 이를 녹음하고 분석하여 구직자에게 피드백을 제공하는 인터뷰 준비용 애플리케이션입니다. 개발자의 재치있는 '엘리베이터 피치'에 따르면, 이 앱은 구직자들이 실제 면접처럼 질문에 답하고, 그 결과를 분석하여 정량화된 점수와 피드백을 제공함으로써 면접 기술을 향상시키는 것을 목표로 합니다.
SDD 4단계 설명
1단계: 명세(Specification) - '무엇을' 만들지 정의하기
첫 단계로, 우리는 앱의 Figma 디자인을 AI에게 전달했습니다. AI는 즉시 로그인, 프로필 관리를 포함한 방대한 요구사항 목록을 생성해냈죠. 하지만 숙련된 개발자로서 우리는 MVP(최소 기능 제품)에 이 모든 것이 필요하지 않다는 것을 압니다. 그래서 우리는 직접 개입하여 핵심 기능인 '인터뷰 연습'에만 집중하도록 불필요한 기능들을 덜어내는 '범위 조율' 역할을 수행했습니다. 이것이 바로 인간 개발자의 전략적 판단이 빛을 발하는 순간입니다. 이 단계는 기술적 구현이 아닌, 앱의 기능과 목표, 즉'무엇(WHAT)'을 정의하는 데 집중합니다.
2단계: 계획(Plan) - '어떻게' 만들지 설계하기
명세서가 확정되자, 우리는 AI에게'어떻게(HOW)'이 기능을 구현할지에 대한 기술 설계 문서를 요청했습니다. AI는 전체적인 아키텍처와StartScreen,QuestionScreen같은 필요한 화면 컴포넌트 목록을 제안했습니다. 하지만 여기서도 인간의 통찰력이 필요했습니다. AI가 만든 초기 설계에는 '사용자 음성을 텍스트로 변환하는 기능'이나 '분석을 위해 Claude AI SDK를 사용'하는 것과 같은 핵심 기술 계획이 빠져 있었습니다. 우리는 이 구체적인 기술 계획을 직접 추가하여 설계를 보완하고 완성했습니다.
3단계: 작업(Task) - 실행 계획을 잘게 쪼개기
잘 만들어진 기술 설계도를 바탕으로, AI는 코딩에 필요한 모든 단계를 체크리스트 형태의 '작업 목록'으로 만들었습니다. 하지만 AI가 제안한 작업 순서는 최적이 아니었습니다. 그래서 우리는 사용자가 즉시 눈으로 확인할 수 있는 UI 관련 작업을 초기 단계에 배치하도록 순서를 전략적으로 재조정했습니다. 이 작은 변화를 통해 우리는 더 빠르게 테스트 가능한 MVP를 만들어 피드백을 받을 수 있게 되었고, 프로젝트의 방향성을 조기에 검증할 수 있었습니다.
4단계: 구현(Implementation) - AI가 실제로 코드를 작성하기
마지막으로, 우리는 AI에게 잘 정리된 작업 목록에 따라 코드를 작성하도록 지시했습니다. AI가 파일 생성, 라이브러리 설치, 코드 작성을 자동으로 수행하는 동안, 우리는 감독관의 역할을 수행했습니다. 단순히 지켜보는 것을 넘어, 각 단계의 결과물이 우리가 처음 정의했던 명세서와 계획에 정확히 부합하는지 전체 과정을 감독하고 검토하며 최종 결과물의 품질을 보장했습니다.
이처럼 SDD는 아이디어를 체계적인 단계를 거쳐 신뢰할 수 있는 소프트웨어로 만드는 전 과정을 안내합니다. 그렇다면 이러한 변화가 개발자에게는 궁극적으로 어떤 의미를 가질까요?
V. 결론: AI 시대의 개발자, 코더에서 설계자로
SDD의 핵심 가치 요약
SDD는 단순히 코딩 전에 문서를 하나 더 작성하는 관료적인 절차가 아닙니다. 수많은 프로젝트를 거치며 깨달은 것은, 이것이 AI라는 강력한 도구를 길들이고 그 잠재력을 극대화하기 위한 필수적인 **'생각의 틀(framework)'**이라는 사실입니다. 모호한 지시 대신 명확한 설계도를 제공함으로써, 우리는 AI의 예측 불가능성을 통제하고 그 잠재력을 극대화할 수 있습니다.
개발자의 역할 변화 강조
'바이브 코딩'의 즉각적인 속도가 매력적인 유혹일지라도, 견고하고 신뢰성 높은 소프트웨어로 가는 길은 결국 설계자의 규율과 명확한 청사진으로 포장됩니다. SDD가 보편화되면서 개발자의 역할은 근본적으로 변화하고 있습니다. 더 이상 키보드 앞에서 한 줄 한 줄 코드를 입력하는 '코더(Coder)'에 머무르지 않습니다.
이제 개발자는 시스템 전체의 청사진을 그리는'설계자(Architect)', AI의 작업을 지휘하는'지휘자(Orchestrator)', 명확한 의도를 정의하는'명세서 저자(Spec Author)', 그리고 AI의 결과물을 검증하는 **'최종 수문장(Guardian)'**으로 진화하고 있습니다. AI 시대의 개발자는 코드를 '만드는' 사람에서, 훌륭한 코드가 '만들어지도록' 설계하고 이끄는 사람으로 거듭나게 될 것입니다.
안녕하세요 다음 글은 claude-code 가 작성한 블로그 글입니다. 오전에 만든 앱을 테스트 하기 위해 준비하는 과정을 정리해서 공유해 드립니다.
너무 오래 전에 어플을 테스트 및 등록 해 보고, 너무 오랜만에 작업하는 것이여서, 개발자 콘솔 환경도 많이 바뀌었고, 없던 기능들도 많아져서, 진행하는데에 막힘이 많았습니다. 하지만 ai 가 잘 가이드를 해줘서 내부테스트 패키지가 무사히 잘 등록이 되었습니다.
google play 내 - 내부테스트 링크
Flutter 앱 Google Play 내부 테스트 배포 완벽 가이드
작성일: 2025-11-10 프로젝트: RentHouse (가재 Flutter 임대관리 앱) 목표: RevenueCat 구독 기능 테스트를 위한 Google Play Console 내부 테스트 배포
📌 시작하기 전에
이 글은 Flutter 앱을 Google Play Console의 내부 테스트(Internal Testing) 트랙에 처음 배포하면서 겪은 실제 문제들과 해결 과정을 기록한 것입니다. 특히 RevenueCat 구독 기능을 테스트하기 위해서는 반드시 Play Console을 통해야 하므로, 이 과정이 필수입니다.
위의 글 이어서 실제 Renthouse 프로젝트의 바이브코딩 진행 과정 과 내용을 공유합니다.
바이브코딩이 어느정도 프로토타입 개발 경험을 바탕으로 가능한 것을 알았으니, 정말 시제품을 만들고 싶었습니다. 사실 이 RentHouse 아이디어는 개인적으로도 필요하기도 해서 구상하고 있던 프로그램이기 때문에, 출시 이후에도 지속적으로 업그레이드도 할 것 같기도 하고, 어느정도 금액이 나오면 좀더 나은 서비스를 제공할 계획도 있습니다. 나만 쓰더라도 좀 편하게 사용이 안될까.. 하며 아이디어가 계속 나오더라고요.
여하튼, 프로토타입 때, Gemini-flash 가 만든 코드를 경험 했기 때문에, (물론 생각보다 만족스러웠지만, 의외로 만족스럽지 않은 부분도 많았습니다.) 이번에는, 유료이지만 Claude Code를 선택했습니다. 결론부터 말씀 드리자면, 3개월 정도 진행 하였고, 현재 출시까지 원하는 기능 중 1개 제외하고 모두 구현되어 있습니다.
우선, 많은 개발자분들이 클로드코드가 코딩에 최적화되어 있다고 평가했기 때문입니다. 또한 이번에는 제가 중간에 개입하지 않는 것을 목표로 했습니다. 100% 바이브 코딩으로 진행 하였습니다. 음.. 그러기 위해서.. 제가 이미 잘 아는 언어 대신, 아예 모르는 언어를 선택하였습니다.
멀티플랫폼도 지원해야 한다는 점 때문에, 많은 개발자분들께서 추천하는 Flutter 를 선택하게 되었습니다. Flutter 는 이미 여러번의 버전업을 거치면서 상당히 안정화되었고, 고품질의 결과물을 낼 수 있으며, 또한 개발하기도 편리하다는 평가를 많이 접하게 되었습니다. 또한 실제로 YouTube에서도 최신 Flutter 버전이 충분히 실무에 활용 가능하다며 여러 적용 사례들도 확인할 수 있었고요. 그래서 최종적으로, 이번 프로젝트는 Flutter로 진행하기로 결정했습니다.
프로토타입을 통한 요구사항 만들기
우선 프로토타입을 전달하여 PRD (제품 요구사항 정의서) 를 만들기로 했습니다. LLM 과 UI 가 뛰어난 ChatGPT 를 활용하였습니다.
다음은 ChatGPT 에게 전달받은 개발 검토 및 개선 제안입니다. 4-5번의 수정을 거쳐서 만들어진 내용입니다. 물론 다음과 같이 만들어진 이후, 꽤 많은 수정 작업을 거쳐서 내용에 없는 기능이 추가되었거나, 만들었지만 빠진 내용도 있습니다. 초기에 ai (ChatGPT) 가 검토한 개발 검토 보고서를 공유합니다.
### 5.2 워크플로우 1) **월초 자동 청구 생성** - 트리거: 사용자가 “청구 생성” 실행(로컬 앱은 상시 백그라운드가 없으므로 _수동/반자동_ 버튼 우선) - 규칙: 계약기간 내 유효한 Lease에 대해 1건씩 생성, 기존 존재 시 스킵 - 프레이밍: 보증금·월세·관리비·유틸리티 항목 템플릿 적용 2) **수납(Payment) 등록** - 금액 입력 → **자동 배분**(가장 오래된 미납부터) 또는 수동 배분 - 결과: Billing 상태 전이(예: `ISSUED→PARTIALLY_PAID→PAID`) 3) **영수증 발행(PDF)** - Payment 기준 단일/복수 Billing 배분 내역 포함 - 고유 번호/일자/금액/납부방법/임차인/세부배분/발행자 4) **연체/가산금(선택)** - `dueDate`+X일 초과 시 `LATE_FEE` Adjustment 추가(비율/정액) - 미납 Aging 산출(0–30/31–60/61–90/90+ 일) 5) **정산/환불** - 초과 입금은 `Credit`(양수 조정) 또는 다음달 상계 - 환불은 음수 Payment(또는 별도 Refund)로 기록
### 5.3 계산/검증 규칙 - 금액 단위: **KRW 정수(원)** — 반올림 없는 합산(세금도 원 단위) - **일할 계산(Proration)**: 중도 입주/퇴실 시 `월세 × (사용일/월일수)` - 증감: **임대료 인상분**이 월 중 발생 시 이월 분리 또는 일할 - Deposit 전용: 별도 계정으로 관리, 임대료 상계는 명시적 전표(Adjustment)로 처리 - 데이터 제약: Payment ≤ 미납 합계(단, 크레딧 허용 시 초과 가능)
### 5.5 수용 기준(예시) - (월초) “청구 생성” 실행 시 **중복 0건**, 로그에 건수/스킵 사유 기록 - 부분 수납 케이스에서 배분 합계 = Payment 금액 **일치** - 영수증 PDF **1초 내 생성**, 재현성 있는 번호 체계 - Aging 리포트 합계 = 미납 합계 **일치**, 필터(기간/자산/유닛/임차인) 동작
### 5.6 테스트 포인트 - 단위: 일할/가산금/배분/상태전이, 유니크 제약 - 위젯: 수납 배분 UI, 대량 발행 - 통합: 청구→수납→영수증→리포트 합계 정합성
## 9) 결론 - 본 v2는 건물주가 당장 가치 체감하는 **수익관리**와 **보안/RBAC·유지보수**를 구체화 - 백엔드 연동은 후순위로 미뤄도, 프론트/로컬 중심으로 충분히 **운영 가능한 스코프** 확보 - 차기 스프린트는 “청구→수납→영수증→리포트”와 “워크오더 기본 흐름” 완성이 목표
---
## 참고/근거 - 1단계 완료 리포트: **로그인/자산/임차인/임대/청구 구현**, M3/반응형/라우팅/Drift/대시보드 등 현황 - 남은 작업(우선순위): **결제(수납), Work Order, RBAC, 보고서 강화** 명시
위의 내용처럼, 개발 프로세스 중, 단순한 코드 생성을 넘어, 기획 단계부터 AI가 깊숙이 관여 시켰습니다. 화면설계도 요청했었고요. 답변은 wireframe 으로 전달 받았으며, 이 wireframe 을 통해 화면 요구사항은 초기에 끝났습니다. 물론 이후 필요한 기능들이 추가되면서 조금씩 변경은 되었지만, ChatGPT 가 전달 해준 wireframe 의 화면 설계와 구현 가능한 디자인 설계도는 이후 Claude-code 와 협업 씨 많은 토큰?을 아낄 수 있었습니다.
ChatGPT 가 만들어준 대시보드의 wireframe 파일과 설명서
AI 툴들과 와 함께 구상한 설계가 구체화된 후, 본격적인 '바이브 코딩'이 시작되었습니다. 저는 해결해야 할 문제나 구현할 기능들.. 즉 '목표' / '요구사항' 을 제시했고, AI는 그 목표를 달성하기 위한 계획과 최적의 코드를 제안했습니다. 다음은 앱내 알림 서비스를 구현하면서 전달한 요구사항을 가지고 to-do 리스트를 만든 후, 제 피드백을 받고, 하나씩 진행하는 화면입니다.
todo 를 계획하고 하나씩 완료해 가는 claude-code : 세션 리밋이 넘 빨리 걸렸음.
위의 화면에서는, 당연히 todo 리스트는 제가 정리해서 공유한 요구사항 내용을 가지고 만든 리스트이지만, 간혹 과제를 던져주면 알아서 과제내에서 wbs 를 만들어 진행전에 저와 계획을 공유하며 리뷰/피드백을 받고 진행하였습니다. 최근 admobs 를 활용한 광고 배너를 모바일에 추가하는 작업을 진행하였는데 꽤 수월하게 진행되었습니다. 개발 완료 후, 진행 사항 내용을 보여주는 화면입니다. 토큰 때문에 오류외 피드백은 잘 안하는 편이지만, 이번만큼은 별다른 오류나 실수 없이 한번에 진행되어서 피드백을 주었습니다. -- ai 도 좋아하는 표현을 좀 적극적으로 하면 더 할텐데 말이죠. ㅋㅋ
코드 작업 후, 테스트 피드백을 주며 ai 와 대화하는 화면
물론 버그는 있습니다. 코딩 작업 이후엔 바로바로 빌드 테스트를 진행하였지만, 실제 화면 테스트는 어느정도 시나리오의 흐름 때문에 활용 가능한 데이터를 기다려야 하는 경우도 있었고, 가상으로 만들어 진행 하기도 했습니다.
최근 해결한 '월별 수익 보고서의 자산 필터' 문제가 좋은 예시입니다.
문제 제기 (나): "보고서의 월별 수익 화면에 자산 필터가 있는데, 특정 자산을 선택해도 금액이 바뀌지 않아. 원인을 분석하고 해결책을 제안해 줘."
이 문제를 듣고 AI는 reports_screen.dart, reports_controller.dart, reports_repository.dart 등 관련된 여러 파일을 스스로 분석했하였고, UI의 선택 값이 데이터 조회 로직까지 전달되지 않는다는 근본 원인을 정확히 찾아냈습니다. 그리고 단순히 UI 코드만 수정하는 것이 아니라, 데이터 흐름 전체를 개선하는 구조적인 해결책을 제시했습니다. 데이터베이스 쿼리부터 컨트롤러, UI까지 각 계층에서 수정해야 할 부분을 진행전에 명확히 알려주었습니다. 제안한 코드를 제가 최종 검토하고 프로젝트의 일관성을 해치지 않는지 확인한 후 적용되었습니다.
제가 방향을 제시하고, AI가 제 의도를 이해할 때까지 설명하여, 실제 개발자처럼 움직일 수 있도록 하여 원하는 결과물을 만들어 내었던 재미난 경험이었습니다.
이번 바이브크딩 프로젝트 통해 AI 툴 (ChatGPT, Gemini-CLI, Claude-Code) 들은 단순 코더가 아니었습니다. 비록 역할별로 다른 AI 툴들을 넘나들며 활용하였지만, 바이브코딩은 다음과 같은 이유로 가능했습니다.
복잡하게 얽힌 코드들 속에서 문제의 근본 원인을 찾아냈습니다. (Claude-Code, Gemini-CLI)
비효율적인 로직 대신, 성능과 구조를 고려한 더 나은 아키텍처를 제안했습니다. (Claude-Code, Gemini-CLI)
제가 요청하면, 방금 수정한 내용에 대한 기술 문서를 Markdown 형식으로 깔끔하게 정리하여 docs 폴더에 저장해 주었습니다. (ChatGPT, Gemini-CLI, Claude-Code)
단순히 3개의 Tool 로만 진행하였지만, 결과물은 무척 만족스럽습니다.
물론 '바이브 코딩'이 항상 순탄했던 것은 아닙니다. '요구사항'의 상세함이 결과물의 품질을 결정한다.. 입니다. 즉 "대충 만들어줘"라는 식의 모호한 요구사항은 결과물의 품질을 보장할 수 없었습니다. 초기 기획 단계에서 PRD와 와이어프레임을 상세하게 정의했던 것처럼, 풍부하고 구조화된 '요구사항'을 제공할수록 AI 파트너는 더 정확하고 뛰어난 결과물을 만들어냈습니다.
최종 결정과 책임은 인간의 몫.. 저의 몫이였습니다.: AI는 놀랍도록 정확했지만, 프로젝트의 전체적인 방향성이나 최종 사용자 경험의 미묘한 차이까지 책임져 주지는 않습니다. 제안된 코드를 비판적으로 검토하고 최종 결정을 내리는 것은 여전히 저의 가장 중요한 역할이었습니다.
이 프로젝트를 통해 얻은 가장 큰 교훈은, AI는 개발자를 대체하는 것이 아니라, 개발자의 능력을 증폭시키는 강력한 도구(Force Multiplier)라는 것입니다. AI 덕분에 저는 혼자서 기획, 분석, 개발, 문서화까지, 마치 작은 팀처럼 일할 수 있었습니다.
결론: 새로운 개발 패러다임, 바이브 코딩 'Renthouse(가제)' 프로젝트는 AI와의 협업이 더 이상 먼 미래의 이야기가 아님을 증명하고 있습니다. 개발자의 역할은 모든 코드를 한 줄 한 줄 작성하는 것에서, AI라는 강력한 파트너에게 명확한 '요구사항'을 제시하고 전체적인 품질을 책임지는 '아키텍트' 또는 '오케스트라의 지휘자'로 변화하고 있습니다.
아직 AI와의 협업을 시도해보지 않으셨다면, 여러분만의 '바이브'를 가지고 작은 프로젝트부터 시작해보시길 강력히 추천합니다. 아마 코딩하는 방식에 대한 생각이 완전히 바뀌게 될지도 모릅니다.
마지막으로, 가트너에서 발표한 10가지 2025년의 주요 기술 트랜드라는 글을 ChatGPT 를 통해 번역하여 블로그에 올린 기억이 있습니다. 이때만 해도 ChatGPT 는 기존 검색엔진보다 "말 많은 검색 툴" 로만 여겼었지요. 하지만 2025년 한해간 급격히 많은 업그레이드가 되었고, 많은 AI 툴들이 만들어져서 서비스화 되었습니다. 2025 년은 ai 의 해라고 해도 과언이 아닐것 같네요.
AI를 의사결정 에이전트로 전환 가트너는 에이전틱 AI가 향후 2~3년 내에 등장할 것으로 예상하며, 정보 요약과 같은 작업을 넘어 개인을 대신해 실제로 행동을 취하는 능력을 갖출 것으로 보고 있습니다. 사용자에게 옵션을 제시하는 대신, 허가를 받으면 사용자에게 최적의 옵션을 선택할 수 있게 될 것입니다 출처: https://yobine.tistory.com/605 [#Yobine:티스토리]
안녕하세요! 오늘은 제가 진행하고 있는 'Renthouse(가제)' 프로젝트에 대한 조금 특별한 이야기를 공유하고자 합니다. 이 프로젝트는 Flutter로 제작된 크로스플랫폼 임대 관리 애플리케이션으로, 기획부터 설계, 개발, 문서화까지 전 과정이 AI 코딩 파트너들 (Claude-code, Gemini-CLI, 그리고 ChatGPT) 과 함께 진행되고 있습니다.
장비: asus 게이밍 노트북 과 별도 중국산 포터블 모니터 .. 그리고 무난한 중국산 무선 키보드
아시는분들도 많겠지만, 기본적인 소프트웨어 개발 프로세스는 다음과 같습니다. 출처: DBpia
소프트웨어 개발 방법론은 요구사항 분석, 설계, 구현, 테스트, 유지보수 단계를 포함하며, 폭포수 모델, 애자일 방법론 등 다양한 접근 방식이 존재합니다.........
저는 요구사항 분석 부터, 설계, 구현 (실제 코딩), 테스트 (중 테스트 코드 작성) 부분.. 그리고 이후에 유지보수 단계까지 모두 "바이브 코딩(Vibe Coding)" 개발 방식으로 진행하기로 선택했습니다.
음.. 바이브 코딩이 뭘까요? 혹시 모르시는 분들을 위해 다음 내용을 공유 합니다. (출처 : DBpia )
1. Vibe Coding의 특징 Vibe Coding은 자연어 처리를 통해 코드 생성을 지원하여 프로그래밍의 대중화를 목표로 합니다. 자연어 기반 코드 생성: Vibe Coding은 자연어를 통해 코드 생성을 지원함으로써 프로그래밍 입문 장벽을 낮추고 코딩의 대중화에 기여할 수 있습니다.코딩 효율성 증대: 인공지능 기술을 활용하여 코딩 작업의 효율성을 높이는 데 기여할 수 있습니다.
2. Vibe Coding의 장점 Vibe Coding은 자연어 기반 코드 생성을 통해 프로그래밍 진입 장벽을 낮추고 코딩 대중화에 기여할 수 있습니다. 프로그래밍 접근성 향상: 자연어 기반 코드 생성은 프로그래밍 입문자에게 더 쉬운 접근성을 제공합니다.
Vibe Coding은 자연어 기반 코드 생성을 통해 프로그래밍의 대중화와 효율성 증대에 기여할 수 있습니다.
위의 내용은 자연어 처리를 통한 코드 생상 내용만 나오지만, 제가 프로젝트의 전체적인 방향성을 LLM 툴을 통해 제시하면, AI가 구체적인 산출물로 만들어내는 방식으로 진행 하였고, 그 결과 또한 생각 했던 것 보다 훨씬 뛰어났기 때문에, 이 글을 통해 AI와 함께 '바이브 코딩'으로 실제 앱을 개발하는 것이 과연 가능한지.. 그리고 어떤 경험이었는지 공유해 보겠습니다.
시작: 추상적인 '아이디어' 를 구체적인 '설계'로 (요구사항 분석 및 설계)
프로젝트의 시작은 간단한 한 줄 명령이 아니었습니다. 물론 "임대 관리 업무를 디지털로 간소화한다"는 추상적인 '이이디어'에서 출발했지만, 이 아이디어를 구체화하기 위해 AI 파트너와 수많은 대화를 나누었고, 꽤 놀라운 산출물들이 전달 되었습니다.
LLM 툴은 가장 사용하기 편했고, 접근하기 좋았던 ChatGPT 를 이용했습니다. 수많은 대화가 오고갔지만, 가장 처음 받았던 답변을 공유합니다.
개발자 질문: property 를 한글로 하면 뭘까? 그리고 하나의 property 의 종류가 꽤 있는데, 이걸 등록할 때.. 음.. 만약 아파트면.. 주소만 있으면 되지만, 빌딩이면, 내부 건물의 유닛이 몇개인지 알아야 하고 개당 유닛의 특징도 적어야 할 것 같은데.. 일단 지침에도 적었지만, 이걸 관리 하는 프로그램을 만들고 싶어
ChatGPT: property를 한글로 옮길 때 일반적으로 “부동산” 또는 **“자산”**이라고 번역합니다. 프로그램 관점에서는 “관리 대상이 되는 부동산 매물”이란 뜻에서 간단히 “부동산” 이라 부르는 게 자연스럽습니다....
type (ENUM: APARTMENT, BUILDING, OFFICE, HOUSE, …)
address (String)
name (예: “강남역 A빌딩”)
totalFloors (건물 전체 층수, 빌딩인 경우)
그 외 공통 속성들(관리비 여부, 주차대수 등)
Unit 엔티티 (Property 에 종속)
id (PK)
propertyId (FK → Property.id)
unitNumber (호실 번호)
area (면적)
useType (사무실/상가/주거…)
rentStatus (임대 중/공실)
monthlyRent 등
아파트의 경우 보통 Unit을 따로 두지 않고, 동·호수를 address 필드 또는 별도 컬럼(buildingCode, unitNumber)로 처리하기도 합니다.
3. 간단한 데이터 모델 예시 (Spring Boot + JPA)
@EntitypublicclassProperty... 생략
4. 등록 절차 아이디어
Property 등록 화면
타입 선택 → 기본 정보 입력(이름·주소 등)
빌딩/오피스 등 유닛이 필요한 타입이면 “유닛 정보 추가” UI 노출
Unit 일괄 등록 기능
엑셀 업로드 혹은 호실 리스트 + 공통 속성 일괄 생성
관리(조회/수정/삭제)
Property 단위로 요약 정보 제공
내부 Unit 리스트 확인, 개별 편집 기능
정말 괜찮은 답변이여서, 이대로 화면에 구현이 가능할까.. 실제 spring-boot JPA 를 사용하여 웹(web) 기반 프로트타입 개발을 시작했습니다. 사실, 이 프로젝트를 생각한건 꽤 오래전이여서, github 에 레퍼지터리를 만들어 놓고, 진행을 어떻게 할까 생각만 하다가 진행을 안하고 있었는데, ai 덕에 진행이 되었네요 ^^a .... 음 여하튼.. 혹시 궁금해 하시는 분들을 위해서.. 프로토 타입이란.. (출처: DBpia)
인텔리제이, 터미널 (제미나이 소통 체널) 스프링 부트 3.4.3 으로 작업 하는 화면
프로토타입 방법론은 소프트웨어 공학에서 요구사항을 명확히 하기 어려운 경우, 개발 초기 단계에서 시제품을 만들어 사용자의 피드백을 반영하며 점진적으로 시스템을 완성해 나가는 접근 방식이다. 이는 반복적인 개발 과정을 통해 시스템의 완성도를 높이는 데 기여하며, 사용자 중심 설계의 중요한 방법론으로 간주된다. 특히, 불확실성이 높은 프로젝트에서 위험을 줄이고, 최종 제품의 사용자 만족도를 향상시키는 데 효과적이다.
제가 좋아하는 Agile 개발 방법 시작 전, 기반이 되는 시제품을 미리 만들어 보는 방법입니다. 코드 구현에 테스트한 ai 툴은 gemini-cli였습니다. gemini-cli를 선택한 이유는 단순했습니다. 무료였고, 꽤 강력한 코딩 능력을 보여준다고 했기 때문입니다. 그래서 한 달 정도 시간을 내서 테스트 삼아 작업을 해 봤는데, 예상보다 결과가 괜찮았어요. 그때는 어떤 화면을 만들고 어떤 기능을 넣어야 할지 구체적으로 정리가 안 되어 있었습니다.
직접 웹 애플리케이션을 만들어 보면서 자연스럽게 요구사항이 정리되었고, 나름의 요구사항 명세서까지 프로토타입을 통해 뽑아낼 수 있었습니다.프로토 타입 작업하면서, 중간중간에 즉흥적으로 떠오르는 기능이나 반드시 들어가야 한다고 생각되는 부분들은 바로바로 추가하면서 진행 했고요. 제가 웹 애플리케이션 개발을 해봤어서, 만약 AI가 제대로 결과물을 내지 못하면 제가 직접 손을 대서 보완할 수 있었습니다. 이런 점에서 자바를 선택한 것도 자연스러운 선택이었습니다.
Gemini-CLI 는 하루에 고급 기능(gemini-pro) 을 제한적으로만 쓸 수 있었지만, 단순 CRUD 작업은 잘 수행했기 때문에 큰 문제는 없었습니다. 만약 gemini-flash 를 사용하면서 오류가 생기면 제가 바로 IDE를 열어 직접 수정했고, 이후 AI에게 피드백을 주면서 다시 확인받는 방식으로 진행했기 때문에 작업이 크게 지연되지는 않았습니다. 약 3-4주 정도.. 이 과정을 거치면서, AI를 활용해 바이브 코딩을 할 때어떤 방식으로 요구사항을 제시해야 하는지 감을 잡을 수 있었습니다.
UniRent는 부동산 관리자를 위한 Flutter 기반의 크로스 플랫폼 임대 관리 애플리케이션입니다. 물건 관리, 임차인 관리, 계약 관리, 청구서 발행 등 부동산 임대 업무의 전 과정을 효율적으로 처리할 수 있도록 설계되었습니다.
✨ 주요 기능
📊 대시보드
주요 지표 실시간 모니터링
물건/임차인/계약 현황 한눈에 파악
청구/수납 현황 통계
unirent - 임대관리 솔루션 : 대시보드 화면 [윈도우]
🏢 자산 관리
건물 및 호실 등록/수정/삭제
호실별 상세 정보 관리
자산 상태 추적 (임대가능/임대중/점검중)
👥 임차인 관리
임차인 정보 등록 및 관리
연락처 및 계약 이력 관리
임차인별 청구 내역 조회
📝 계약 관리
임대차 계약 생성 및 관리
계약 상태 추적 (활성/만료/해지)
계약 기간 및 조건 관리
보증금/월세 정보 관리
unirent - 임대관리 솔루션 : 계약관리 화면 [윈도우]
💰 청구 및 결제
월세 자동 청구서 생성
청구 템플릿 관리
결제 내역 추적
미수금 관리
📈 비용 관리
건물/호실별 비용 기록
비용 카테고리별 분류
비용 통계 및 분석
📱 활동 로그
시스템 활동 이력 추적
사용자 작업 기록
📄 보고서
각종 관리 보고서 생성
unirent - 임대관리 솔루션 : 월별 보고서 화면 [윈도우]
⚙️ 설정
사용자 프로필 관리
시스템 설정
🏗️ 아키텍처
Clean Architecture + MVVM 패턴
이 프로젝트는 Clean Architecture와 MVVM(Model-View-ViewModel) 패턴을 결합하여 확장 가능하고 유지보수가 용이한 구조로 설계되었습니다.
lib/
├── app/ # 앱 설정, 테마, 라우팅
│ ├── router.dart # go_router 기반 네비게이션
│ └── theme.dart # Material 3 테마 설정
│
├── core/ # 공유 유틸리티 및 인프라
│ ├── auth/ # 인증 로직
│ ├── database/ # Drift 데이터베이스 설정
│ ├── network/ # HTTP 클라이언트 구성
│ └── rbac/ # 역할 기반 접근 제어
│
└── features/ # 기능 기반 모듈
├── auth/ # 로그인 및 인증 UI
├── dashboard/ # 메인 대시보드
├── property/ # 물건 및 호실 관리
├── tenant/ # 임차인 관리
├── lease/ # 계약 관리
├── billing/ # 청구 및 청구 템플릿
├── payment/ # 결제 관리
├── expense/ # 비용 관리
├── activity/ # 활동 로그
├── reports/ # 보고서
└── settings/ # 설정
2017년, 대학원 시절 뛰어난 동료들과 훌륭한 교수님의 지도 아래“DevOps Capabilities, Challenges, and Solutions”라는 논문을 함께 집필했을 때, 우리는 기업이 DevOps를 성공적으로 도입하기 위해 필요한 네 가지 핵심 역량을 정리했습니다:
사람(People)
프로세스(Process)
기술(Technology)
산출물(Artifacts)
이 프레임워크는 DevOps가 단순히 도구를 넘어선다는 점을 설명하는 데 도움이 되었습니다. DevOps는 문화, 워크플로우, 그리고 우리가 만들어내고 관리하는 결과물에 관한 것이었습니다.
2025년인 지금, 여전히 이 네 가지 역량은 필수적이라고 생각합니다. 달라진 것은 현대 기업 환경에서 이들이표현되고 실천되는 방식입니다.
👥 사람 (People)
2017년: 협업과 문화가 핵심이었고, HR의 역할은 DevOps 마인드셋을 갖춘 인재를 채용하고 사일로를 허무는 것이었습니다.
2025년: 문화는 여전히 중심이지만, HR 실무는AI 기반 채용, 지속적 학습, 스킬 매핑으로 진화했습니다. 빠르게 변하는 기술 환경에서 팀이 적응력을 유지하도록 돕는 방향으로 바뀌고 있습니다.
🔄 프로세스 (Process)
2017년: 애자일 워크플로우, CI/CD 파이프라인, 자동화가 중심이었습니다.
2025년: AI가 프로세스를 재편하고 있습니다.
사건 예측 분석(Predictive Analytics)
생성형 AI 기반 런북
자가 치유(Self-healing) 파이프라인 이제 프로세스 차원은자율성과 지능까지 포함하게 되었습니다.