한컴으로부터 제품 이용 및 원고료를 지원받아 작성했습니다.

 

이제는 까마득한 옛날 추억으로 남은 "아래아한글 1.5"

MS-DOS 공부보다 아래아한글의 단축키를 먼저 외웠었는데,

그런 추억을 안겨준 한컴(한글과컴퓨터)에서 새로운 솔루션을 사용해보라고 연락이 왔다.

 

 

1. 한컴 데이터 로더(Hancom Data Loader)

'한컴 데이터 로더'는 한컴이 개발한 문서 구조 분석(Document Parsing) 솔루션으로,

HWP/HWPX/PDF 등의 문서를 구조화 데이터로 변환하는 용도로 사용한다.

 

https://sdk.hancom.com/

 

 

2. 온프레미스

홈페이지를 살펴보면 SaaS 형태로만 제공해주는 것 같지만, 좀 더 살펴보면 온프레미스 형태로도 제공해준다고 한다.

다만, 미리 사용해볼 수 있는 것은 API를 이용한 SaaS 방식만 있는 것으로 보인다.

 

https://blog.hancom.com/rag-document-parsing-solution-criteria/

 

 

3. 테스트 시나리오

HWPX 파일을 '한컴 데이터 로더'로 파싱하고 임베딩 해서 RAG 데이터베이스에 넣어놓고,

사용자 질문에 대해 'LLM + RAG'를 통해 답변을 하는 것을 구현해보겠다.

 

 

 

4. 문서 파일 (HWP)

고용노동부의 정책자료실에 있는 '표준 취업규칙' 파일을 가지고 실습을 진행해보겠다.

 

https://www.moel.go.kr/policy/policydata/view.do?bbs_seq=20250300356

 

파일 내용은 다음과 같이 되어있으며, 총 163쪽 272KB 크기를 갖고 있다.

 

 

 

5. 한컴 데이터 로더 - API Key

'한컴 SDK'에서 '데이터 로더'를 찾아볼 수 있다.

앞서 말한대로 일단은 SaaS 형태로 제공되고 있기에 API 사용을 위한 계정 등록이 필요하다.

 

https://sdk.hancom.com/services/1

 

상단에 있는 'Get API'를 클릭하면 로그인 페이지를 확인할 수 있다.

 

 

회원가입 후 로그인을 한 다음, '크레딧 관리' 메뉴를 선택하면 아래와 같이 무료 크레딧을 받을 수 있다.

 

 

문서 1장당 10 Credit, 그러면 1만 크레딧이면 문서 1천장을 처리할 수 있다.

 

 

'API 관리' 메뉴를 선택하면 'OCR API' / '데이터 로더' 2가지 서비스를 사용할 수 있다는 것을 확인할 수 있다.

 

 

'데이터 로더' 서비스의 'API Key 관리' 버튼을 클릭하자.

 

 

'API Key 생성' 버튼을 누르고, 이름을 지어준 다음에 '생성하기'를 누르면 된다.

 

 

생성한 Key 값을 언제든 복사해서 사용할 수 있다.

최근에는 보안을 위해 처음에만 복사할 수 있고, 다음에 다시 재사용하지 못하는 것이 트렌드인 것 같던데...

사용하는 입장에서 이렇게 언제든 복사할 수 있는 것이 편하긴 하다! ^^

 

 

 

6. OpenRouter - API Key

임베딩, LLM 모델을 사용하기 위해서 Provider 중 하나인 OpenRouter를 활용해보도록 하겠다.

 

ChatGPT, Gemini, Claude 등을 사용해도 좋지만

가난한(?) 개발자들에게 많은 사랑을 받는 OpenRouter를 선택해보았다.

 

https://openrouter.ai/

 

회원가입/로그인 후 'Get API Key' 버튼을 클릭하면 된다.

 

 

임의로 이름 지어주고(유효기간 등은 선택사항) 'Create'하면 된다.

 

 

Create 하면 나오는 Key 값을 잘 복사해 놓아야 한다.

지금 복사해놓지 않으면 확인할 수 있는 방법이 없기에 다시 새로운 API Key를 생성해야 한다.

 

 

 

7. LLM / Embedding Model

개인적으로 최근에 사용했던 무료 모델 중에서 빠르고 괜찮은 품질을 보였던 것을 사용해보려고 한다.

 

 

 

8. Vetcor DB - Chroma (ChromaDB)

RAG를 위한 Vector Database로는 Chroma를 선택했다.

별다른 설치 없이 Local에 저장이 되는 사용하기 편한 아이라서 (개인적인 취향으로) 선택했다.

 

https://www.trychroma.com/

 

 

9. 개발환경 - Ubuntu / Python

개인적인 취향이기도 하지만,

사실 가장 호환성 좋고 가장 권장할만한 개발환경은 Ubuntu라고 믿고 있다!!!

 

 

프로그래밍 언어는 파이썬을 사용할 것이고, 파이썬 가상환경 및 패키지 관리는 uv를 사용할 것이다.

 

 

 

10. 라이브러리 설치

본격적인 코딩을 하기 전에 필요한 라이브러리들을 설치하자.

 

 

> uv add chromadb requests python-dotenv

 

앞서 살펴본대로 RAG를 위한 chromadb, API 통신을 위한 requests, 환경변수를 위한 python-dotenv 라이브러리들이다.

 

 

11. 환경 변수

앞에서 생성한 Key 값 및 사용할 모델 정보를 환경 변수로 설정하자.

 

 

> nano .env

 

HANCOM_API_KEY=...
HANCOM_WEBHOOK_URL=...

