22 2월 2026

[인공지능 기술] OpenClaw가 내 삶을 바꾸고 있다 

[인공지능 기술] OpenClaw가 내 삶을 바꾸고 있다 

27P by GN⁺ 13일전 | ★ favorite | 댓글 6개
  • OpenClaw는 개발자를 코드 작성자에서 관리자 역할로 전환시키는 범용 에이전트로, 메시징 앱을 통해 음성으로 상호작용하며 프로젝트 전체를 독립적으로 처리
  • Claude Code는 코딩을 쉽게 만들었지만 여전히 개발자가 직접 환경 설정, 편집, 디버깅을 수행해야 하는 코드 실행자 역할에 머물렀음
  • OpenClaw는 의도만 전달하면 자동으로 프로젝트 생성, 계획 수립, Claude Code 지시를 통한 코딩 실행까지 담당하며, 작업 중 학습한 방법과 규칙을 기억해 점진적으로 발전
  • 개발자는 이제 휴대폰 채팅만으로 개발, 테스트, 배포, 출시를 관리하며, 여러 프로젝트를 동시에 진행하는 가상의 팀을 보유한 것과 같은 생산성 확보
  • 자본 없이도 아이디어를 실현할 수 있는 환경이 조성되어, 1인 개발자가 제품 기획과 디자인에만 집중하는 이상적 상태에 근접함

기존 에이전틱 코딩 도구의 한계

  • Claude Code, Cursor 같은 에이전틱 코딩 도구는 코드 작성을 쉽게 만들었지만, 여전히 개발자가 코드를 “작성”하는 주체로 남아있음
    • 수작업 편집, 복사-붙여넣기, AI에게 의도 전달 후 완성 등 방식만 달라졌을 뿐, 코드를 현실화하는 책임은 개발자에게 있음
  • 생산성은 향상되었으나 작업마다 프로젝트 진입, 환경 설정, 에디터와 터미널 실행이 필요
    • 수동 타이핑 대신 채팅창에 의도를 입력하는 것으로 바뀌었을 뿐, 한 가지 차원만 변화
    • 테스트, 디버깅 대부분은 여전히 개발자 몫이며, 성숙하지 못하고 근본적 변화는 없음
  • 깊은 개입과 모니터링이 필요해 코드 실행자 역할에서 벗어나지 못함

OpenClaw가 가져온 변화

  • OpenClaw는 범용 에이전트로서 메시징 앱을 통해 음성으로 상호작용하며, 의도를 정확히 이해하고 장시간 독립적으로 작업
    • 작업 중 학습한 방법과 규칙을 기억하고 유지하며, 사용을 통해 점진적으로 발전
  • 몇 차례 실습 후, 프로그래밍 환경에서 완전히 벗어나 휴대폰 채팅만으로 프로젝트 전체(개발, 테스트, 배포, 출시, 사용)를 처리 가능
  • 의도만 표현하면 자동으로 프로젝트를 생성하고 계획을 작성해 검토하게 하며, 음성으로 변경 사항 논의 후 실행
    • Claude Code를 지시해 실제 코딩을 수행하도록 함
  • 코드를 작성하던 개발자를 대체하고 진정한 프로그래머 역할을 담당하여, 개발자를 관리자로 전환

관리자로의 전환

  • 관리자는 세부 사항에 얽매이지 않고 상위 수준의 추상적 작업에 집중해야 하며, 이것이 진정한 관리
    • 순수하게 커뮤니케이션만으로 일을 처리할 수 있을 때 진정한 관리자
  • Claude Code만으로는 이 상태에 도달할 수 없었으나, 24/7 실행되는 전용 머신과 도구 세팅, 의도를 이해하는 에이전트가 컴퓨터 앞에서 코드 작성 및 디버깅을 수행하면 진정한 변화 도래
  • 항상 대기 중인 프로그래머를 보유한 것과 같아, 미팅 참여, 아이디어 논의, 작업 수행, 보고, 조정을 언제든 가능
    • 여러 역할을 동시에 수행하며, 여러 프로젝트에서 다수의 프로그래머가 작업하는 것처럼 운영
  • 개발자는 특정 프로젝트 진행 상황을 추적하는 기술 리드나, 전체 일정과 방향을 조정하는 프로젝트 매니저 역할 수행

생산성 해방과 꿈의 실현

  • 생산성이 진정으로 해방되어, 이전에는 진행할 수 없었던 수많은 아이디어를 추진 가능
    • 아이디어는 많았으나 혼자 모두 구현할 방법이 없어 쌓여만 가던 상황에서 벗어남
  • 갑자기 팀을 보유한 것처럼 변화했으며, 항상 상상했던 시나리오에 도달
    • 회사를 소유하고 사람들을 고용해 아이디어를 실현하며, 제품 디자인과 기획에만 집중하는 상태
  • 이전에는 진지한 자본이 필요했으며, 돈 없이는 고용 불가능하고 아이디어맨으로만 남을 수 없음
    • 펀드로 재미삼아 하는 경우가 아니면, “여러 프로젝트를 만들고 싶은 인디 개발자”와 “생존을 위한 솔로 개발자” 사이에서 갇혀있음
  • 이제 그 함정에서 벗어나 실제로 팀을 보유하는 방향으로 이동 중
    • 언제든 모든 프로젝트가 진행되도록 유지
    • 아직 완벽하지는 않지만 첫 단계를 밟음
  • AGI는 이미 도착했으며, 운명의 톱니바퀴가 상상하지 못했던 방향으로 회전 중

[출처] https://news.hada.io/topic?id=26532&utm_source=weekly&utm_medium=email&utm_campaign=202607

Loading

18 2월 2026

[인공지능 기술] [알아봅시다] 화제의 대화형 인공지능, ChatGPT가 출원 서류도 작성할 수 있을까?

[인공지능 기술] [알아봅시다] 화제의 대화형 인공지능, ChatGPT가 출원 서류도 작성할 수 있을까?

2022년 11월 말 출시된 오픈AI사의 ChatGPT는 대화형 인공지능(이하 AI)으로써 질문에 대한 답을 주는 것 뿐만 아니라 문장의 요약, 창작, 번역 등 다양한 비즈니스에 활용이 가능하다. 지적재산 분야에서도 ChatGPT 등 AI 서비스의 등장이 특허 업무에 어떤 변화를 불러일으킬 것인가에 대해 많은 이목이 쏠리고 있다. 

 

일반적으로 변리사가 작성하는 특허출원 서류는 아래 5가지로 구성된다.

 

1) 권리의 범위를 정하는 ‘특허청구범위’

2) 발명의 상세를 설명하는 ‘명세서’

3) 발명의 요점을 기재하는 ‘요약서’

4) 발명의 설명을 알기 쉽게 하는 ‘도면’

5) 출원인 및 발명자에 대해 기재하는 ‘원서’

 

변리사가 이런 서류들을 작성하기 위해서는 출원인 및 발명자로부터 출원 정보를 받아 정리하고 특허 데이터베이스, 문헌 검색 등을 이용하여 기존에 유사한 출원이 존재하지 않는지 선행 조사를 실시한다. 그 이후, 출원의 특징 및 기술에 따라 신규성과 진보성을 평가해 문서화한다. 또한 심사와 소송에 대한 선제적으로 대비하기 위해 출원을 보완하는 경우도 있다.

 

그렇다면 AI는 특허 출원 과정에 어떠한 변화를 가져다 주었을까? 실제 ChatGPT에 질문한 내용을 예시로 들어보자.

 

<‘쓰레기 처리기’와 특허출원에 관해 ChatGPT와 나눈 대화 일부>

명령1

기존 쓰레기 처리기의 과제와 이를 보완할 수 있는 기술을 포함하는 특허 개발을 위한 청구항을 제안해줘.

이하에 기존 쓰레기 처리기의 과제를 보완할 가능성이 있는 기술을 포함하는 특허 개발을 위한 청구항의 예시를 제안합니다.

 

ㅇ 제1항: 자동 분리수거 기능을 구비한 쓰레기 처리기

쓰레기 처리기에 있어서 자동으로 쓰레기를 분리하고 분리된 쓰레기를 각각 적절한 처리 방법에 의해 처리하는 기능을 구비하는 것을 특징으로 한다.

 

제2항: 고효율 재활용 기능을 갖춘 쓰레기 처리기

쓰레기 처리기에 있어서 재활용 가능한 쓰레기를 고효율로 회수·분리하여 재사용 가능한 자원의 회수율을 향상시키는 기능을 구비하는 것을 특징으로 한다.

 

제3항: 악취 및 유해물 배출을 억제하는 쓰레기 처리기

쓰레기 처리기에 있어서 악취나 유해 물질의 배출을 억제하기 위한 탈취·제거 장치를 구비하여 처리 과정에 있어서의 환경 부하를 저감하는 기능을 갖는 것을 특징으로 한다.

 

제4항: 에너지 절약 운전이 가능한 쓰레기 처리기

쓰레기 처리기에 있어서, 처리 프로세스에 있어 에너지 절약 운전을 실현하기 위한 효율적인 열 교환 시스템 및 에너지 회수 장치를 구비하는 것을 특징으로 한다.

 

제5항: 원격 감시 및 제어 기능을 구비한 쓰레기 처리기

쓰레기 처리기에 있어서 원격지로부터의 감시 및 제어가 가능한 통신 인터페이스, 센서를 구비하여 운전 상황의 모니터링이나 효과적인 보수·관리를 실현하는 기능을 갖는 것을 특징으로 한다.

 

이러한 청구항은 쓰레기 처리기의 기존 과제에 대한 해결책이나 개선점을 도입한 것입니다. 특허출원 시에는 구체적인 발명의 상세나 기술에 따라, 보다 구체적이고 특징적인 청구항을 작성하는 것이 중요합니다. 전문적인 조언을 받으면서 특허출원 전략을 검토하는 것을 추천합니다.

명령2

그럼 쓰레기 처리기에 관한 특허출원서도 작성해 줄래?

일본 특허출원을 위한 원서의 예는 다음과 같습니다. 특허출원 시에는 특허청이 지정하는 서식에 따라 원서를 작성해야 하므로 이는 어디까지나 참고 예입니다.

 

[서류명] 쓰레기 처리기에 관한 특허출원서

 

[발명의 명칭] 쓰레기 처리기

 

[출원인 정보]

출원인 성명: [출원인 성명]

주소: [출원인 주소]

국적: [출원인의 국적]

법인의 경우 법인명과 소재지 기재

 

[대리인 정보] (대리인을 이용하는 경우)

대리인 성명: [대리인 성명]

주소: [대리인 주소]

국적: [대리인 국적]

대리인 등록번호: [대리인등록번호]

대리인 상세정보 기재

 

[발명의 요약]

[쓰레기 처리기 발명에 관한 요약 기재]

 

[발명의 설명]

[쓰레기 처리기 발명에 대한 상세한 설명 기재]

 

[도면 설명]

[쓰레기 처리기에 관한 도면 설명 기재]

 

[청구 범위]

[앞에서 서술한 청구항 번호와 내용 기재]

 

[신청일]

[특허출원 신청일 기재]

 

[서명]

출원인 또는 대리인의 서명과 날짜

 

이상이 일반적인 일본 특허출원을 위한 원서의 예입니다. 이는 특허청이 지정한 서식에 따라 필요한 정보를 정확하고 완전히 기재해야 합니다. 특허 대리인 및 변호사의 도움을 받는 것을 추천합니다. 또한, 특허출원에는 다양한 서류와 절차가 필요하므로 자세한 내용은 특허청 웹사이트 및 전문가의 지도를 참고하시기 바랍니다.

 

[자료: ChatGPT와 채팅 내용을 도쿄 IP-DESK에서 번역]

 

이처럼 ChatGPT의 경우, 질문에 대한 AI 나름의 분석과 답변을 받아볼 순 있었지만, 실제 특허출원을 하기 위한 구체적인 기술의 제시는 불가능했으며 제공된 양식이 정확한지도 확인해 볼 필요가 있을 것으로 사료된다. 외견상 그럴싸한 답변을 제시한 듯 했으나 ChatGPT는 인터넷상에 공개된 방대한 데이터를 학습하고 조합하여 답변하기 때문에 그 중에는 오래되거나 혹은 잘못된 정보가 포함돼 있을 가능성이 높다. 이 뿐만 아니라 채팅 기록과 개인정보, 영업비밀 유출 등의 보안상 문제가 우려되며 자사 시스템에 ChatGPT 프로그램을 도입·변경하여 사용하는 것은 불가하므로 활용 방안에 대해 신중하게 검토할 필요가 있다.

 