OPENROUTER_API_KEY=...
EMBED_MODEL=nvidia/nemotron-3-embed-1b:free
LLM_MODEL=nvidia/nemotron-3-ultra-550b-a55b:free

 

'한컴 데이터 로더'를 이용하여 문서를 변환할 때 약간의 시간을 필요로 한다.

그래서 변환 요청한 뒤, 변환이 완료되면 알림(webhook)을 보내줄 URL을 알려주도록 하고 있다.

 

하지만, 이번에는 webhook을 받아서 처리하는 서버 부분을 따로 구현하지 않고

그냥 완료 여부를 체크해서 결과를 받아오도록 처리할 예정이다.

 

그래서, HANCOM_WEBHOOK_URL 값은 아무것이나 넣어줘도 괜찮다.

 

 

12. 한컴 데이터 로더를 이용한 HWP(X) 변환 - convert.py

준비는 끝났다. 이제 하나씩 구현해보자.

HWP(X) 파일을 '한컴 데이터 로더'를 이용해 변환한 뒤에 JSON 형태의 파일로 다운로드를 받는 부분이다.

 

 

'한컴 데이터 로더'를 사용하기 위한 Key값과 Webhook URL 정보들을 확보하고

HWP 파일을 보낸 뒤 변환이 끝날 때까지 기다렸다가

변환이 끝나면 다운로드를 받는 과정이다.

 

 

'한컴 데이터 로더'에 업로드하는 과정은 다음과 같다.

 

 

앞서 말했지만 변환 과정에는 시간이 걸리기에

'한컴 데이터 로더'에서 권하는 방식은 변환이 끝난 뒤 정해진 URL로 Webhook을 받아서

그 때 다운로드를 받는 것이다.

 

하지만, 여기에서는 그냥 주기적으로 완료 여부를 확인하는 방식으로 구현했다.

 

 

변환 결과를 다운로드 받는 부분이다.

 

 

다운로드를 받은 파일이 제대로 되어있는지 여부와 얼만큼의 양인지 확인까지 해봤다.

 

그런데, '한컴 데이터 로더'에서 내려받는 파일의 확장자가 일반적이지 않은 ".aijson"이다.

표준 포맷은 아니고, '한컴 데이터 로더'에서 사용하는 JSON 형태의결과 파일이다.

 

그런데, 공식 문서에서 '.aijson' 파일의 구조를 아래와 같이 가이드 하고 있는데

 

https://documents.sdk.hancom.com/dataloader-api/intro

 

 

 

실제 파일을 보면 구성과 내용이 다르다.

가이드 문서의 업데이트가 필요하지 싶다.

 

 

이렇게 구현한 것을 실제 실행한 화면은 다음과 같다.

 

 

 

13. 문서 자르기 - chunk.py

앞에서 HWP 파일을 다룰 수 있는 데이터 형태로 변환을 했다면,

이제는 그 데이터를 연산하기 위한 유닛으로 조각을 내서 그룹핑을 해야 한다.

 

 

앞 단계에서 만들어진 ".aijson" 파일을 입력으로 받아서

텍스트 부분만 추출한 뒤에

정해진 CHUNK_SIZE와 CHUNK_OVERLAP 값을 참고하여 청크 목록을 만든다.

 

 

".aijson" 파일도 근간은 json 파일이기 때문에, 그냥 json.load()로 읽어들이면 된다.

우리가 필요로 하는 부분은 'body' 배열이기에 존재 여부를 확인해보았다.

 

 

우리가 사용할 것은 text 이기에 그것만 추출했다.

 

 

text 묶음을 가지고 CHUNK_SIZE 만큼씩 잘라냈다.

검색 결과에서 앞/뒤로 잘릴 수가 있으므로 CHUNK_OVERLAP 크기만큼 겹치도록 한다.

 

 

실제 실행 화면은 아래와 같다.

 

 

이렇게 만들어진 JSON 파일 본문은 아래와 같이 생겼다.

 

 

 

14. 임베딩 및 데이터 저장 - embed.py

이제 Vector Database에 입력을 하면 된다.

그런데, 그냥 넣으면 안되고 embedding을 해서 넣어줘야 한다.

 

 

Chunking된 JSON 파일을 입력으로 받아서

embedding 모델을 통해 변환 후 chromadb에 저장을 하도록 했다.

 

 

id, text 필드가 잘 있는지 확인해서 읽어들인다.

 

 

embedding 모델을 통해 변환한 값들을 embeddings에 저장을 한다.

 

 

그렇게 한 뒤에 chromadb에 저장을 하도록 했고,

이를 실행한 화면은 다음과 같다.

 

 

이렇게 입력한 내용이 제대로 되었는지가 궁금해서 점검하는 코드도 추가 작성해보았다.

 

 

 

15. 사용자 인터페이스 - ask.py

이제 사용자의 질문에 답하는 부분을 구현하면 된다.

저장된 Vector DB에 query를 보내기 위해서는 embedding 과정을 거쳐야 된다.

 

 

사용자의 질문을 받으면 embedding을 한 뒤에

그 값을 가지고 Vector DB 검색을 하고

검색 결과를 가지고 답변을 작성한 뒤에 출력하는 흐름이다.

 

 

앞서 사용한 동일한 embedding model을 사용한다.

 

 

chromadb에 query를 날려 유사한 청크를 찾는다.

 

 

검색 결과를 근거로 해서 답변을 작성한다.

 

 

실제 실행한 결과는 아래와 같다.

 

 

검색 결과가 없으면 없다고 답변을 잘하고 있다.

 

 

 

16. 결론 - '한컴 데이터 로더'를 사용해본 경험

RAG를 이용해서 사용자 질문에 답변을 하는 가장 기본적인 workflow를 구현해보았다.

 

"한컴 데이터 로더"를 사용하는 것의 의미를 찾자면

HWP(X) 문서로 작성된 데이터를 다룰 수 있다는 점일 것이다.

 

변환된 내용을 보면 상당히 깔끔하게 잘 변환된 것을 확인할 수 있었다.

그리고, 단순히 텍스트만 추출되는 것이 아니라 편집 정보들을 포함해서 알려준다.

이러한 정보들을 활용하면 더 재미있는 결과도 뽑아낼 수 있을 것이다.

 

안타깝게도(?) 내가 일하는 곳에서는 HWP(X) 문서를 사용하지 않지만,

정부에서 발표하거나 배포하는 문서들을 데이터화 해야한다고 하면

문서 자동화를 위한 사내 업무용으로 도입을 할 수도 있을 것 같다.

 

내부망을 사용하고 있기에 지금과 같은 SaaS 형태로는 사용할 수 없을 것이고,

온프레미스 문서 처리 방식으로 사용한다고 하면 보안적인 측면에서도 상당한 메리트가 있을 것으로 보인다.

 

[ RAG 전처리 도구로서 '한컴 데이터 로더' 특징 ]

이번에 직접 사용해보면서 파악하게 된 '한컴 데이터 로더'의 특징을 정리해봤는데,

RAG 전처리 도구를 고를 때 이런 부분을 비교해보면서 살펴보면 좋을 것 같다.

지원 파일 유형 HWP, HWPX, PDF  
서비스 형태 SaaS(API), 온프레미스 온프레미스를 직접 테스트해보지는 못했다,
문서 변환 소요 시간 상당히 빠름 (약 0.3초/page) 163페이지 변환에 약 50초 소요
비용 10 크레딧/페이지 내용 무관하게 페이지 단위 비용 청구
변환 대상 텍스트, 이미지, 문서서식 JSON 형태로 데이터화

 

기존에 사용해봤던 Docling 같은 도구와 비교해보면 변환 속도라던지, HWP(X) 지원 측면에서 확실한 강점이 있는 것 같다.

일반적으로 텍스트 추출에 특화되어 있는데, 문서 서식을 포함한 정보를 분석해주는 부분에 있어서도

'한컴 데이터 로더'가 강점이 있다.

 

 

17. 뒷 이야기

테스트를 위해 사용한 문서가 163 페이지이다 보니, 한 번 실행할 때마다 1630원씩 소모가 되었다.

보통은 사용하는 토큰에 따른 비용이 발생하는데, '한컴 데이터 로더'는 문서 페이지 단위로 10원씩 크레딧이 소모된다.

 

 

그러다보니 입력하는 문서에 제목만 덜렁 있는 페이지가 있거나 하는 경우, 상당히 억울할 수 있을 것 같다 😅

비용 절감을 위해서는 공백이나 빈칸 없이 페이지를 빽빽하게 만든 다음에 업로드를 해야하겠다.

 

 

지금까지 "한컴 데이터 로더"를 살펴보았고,

사용해 본 경험은 '꽤 괜찮았'고, HWP(X) 파일을 다룰 일이 있을 때 도입 검토할 가치는 충분할 것 같다.

 

다만, 가이드 페이지를 조금 더 보완하면 더 좋은 사용자 경험이 될 것이다.

 

Webhook URL이 마땅치 않을 때 어떻게 해야하는지,

AIJSON 파일에 대한 포맷 정합성 및 각 필드에 대한 설명이라던지 그다지 친절한 가이드는 아니었다.

 

 

18. Live Demo

'한컴 데이터 로더'를 그냥 일단 한 번 체험해보고 싶은 분들을 위한 Live Demo 페이지도 있다.

 

https://livedemo.sdk.hancom.com/dataloader

 

데모 페이지는 5 페이지까지만 변환을 해준다.

그런데, 화면을 어떻게 분석해 주는지 눈으로 확인할 수 있어서 너무 좋다 !!!

 

 

RAG에 관심이 있다면, 특히 HWP(X) 문서 데이터 추출에 관심이 있다면 꼭 한 번 사용해보기 바란다.

반응형

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

 

이 책의 정체성은 로드맵에 쓰여져 있는 아래 문구에 모든 것이 담겨있다.

 

책의 구성은 아래와 같다.

 

성질 급한 사람이라면 3장 살펴보고,

필요한 사례만 4~6장에서 찾아보는 방식으로 책을 봐도 될 것 같다.

 

 

1장 잘 쓰인 글의 가치를 설명하는 부분을 보면서 정말 많이 반성을 하게 되었다.

 

서비스에서 종종 "권한이 없습니다"와 같은 시스템 메시지를 전달하곤 했는데,

이렇게 문제만 알려주는 것에서 그치지 말고 아래와 같은 메시지를 전달했어야 했다!

 

"이 기능은 편집 권한이 있는 사용자만 이용할 수 있습니다.

 권한이 필요한 경우 [설정] > [권한] > [권한 신청]을 눌러 요청해 주세요"

 

이런 식으로 메시지를 전달했다면 사용자로부터의 그 수많은 Q&A 게시글, 메일, 메신저를

최소한 7-80%는 줄일 수 있었을텐데 ...

 

월요일 출근하면 제일 먼저 사용자 notification 부분을 전체 확인하고 변경하도록 해야겠다!!!

 

 

그리고, 평소에 회의록 또는 메일을 작성할 때

영어로 작성하는 것이 왠지 더 clear하다고 느껴졌었는데 그 이유를 명확하게 알게 되었다.

 

우리나라는 고맥락 문화에 속하고, 미국은 저맥락 문화권에 속하기에 그렇게 느꼈던 것이다.

 