일본 경제산업성, AI를 이용한 특허 출원서류 작성을 인정해

 

한편, 아직은 시작 단계인 AI지만 특허 출원의 도우미로서 적절히 활용한다면 지식재산의 개발 및 관리에 소요되는 시간, 비용 등을 절감할 수도 있다. 아래에서는 나날이 증가하고 있는 일본 기업들의 AI를 활용한 지재권 서비스를 소개하고 이에 대한 적법성을 논한다.

 

AI 기반 특허 판정 시뮬레이션 시스템의 개발·운영 업체인 주식회사 AI사무라이(Samurai)는 최단 3일 만에 그리고 최저 5만 엔(세금 별도)으로 특허 조사와 출원서류 초안 작성이 가능한 ‘모두의 특허’ 서비스를 2022년 12월 시작하였다. 이 서비스는 변리사에게 의뢰하는 업무 영역이었던 베이스 자료를 AI가 작성함으로써 소요 비용과 시간을 대폭 절감시키고, 이를 연계 변리사의 감독 하에 특허청에 출원하는 방식이며, AI가 작성한 ①특허기술조사 리스트, ②특허 유사도 평가 자료 등도 받아볼 수 있다. 나아가, 미쓰이스미토모해상화재보험(주)와 연계해 日 업계 최초로 지식재산권의 소송비용 보험을 무상 제공한다. 본 서비스를 이용해 특허출원을 실시한 경우라면, 취득한 특허권이 포함되는 이용자의 제품·서비스에 대해서 특허침해 소송이 제기되었을 시 변호사 비용 등의 소송에 관한 비용의 일부가 보상된다.

 

온라인 플랫폼의 개발 및 운영, 지식재산 정보제공, 컨설팅을 실시하는 코토박스 주식회사(cotobox)는 일본 최대의 온라인 AI 상표등록 서비스 ‘Cotobox’를 통해 2021년 이래 2년 연속 일본 특허청에 출원 취급건수에 있어서 1위를 차지하였다. 본 서비스는 유사 상표 검색서비스를 제공해 간이 조사 결과와 웹사이트 폼에 정보를 입력하는 것만으로 출원 서류를 작성해준다. 더불어, 해당 사이트에서는 대화형 AI인 챗봇을 이용할 수 있어 본 서비스의 조작 방법이나 상표출원 시의 궁금증을 손쉽게 상담할 수 있다. 이러한 각종 인공지능 활용 기술로 해당 사이트에선 서비스 이용에 최단 3분이 소요되고 최단 1영업일 만에 일본 특허청에 출원서 제출까지 가능한 스피드 있는 상표출원을 서포트한다.

 

위와 같이 일본 IP 시장에서 부상을 거듭하고 있는 AI변리사 서비스, 즉 인공지능을 활용한 출원 업무 취급 서비스이지만 개시할 당시에는 우선 日 변리사법 제75조의 저촉 여부에 대한 확인이 필요했다. 이에 상기에 사례로 언급한 AI사무라이 측에서는 산업경쟁력강화법에 따라 사업자가 현행 규제의 적용 범위가 불명확한 경우에도 안심하고 신사업활동을 할 수 있도록 구체적인 사업 계획에 입각하여 미리 규제 적용 여부를 확인하는 ‘그레이존 해소 제도’를 통해 AI에 의한 특허출원서류 검토 및 작성의 적법성을 물었다.

 

 

일본 변리사법 제75조

 

변리사 또는 변리사법인이 아닌 자는 타인의 요구에 따라 보수를 받고 △특허·실용신안· 디자인·상표의 국제출원, △디자인권과 관련된 국제등록출원, △상표와 관련된 국제등록출원에 관한 특허청에 있어서의 절차, △특허·실용신안·디자인·상표에 관한 행정불복심사법의 규정에 따른 심사 청구, △재정에 관한 경제산업대신에 대한 절차 대리(특허료 납부 절차에 대한 대리, 특허 원부 등록신청절차에 대한 대리 및 그 밖의 정령으로 정하는 것은 제외), △또는 이러한 절차와 관련된 사항에 관한 감정(鑑定), △정령으로 정하는 서류 및 전자적 기록(전자적 방식, 자기적 방식 및 그 외 사람의 지각으로는 인식할 수 없는 방식으로 만들어지는 기록으로써, 컴퓨터에 의한 정보처리용으로 제공되는 것을 말함.)의 작성을 업으로 할 수 없다.

 

<日 경제산업성의 AI에 의한 특허출원서류 작성 관련 회답>

1. 확인 요청 일시: 2023년 1월 19일

2. 회답 일시: 2023년 2월 18일

3. 신 사업활동 관련 사업 개요: 본 건 사업은 이용자(연구자, 발명자, 변리사 등)가 입력한 발명 내용(새로운 아이디어) 및 복수의 유사한 선행특허문헌에 기초하여 특허출원서류 기재 예의 서포트가 되는 문장을 자동 출력하는 시스템(이하 ‘본 건 시스템’이라 한다.)을 개발·제공하는 것이다.

 

본 건 시스템의 구체적인 이용 절차는 다음과 같다.

 

(1) 사용자는 브라우저 화면에서 발명 내용을 문장으로 입력함과 동시에 선행기술문헌인 기준 특허와 유사 특허군(500건 이하)을 문헌 번호로 지정한다.

 

(2) 이 사건 시스템에 의해 발명 내용을 분할하고 분할된 구성에 포함되는 센텐스 또는 단어를 추출하고 그 추출된 문자군에 기초하여 유사 문헌으로부터 해당 문자군을 설명하는 해당 장소를 추출하여 명세서의 항목에 맞게 재배치하여 출력한다.

 

(3) 해당 출력 결과는 브라우저 화면상의 편집기능 또는 워드 문서로의 내보내기 기능을 통해 변리사에 의해 수정 확인돼 특허청에 출원된다. 본 건 시스템에서 사용자는 상기 (3)에서 수출된 워드 문서를 이용하여 특허출원을 함에 있어 변리사에게 해당 문서의 내용 확인 및 수정을 받는 것을 전제로 한다. 즉, 사용자는 본 건 시스템을 이용할 때에 본 건 시스템을 이용한 최종적인 특허출원서류의 작성 행위에 변리사가 확실하게 관여하는 것에 대해서 예를 들어 본건 시스템의 이용규약이나 별도 서약서 등에서 명확히 한다.

 

본 건 시스템의 제공처로써 상정하는 고객으로는 변리사, 특허업무법인 또는 변리사가 재적하는 기업으로 하고 변리사가 재적하지 않는 기업에 대해서는 별도 변리사 또는 특허업무법인과 출원위탁계약을 체결하는 것을 전제로 제공한다.

 

4. 확인 요청 내용: 본 건 사업이 변리사법 제75조에 저촉되는가

 

5. 확인 요구에 대한 답변내용: 본 건 시스템을 변리사 또는 특허업무법인에 제공하는 경우, 본 건 시스템이 출력하는 서류 데이터는 변리사 또는 특허업무법인만이 접근할 수 있으므로 본 건 시스템을 이용한 서류 작성 행위는 변리사의 감독 하에서 이루어지고 있어 변리사법 위반이 되지 않는다고 생각된다.

 

한편, 본 건 시스템을 변리사가 재적하는 기업 또는 변리사가 재적하지 않는 기업에 제공하는 경우, 본 건 시스템을 이용한 서류 작성 행위에 변리사가 관여하는 것이 확실하게 담보될 수 있도록 충분하고 객관적인 제도적·운용적 수당을 강구하고 있는 한, 해당 서류 작성 행위는 변리사법 위반에 해당하지 않는다고 생각된다.

 

단, 본 건 시스템 이용의 구체적 양태에 의해 변리사가 서류 작성에 실질적으로 관여하고 있지 않고, 이른바 ‘명의 대여’에 상당한다고 인정되는 경우, 본 건 시스템을 이용한 서류 작성 행위가 변리사법 위반이 될 가능성이 있다.

 

덧붙여 상기 회답은, 이번에 조회가 있던 사업에 대해서만 판단한 것이지, 다른 사업 등에 있어서의 판단을 나타내는 것은 아니다. 또한, 본 제도의 응답은 어디까지나 해당 법령에서의 취급에 대해서만 판단한 것이고, 다른 법령 등에서의 판단을 나타내는 것은 아니다.

[자료: 일본 경제산업성 홈페이지]

 

따라서, AI 기술을 접목시킨 특허출원서류 작성 서비스는 변리사법 제75조에 위배될 우려가 있었으나 그레이존 해소 제도에 근거한 답변을 통해 변리사의 감독 하에 있는 한 동조에 반하지 않는다는 것을 알 수 있었고 이는 여러 日 기업들이 AI에 의한 업무 효율화 추진 시스템 사업을 개발 및 연구할 수 있도록 이바지 하여, 일본의 산업 발전에 공헌할 수 있는 기회를 도출했다.

 

시사점

 

<AI기술 활용을 위한 액션 플랜에 게재 검토 사업(2022~2026년)>

항 목

내 용

전화·메일 등의 질문 대응 전화·메일 등의 질문 대응에 필요한 시간을 삭감하기 위해 다음 

사항 등에 대해 AI 기술 활용을 검토

– 전화 응답 내용의 쓰기

– 쓰기 데이터 등에서 문의에 관한 중요 부분 추출

– 문의 텍스트에서 답변 자동 생성

종이 자료의 전자화(텍스트화) 종이 서류의 내용 확인 및 입력 등에 소요되는 시간을 줄이기 위해, 다양한 레이아웃의 종이 서면에서 항목명과 항목명에 대응하여 기재된 입력을 세트로 추출, 텍스트화하는 것에 대해 검토
상표 국제등록출원에서의 지정상품 역무의 확인 지정상품 역무의 확인에 필요한 시간을 삭감하기 위해, 상표의 국제등록출원에서 지정된 지정상품 역무에 대해, 기초가 되는 국내출원에서 지정된 지정상품 역무의 범위를 넘지 않는지 체크를 지원하는 것을 검토
제출 서류의 열람금지처리 지원 특허청에 제출된 서면 내용에 따라 열람 금지 처리를 하는 업무의 효율화를 위해 AI 기술 활용을 검토
상표 식별성 유무의 시사 심사 안건 난이도의 적절한 파악을 위해 AI 기술을 활용해 출원된 상표에 대해 식별성 판단의 난이도 평가를 할 수 있는지 검토

[자료: 일본 특허청]

 

상기 일본 특허청의 AI를 활용한 업무 개혁 노력과 같이 계속해서 AI는 특허 생태계 전체에 효율과 특허 품질을 모두 향상시키는 중요한 역할을 맡을 것이며, 특허청 및 지적재산전략추진본부 등 현지 정부의 AI를 활용한 워크플로 접근법과 적법성 등을 주시해야 할 것이다. 이와 관련하여 일본의 최신 지재권 동향 및 지원 제도 등 한국 기업에서도 활용 가능한 해외 각국의 IP 정보는 공사 홈페이지 내 ‘IP-DESK가 전하는 글로벌 IP 현장 뉴스’를 통해서도 확인 가능하며, 도쿄 IP-DESK에서는 온라인을 통한 상시 상담을 진행하고 있으니 일본 진출에 이를 적극 이용하길 권장하는 바이다.

 

 

자료: ChatGPT, AI사무라이, 코토박스, 일본 경제산업성, 일본 특허청 홈페이지 참조, KOTRA 도쿄 무역관 IP-DESK 작성

<저작권자 : ⓒ KOTRA & KOTRA 해외시장뉴스> 

 

원문바로가기 : https://dream.kotra.or.kr/kotranews/search.do