어떤 것이 더 좋고 나쁘다의 문제는 아니지만,

업무 관련해서는 저맥락 표현이 확실한 소통 방법이고 그래야 보다 더 빠른 실행이 될 수 있다.

 

 

이 외에도 내가 하고 싶은 말이 아니라 독자 중심의 글을 써야 한다는 것 외에

잘 구조화 해야한다는 등 너무나 주옥 같은 이야기를 해주어 정말 많은 도움이 되었다.

 

 

뒤의 3장을 계속 이어서 읽으면 읽을수록 계속 드는 생각은 ...

아! 우리 부서원들에게 한 권씩 사줘야 하나!? 꼭 읽게 하고 싶다 !!!

(헉! 나 꼰대인가?! ^^)

 

 

사회 생활을 시작하는 사람들에게 필독서로 강하게 권장하고 싶은 책이다.

특히 개발자들에게 정말 강추하고 싶다!

반응형

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

 

책 표지와 제목만 보고 "멀티 에이전트"만을 위한 책이라고 착각하면 절대 안된다.

"AI Agent"를 개발하고 싶은 분들을 위한 친절한 안내서이다.

 

 

eBook을 열어 보자마자 연필로 그려진 저자가 궁금해졌다.

그런데, 책에는 저자에 대한 설명이 없어서 간단하게 검색을 해봤더니, 유명한 분이셨다 !!!

  - https://search.kyobobook.co.kr/search?keyword=%EC%84%9C%EC%A7%80%EC%98%81&target=total&totalType=kyobo&ra=date&chrcCode=1000509412

 

내가 봤던 많은 책의 저자이셨다! 왜 몰랐을까!? 왜 책에 저자 이력을 기재하지 않으셨을까?

아! 그렇구나!!! 진정한 실력자는 그냥 책 내용으로 승부하시는구나 !!!

 

좀더 찾아서 교보문고에 등록된 프로필을 보니, 역시, 마소 출신의 스페셜리스트 !!! 진정한 고수 !!!

  - https://store.kyobobook.co.kr/person/detail/1000509412

 

이제 책을 보면서 공부를 해보자.

 

참고로 한빛 전자책을 보면서 2페이지 보기로 공부를 하면서 정말 좋았는데,

듀얼 모니터를 이용해서 하나에서는 책을 보고 다른 모니터에서 코딩을 하는 것이 상당히 괜찮은 사용성이었다.

살짝 아쉬운 것은 책에 있는 URL 등을 copy&paste 할 수 없어서 좀 아쉬웠다.

 

IT 서적들은 종종 순서대로 읽지 않아도 된다고 말하곤 하는데,

이 책은 심지어 개인 취향에 따라 어떻게 건너 뛰어도 되는지를 친절하게 알려주고 있다.

 

Chapter 01/02 부분은 이론적인 내용을 설명해주고 있고,

Chapter 03 에서는 실습 환경 준비에 대한 설명이고,

Chapter 04 부터 Chapter 12 까지의 내용은 실제 구현한 Agent에 대한 설명으로만 이루어져 있다.

 

이 책에서의 실습은 전반적으로 Windows 환경을 기준으로 설명을 해주고 있다.

또한 실습을 위해서는 OpenAI(ChatGPT), Claude, Cursor 3종의 외부 생성형AI 서비스를 사용하고 있다고 전제한다.

 

무료 등급으로도 맛을 볼 수는 있지만 실습을 제대로 하고자 한다면 유료 등급이 필요하다.

 

책에서 제안하는 운영체제와 서비스들이 물론 당연히 필수는 아니기에,

다른 환경(Ubuntu)과 AI 서비스(Gemini, OpenCode, Openrouter 등)를 사용하겠다라고 하면

발생하는 차이 부분에 대해서는 스스로 깨우쳐 나가야 한다(개인적으로는 가장 많은 공부를 할 수 있는 추천하는 방법이다 !!!)

 

참고로 MCP 및 FastMCP 부분을 설명할 때,

이 책에서는 패키지를 어떻게 설치하는지 개발환경은 어떻게 맞춰야 하는지에 대한 설명은 하지 않는다.

즉, 이 책은 어느 정도 수준이 있는 개발자를 위한 도서이다.

 

아쉬운 부분은 실습 코드의 실행도 Windows를 기준으로 구현이 되어 있다는 점인데,

AI를 이용해 Ubuntu에서도 실행이 잘 되도록 개선해보면 공부에 많은 도움이 될 것이다.

이 책을 볼 정도라면 그 정도는 충분하게 ... ?! ^^

 

Chapter 04 부터는 책에서 설명해주는 내용만 보는 것 보다

실습 코드를 다운로드 받은 다음,  VSCode로 열고 GitHub Copilot을 이용해서 질문하면서 살펴보면 훨씬 더 좋다.

 

이 책은 생성형AI 코딩 에이전트를 이용해 코드 생성 하는 것을 알려주는 책이 아니다.

멀티 에이전트가 무엇이고 어떻게 구성해야하는지에 대한 것을 설명해주는 책이다.

 

그리고, Chapter 04부터 설명해주는 프로젝트들의 경우 상당히 다양하고 수준 높은 유용한 코드를 제공해주고 있다.

에이전트 개발을 하려는 분들이라면 참고해보면 많은 도움이 될 것이다.

반응형

최근 Claude Code, Codex, Antigravity CLI, Cline 등 다양한 AI 코딩 에이전트가 빠르고 다양하게 등장하고 있다.
나 역시 이러한 코딩 에이전트를 더욱 효율적으로 활용하기 위해 여러 가지 방법을 시도하고 있다.


최근의 코딩 에이전트는 IDE에서 CLI 기반으로 활용하는 것이 trend가 되었으며,

모든 기능은 터미널 안에서 TUI(Terminal User Interface) 형태로 동작한다.

 

따라서 소프트웨어 개발 환경에서 터미널은 단순히 명령어를 입력하는 도구를 넘어,

코딩 에이전트의 사용성과 생산성을 좌우하는 중요한 작업 공간이 되었다.

 

이와같이 코딩 에이전트와 터미널 사이의 궁합이 아주 중요하기에

OpenCode와 같은 경우 추천하는 '터미널 에뮬레이터'를 명시하고 있다.

  - https://opencode.ai/docs/#prerequisites

 

여러 터미널 에뮬레이터가 최근 유행하고 있지만, 우리는 지금 "Ghostty"에 대해서 알아보고자 한다.

 

 

▶ Mitchell Hashimoto

개발환경/클라우드/자동화(CI) 등의 업무를 하고 있는 사람이라면 누구나 알고 있을 'HashiCorp'라는 회사가 있고

그와 더불어 'Hashimoto'라는 이름을 최소한 한 번쯤은 들어봤을 것이다.

  - https://www.hashicorp.com/en/blog/authors/mitchell-hashimoto

 

Vagrant, Vault, Terraform, Nomad 等 정말 다양한 도구를 개발하고 무료로도 사용할 수 있게 제공해준

정말 천사같으면서도 왠지 상당히 geek스러운 분위기를 풍기는 많은 개발자들이 사랑하는 그런 ...

 

'Hashimoto'가 2023년에 해시코프(HashiCorp)에서 물러난 이후,

가장 애정을 갖고 진행하는 프로젝트 중 하나가 바로 "Ghostty"이다.

 

 

▶ libghostty

Ghostty는 여러 특징을 갖지만, 그 중 가장 큰 부분은 엔진이 되는 부분과 Frontend를 분리했다는 것이다.

 

이런 구조를 갖게 됨으로써, 다른 여러 프로젝트에서 'libghotty'를 가져다가 사용할 수 있게 되었다.

실제로 이미 많은 프로젝트에서 이렇게 활용하고 있고, 그 목록은 아래에서 확인할 수 있다.

  - https://github.com/Uzaaft/awesome-libghostty 

 

 

▶ Ghostty

공식 홈페이지는 simple 하다.

  - https://ghostty.org/ 

 

하시모토가 직접 말하기를 'Ghostty'라는 이름에 특별히 심오한 의미는 없으며,

귀엽고 좋은 마스코트가 있고, 'tty'라는 단어가 들어가 있어서 터미널의 역사와도 잘 어울리고,

터미널이 마치 '기계 속의 유령'처럼 존재한다는 것을 암시하는 것 같아서 마음에 들었다고 한다.

 

 

Download

안타깝게도 아직은 macOS와 Linux만 지원해주고 있다. (Windows는 아직)

  - https://ghostty.org/download 

 

Download로 되어있어서 deb 패키지를 다운로드 받을 수 있을 것으로 기대했지만 ...

 

 

Install (Ubuntu)

Ubuntu 환경에서는 명령어 실행 방식으로 설치를 진행하면 된다.

  - https://ghostty.org/docs/install/binary#ubuntu 

 

예쁘게 설치 된다.

 

사실 뭐, 그냥 터미널이다.

 

 

Features: Split Screen

코딩 에이전트의 생산성을 높이는 대표적인 방법 중 하나는 화면 분할(Split Screen)이다.

 

여러 작업을 동시에 확인하고 실행할 수 있다는 장점 덕분에,

최근에는 터미널 화면을 분할하고 세션을 관리할 수 있는 tmux가 다시 주목받으며 전성기를 맞고 있다.

하지만, 개인적으로 설치 및 사용하기에 그닥 편하지도 않고 불편한 것도 많았다.

 

Ghostty는 자체적으로 Split Screen 기능을 제공해준다.

  - 오른쪽 화면 분할: Ctrl + Shift + o

  - 아래쪽 화면 분할: Ctrl + Shift + e

 

 

Features: Configuration

Ghostty는 대부분의 사용자는 별도의 환경 설정 없이 사용하도록 하는 철학을 바탕으로 한다고 한다.

하지만 Terminal에서 환경 설정은 필수 불가결한 요소이지 않나 싶다.

 

환경 설정 파일은 가급적 하나의 파일로 해결할 수 있도록 하고 있다.

"$HOME/.config/ghostty/config.ghostty"

 

 

 Features: Color Theme

다양한 테마를 제공해준다. 아래 명령어로 살펴볼 수 있다.

$ ghostty +list-themes

 

환경 설정 파일에 선택한 theme를 명시해보자.

$ nano ~/.config/ghostty/config.ghostty

 

 

저장 후 'ctrl + shift + ,' 단축키를 입력하면 Ghostty 재시작 없이 환경 설정값을 reload 할 수 있다.

 

 

Clipboard

마우스로 drag 했을 때 clipboard로 복사가 잘 안되는 경우에는 아래와 같이 환경 설정을 하면 된다.

$ nano ~/.config/ghostty/config.ghostty

 

"copy-on-select = clipboard"

 

 

 

개인적으로 몇 주째 기본 터미널이 아닌 ghostty를 사용해보고 있는데,

일단 빠르고 split screen을 기본으로 지원해주는 부분에서 상당히 흡족하다.

 

아직 clipboard 등의 문제를 만나기도 해서 안정성에서는 조금 더 살펴봐야하겠지만,

ghostty를 메인 환경으로 사용할 수 있도록 익숙해져보려고 한다.

반응형

▶ VirtualBox