[출처] https://www.kidp.or.kr/?menuno=773&bbsno=7531&siteno=16&act=view&ztag=rO0ABXQAOTxjYWxsIHR5cGU9ImJvYXJkIiBubz0iOTg5IiBza2luPSJwaG90b19iYnNfMjAxOSI%2BPC9jYWxsPg%3D%3D

Loading

16 2월 2026

[인공지능 개발자]  Claude Code 완전 가이드: 해커톤 우승자의 70가지 파워 팁 [54p PDF] 

[인공지능 개발자]  Claude Code 완전 가이드: 해커톤 우승자의 70가지 파워 팁 [54p PDF] 

Claude_Code_완전_가이드_70가지_팁.pdf

135P by xguru 7일전 | ★ favorite | 댓글 3개

Part 1: 에이전틱 개발자의 사고방식

  • 1.1. 큰 문제 정복의 첫걸음: 분해하고 정복하라 (ykdojo #3)
  • 1.2. 계획 모드 vs. 욜로 모드 (Ado #18, #19)
  • 1.3. 컨텍스트: AI의 기억력을 지배하는 기술 (ykdojo #5, #8, Ado #15)
  • 1.4. 올바른 추상화 수준 선택 (ykdojo #32)
  • 1.5. 미지의 영역에서 더 용감하게 (ykdojo #35)

Part 2: 기초부터 탄탄하게 – 환경 설정과 필수 명령어

  • 2.1. 커스텀 상태 라인으로 모든 것을 한눈에 (ykdojo #0)
  • 2.2. 필수 슬래시 명령어 마스터 (ykdojo #1, Ado #4, #16, #17)
  • 2.3. CLAUDE.md: AI를 위한 프로젝트 설명서 (Ado #1, #2, ykdojo #30)
  • 2.4. 터미널 별칭으로 빠른 접근 (ykdojo #7)
  • 2.5. 세션 관리: 대화를 잃지 않는 법 (Ado #9, #10, #11, #12)

Part 3: 생산성을 극대화하는 핵심 기술

  • 3.1. 음성으로 코딩하기 (ykdojo #2)
  • 3.2. 터미널 출력 추출의 기술 (ykdojo #6)
  • 3.3. Cmd+A/Ctrl+A: 전체 선택의 힘 (ykdojo #10)
  • 3.4. 마크다운과 Notion 활용 (ykdojo #19, #20)
  • 3.5. 키보드 단축키 완전 정복 (Ado #5, #6, #7, #8, ykdojo #38)
  • 3.6. Vim 모드로 프롬프트 편집 (Ado #13)
  • 3.7. 입력 박스 탐색 및 편집 (ykdojo #38)

Part 4: 컨텍스트 관리의 예술

  • 4.1. 선제적 컨텍스트 압축 (ykdojo #8)
  • 4.2. 터미널 탭으로 멀티태스킹 (ykdojo #14)
  • 4.3. 대화 복제 및 반복제 (ykdojo #23)
  • 4.4. /context로 X-Ray 비전 (Ado #15)
  • 4.5. realpath로 절대 경로 얻기 (ykdojo #24)

Part 5: Git과 GitHub 워크플로우 완전 정복

  • 5.1. Git과 GitHub CLI 프로 활용 (ykdojo #4)
  • 5.2. Git worktrees로 병렬 브랜치 작업 (ykdojo #16)
  • 5.3. 대화형 PR 리뷰 (ykdojo #26)
  • 5.4. 승인된 명령어 감사 (ykdojo #33)

Part 6: 고급 기능 – MCP, Hooks, Agents

  • 6.1. MCP: 외부 세계와의 연결 (Ado #22, #23, #24, #25)
  • 6.2. Hooks: 규칙의 강제 (Ado #26)
  • 6.3. Skills: 재사용 가능한 지식 (Ado #27)
  • 6.4. Agents: 전문화된 서브에이전트 (Ado #28)
  • 6.5. Plugins: 기능 번들 (Ado #29)
  • 6.6. CLAUDE.md vs Skills vs Slash Commands vs Plugins (ykdojo #25)

Part 7: 시스템 최적화와 자동화

  • 7.1. 시스템 프롬프트 슬림화 (ykdojo #15)
  • 7.2. 장시간 작업을 위한 수동 지수 백오프 (ykdojo #17)
  • 7.3. 백그라운드에서 bash 명령 및 에이전트 실행 (ykdojo #36)
  • 7.4. 자동화의 자동화 (ykdojo #41)
  • 7.5. Headless 모드로 CI/CD 통합 (Ado #30)

Part 8: 컨테이너와 샌드박스

  • 8.1. 컨테이너로 위험한 작업 격리 (ykdojo #21)
  • 8.2. Sandbox 모드와 권한 관리 (Ado #20)
  • 8.3. YOLO 모드: 위험을 감수할 때 (Ado #20)

Part 9: 브라우저 통합과 웹 자동화

  • 9.1. 네이티브 브라우저 통합 (Ado #21)
  • 9.2. Playwright MCP (Ado #22)
  • 9.3. Gemini CLI를 대체 수단으로 (ykdojo #11)

Part 10: 실전 활용 사례

  • 10.1. 작성-테스트 사이클 완성 (ykdojo #9)
  • 10.2. 자신만의 워크플로우에 투자 (ykdojo #12)
  • 10.3. 대화 기록 검색 (ykdojo #13)
  • 10.4. 글쓰기 도우미로 활용 (ykdojo #18)
  • 10.5. 연구 도구로 활용 (ykdojo #27)
  • 10.6. 출력 검증 방법 마스터 (ykdojo #28)
  • 10.7. DevOps 엔지니어로 활용 (ykdojo #29)
  • 10.8. 범용 인터페이스로 활용 (ykdojo #31)
  • 10.9. 테스트 많이 작성 (TDD) (ykdojo #34)
  • 10.10. 복잡한 코드 단순화 (ykdojo #40)

Part 11: 고급 패턴과 철학

  • 11.1. 계획과 빠른 프로토타이핑의 균형 (ykdojo #39)
  • 11.2. 개인화된 소프트웨어 시대 (ykdojo #37)
  • 11.3. 사용이 최고의 학습 (ykdojo #22)
  • 11.4. 지식 공유 및 기여 (ykdojo #42)
  • 11.5. 계속 학습하기 (ykdojo #43)

Part 12: 고급 기능과 SDK

  • 12.1. Extended Thinking (Ado #19)
  • 12.2. LSP 통합 (Ado #31)
  • 12.3. Claude Agent SDK (Ado #31)
  • 12.4. 팀 설정과 공유 워크플로우 (Ado #30)

Part 13: 학습 로드맵과 다음 단계

  • 13.1. 초급자를 위한 로드맵 (1-3개월)
  • 13.2. 중급자를 위한 로드맵 (3-12개월)
  • 13.3. 고급자를 위한 로드맵 (1년 이상)
  • 13.4. 필독 참고 자료

[출처] https://news.hada.io/topic?id=26526&utm_source=weekly&utm_medium=email&utm_campaign=202607

Loading

16 2월 2026

[인공지능 개발자] 소프트웨어 서바이벌 3.0 – 무엇을 만들어야 살아남는가 

[인공지능 개발자] 소프트웨어 서바이벌 3.0 – 무엇을 만들어야 살아남는가 

45P by neo 11일전 | ★ favorite | 댓글과 토론
  • AI가 모든 소프트웨어를 작성하는 시대에는 토큰(추론 비용)을 절약하는 소프트웨어가 진화론적 선택 압력을 통해 살아남게 될 것
  • 생존 비율 공식을 통해 소프트웨어의 적합도를 측정하며, 인지 절약이 인지 비용을 넘어서는 경우(1을 초과)에만 생존 가능
  • Git, grep 같은 도구는 통찰 압축과 기판 효율성 덕분에 AI가 다시 만들어 쓰기에는 비용이 터무니없이 큰 사례
  • 에이전트가 도구를 채택하려면 인지도(Awareness) 와 마찰 최소화(Friction) 가 필수적이며, Desire Paths 설계가 효과적
  • AI 중심의 시대에도 인간 계수(Human Coefficient) 가 작동해, 인간의 개입과 선호가 직접적인 가치를 만드는 영역은 계속 살아남게 될 것

배경: AI 시대의 소프트웨어 예측

  • 2024년 6월 Death of the Junior Developer, 10개월 전 오케스트레이터 도래 예측, Gas Town 프로젝트 등을 통해 AI 발전 곡선을 지속적으로 맞혀옴
  • 2023년 코드 자동 완성 → 2024년 대화형 인터페이스 → 2025년 초 에이전트 → 2026년 초 오케스트레이션으로 이어지는 흐름을 외삽해 Gas Town 개발
  • 모든 예측의 근거는 지수적 발전 곡선을 그대로 믿는 태도에 있음
  • Dario Amodei와 Andrej Karpathy가 소프트웨어의 미래에 대해 말해온 방향을 전적으로 신뢰함
  • Gas Town은 이러한 외삽이 실제로 작동함을 보여준 사례로, 2025년 말 모델과 다수의 임시적 보완을 통해 간신히 성립하는 형태를 먼저 확인

위협받는 소프트웨어 생태계

  • SaaS 기업에 대한 압력이 증가하며, 구매 대비 구축(build)의 비용 구조가 바뀌어 비즈니스 부서가 직접 바이브 코딩(vibe coding) 으로 자체 SaaS를 만드는 사례 확산
  • 불과 3년 전 GPT-3.5가 단일 함수 작성도 버거웠던 것과 달리, 현재는 소규모지만 실질적 가치가 있는 SaaS를 직접 생성 가능
  • Stack Overflow와 Chegg가 초기 타격을 받았고, 이후 Tier-1 고객 지원 소프트웨어, 로우코드·노코드 시스템, 콘텐츠 생성 도구, 각종 생산성 도구로 압박이 확산
  • IDE 벤더들 역시 Claude Code 등장 이후 경쟁 압력을 체감하기 시작
  • AI 연구자들의 예측이 약 40 년간 높은 정확도를 보여왔다는 점에서, 모든 소프트웨어 영역이 위협받을 가능성을 전제로 대비 필요

선택 압력 모델(Selection Argument)

  • 추론에는 토큰이 필요하고, 토큰 소비는 에너지 사용으로 이어지며, 에너지는 곧 비용으로 환산됨
  • {토큰, 에너지, 돈}은 동일한 자원 제약으로 취급 가능하며, 항상 제한된 상태로 존재
  • 인지 비용을 줄이는 소프트웨어가 살아남는다는 단순한 규칙이 소프트웨어 생태계 전반을 형성
  • 제한된 자원 환경에서 더 효율적으로 자원을 사용하는 개체가 그렇지 못한 개체를 밀어내는 진화론적 선택 압력과 동일한 구조

생존 비율(Survival Ratio) 공식

  • Survival(T) ∝ (Savings × Usage × H) / (Awareness_cost + Friction_cost)
  • Savings: 도구를 사용함으로써 절약되는 인지 비용, 즉 동일한 기능을 처음부터 합성할 때 대비 절감되는 토큰량
  • Usage: 도구가 다양한 상황에서 반복적으로 사용될 수 있는 빈도와 적용 범위
  • H (Human Coefficient): 효율성과 무관하게 인간이 만든 것에 가치를 두는 수요를 반영하는 계수
  • Awareness_cost: 에이전트가 해당 도구의 존재를 알고, 기억하고, 적절한 순간에 선택하는 데 드는 에너지
  • Friction_cost: 실제 사용 과정에서 발생하는 오류, 실패, 재시도, 오해로 인해 소모되는 에너지
  • 생존을 위한 최소 비율은 1이며, 경쟁이 존재하는 환경에서는 이보다 훨씬 높은 비율 요구
    • 예: 생존 비율이 1.2인 도구는 2.5를 기록하는 경쟁 도구에 의해 밀려날 수 있음

레버 1: 통찰 압축(Insight Compression)

  • 소프트웨어 산업이 오랜 시간에 걸쳐 축적해 온 다시 발견하기에 지나치게 비싼 지식을 재사용 가능한 형태로 압축
  • Git 이 대표 사례로, 커밋 DAG, 포인터로서의 참조(ref), 인덱스, reflog 등은 수십 년간의 시행착오가 응축된 구조
    • AI가 이를 처음부터 재구현하려면 동일한 지적 역사를 다시 밟아야 하므로 경제적으로 전혀 합리적이지 않음
  • 데이터베이스, 컴파일러, 운영체제, 워크플로우 엔진, 모니터링 시스템 전반에 동일한 원리 적용
  • Kubernetes 는 설계가 복잡해서가 아니라, 분산 시스템 자체가 본질적으로 복잡하기 때문에 복잡함
  • Temporal 은 멱등성 재시도와 함께 saga 패턴을 직접 구현하는 일이 사실상 연구 프로젝트에 가깝기 때문에, 이를 대신하는 내구성 실행(durable execution) 을 제공
  • 강한 소프트웨어의 공통된 특성은 다시 합성하려는 시도 자체가 터무니없게 느껴질 정도의 통찰 밀도
  • Gas Town에서의 캐릭터 역할 모델이나 gt sling 같은 동사 역시, 복잡한 개념을 짧고 기억하기 쉬운 표현으로 압축한 사례

레버 2: 기판 효율성(Substrate Efficiency)

  • grep 은 재발명이 사실상 미친 짓에 가까운 또 하나의 사례
  • Ken Thompson이 오후 한나절에 만들 정도로 단순하지만, CPU 기반 처리를 통해 막대한 인지 비용을 절약
  • 텍스트 패턴 매칭에서는 CPU가 GPU를 여러 자릿수 차이로 압도
  • LLM의 곱셈 방식은 패턴 매칭을 조합해 “대략 94쯤”을 먼저 추정하고, 이후 기억된 룩업 테이블로 자릿수를 보정하는 형태
    • 이 계산이 모두 GPU 추론 단계라는 극도로 비효율적인 기판 위에서 수행됨
  • 계산기, 파서, ImageMagick 같은 복잡한 변환 도구, 다수의 Unix CLI 유틸리티가 이 레버를 적극 활용
  • 좋은 알고리듬을 적용하거나, 계산을 CPU·인간 등 더 저렴한 기판으로 이동시켜 토큰과 에너지 소비를 절약

레버 3: 광범위한 유용성(Broad Utility)

  • 생존 비율 모델에서 Usage 항목에 해당
  • 사용 범위가 넓을수록 인지도 비용이 분산되고, 개별 사용 시 요구되는 토큰 절약 임계값이 낮아짐
  • 진정으로 범용적인 토큰 절약 도구는 AI가 이론적으로 재구현할 수 있더라도, 이미 어디에나 존재하고 널리 쓰이는 선택지가 우선됨
  • Temporal 은 상대적으로 높은 인지도 비용과 마찰 비용에도 불구하고 PostgreSQL 만큼 범용적인 워크플로우 모델 제공
    • 공격적인 통찰 압축, 계산 기판의 능숙한 활용, 광범위한 유용성이라는 세 가지 레버를 모두 보유
  • Dolt 는 Git으로 버전 관리되는 데이터베이스로, 8년간 유지되어 온 오픈소스 프로젝트
    • 에이전트 기반 프로덕션 및 DevOps 워크플로우에서 뒤늦게 킬러 앱을 발견
    • 에이전트가 프로덕션 환경에서 실수하더라도 Git의 전체 기능을 활용해 롤백·롤포워드 가능
  • 코드 검색 엔진은 LLM이 기존 대비 10배에서 100배 더 많은 코드를 생성하면서 중요성이 급격히 상승
    • grep이 감당할 수 없는 규모의, 이른바 “너무 커서 grep으로는 안 되는 영역” 이라는 대규모 범용 틈새 형성
    • 발견하기 어려운 엣지 케이스가 많은 비자명한 문제를 해결하고, 저렴한 계산 기판을 사용하며, 범용적 적용이 가능한 점에서 세 가지 레버를 모두 충족

레버 4: 홍보(Publicity)

  • 인지 비용 절약만으로는 충분하지 않으며, 인지도 문제, 즉 사전 선택 단계에서의 문제 해결 필요
  • Dolt는 레버 1~3을 모두 갖췄지만, 초기에는 레버 4가 부족해 널리 사용되지 못한 사례
  • 인지도 비용을 지불하는 방법은 여러 가지 존재
    • 훌륭한 제품을 만들고 인기를 얻은 뒤, 커뮤니티를 통해 자연스럽게 훈련 데이터에 포함되기를 기다리는 방식
    • 또는 비용을 투입해 에이전트용 문서화에 투자하거나 광고 집행
  • 보다 직접적인 방법으로, OpenAI, Anthropic, Google 같은 프론티어 랩의 담당자와 협력해 모델 훈련 과정에 도구를 포함
    • 유료 서비스 형태로, 도구의 올바른 사용과 오용을 모두 보여주는 eval을 제작한 뒤 연구자들이 훈련을 조정
  • 에이전트를 위한 SEO 개념이 본격적으로 등장 중
  • 대규모 예산을 투입하기 어렵다면, 사후 선택 단계에서의 에너지, 즉 레버 5에 의존해야 하며, 이를 위해 도구를 최대한 에이전트 친화적으로 설계 필요

레버 5: 마찰 최소화(Minimizing Friction)

  • 인지도가 사전 선택 단계의 문제라면, 제품 마찰은 사용 이후 단계의 문제
  • 에이전트는 항상 시간에 쫓기는 것처럼 행동하며, 무언가 막히면 즉시 우회 경로를 시도
  • 마찰이 조금만 있어도 판단이 바뀌어, 더 효율적인 도구 대신 덜 효율하지만 익숙하고 예측 가능한 방법으로 후퇴
  • 반대로 취향에 정확히 맞게 설계된 도구는 에이전트가 집요할 정도로 반복 사용
  • 문서화 접근법은 훈련 단계가 아닌 추론 시점까지 인지 비용을 미루는 방식
    • 도구가 무엇을 잘하는지, 언제 왜 써야 하는지, 빠른 시작 가이드와 후속 문서 경로를 컨텍스트에 직접 주입
  • 그러나 더 나은 해법은 에이전트에게 직관적으로 느껴지는 도구 자체를 만드는 것
  • Desire Paths 설계 사례로, Beads 는 4개월간 100개가 넘는 하위 명령과 다수의 하위-하위 명령, 별칭, 대체 문법을 거치며 CLI가 진화
    • 이 복잡한 CLI는 인간이 아니라 에이전트의 사용 패턴을 위해 설계됨
    • 에이전트가 시도하는 방식을 관찰해 환각을 실제 기능으로 구현, 이제는 거의 모든 추측이 그대로 동작
  • 환각 스쿼팅(Hallucination Squatting) 은 LLM이 자주 환각하는 도메인 이름을 역으로 추적해 등록하고, 해당 주소에 아티팩트를 올려 실제로 다운로드하게 만드는 기법
    • 국가 단위의 해커 집단조차 Agent UX를 이해하고 활용한다는 점이 드러남
  • Agent UX는 결정적으로 중요하지만 아직 대부분의 도구에서 간과되고 있음
  • 이상적인 도구는 에이전트가 이미 익숙한 다른 도구와 닮아 있거나, 문제를 에이전트가 사고하고 싶어하는 방식 그대로 풀어주는 구조

레버 6: 인간 계수(Human Coefficient)

  • 토큰 효율성과 무관하게, 인간이 개입했다는 사실 자체로 가치를 얻는 소프트웨어 존재
  • 인간 큐레이션, 사회적 증거, 창의성, 물리적 존재감, 승인 같은 요소에서 가치가 파생
  • 인간이 고른 플레이리스트는 품질이 동등하고 에너지 효율이 더 높은 AI 생성 플레이리스트를 이길 수 있음
  • 게임 분야에서는 실제 인간이 있는 환경이 대체로 승리하며, 명백히 인간보다 강한 AI와만 플레이하고 싶어하는 경우는 드묾
  • 에이전트를 배제하는 소셜 네트워크가 오히려 매력적으로 인식될 가능성
  • AI가 최고의 교사가 되더라도, 일부 사람들은 의도적으로 인간 교사를 선택할 것
  • 높은 Human Coefficient를 가진 영역에서도 경쟁은 치열함
    • Karpathy가 그리는 세계에서 에이전트는 누구에게나 무엇이든 될 수 있고, 본질적으로 강한 중독성을 가짐
  • 결과적으로 극단적으로 비효율적이지만 H 값이 매우 높은 소프트웨어가 다수 존재하게 될 가능성

희망의 근거

  • 인간과 AI 사이를 중개하거나, AI가 곧 직접 수행할 수 있게 될 “똑똑한 척하는 역할” 을 맡은 소프트웨어는 구조적으로 위험
  • 그럼에도 불구하고 작성되어야 할 소프트웨어의 양은 사실상 무한
    • 모든 질병 치료, 모든 단백질의 거동 모델링, 모든 행성 탐사 시나리오가 여전히 대상
  • 인간의 야망은 항상 가용한 인지 능력을 초과하며, 토큰 비용이 하락하더라도 우리는 곧바로 더 먼 프론티어로 이동
  • 주의 집중 문제는 인쇄 매체, 인터넷, 소셜 미디어, 실시간 광고, 애그리게이터를 거치며 이미 여러 차례 해결된 경험 보유
  • Desire Paths 설계가 실제로 효과적이며, OpenAI 같은 곳의 대규모 훈련 예산 없이도 에이전트가 자연스럽게 쓰고 싶어하는 도구를 만들 수 있음
  • 인간 계수는 분명히 존재하며, 사람들은 이미 에이전트 냄새가 짙은 것에 피로감을 느끼기 시작
    • 인간 간의 연결과 창의성을 중심에 두고 설계하면, 결국 문제는 다시 전통적인 마케팅과 브랜딩의 영역으로 수렴
  • 여섯 가지 레버가 제공하는 다양한 생존 경로가 존재
  • 다시 만들려는 시도 자체가 미친 짓처럼 느껴지는 것을 구축하고, 발견하기 쉽고 사용하기 쉽게 만든다면 충분히 견고한 가능성 확보

[출처] https://news.hada.io/topic?id=26413 

Loading

8 2월 2026

[인공지능 개발자] [알아봅시다] AI로 고품질 코드를 효과적으로 작성하는 방법

[인공지능 개발자] [알아봅시다] AI로 고품질 코드를 효과적으로 작성하는 방법

4P by GN⁺ 5시간전 | ★ favorite | 댓글 1개
  • AI와 협업하는 개발 환경에서는 인간이 프로젝트의 방향과 의사결정을 명확히 정의해야 품질을 유지할 수 있음
  • 정확한 문서화를 통해 AI와 다른 개발자 모두가 요구사항과 제약을 명확히 이해하도록 해야 함
  • 디버그 시스템과 코드 리뷰 체계를 구축해 AI가 생성한 코드의 신뢰성과 검증 과정을 강화함
  • 보안 위험 함수 표시, 테스트 분리, 엄격한 린팅 규칙 등으로 코드의 안정성과 일관성을 확보함
  • 작업 단위 분할과 복잡도 최소화를 통해 AI 코드 생성의 통제력을 유지하고 효율성을 극대화함

1. 명확한 비전 수립

  • 인간은 세계와 팀, 사용자 행동을 이해하지만 AI는 경험이 없으므로 명시적 지침이 필요함
    • 프로젝트에서 문서화되지 않은 결정은 AI가 대신 내리게 됨
  • 아키텍처, 인터페이스, 데이터 구조, 알고리듬을 사전에 논의하고 테스트 방법을 정의해야 함
  • 장기적이고 변경이 어려운 결정은 반드시 인간이 직접 관리해야 함

2. 정확한 문서 유지

  • AI가 목적에 맞는 코드를 생성하려면 세부적인 요구사항 전달이 필수임
  • 다른 개발자도 동일한 정보를 AI에 제공해야 하므로, 표준화된 형식의 문서를 코드 저장소에 포함해야 함
    • 요구사항, 제약, 아키텍처, 코딩 표준, 디자인 패턴 등을 상세히 기록
    • UML 다이어그램, 플로우차트, 의사코드 등을 활용해 복잡한 구조를 시각적으로 표현

3. AI를 지원하는 디버그 시스템 구축

  • 효율적인 디버그 시스템을 마련해 AI가 코드 기능을 빠르게 검증할 수 있도록 해야 함
    • 예: 분산 시스템의 모든 노드 로그를 수집해 “데이터가 모든 노드로 전송됨” 등 요약 정보를 제공
  • 이를 통해 명령어 실행 비용 절감과 문제 식별 속도 향상이 가능함

4. 코드 리뷰 수준 표시

  • 코드의 중요도에 따라 리뷰 강도를 구분해야 함
    • 예: AI가 작성한 함수 뒤에 //A 주석을 추가해 인간 검토 여부를 표시
  • 이 체계는 검토되지 않은 코드의 식별과 관리를 용이하게 함

5. 고수준 명세 작성 및 직접 테스트

  • AI는 테스트 통과를 위해 모의 객체나 하드코딩 값으로 속임수를 쓸 수 있음
  • 이를 방지하기 위해 속성 기반 테스트(property-based testing) 를 직접 작성해야 함
    • 예: 서버를 재시작하고 데이터베이스 값의 일관성을 검증
  • 테스트 코드는 AI가 수정하지 못하도록 별도 영역에 분리해야 함

6. 인터페이스 테스트의 분리

  • AI가 다른 코드 맥락을 모른 채 인터페이스 테스트를 작성하도록 해야 함
    • 구현 AI의 영향을 받지 않아 테스트의 객관성이 유지됨
  • 이 테스트 역시 AI가 임의로 수정하지 못하도록 보호해야 함

7. 엄격한 린팅 및 포맷팅 규칙

  • 일관된 코드 스타일과 린팅 규칙은 품질 유지와 오류 조기 발견에 필수적임
  • AI와 인간 모두가 코드 품질을 쉽게 점검할 수 있음

8. 컨텍스트별 코드 에이전트 프롬프트 활용

  • 프로젝트별 CLAUDE.md 등 프롬프트 파일을 사용해 AI의 초기 이해 비용을 줄임
  • 코딩 표준, 디자인 패턴, 요구사항 등을 포함해 AI의 코드 생성 품질과 효율성을 높임

9. 보안 위험 함수 식별 및 표시

  • 인증, 권한, 데이터 처리 등 보안 민감 함수를 명시적으로 표시해야 함
    • 예: //HIGH-RISK-UNREVIEWED, //HIGH-RISK-REVIEWED 주석 사용
  • AI가 해당 함수를 수정하면 리뷰 상태를 자동 변경하도록 설정해야 함
  • 개발자는 항상 이 상태가 정확한지 확인해야 함

10. 코드 복잡도 최소화

  • 불필요한 코드 한 줄도 AI의 컨텍스트 창을 차지하고 비용을 증가시킴
  • 가능한 한 단순한 구조로 유지해 AI와 인간 모두의 이해도를 높여야 함

11. 실험과 프로토타입을 통한 문제 탐색

  • AI 코드 생성의 저비용 특성을 활용해 다양한 해결책을 실험할 수 있음
  • 최소한의 명세로 여러 프로토타입을 만들어 최적의 접근법을 탐색함

12. 무분별한 대규모 생성 금지

  • 복잡한 작업은 작은 단위로 분할해 AI가 단계적으로 처리하도록 해야 함
    • 예: 전체 프로젝트 대신 개별 함수나 클래스를 생성
  • 각 구성요소가 명세에 부합하는지 검증해야 하며,
    코드의 복잡성을 통제하지 못하면 프로젝트를 초기 상태로 되돌려야 함

[출처] https://news.hada.io/topic?id=26491

Loading

28 12월 2025

 [一日30分 인생승리의 학습법] [알아봅시다] 50대 시니어 개발팀장이 읽으면 좋은 추천도서 [두번째]

 [一日30分 인생승리의 학습법] [알아봅시다] 50대 시니어 개발팀장이 읽으면 좋은 추천도서 [두번째]

50대 IT 시니어 개발자이자 팀장 역할을 수행하시는 분들께는 단순히 기술적인 전문성을 넘어, 조직 관리의 지혜, 인생의 철학, 그리고 급변하는 AI 시대의 통찰을 균형 있게 다루는 책들이 필요합니다.

현장의 풍부한 경험을 더 깊은 통찰로 승화시켜 줄 교양서 20권을 네 가지 카테고리로 나누어 추천해 드립니다.


1. 리더십과 조직의 본질 (팀장을 위한 지혜)

실무자에서 관리자로, 또는 관리자에서 리더로 진화할 때 마주하는 인간관계와 조직의 문제를 다룹니다.

  1. 실리콘밸리의 팀장들 (Radical Candor) | 킴 스콧

    • ‘완전한 솔직함’이 어떻게 팀의 성과를 만드는지 보여주는 현대 리더십의 교과서입니다.

  2. 하이 아웃풋 매니지먼트 | 앤디 그로브

    • 전 인텔 CEO가 쓴 경영의 정석입니다. ‘중간 관리자’의 성과를 어떻게 측정하고 극대화할지 다룹니다.

  3. 매니징 휴먼 (Managing Humans) | 마이클 롭

    • 애플, 구글 등에서 근무한 저자가 기술직군 특유의 문화를 바탕으로 쓴 유머러스하고 날카로운 관리 지침서입니다.

  4. 데일 카네기 인간관계론 | 데일 카네기

    • 고전은 이유가 있습니다. 세대 차이를 넘어 사람의 마음을 움직이는 기본 원칙을 되새기게 합니다.

  5. 겸손한 리더십 | 에드거 샤인

    • 권위가 아닌 ‘질문’과 ‘관계’를 통해 팀원들의 잠재력을 끌어내는 법을 제안합니다.

2. IT 철학과 시스템 사고 (시니어 개발자를 위한 통찰)

기술 그 너머의 아키텍처와 엔지니어링의 본질을 깊이 있게 통찰하게 돕는 도서들입니다.

  1. 맨먼스 미신 (The Mythical Man-Month) | 프레더릭 브룩스

    • 50년 전의 책이지만 소프트웨어 공학의 난제는 변하지 않았음을 보여주는 필독서입니다.

  2. 피닉스 프로젝트 | 진 킴 외

    • 소설 형식으로 IT 운영과 개발의 갈등, 그리고 DevOps가 왜 필요한지를 흥미진진하게 풀어냅니다.

  3. 구글 엔지니어는 이렇게 일한다 | 타이터스 워터스 외

    • 단순 코딩이 아닌 ‘시간에 따라 지속 가능한’ 엔지니어링이 무엇인지 구글의 사례로 보여줍니다.

  4. 생각에 관한 생각 | 대니얼 카너먼

    • 인간의 인지 편향을 다룬 행동경제학 명저로, 기술적 의사결정 시 범하기 쉬운 오류를 방지해 줍니다.

  5. 시스템 사고의 기술 | 도넬라 메도즈

    • 복잡한 조직과 소프트웨어 시스템을 전체적인 관점에서 바라보는 통찰을 제공합니다.

3. 인생의 후반전과 철학 (50대를 위한 위로와 성찰)

커리어의 정점에서 인생의 의미와 품격을 고민하는 시기에 읽기 좋은 책들입니다.

  1. 마흔에 읽는 쇼펜하우어 | 강용수

    • 고통과 고독을 긍정하고 자신만의 행복을 찾는 철학적 조언을 담고 있습니다.

  2. 백년을 살아보니 | 김형석

    • 100세 철학자가 들려주는 인생의 황금기(60~75세)에 대한 이야기는 50대에게 큰 위안이 됩니다.

  3. 도둑맞은 집중력 | 요한 하리

    • 정보 과잉 시대에 리더로서 어떻게 본질에 집중할 것인가에 대한 깊은 질문을 던집니다.

  4. 장자 (또는 장자 관련 해설서)

    • 비움과 여유의 미학을 통해 조직 내 갈등이나 커리어의 압박에서 벗어나는 지혜를 줍니다.

  5. 나이 들어가는 내가 좋습니다 | 요시모토 바나나 외

    • 나이 듦을 쇠퇴가 아닌 ‘익어감’으로 받아들이는 태도를 가르쳐 줍니다.

4. 기술 트렌드와 미래 통찰 (AI와 비즈니스 환경)

후배들과 대화하고 미래 전략을 세우기 위한 거시적인 시각을 제공합니다.

  1. AI 이후의 세계 | 헨리 키신저, 에릭 슈미트 외

    • AI가 인류의 정치, 사회, 철학에 미칠 영향을 거물급 인사들이 논합니다.

  2. 불변의 법칙 | 모건 하우절

    • 세상은 변해도 변하지 않는 인간의 본성과 돈의 흐름에 대해 이야기합니다.

  3. 제로 투 원 | 피터 틸

    • 경쟁이 아닌 ‘독점적 가치’를 창출하는 기술 비즈니스의 본질을 꿰뚫습니다.

  4. 코드 너머, 회사보다 오래 남을 개발자 | 김상기 외

    • 시니어 개발자가 회사의 부품이 아닌 독립된 전문가로 살아남기 위한 전략을 담았습니다.

  5. 수축사회 | 홍성국

    • 인구 감소와 저성장 시대, 리더로서 미래 환경을 어떻게 대비해야 할지 거시 경제적 안목을 줍니다.


Tip: 한꺼번에 다 읽기보다는, 현재 팀 내에서 겪는 고민이 있다면 **1번(리더십)**이나 2번(시스템) 카테고리에서 한 권을, 마음의 여유가 필요하시다면 3번(철학) 카테고리에서 한 권을 골라 병행해 보시는 것을 추천드립니다.

Loading

28 12월 2025

[一日30分 인생승리의 학습법] [알아봅시다] 50대 시니어 개발팀장이 읽으면 좋은 추천도서 [첫번째]

[一日30分 인생승리의 학습법] [알아봅시다] 50대 시니어 개발팀장이 읽으면 좋은 추천도서 [첫번째]

아래 20권은 “50대 시니어 개발자 + 팀장/리더 역할” 관점에서 기술 감각을 잃지 않으면서도, 사람·조직·성과를 함께 끌어올리는 데 도움이 되는 교양서(실무 교양 포함)로 골랐습니다.

1) 팀장·리더십(사람/조직/커뮤니케이션)

  1. 일 잘하는 팀장 — 팀장의 역할/태도/팀 운영을 한국 조직 맥락에서 정리. 교보문고

  2. 나는 인정받는 팀장이고 싶다 — “현업 팀장”들의 시행착오/소통 포인트를 모은 책. 알라딘

  3. 프로그래머의 리더십 — 개발자 출신 리더가 겪는 프로젝트/소통/자기계발을 현실적으로 다룸. 예스24

  4. The Manager’s Path (Camille Fournier) — 엔지니어→매니저 성장 단계별 역할/함정을 정리. Engineering Manager+1

  5. Staff Engineer (Will Larson) — 관리자 트랙이 아니어도 “영향력/전략/멘토링”으로 리드하는 법. 스태프 엔지니어십

2) 성과를 내는 팀 운영(관리/지표/OKR/생산성)

  1. High Output Management (Andy Grove) — 관리자의 레버리지, 1:1, 성과관리의 고전. 아마존

  2. Measure What Matters (John Doerr) — OKR로 목표·정렬·집행력을 만드는 방식(사례 중심). PenguinRandomhouse.com+1

  3. Good Strategy Bad Strategy (Richard Rumelt) — “좋은 전략=문제 해결의 핵심 진단+집중”을 강하게 훈련. 아마존

  4. Turn the Ship Around! (L. David Marquet) — 리더가 지시자가 아니라 “리더를 만드는 시스템”을 만드는 법. Engineering Manager+1

  5. 무엇이 1등 팀을 만드는가? — 엔지니어링 리더가 현장에서 쓰는 프레임/소통/성과 체계를 정리(국내 번역). 한빛+

3) 전달·운영·조직 설계(DevOps/플랫폼/팀 구조)

  1. Accelerate (Forsgren/Humble/Kim) — “성과가 나는 전달(Delivery) 조직”의 과학적 근거와 지표. IT Revolution+1

  2. The Phoenix Project (Gene Kim 외) — 소설 형식으로 병목/흐름/협업(DevOps 핵심)을 체감. IT Revolution+1

  3. Team Topologies (Skelton & Pais) — 팀 인터랙션/인지부하 관점에서 조직을 설계하는 방법. Medium+1

  4. Peopleware (DeMarco & Lister) — 개발 생산성의 핵심이 “사람/환경/문화”라는 고전. DigitalDefynd Education+1

  5. An Elegant Puzzle (Will Larson) — 엔지니어링 조직 운영(프로세스/조직 설계/운영 패턴) 실전서. Engineering Manager

4) 소프트웨어 교양(프로젝트/설계/사고력)

  1. The Mythical Man-Month (Fred Brooks) — 일정/인력/커뮤니케이션의 본질(브룩스의 법칙) 고전. 위키백과+1

  2. The Pragmatic Programmer (Hunt & Thomas) — 장인 관점의 습관/원칙(유지보수·품질·태도) 정리. 위키백과+1

  3. Clean Architecture (Robert C. Martin) — 구조/경계/의존성 등 “흔들리지 않는 설계 원칙”을 정리. 아마존+1

  4. Thinking in Systems (Donella Meadows) — 복잡한 문제를 “시스템”으로 보는 사고 도구(관리자 필수 교양). 위키백과+1

  5. Radical Candor (Kim Scott) — 배려와 직언을 함께 하는 피드백 문화(팀장에게 즉효). Engineering Manager


읽는 순서(추천 루트 2가지)

  • 팀장 역량을 빨리 올리는 루트(8주): 4 → 9 → 6 → 20 → 11 → 12 → 13 → 14

  • 시니어/아키텍트 감각까지 같이 가는 루트: 5 → 15 → 19 → 16 → 18 → 17 (+필요 시 8,7)

Loading

17 12월 2025

[인공지능 개발자] [알아봅시다] Ollama Python에서 사용하기

[인공지능 개발자] [알아봅시다] Ollama Python에서 사용하기

post-thumbnail

이전 포스트에서 테스트 해봤던 Ollama를 쫌 더 다양하게 활용하기 위해 Python에서 사용하는 실습을 진행해보았다. 이번에는 예제 코드를 활용한 간단한 기능한 구현해보고 앞으로 HuggingFace 모델 가져오기, LangChain과 함께 사용하기 등 추가 실습을 더 진행해볼 예정이다.

실습은 파이썬 가상환경을 만들어서 진행했고, 한국어로 사용할 수 있는 모델을 찾기 위해서 여러 모델들을 테스트 해보았다. 한국어 채팅은 Gemma의 성능이 가장 좋았다. 아래 실습에서는 여러 모델을 섞어서 진행하겠다.

  • Llama2
  • Mistral
  • Solar
  • Gemma

test-result

구글의 Gemma만 제대로된 답변을 주고 있다. (역시 따끈따끈한 모델..) Solar는 한국에서 만들었는데(Upstage) 학습할 때 한국어 데이터셋을 많이 안 포함 시킨 건지 왜 성능이..? (10.7B size 기준)
.
.
.

설치 및 세팅

파이썬에서 Ollama를 사용하는 방법은 공식 깃헙 에서 잘 설명해주고 있다.

pip install ollama

우선 Ollama를 설치한다. (가상환경에서 진행하므로 이전에 terminal에서 설치해 준 것과 무관하게 다시 설치해줘야 한다)

import ollama
ollama.pull('llama2')

ollama를 import하고 모델을 설치해준다. 터미널에서 ollama run gemma를 통해 모델을 다운로드하고 바로 실행할 수 있지만, python에는 모델을 pull해온다. ollama.list()를 통해서 설치한 모델 리스트를 확인할 수 있고 ollama.delete('llama2')를 통해 모델을 삭제할 수도 있다.

response = ollama.chat(model='solar', messages=[
  {
    'role': 'user',
    'content': 'Why is the sky blue?',
  },
])
print(response['message']['content'])

content에 input prompt를 작성하면 답변이 생성된다. model을 바꿔가면서 테스트해봤는데, 모델에 따라서 답변의 길이, 응답 특성 등이 살짝씩 달랐다.

임베딩 벡터 얻기 + 검색(with ChromaDB)

Ollama에 이 기능이 공개된 건 꽤 최근인 것 같은데, 답변을 출력할 뿐만 아니라 답변의 embedding vector를 제공한다는 것이다. 공식 문서에서는 RAG를 구축하는데 사용할 수 있다고 설명하고 있고 (1)임베딩 (2)DB저장 (3)검색 (4)답변생성 의 과정을 실습해볼 수 있는 예시를 제공한다. 코드는 모두 Ollama에서 제공한 것이며, 사용 모델만 내가 설치한 모델로 바꿔서 진행하였다.

ollama.embeddings(model='mistral', prompt='The sky is blue because of rayleigh scattering')

위 코드를 실행하면 출력 결과로 답변과 함께 embedding vector가 나온다.

다음으로는 Ollama와 ChromaDB를 각각 사용해서 임베딩 벡터를 생성하고 저장한 뒤 검색하는 과정을 진행해보겠다.

pip install chromadb

우선 ChromaDB를 설치한다.

import ollama
import chromadb

documents = [
  "Llamas are members of the camelid family meaning they're pretty closely related to vicuñas and camels",
  "Llamas were first domesticated and used as pack animals 4,000 to 5,000 years ago in the Peruvian highlands",
  "Llamas can grow as much as 6 feet tall though the average llama between 5 feet 6 inches and 5 feet 9 inches tall",
  "Llamas weigh between 280 and 450 pounds and can carry 25 to 30 percent of their body weight",
  "Llamas are vegetarians and have very efficient digestive systems",
  "Llamas live to be about 20 years old, though some only live for 15 years and others live to be 30 years old",
]

client = chromadb.Client()
collection = client.create_collection(name="docs2")

# store each document in a vector embedding database
for i, d in enumerate(documents):
  response = ollama.embeddings(model="mistral", prompt=d)
  embedding = response["embedding"]
  collection.add(
    ids=[str(i)],
    embeddings=[embedding],
    documents=[d]
  )

documents에는 임베딩을 진행한 문서를 넣어주고, embedding model은 mistral을 사용했다. 데이터양이 적어서 금방 실행된다.

# an example prompt
prompt = "What animals are llamas related to?"

# generate an embedding for the prompt and retrieve the most relevant doc
response = ollama.embeddings(
  prompt=prompt,
  model="mistral"
)
results = collection.query(
  query_embeddings=[response["embedding"]],
  n_results=1
)
data = results['documents'][0][0]

prompt에 질문을 넣어주면 해당 질문의 답변을 얻을 수 있는 가장 유사한 문장을 documents에서 찾는다. (embedding vector로 가장 유사도가 높은 문장을 찾는 걸로 알고 있는데, 정확한 방법은 알지 못한다. 추후 Langchain과 함께 사용하는 부분에 추가하겠다)

output = ollama.generate(
  model="mistral",
  prompt=f"Using this data: {data}. Respond to this prompt: {prompt}"
)

print(output['response'])

가장 유사성이 높은 문장을 찾아오는 것까지도 유용하지만, 그 문장을 가지고 다시 model에 넣어서 매끄러운 답변을 생성하는 과정이다.

여기까지 하면 거의 ChatGPT와 같은 모델을 뚝딱 만들어 낸 것이다! 좀 더 많은 기능들을 붙이거나 미세한 조정(chunk size 조정 등) LangChain을 사용하는 것이 유용하겠지만, 이렇게 간단한 작업은 각각 불러와서 진행해도 충분할 것 같다.

참고자료

[출처] https://velog.io/@cathx618/Ollama-Python%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

Loading

10 12월 2025

[인공지능 개발자] Spring AI로 LLM 연결하기(Feat: ollama)

[인공지능 개발자] Spring AI로 LLM 연결하기(Feat: ollama)

들어가면서

올해 초 LLM에 관심이 생겨 이것저것 찾아보다가 Spring AI를 알게 되었고, 최근 정식 버전인 1.0.0이 출시되면서 본격적으로 공부하게 되었습니다.
제가 느끼기에 Spring AI는 LLM 연결을 매우 쉽게 도와주며, 다음과 같은 다양한 기능을 제공합니다:

  • 프롬프트 전처리/후처리를 위한 Advisor
  • JSON → DTO 구조화 출력 지원
  • LLM이 메서드를 직접 호출하는 Function Calling
  • RAG, MCP, 멀티모달 등 다양한 고급 기능 지원

덕분에 이제는 Python 기반 도구가 아니더라도, Java 환경에서도 LLM을 효과적으로 활용할 수 있게 되었습니다.
이 블로그 시리즈는 총 3편으로 구성될 예정이며, 각 주제는 다음과 같습니다:

  1. Spring AI로 LLM 연결하고 구조화된 출력하기
  2. Advisor로 LLM에 추가 정보 제공 및 응답 가공하기 (feat. RAG)
  3. Function Calling으로 LLM에게 메서드 제공하기 (feat. AI Agent)
    이번 포스팅은 그 첫 번째 주제인 “Spring AI로 LLM 연결하고 구조화된 출력하기”입니다.

기본적인 설정법

Spring AI는 다양한 LLM 제공자(OpenAI, Azure, Ollama 등)와 연동할 수 있습니다.
저는 이 포스팅에서 로컬에서 실행 가능한 오픈소스 플랫폼인 Ollama를 기준으로 설명하겠습니다.

  • 참고: Spring AI는 Java 17 이상부터 지원됩니다.

Ollama는 다양한 오픈소스 LLM을 PC에 직접 다운로드하여 실행할 수 있는 플랫폼입니다.
따라서 외부로 유출되면 안 되는 개인정보나 대외비 문서를 처리할 때 적합한 선택이 될 수 있습니다.

 - 의존성 추가 (Maven 기준)
<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-starter-model-ollama</artifactId>
</dependency>
 - 설정 파일 기본적인 설정
 # Ollama 서버 주소
spring.ai.ollama.base-url=http://localhost:11434 
# 모델 다운로드 전략(always, when_missing, never)
spring.ai.ollama.init.pull-model-strategy=when_missing
# 기본 셋팅 llm모델
spring.ai.ollama.chat.model= qwen3:1.7b 
# 창의성 조절: 높을수록 자유로운 응답
spring.ai.ollama.chat.temperature= 0.8
# 최대 응답 토큰 수
spring.ai.ollama.chat.max-tokens= 1024
# Embedding 모델
spring.ai.ollama.embedding.model=bona/bge-m3-korean

추가적인 설정에 대해서는 url에서 확인 가능합니다.
https://docs.spring.io/spring-ai/reference/api/chat/ollama-chat.html#_chat_properties


예제 코드

Spring AI에서는 LLM의 응답을 두 가지 방식으로 받을 수 있습니다.

  1. 단일 출력 방식: 한 번에 전체 응답을 받아 처리
  2. 스트리밍 출력 방식 (Flux): LLM 응답을 실시간으로 조각 단위로 받기
    예제를 통해 두 방식의 사용법과, JSON 구조화된 출력 방식까지 함께 살펴보겠습니다.

???? ChatModel과 ChatClient의 차이

Spring AI에는 ChatModel과 ChatClient라는 두 개의 주요 구성 요소가 있습니다.

  • ChatModel: LLM과의 저수준 통신 역할을 합니다.
  • ChatClient: ChatModel을 래핑한 상위 레벨 API로, 프롬프트 구성, 응답 처리, Advisor, RAG 등 다양한 확장 기능을 제공합니다.

단일 출력 방식

@AllArgsConstructor
@RestController
public class ModelClient {

    // Spring이 OllamaChatModel 구현체 자동 주입
    private final ChatModel chatModel;

    @GetMapping("/v1/model-client")
    public ChatResponse modelClientV1(@RequestParam("text") String text) {

        // 시스템 메시지는 LLM이 반드시 지켜야 할 지침
        // 유저 메시지는 사용자의 입력
        Prompt prompt = new Prompt(
                List.of(
                        new SystemMessage("너는 친절한 AI 비서야. 절대 추론 과정을 보여주지 말고 요약만 응답해."),
                        new UserMessage(text)
                ));

        return ChatClient.create(chatModel)
                .prompt(prompt)
                .call()
                .content(); // 전체 응답을 한 번에 반환
    }
}

스트리밍 출력 방식 (Flux)

스트리밍 방식은 채팅처럼 실시간으로 응답이 필요한 UI에 적합합니다.

@AllArgsConstructor
@RestController
public class ModelClient {

  private final ChatModel chatModel;

  @GetMapping(value = "/v2/model-client", produces = "text/plain;charset=UTF-8")
  public Flux<String> getModelClientV2(@RequestParam("text") String text) {

      // 시스템 메시지는 LLM이 반드시 지켜야 할 지침
      // 유저 메시지는 사용자의 입력
      Prompt prompt = new Prompt(
              List.of(
                      new SystemMessage("너는 친절한 AI 비서야"),
                      new UserMessage(text)
              ));

      return ChatClient.create(this.chatModel)
              .prompt(prompt)
              .stream() // 스트리밍 응답 시작
              .content(); // Flux<String>으로 실시간 조각 응답 수신
    }
}

구조화된 출력 받기 (JSON → DTO)

내부적으로는 LLM에게 “이런 구조로 응답해줘”라고 명시한 후 결과를 DTO에 바인딩합니다.
하지만 LLM이 해당 형식대로 정확하게 응답하지 않으면 파싱 에러가 발생할 수 있습니다.
안정성을 높이기 위해 시스템 메시지에 형식을 반복적으로 명확히 명시하거나, 구조 유도 프롬프트 예제를 함께 제공하는 것이 좋습니다.

@AllArgsConstructor
@RestController
public class ModelClient {

    private final ChatModel chatModel;

    @GetMapping("/v3/model-client")
    public ActorFilms modelClientV3(@RequestParam("text") String text) {

        // 사용자 입력을 이용해 프롬프트 템플릿 구성
        String template = """
            Generate the filmography of 5 movies for {actor}.
        """;

        Prompt prompt = new Prompt(
                List.of(
                        new SystemMessage("너는 친절한 AI 비서야. 절대 추론 과정을 보여주지 말고 요약만 응답해."),
                        new UserMessage(new PromptTemplate(template).render(Map.of("actor", text)))
                ));

        ChatModel gemma = OllamaChatModel.builder()
                .ollamaApi(OllamaApi.builder().build())
                .defaultOptions(
                        OllamaOptions.builder()
                                .model("gemma3n:e4b")
                                .temperature(0.4)
                                .build())
                .build();

        return ChatClient.create(gemma)
                .prompt(prompt)
                .call()
                .entity(ActorFilms.class); // 결과를 DTO로 구조화
    }

    record ActorFilms(String actor, List<String> movies) {}
}

프롬프트 요청 예시 (내부 동작 확인용)
Spring AI가 구조화 출력을 위해 내부적으로 LLM에게 다음과 같이 요청을 구성합니다.

request: ChatClientRequest[
- 저희가 입력한 명령 프롬프트 입력입니다.
prompt=Prompt{
    messages=[SystemMessage{textContent='너는 친절한 AI 비서야. 절대 추론과정을 보여주지 말고 요약만 응답해', messageType=SYSTEM, metadata={messageType=SYSTEM}}, 
    UserMessage{content='Generate the filmography of 5 movies for 하정우.', properties={messageType=USER}, messageType=USER}], modelOptions=org.springframework.ai.ollama.api.OllamaOptions@48e29a2c}, 

- 여기에 해당 DTO 객체의 정의가 들어갑니다.
context={spring.ai.chat.client.output.format=Your response should be in JSON format.
Do not include any explanations, only provide a RFC8259 compliant JSON response following this format without deviation.
Do not include markdown code blocks in your response.
Remove the ```json markdown from the output.
Here is the JSON Schema instance your output must adhere to:
```{
  "$schema" : "https://json-schema.org/draft/2020-12/schema",
  "type" : "object",
  "properties" : {
    "actor" : {
      "type" : "string"
    },
    "movies" : {
      "type" : "array",
      "items" : {
        "type" : "string"
      }
    }
  },
  "additionalProperties" : false
}```
}]

마치며

AI를 실제 프로젝트에 도입하는 것은 어렵고 복잡할 것 같다는 막연한 생각이 있었지만,
Spring AI를 통해 Java 환경에서도 LLM을 손쉽게 연결하고 활용할 수 있다는 가능성을 확인할 수 있었습니다.

물론 성능, 속도, 프롬프트 설계, 적절한 모델 선택 등 실무에서 고려할 요소들은 많지만,
이번 실습을 통해 LLM을 실제 서비스에 적용하는 출발점을 잡을 수 있었습니다.

다음 포스팅에서는 Advisor 기능을 활용해 LLM 응답을 가공하고,
간단한 RAG(Retrieval-Augmented Generation) 기능을 구현해보겠습니다.

이 기능은 Logging, 크롤링된 문서, RDBMS 정보 등 다양한 외부 지식 소스를 LLM과 연결해
더 정확하고 신뢰도 높은 응답을 생성하도록 도와주는 방식입니다.

해당 예시는 github에 있습니다.
url: https://github.com/Zero-Human/springAi

참고자료

[출처] https://zero-human.tistory.com/9

Loading

8 12월 2025

[인공지능 기술]  AI 시대의 비판적 사고 

[인공지능 기술]  AI 시대의 비판적 사고 

47P by neo 7일전 | ★ favorite | 댓글과 토론
  • AI가 코드와 설계, 답변을 만들어주는 환경에서도 올바른 질문을 던지고 가정을 의심하는 비판적 사고가 엔지니어와 팀의 성과를 좌우하는 핵심 역량임
  • 문제 해결 전 과정에서 Who·What·Where·When·Why·How 여섯 가지 질문을 활용해 사람·문제·맥락·타이밍·원인·실행 방식을 체계적으로 점검해야 함
  • AI의 답변은 인턴이 제안한 초안처럼 검증 대상으로 다루고, 실제 문제 정의·증거 수집·맥락 파악·원인 분석·의사소통은 사람이 책임지는 구조가 필요함
  • 시간 압박·편향·그럴듯한 AI 답변 때문에 성급한 결론과 땜질식 해결책으로 흐르기 쉬우며, 이를 막기 위해 5 Whys·실험·데이터 검증 등 증거 기반 사고를 반복해야 함
  • 비판적 사고는 겸손한 호기심과 증거를 중시하는 팀 문화에서 강화되며, AI가 아무리 발전해도 “옳은 문제를, 옳은 이유로, 옳은 방식으로 푸는 것”은 여전히 인간의 고유한 장점임

AI 시대 비판적 사고 개요

  • AI가 코드·디자인·답변을 만들어주는 시대에 사람의 비판적 사고 능력이 예전보다 더 중요해지고 있음
    • 자동화가 아무리 정교해져도, 올바른 질문을 던지고 가정을 의심하며 독립적으로 사고하는 역할은 사람 몫으로 남아 있음
    • 잘못된 질문과 잘못 정의된 문제 위에 쌓인 AI 출력은 프로젝트를 더 빠르게 잘못된 방향으로 밀어붙이는 결과로 이어질 수 있음
  • 비판적 사고를 위해 Who·What·Where·When·Why·How 프레임워크를 사용해 구체적인 실천 지침을 제시함
    • 각 질문은 문제 정의, 이해관계자, 맥락, 타이밍, 원인 분석, 실행·커뮤니케이션 방법을 점검하는 도구로 활용됨
    • AI 보조 환경에서 이 여섯 가지를 놓치지 않는 것이 프로젝트 실패를 줄이고 다운스트림 문제를 예방하는 핵심임

tl;dr: AI 팀을 위한 비판적 사고 체크리스트

  • Who: AI를 전지적 존재가 아닌 검증이 필요한 입력으로 간주하고, 누가 답을 내고 있는지 항상 확인해야 함
    • LLM의 답변을 사람의 견해와 동일시하지 않고, 출처와 책임 소재를 분리해 보는 시각이 필요함
  • What: 솔루션으로 달려가기 전에 진짜 문제 정의와 성공 기준을 분명히 해야 함
    • 표면적인 요구사항 대신, 사용자 경험과 데이터를 바탕으로 실제로 풀어야 할 문제를 명확히 규정해야 함
  • Where: 해결책이 적용될 맥락과 환경(샌드박스·프로덕션·사용자 기기 등) 을 고려해야 함
    • 한 환경에서 잘 작동하는 해결책이 다른 환경에서 부작용을 낳을 수 있음을 항상 염두에 두어야 함
  • When: 간단한 휴리스틱으로 충분한 상황과 깊이 있는 분석이 필요한 상황을 구분해야 함
    • 응급 땜질과 근본 원인 분석의 시점을 나누어, 시간 제약 속에서도 최소한의 엄밀함을 확보해야 함
  • Why / How: 5 Whys로 근본 원인을 추적하고, 의견이 아닌 데이터·증거 중심으로 커뮤니케이션해야 함
    • 주장보다 근거, 직감보다 실험·측정 결과를 우선하는 태도가 필요함

Who: 참여 주체·책임·영향 범위

  • 문제를 정의하고 해결에 참여하는 사람과 관점의 구성(누가 포함되고 누가 빠져 있는지) 이 비판적 사고의 출발점임
    • 엔지니어·PM·사용자·도메인 전문가 등 이해관계자를 파악하고, 의사결정 과정에 적절히 포함해야 함
    • 문제는 대부분 여러 팀과 사용자에게 영향을 미치므로, “누구와 상의해야 하는가, 누구에게 알려야 하는가”를 먼저 묻는 태도가 필요함
  • 한 목소리로만 의견이 모이는 groupthink(집단사고) 위험을 줄이기 위해 다양한 시각을 의도적으로 끌어들여야 함
    • 반대 의견이나 다른 관점을 가진 사람을 배제하면, 데이터와 가정의 타당성 검증 없이 정답처럼 굳어지는 위험이 커짐
    • 외부 시각이나 팀 밖 사람을 불러 “새 눈”으로 문제를 보게 하는 것도 객관성을 높이는 방법임
  • AI가 등장한 뒤에는 “누구의 답인가, 인간인가 AI인가” 를 분리해서 보는 시각이 필수임
    • LLM은 통계적 엔진에 불과하므로, “누가 말했다”보다 “무엇을 근거로 말했는가” 를 따져야 함
    • AI 코드를 인턴의 코드처럼 취급해, 리뷰·테스트·맥락 적합성 검증을 사람이 책임져야 함
  • 최종적으로는 책임과 영향 범위(누가 책임지고, 누가 영향을 받는가) 까지 포함해 생각해야 함
    • 급한 패치가 당장은 관리자 요구를 충족해도, 이후 유지보수·장애 대응 부담은 다른 엔지니어나 사용자에게 돌아올 수 있음
    • API 변경이 모바일 앱·다른 마이크로서비스에 미치는 영향처럼, “누가 이 결정의 결과를 떠안게 되는가”를 항상 함께 고려해야 함

What: 진짜 문제 정의와 증거 수집

  • 비판적 사고의 핵심은 “무엇이 실제 문제인가”를 정확히 정의하는 일임
    • “AI 요약 기능을 넣자” 같은 요청이 오면, 먼저 목표가 데이터 이해 향상인지, 피로도 감소인지, 다른 것인지를 따로 물어야 함
    • 사용자가 느끼는 어려움이 데이터 과잉인지, 시각화 부족인지, 설명 부재인지에 따라 솔루션이 전혀 달라질 수 있음
  • Harvard Business Review 등에서 강조하듯 문제 정의에 충분한 시간을 쓰면 잘못된 문제에 자원을 쓰는 위험을 줄일 수 있음
    • 요구사항과 성공 기준을 명시적으로 적고, “어떤 상태가 되면 문제가 해결된 것인가”를 합의하는 과정이 필요함
    • “문제 해결 모드”로 바로 뛰어드는 plunging-in bias(성급하게 뛰어드는 편향) 을 의식적으로 경계해야 함
  • 증상보다 구체적 사실을 모으는 증거 기반 문제 정의가 중요함
    • “서비스가 느리다”라는 말은 모호하므로, 어느 페이지·어떤 쿼리·어떤 요청이 느린지 데이터를 통해 좁혀야 함
    • “무엇이 느린가, 무엇이 언제부터 달라졌는가, 무엇이 최근에 변경되었는가” 같은 질문으로 로그·메트릭 등을 확인해야 함
  • 솔루션이나 결론에 대해 “이 결론을 뒷받침하는 증거는 무엇인가” 를 반복해 확인해야 함
    • AI가 null pointer를 원인으로 지목하면, 로그·테스트·재현 실험으로 이를 직접 검증해야 함
    • 성능 개선이라고 주장할 때는 여러 환경·여러 실행에서 일관된 지표 향상이 있는지 확인해야 함
  • LLM의 답변은 대부분 그럴듯해 보이지만, 정확성 보장은 없는 가설로 다루어야 함
    • 사람은 “충분히 그럴듯해 보이는 답”을 들으면 추가 탐색을 멈추는 경향이 있어, 이 조합이 특히 위험함
    • 비판적 사고는 AI·동료·본인의 아이디어를 모두 “테스트해야 할 가설”로 취급하고, 틀릴 수도 있다는 전제에서 시작함

Where: 맥락·환경·범위 인식

  • 해결하려는 문제와 솔루션이 어디에서 발생하고, 어디에 적용되는지(맥락) 를 파악하는 것이 중요함
    • 특정 마이크로서비스의 CPU 스파이크가 전체 시스템 장애로 오인되는 일을 막기 위해, 이슈가 발생하는 정확한 위치를 찾아야 함
    • 사용자 스마트폰·에지 디바이스·클라우드 서버 등 실행 환경에 따라 같은 코드도 전혀 다른 제약 조건을 갖게 됨
  • 디버깅 시에는 요청 흐름·컴포넌트 간 경계를 따라 “어디에서 실패가 발생했는가” 를 좁혀 가야 함
    • 클라이언트·API 게이트웨이·백엔드·데이터베이스 중 어떤 지점에서 문제가 생기는지 로그와 모니터링으로 분리해야 함
    • 기능 아이디어 논의 시에도, 사용자 여정 중 어느 단계에 영향을 주는지, 사용 빈도가 어느 구간에 집중되는지 같이 보는 것이 필요함
  • 실험과 배포에서도 어디에서 시험해 볼 것인가가 중요한 결정 요소임
    • 스테이징·사내용 환경·프로덕션 일부 트래픽 등 실험 위치에 따라 얻을 수 있는 신뢰도와 리스크가 달라짐
    • 실사용자 일부에 A/B 테스트로 노출하면 실세계 이슈를 빨리 발견할 수 있지만, 영향 범위를 제한하는 방어 장치도 필요함
  • “어디에서 부작용이 생길 수 있는가, 어디까지 파급될 수 있는가”를 미리 상상하는 것이 숙련된 엔지니어의 특징임
    • 공용 라이브러리 변경 시, 이를 사용하는 다른 서비스·팀을 목록화하고, 릴리즈 전에 알림·테스트 계획을 세워야 함
    • 특정 모듈의 최적화가 다른 모듈의 복잡도 증가·데이터 포맷 변경을 요구하는지 등 시스템 전반의 파장을 함께 검토해야 함

When: 시간 축과 깊이 선택

  • 문제 발생 시점·행동 시점 등 “언제”에 대한 정보가 원인 분석의 핵심 단서가 됨
    • “마지막으로 정상 동작하던 때가 언제인지, 그 이후 무엇이 변경되었는지”를 타임라인으로 정리하면 원인을 빠르게 좁힐 수 있음
    • 새 배포·야간 배치·설정 변경 등 특정 시간대 이벤트와 장애 발생 시간을 연결해 보는 습관이 중요함
  • 의사결정에서 언제 깊게 파고들고, 언제 휴리스틱으로 충분한지를 구분하는 것이 비판적 사고의 한 축임
    • 모든 문제에 완전한 분석을 시도하면 일정과 리소스를 감당할 수 없으므로, 리스크와 영향도에 따라 분석 깊이를 조절해야 함
    • 심야 장애 대응에서는 서비스 재시작 같은 단기 완화 조치로 복구한 뒤, 일과 시간에 루트 원인을 탐구하는 방식이 현실적인 전략임
  • NASA 사례에서처럼 스트레스와 시간 압박 속에서 인간의 판단 오류 가능성이 급격히 높아짐이 지적됨
    • 빠른 판단이 필요한 상황일수록, 오히려 “어디까지는 임시 조치, 어디부터는 반드시 재검토해야 하는 지점인지”를 미리 표시해두는 것이 중요함
    • “지금은 임시 해결이고, 나중에 반드시 원인 분석과 근본 조치를 한다”는 메모·티켓을 남겨두는 것만으로도 장기적인 품질에 도움이 됨
  • 제한된 시간 안에서 엄밀함을 유지하기 위해 우선순위와 삼각 측량(트리아지) 을 활용해야 함
    • 가장 위험한 가정을 먼저 시험하고, 덜 중요한 결정은 이후로 미루는 방식으로 시간을 배분해야 함
    • 새 기능 설계에서 알고리듬의 타당성과 리스크가 더 크다면, UI 세부보다 알고리듬 검증에 시간을 먼저 쓰는 식의 선택이 필요함
  • 비판적 사고는 “도움을 청할 타이밍”과 “멈추고 재고할 타이밍” 을 인식하는 능력과도 연결됨
    • 일정 시간 이상 진전이 없으면 다른 사람의 시선을 끌어들이고, 스프린트 마감·릴리즈 전 등 의도적으로 멈춰 검토하는 지점을 설정해야 함
    • 분석 마비와 성급한 결론 사이에서, 현재 결정에 충분한 정보가 있는지 스스로 체크하는 습관이 중요함

Why: 동기·원인·근거 파고들기

  • “왜 이 일을 하는가”를 반복해서 묻는 것은 무의미한 유행·모방을 걸러내고, 실질적 가치에 집중하는 필터 역할을 함
    • 새로운 AI 도구 도입·기능 추가 요청 등에서, 경쟁사 따라잡기인지, 실제 사용자 문제 해결인지 명확히 구분해야 함
    • “왜 중요한가”에 대한 설득력 있는 답이 있어야, 구현 과정에서 수많은 세부 의사결정이 일관성을 가질 수 있음
  • 문제가 발생했을 때는 5 Whys 기법으로 표면적 원인에서 더 깊은 원인까지 내려가는 과정이 중요함
    • 모델 정확도 하락을 예로 들면, 데이터 분포 변화·새 데이터 소스 추가·검증 부재·모니터링 부족 등 연쇄 원인을 한 단계씩 추적해야 함
    • 최종 원인이 데이터 파이프라인 검증 부족·모니터링 부재라면, 재학습만으로는 문제를 근본적으로 해결할 수 없다는 점이 드러남
  • “왜” 질문에서 인간은 확증 편향·성급한 결론에 빠지기 쉬움
    • 예전에 겪은 메모리 누수처럼 익숙한 원인에 생각이 고정되면, 새로운 설정 변경·데이터 변경 같은 다른 가능성을 무시하기 쉬움
    • 처음 떠오른 설명에 안주하지 않도록, 스스로 “다른 가능한 원인이 있는가, 이를 부정하는 증거는 없는가”를 묻는 태도가 필요함
  • 과거 기업 사례처럼 잘못된 “왜” 이해는 시장점유율 하락·전략 실패를 오랫동안 고치지 못하게 만드는 요인이 될 수 있음
    • 외부 요인 탓으로만 돌리고 내부 프로세스·품질·문화 문제를 보지 못하면, 엉뚱한 처방을 반복하게 됨
  • 좋은 엔지니어는 겸손한 호기심으로 “왜”를 묻고, 자신의 가정이 틀릴 수 있음을 열어두는 태도를 유지함
    • 아이디어가 성공할 것이라고 믿을 때도 “왜 그렇게 생각하는지, 데이터인지 직감인지”를 분리해서 본다음 검증 방향을 잡음
    • 의사결정 후에는 이유를 문서화·공유해, 나중에 상황이 바뀌었을 때 근거부터 다시 점검할 수 있게 함

How: 실천 방법과 커뮤니케이션

  • 비판적 사고를 일상에서 실천하는 방법은 질문 방식·증거 검증·커뮤니케이션 구조화 세 가지 축으로 정리됨
    • 막연한 “좋냐·나쁘냐” 대신, “어떤 사용자 니즈를 어떻게 다루며, 어디에서 실패할 수 있는가” 같은 구체적·개방형 질문을 던져야 함
    • 알고 있는 것과 모르는 것을 목록으로 분리하고, 모르는 것을 어떻게 실험·측정할지 계획하는 습관이 중요함
  • 증거를 다룰 때는 대안 해석 가능성·편향 유입 여부를 함께 확인해야 함
    • 한 번의 성능 테스트 결과가 우연인지 반복 가능한지, 다른 지표와 모순되지는 않는지 교차 검증해야 함
    • 자신의 이론을 뒷받침하는 데이터뿐 아니라, 반박할 수 있는 데이터도 일부러 찾는 태도가 필요함
  • 팀 차원에서는 프리모텀(premortem) 같은 기법으로 미리 실패 시나리오를 가정해 보는 방식도 소개됨
    • 프로젝트가 실패했다고 가정하고 그 이유를 적어보면, 계획 단계에서 간과했던 리스크와 숨은 가정을 드러낼 수 있음
  • 해결책을 전달할 때는 문제 정의(What·Why) → 제안 솔루션(How) → 근거 데이터·가정 순서로 논리를 구성하는 것이 효과적임
    • 전제와 트레이드오프를 명시하면, 다른 사람들이 아이디어를 검증·보완하기 쉬워지고, 스스로도 논리의 구멍을 발견하기 쉬움
    • “페이지 로드 시간이 대시보드 기준 평균 25% 개선되었다”처럼 의견보다 계량적 사실을 우선 제시하는 태도가 신뢰를 높임
  • 비판적 사고가 잘 작동하는 환경에서는 질문과 반론을 환영하는 커뮤니케이션 문화가 형성됨
    • 제안 뒤에 “이 논리에서 빠진 부분이 없는지, 우려되는 점이 있는지”를 동료에게 적극적으로 물으며 아이디어를 다듬음
    • 일방적 발표가 아니라, 여러 사람이 함께 논리를 검증하는 과정 자체가 솔루션의 품질을 끌어올리는 장치가 됨
  • 개인 차원에서는 회고와 학습을 통한 지속적인 사고 개선이 중요함
    • 서둘러 내린 결정으로 버그가 생겼다면, 이후 “어디서 무엇을 놓쳤는지, 다음에는 무엇을 다르게 할지”를 정리하는 미니 회고를 수행해야 함
    • 다른 회사의 포스트모텀·인지 편향 자료를 읽으며, 미래에 피해야 할 사고 함정을 미리 학습하는 것도 도움이 됨

결론: 인간 고유의 장점으로서의 비판적 사고

  • AI 활용도가 높아질수록, 비판적 사고는 선택이 아니라 필수 역량으로 자리 잡고 있음
    • Who·What·Where·When·Why·How를 통해 사람·문제·맥락·타이밍·원인·실행 방식을 체계적으로 점검해야 함
  • 건강한 팀 문화에서는 독립적인 사고와 질문하는 태도가 당연한 것으로 받아들여짐
    • “이게 진짜 해결책인지, 땜질인지”, “사용자가 정말 이 기능을 원하는지”, “데이터가 정말 개선을 보여주는지”를 누구나 물어볼 수 있어야 함
  • 비판적 사고는 빠른 땜질식 해결책의 유혹에서 팀을 보호하는 역할을 함
    • 당장 문제를 덮는 대신, 근본 원인을 확인하고 검증한 뒤 행동하는 것이 장기적으로 시간과 비용을 절약하는 길임
  • AI와 자동화가 반복 작업과 초안을 담당하는 시대에도, “옳은 문제를 옳은 이유로 옳은 방식으로 푸는 일”은 인간의 역할로 남아 있음
    • 겸손한 호기심과 증거 중심 사고를 유지하는 팀이 AI 시대에도 꾸준히 좋은 결과를 내는 팀이 될 것

[출처] https://news.hada.io/topic?id=24743&utm_source=weekly&utm_medium=email&utm_campaign=202549

Loading