오픈소스 프로젝트를 너무나 애정하는 입장에서 오랫동안 VM 도구는 VirtualBox를 애용하고 있던 중,

VirtualBox가 2008년도에 `썬 마이크로시스템즈(Sun Microsystems)`에 인수되어 살짝 불안감이 생겼었고

2010년도에는 `오라클(Oracle)`에서 `썬 마이크로시스템즈`를 인수하면서 불안감이 증폭되었었다.

 

VirtualBox는 현재 기본 패키지는 GPLv2 라이선스로 배포를 하고 있지만

역시나 오라클은 `Extension Pack`에 대해서 PUEL 라이선스를 적용해버렸다.

 

개인 사용 및 교육용으로는 무료로 사용 가능하지만, 회사에서는 사용할 수 없는 것이다.

  - https://www.virtualbox.org/wiki/VirtualBox_PUEL

 

VirtualBox 기본 플랫폼만으로도 어느 정도 사용 가능하지만,

`Extension Pack`을 설치해야 화면해상도, 공유폴더, USB3.0 지원 및 원격접속 등 많은 기능이 추가된다.

 

집에서 `Extension Pack(Guest Additions)`을 설치한 상태에서 사용하다가

회사에서 기본 패키지만 가지고 VirtualBox를 사용하면 정말 정말 불편하다.

 

 

▶ VMware Workstation

VMware가 2023년에 Broadcom에 인수되면서 Enterprise 라이선스 정책을 변경하면서

많은 회사에서 VMware를 걷어내고 OpenStack과 같은 솔루션으로 갈아타고자 노력하고 있다.

당연히 금액적으로 엄청난 인상을 한 것과 같은 희한한(나쁜!) 라이선스 정책을 도입했기 때문이다.

 

그런데, 의외로 개인 PC용 제품인 Fusion, Workstation을 무료로 배포를 해버렸다 !!!

  - https://blogs.vmware.com/cloud-foundation/2024/11/11/vmware-fusion-and-workstation-are-now-free-for-all-users/

 

의외로 이를 모르는 사람들이 꽤 많다는 것이 신기하다.

container 세상이 되어버려서 VM 인기가 확 식어버려서인가?!

 

 

집과 회사에서 같은 VM 솔루션을 이용하기 위해 이제는 VirtualBox를 버리고

VMware Workstation으로 갈아타보려한다.

 

 

▶ VMware Workstation Pro

VMware 홈페이지를 방문하면 솔루션 정보를 찾는 것이나 다운로드 받는 것, 심지어 회원 가입하는 것도 쉽지 않다.

Broadcom 특성이려나!? (그렇다. 나는 Broadcom에 반감이 있다. ESXi 라이선스 정책 변경으로 개고생을 ㅠㅠ)

 

처음 방문하는 분은 아래 경로 찾는 것도 쉽지 않을 것이다.

  - https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion 

 

무료로 다운로드 받을 수 있다고 했지만, 회원 가입이 필요 없다고는 하지 않았다!

그렇다. 다운로드 받으려면 로그인(회원가입)이 필요하다.

  - https://profile.broadcom.com/web/registration 

 

회원가입 및 로그인 후에 Free Downloads 페이지에서 `workstation`을 검색해야 한다.

  - https://support.broadcom.com/group/ecx/free-downloads 

 

Free 배포를 하게 되면서 더이상 개발을 하지 않을까 살짝 의심했지만,

그래도 26H1 버전까지 꾸준히 업데이트는 해주고 있다.

 

원하는 버전 선택 후 다운로드 받으면 된다.

 

설치 과정은 그냥 다운로드 받은 파일을 실행하면 된다. 설명까지 필요한 내용은 없다.

 

응!? 설치관련 포스팅인데 정작 설치에 대한 내용은 별게 없네!? ^^

 

반응형

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

 

소프트웨어 개발자의 일자리를 위협하는 가장 강력한 코딩 에이전트 도구인 '클로드 코드'를 공부하기 위한 도서이다.

 

 

아랫 부분을 잘 살펴보기 바란다.

632 페이지 ... 그렇지, 마스터 하려면 이 정도 분량은 되어야 하는 것이지 !!!

 

 

'클로드 코드'에 대한 인기 덕분이기도 하겠지만,

이 책이 충분히 좋은 내용을 담고 있기에 1달도 안되어 2쇄까지도 이어지고 있는 것 같다.

 

'지은이의 말' 부분을 보면 이 책이 어떤 컨셉으로 작성된 것인지를 알려주고 있다.

 

 

책 표지에도 나와있지만, 이 책은 TDD/SDD에 대한 것을 중심으로 하되 도구로써 Claude Code를 사용하고 있는 것이다.

도구 보다는 TDD/SDD와 같은 개발 방법론을 중심으로 하고 있기에 다른 도구를 사용하는 경우에도 충분히 유용하다.

 

이 책에서 샘플로 진행하는 첫 번째 프로젝트는 'TODO 앱'이고 모습은 다음과 같다.

  - https://tika-app.vercel.app/login

 

 

너무나 흔한 프로젝트이지만,

여기에서 보여주는 'TODO 앱'은 의외로 상당한 퀄리티를 보여준다.

 

물론 너무나 친절하게 소스코드도 Apache license로 공개해주고 있다.

  - https://github.com/claude-code-expert/tika

 

 

이외에도 개발에 필요한 필수 문서 체계(PRD, TRD, REQUIREMENTS), CLAUDE.md/AGENTS.md 템플릿,

스킬, 훅, 규칙, CLI 치트시트 등 정말 다양한 컨텐츠를 제공해주고 있으니 GitHub를 꼭 방문해보기 바란다.

  - https://github.com/claude-code-expert/

 

Claude를 예전에 설치해서 사용해봤지만, 그 때에는 CLI만 설치했었는데

이번에 VSCode Extension까지 설치해보려 검색을 했는데 정말 다양한 Extension들이 나오는 것을 보니

Claude의 인기를 엿볼 수 있는 것 같다.

 

 

IDE가 유용할 때가 분명히 있기는 하지만,

왠지 CLI 인터페이스가 개인적으로는 더 선호된다 ^^

 

 

이 책의 내용을 살펴보면,

책 제목으로 '마스터'라는 말을 사용하는 것에 걸맞게 정말 충실한 컨텐츠를 담고 있다.

 

 

HOOK 하나를 설명하더라도, 개발 워크플로우에 적용할 수 있는 아이디어까지 사례를 보여주며 설명을 해주고

SDD에 대해서 설명하면서, GitHub에서 출시한 Spec Kit에 대해서도 필요에 의해 사용할 수 있도록 친절히 소개해주고 있다.

 

화면 디자인을 하면서 최근 이슈가 된 '클로드 디자인'에 대해서도 설명을 해줬으면 더 좋았겠지만

이 책의 출간일을 생각해보면 어쩔 수 없었을 것 같다 ^^

 

책을 전체적으로 살펴보면,

근래에 살펴본 수 많은 코딩 에이전트 책 중에서 가장 충실하고 알차게 작성된 책이라는 느낌이 강하게 들었다.

 

앞에서도 언급했지만,

책 제목에서 '마스터'라는 말을 사용한 분명한 이유가 있다 !!!

 

'Claude Code'를 이용해서 개발을 해보고 싶은 분이라면 교재로 사용하면서 착실하게 공부해보라고 권하고 싶다.

 

반응형

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."

 

어떻게 하다보니 3번 연속 제미나이 책을 공부하게 되었다 !!!

이 정도 되었으면 제미나이 전문가가 되어야 할 것만 같은 압박감이 밀려오는 것 같다. 😅

 

 

어!? 간만에 보는 초판 2쇄 발행 이력이 있다.

와우~ 확실히 "돈을 버는" 주제에 대한 사람들의 관심이 정말 큰 것 같다.

(나도 사실 그래서 이 책을 선택했다 😅)

 

 

최근 `AI 수익화`와 관련한 컨텐츠가 우후죽순 쏟아지는 이유는 아래와 같은 이론(?)에 기반하고 있다.

 

 

이 책 역시 제미나이를 공부하는 것에 포커스를 맞춘 책이 아니라

제미나이라는 도구를 이용하여 수익화를 하는 방법을 배우기 위한 책이다.

책에서도 대상 독자를 그렇게 설정하고 있다.

 

 

그리고, 이 책으로 공부하는 분들을 위해 저자의 사이트에서 프롬프트들을 공유해주고 있다.

편하게 copy & paste 하면서 용돈을 벌어보자 !!!

  - https://www.slearnic.com/secret

 

 

이 책은 총 4부로 구성이 되어 있는데,

그 구성을 봐도 제미나이가 주인공이 아니라 수익화가 주인공이라는 것을 알 수 있다.

 

① 먼저 도구가 되는 제미나이를 익히고(1부 제미나이와 친해지기),

② 도구를 이용해서 판매할 것을 만들고(2부 나만의 디지털 자산 만들기 - 콘텐츠 제작 자동화),

③ 만든 것을 홍보해서 팔고(3부 팔리는 시스템 만들기 - 마케팅 자동화),

④ 이 사이클을 꾸준히 유지한다(4부 끝까지 지치지 않는 루틴 전략).

 

Prompt Engineering, Context Engineering

새로운 AI 시대에서는 새로운 문해력(Literacy)이 필요하다.

무엇을 어떻게 요청할지 구체적으로 설계하는 기술이 필요한 것인데, 그것이 바로 `Prompt Engineering`이다.

 

AI를 사용하다 보면 'AI가 생각보다 별로네'라고 종종 느끼게 될텐데,

이는 'AI에게 어떻게 질문 하느냐'의 문제 때문이다.

 

좋은 답변을 받기 위해서는

AI가 주어진 프롬프트를 최적으로 수행할 수 있는 배경을 만들어주는 기술이 필요하고, 이를 `Context Engineering`이라고 한다.

 

AI에게 질문을 잘하기 위한 여러 방법론과 기법이 있을텐데,

이 책에서는 `CO-STAR` 프레임워크를 제안하고 있다.

 

 

전자책 기획

`CO-STAR` 프레임워크에 맞춰서 전자책을 쓰기 위한 기획을 해봤다.

책에서 예시로 준 프롬프트 예시를 기반으로 내 입맛에 맞게 좀 변경을 했다.

 

Context: 나는 GitHub을 집필 도구로 사용하여 전자책을 작성하려고해. 집필 주제는 SW개발자 취업 준비생이 알아야할 개발환경과 기본 지식들이야.
Objective: 4주 내에 기획부터 집필까지 마칠 수 있도록, 체계적이고 실용적인 전자책 목차와 각 장별 핵심 내용을 빠르게 제안받길 원해.
Style: 친근하면서도 전문적인 문체로 작성해 독자가 쉽게 이해하고 실천할 수 있게 한다.
Tone: 동기 부여와 긍정적인 어조를 유지한다.
Audience: 20~30대 SW개발자 취업 준비생을 대상으로 한다.
Response: 6~8개의 장으로 구성된 목차와 각 장별 주요 소주제를 포함한 리스트 형태로 출력해.

 

 

우선 Gemini에게 프롬프트를 줬다.

모델은 아래와 같이 3.1 Pro로 설정했다.

 

 

좀 길긴한데, 그래도 기록도 할겸 결과를 그대로 공유해보겠다.

 

 

 

갑자기 ChatGPT에도 똑같이 해보고 싶었다.

최근 GPT 5.5 모델도 발표했길래 Pro 모델로 설정해봤다.

 

 

일단 결과가 훨씬 길게 나왔다.

소주제를 훨씬 디테일하게 잡아주었고, 전체적은 workflow까지 제안한 점이 마음에 들었다.

 

 

여러 도구에 여러 모델로 비교하면서 진행하는 것도 나름 재미있었다.

 

책 자체가 하나의 workflow로 구성되어 있기에

정말 하루에 30분씩 투자해서 진행해보기에 큰 부담없이 진행할 수 있어서 좋았다.

 

 

그동안 반평생 이상을 SW개발 세상에서만 살고있다보니

AI도 Coding 도구로만 바라보던지 아니면 AI 모델을 어떻게 만들 것인지, AI Agent를 어떻게 만들 것인지만 공부하고 있다.

 

하지만, 전자책을 만들고 이를 강의로 만들어보고, 컨텐츠화 해보고 하면서

나의 또 다른 수입원으로 만드는 도구로서의 AI 활용법은 새로운 느낌마저 들었다.

 

나의 삶에서의 도구로써 AI를 활용하는 방법에 대해서 알아보고 싶은 분들은

이 책을 한 번 살펴보길 추천한다.

 

반응형

스웨덴 S/W 아키텍트 Knut Sveidqvist(어떻게 발음해야할지 모르겠다 😅)가

Visio를 사용하다가 문제를 겪고선 Markdown 문서와 잘 어울리는 텍스트 기반 다이어그램 작성기를 2014년 11월에 만들었다.

 

Mermaid라는 이름은 당시에 그의 아이들이 보고 있던 디즈니 애니메이션에서 영감을 받았다고 한다.

실제 만든 제품과 전혀 연관성이 없는 이름이라니 ... ㅋㅋㅋ 🤣

 

 

Mermaid는 여러 사이트를 보유하고 있다.

 

① 공식 홈페이지

  - https://mermaid.js.org/

  - URL 주소에서도 보이지만, 기반은 Javascript이다.

  - 2019년도에는 JavaScript Open Source Award 수상도 했다(The Most Exciting Use of Technology).

 

 

  - 앞으로 오픈소스 공식 홈페이지는 아래로 오라고 한다.

    . https://mermaid.ai/open-source/

 

 

 

② Advanced Editor (Create with AI)

  - https://mermaid.ai/

  - 최근 트랜드에 맞춰 Mermaid도 AI 열차에 올라탔다.

 

 

  - Free 등급도 급한대로 쓸만하지만, 돈을 들여야 한다.

 

 

 

③ Live Editor

  - https://mermaid.live/

  - 웹에서 바로 결과를 확인해볼 수 있는 에디터도 있다.

  - 예전엔 여기가 메인이었지만, `② mermaid.ai` 사이트를 최근에 밀어주고 있다.

 

 

 

④ GitHub

  - https://github.com/mermaid-js/mermaid

  - 개인적으로 정보는 GitHub이 제일 많고 좋은 것 같다 !!!

 

 

 

사이트들은 충분히 살펴봤고,

이제는 실제 어떻게 작성하는지 알아보자.

 

 

⒜ Flowchart

  - GitHub README 파일에 너무나 잘 나와 있어서 해당 내용으로 대체 하겠다.

  - `flowchart LR`에 있는 `LR`은 left-right를 의미한다.

    . `LR` 말고 top-down으로 그리고 싶을 때에는 `TD`를 사용할 수 있다.

  - 연결선도 다양하게 표현할 수 있다.

    . --> : 화살표
    . --- : 실선
    . -.-> : 점선 화살표
    . ==> : 굵은 화살표

 

 

 

⒝ Sequence diagram

  - `loop` 같은 것이나 `Note`까지도 너무나 예쁘게 잘 지원해준다.

 

 

 

⒞ State diagram

  - Renderer가 한 번 업그레이드가 되어 `stateDiagram-v2`라고 명명해야 한다.

    . 그런데, 간단한 것만 사용해봐서 그런지 `stateDiagram`이라고 해도 차이를 잘 모르겠다.

 

 

그외에 Pie chart, Gant chart, Bar chart, Class Diagram 등은 물론

심지어 `User Journet diagram`도 있고, `Git graph`도 실험 버전으로 제공되고 있다.

 

GitHub Markdown에서 Mermaid 문법을 지원해주면서 Mermaid의 인기가 더 올라갔지만,

최근 AI에서 도식화를 시킬 때 Mermaid 문법으로 만들어 달라고 하면

너무나 예쁘게 잘 만들어주면서 더더욱 인기가 급상승하고 있다.

 

AI를 이용해서 문서화를 할 때에 Mermaid를 이용해 다양한 다이어그램과 차트를 그려주게 되면

구성원들 간에 오해를 줄일 수 있는 너무나 멋진 소통의 창구가 될 수 있다.

 

 

아! 참고로 GitHub에서 Mermaid를 표시하려면 아래와 같이 묶어 주면 된다.

 

```mermaid
graph TD;
    A-->B;
    A-->C;
    B-->D;
    C-->D;
```

 

그런데, 조금 이상하지 않은가?

뒤에 `;`를 붙였는데, 본래는 붙이지 않는 것이 표준이지만 줄바꿈을 명확히 하기 위해 붙이기도 한다.

 

여기까지 간단히 살펴봤다.

반응형

+ Recent posts