2024년 2월 25일 일요일

2024년 첫번째 도서 리뷰 GPT-4를 활용한 인공지능 앱 개발

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

24년 첫 도서 리뷰이다.

작년까지? 한참 핫 했던 인공지능 서비스 Chat GPT에 관한 책이다.

핑계지만 어쩌다보니 GPT에 대한 접근이 남들보다 뒤쳐졌었다.

작년 상반기에 앱 개발할때 조금 활용 해 보고....

RFP작성때 살짝? 그리고 올해 넘어와서는 사업계획서 작성할때 좀 써보고...


GPT가 API를 제공 한다는건 알고 있었지만 API를 사용해 본적은 없었다.


오늘 소개할 책은 GPT-4의 API를 이용한 앱 개발에 관한 책이다.


책을 처음 받았을 때 응? 이라는 생각이 들었는데 예상보다 책이 많이 얇다.

표지 제외하고 179페이지가 전부다.

기억나는 IT책중 얇은책...The C Programming Language...

저 책을 처음 보기 시작 했을때의 기억은...

얇은 책의 장점, 간결해서 좋다. 읽으면서 이해만 할 수 있다면...

그런 점에서 C 책의 첫 추억은 썩 좋진 않았는데...

다행인건 지금 내가 그래도 예전 저 C책을 처음 접했을 때보단 좀 나은 수준이라는거....


책을 받고 제목만 보았을 때는 GPT에게 개발을 시키는 거에 대한 내용인가?

우와...내가 드디어 실직자에 한 발 다가서는 세상이 오는 것인가? 라는 생각을 했다...다행이? 아직은 아닌듯...


책은 5개의 챕터로 나누어져있다.


첫 챕터에서는 GPT-4와 Chat GPT에 대한 소개로 내용이 이루어져있다.

지금 깨닭은건데 왜 Chat GPT라 쓰지 않고 챗GPT라고 써놓은걸까...이게 눈에 더 안들어 오는거 같은데...


먼저 LLM - Large Language Model 에 대해서 소개하는 내용으로 시작해서

GPT 모델 의 역사를 소개하고 여러 LLM을 사용한 사례들을 보여준다.

여기서는 모건 스탠리나 듀오링고 같은 비교적 익숙한 이름들도 볼 수 있다.

이즘 되었을때 '아~ GPT의 LLM을 이용한 서비스를 만들때 API 사용법에 대한 내용이구나'를 눈치챘다.


챕터2에서는 본격적으로 GPT-4와 ChatGPT의 API사용에 대한 내용을 다룬다.

과금과도 직결되는 가장 필수 적인 프롬프트와 토큰, 모델에 대한 설명으로 시작한다.

사용가능한 모델을 소개 하고 파이썬으로 어떻게 시작 하는지를 예제를 통해서 설명하고 있다.

자주 볼 수 있는 'Hello World'예제부터 채팅의 입력과 출력, 텍스트의 입력과 출력을 예시로 하여 설명을 하고 있다.

여기서 채팅과 텍스트의 차이는...채팅은 좀더 대화에 가까운 형태로 이루어 진다는 점이 차이점이다.


챕터3에서는 실제 애플리케이션을 구축하는 내용을 간단히 다루고 있다.

API키 관리, 보안, 개인정보 보호...아무래도 GPT에게 뭘 시킬때 실수로 개인정보가 들어가면 안되니까...

그런데 딱히 코드로 그런걸 막을수 있는건 아닌거 같고 그냥 주의 하라고...

그런걸 위한 입출력 분석에 대한 내용도 그냥 이래이래 하면 된다고 말로만...이래서 책이 얇....;;;

예제에서는 뉴스 생성 솔루션, 유튜브 동영상 요약, 음성제어 등에 대한 간단한 코드를 소개 하고 있다.


챕터4 에서는 GPT의 고급 기법이란 내용을 다루고 있다.

효과적인 프롬프트의 설계나 퓨샷러닝(책에 설명만으로는 이해가....), 파인튜닝 등을 이용해서 성능을 향상하는 내용을 다룬다.

특히 파인튜닝은 비용이 많이 드는 편이라 비용에 대해서도 간단히 소개 하면서 언급하고 있다.


챕터5는 랭체인, 플러그인으로 기능 향상을 하는 내용을 다루고 있다.

랭체인은 LLM기반 애플리케이션 개발을 위한 새로운 프레임워크로

파이썬에서 해당 라이브러리를 설치해서 간단히 사용 할 수 있다고 소개하고 있다.

플러그인은 GPT-4의 기능을 확장해 주는 역할을 한다.

플러그인은 OpenAI에서 제공하는것도 있고, 개발자가 만들어 올릴 수 도 있는 듯하다.(책에 내용을 봐서는)


그 뒤에 Appendix는 GPT의 새로운 기능과 개선 사항 등에 대해서 소개 하고있다.

책이 나올 무렵의 GPT의 정보와 과금 등에 관한 내용으로 이루어져 있고...

재미있다고 해야 할까? OpenAI를 이용한 개발을 진행 할 때 ChatGPT에게 물어가며 할 수 있다.

뭔가 당연한대...재귀적인 느낌이라 해야 하나... 


전반적으로 얇은 책의 장점, 간결하다.

항목마다 디테일하게 설명하진 않지만 OpenAI API 활용에 관한 내용을 러프하게 이해하고 싶을때 좋은 책이란 생각이 든다.

설명이 디테일하지 않아 뭔가 애매한게 나올때 마다 따로 찾아보며 봐야 하는 책이란 생각이 든다.

...난 하나만 던져 줬지만 나머지 9개는 니가 찾아서 공부 해라...라는 저자의 큰 그림일까?

대상이 초중급...단서를 달자면 자의든 타의든 책 내용에 관련해서 여기저기 찾아보며 열심히 공부하겠다면...


2023년 일곱번째 도서 리뷰 "데이터 메시"

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


이번에도 지난번과 마찬가지로 사내 스터디에 도움이 될만한 책으로 서평 도서를 골라보았다.

하둡 시스템 구성과 시각화까지 서비스하는 업무가 메인인 회사에서 빅데이터의 다음 행보에 관한 내용은 상당히 중요하고 그에관한 도서라면 충분히 향후 업무에 도움이 될 것이라 생각 했다.


데이터 메시(메쉬가 맞지 않나?)를 설명하려면 기존의 데이터를 다루거나 관리하는 방식에 대해서 한번 볼 필요가 있을것 같다.

예전, 지금도 많이 사용하고 있는 RDBMS 를 기반으로 하는 데이터베이스는 모든 데이터를 한곳에 모아 관리하며, 로우데이터(?)나 살짝 가공된 운영데이터를 관리 하는것에 중점을 두고 있다고 생각한다.

통계등의 분석은 그때그때 어플리케이션들이 데이터를 가지고 와서 생성하여 사용자에게 제공하고 있다.


빅데이터 시스템의 경우....(사실 회사 주 업무가 하둡기반 빅데이터 시스템 운영 및 유지보수 이긴 하지만 내 업무 중 이쪽 업무 비중은 매우 낮은 편이다.) 어떤 데이터를 수집하고 사용하는지에 따라 다르겠지만 현재까지 대부분의 경우에는 기존 RDBMS때와 마찬가지로 중앙집중식으로 데이터를 관리하고 있다고 보는것이 맞을 듯 하다.


아무래도 기존 설계방식을 따르면서 데이터의 종류와 양만 어마어마 하게 늘어난게 현재 대부분의 빅데이터 시스템 이다 보니...

내가 본게 그런게 다라서 그런가...여튼...


데이터메시는 기존과 반대로 설계를 한다.

업무 도메인 별로 각 도메인별 데이터를 직접 관리하고 필요한 경우 데이터를 주고 받으며 사용한다.

로우 데이터나 운영 데이터 보다는 분석 데이터에 중점을 두고...운영 한다고 하는데 사실 직접 해보진 않아서 정확하게 와 닿지는 않았다.


이 책은 프롤로그를 반드시 읽어 보기를 추천한다.

가상의 음악 및 오디오 스트리밍 회사인 다프라는 회사에서 데이터 메시를 구현하여 사용하는 내용으로 데이터 메시의 전반적 개념과 운영 방법 등에 대해서 얘기를 시작 하고 있다.

사실 프롤로그 까지만 읽어도 데이터 메시가 무엇인지, 어떻게 이루어 지는지에 대한 어렴풋한(?) 개념은 잡을 수 있었던 것 같다.


프롤로그에서 다프라는 회사가 기존에 데이터를 다루는 방식에서 데이터 메시로 전환 하면서 어디가 어떻게 달라 졌는지, 어떤 방식으로 변화 하였는지를 설명하며 데이터 메시에 대한 이야기를 해 주고 있다.


이후 부터는 본격적으로 데이터 메시를 설명하고있다.

1~5부까지 나누어져 있는데 각각 소개 하면 다음과 같다.


1부 - 데이터 메시란

데이터 메시를 요약하고 데이터 메시의 네가지 원칙에 대하여 설명하는 내용이다. 뒤에 나오는 내용들에 비해 가장 이론적인 내용이 아닐까 싶다.


2부 - 왜 데이터 메시인가

비즈니스의 변화에 따른 전략적 이유로 기존의 데이터에 접근 하는 방식에서 데이터 메시로 바뀌어야 하는 이유를 설명하는 내용이다.

예전보다 비즈니스의 복잡도나 변동성이 증가 했다는 것에 그 이유를 두고 있다.

책 전체에서 가장 많은 비중을 차지하는 내용이다.


3부 - 데이터 메시 아키텍처의 설계 방법

말 그대로 아키텍처의 설계에 관한 내용을 다루고 있다.

중앙집중식에서 도메인별로 나누어 관리 하는 방법으로 바뀌기 때문에 당연히 아키텍쳐 설계에 대한 내용을 다루는 것 같다.


4부 - 데이터 프로덕트 아키텍처의 설계 방법

앞에서도 설계를 다루었는데 다시 설계 방법 이라고 나와서 의아할 수 도 있을듯 하다.

앞에서의 설계는 데이터 메시에 대한 설계이고 4부에서 다루는 내용은 데이터 프로덕트의 설계이다.

데이터 메시에서는 데이터의 제품화? 에 대한 이야기를 하고 있다.

중앙집중 식으로 데이터를 관리 하지 않고 도메인 별로 관리를 하기 때문에 다른 도메인에서 필요로 하여 데이터를 제공 하는 경우에 대한 데이터를 데이터 프로덕트라고 표현 하는 것 같았다.(늙어서 그런가 요즘 뭘 한번에 이해 하는게 잘 없는거 같다 ㅠㅠ)

따라서 데이터의 관리를 위한 설계가 아니라 데이터를 소비 하기 위한 설계라고 보면 이해가...(내가 이해 한거 설명해서 이해 시키는게 확실히 힘들구나...)

내용은 데이터의 제공, 소비, 변환, 검색 을 위한 데이터 구성 설계에 대한 것 들이다.


5부 - 새로운 시작

데이터 메시의 도입에 관한 내용이다.

앞서 내용들을 보면 당연히 도입 하는 것이 좋은 것 처럼 보이지만 책에서는 데이터 메시를 도입하기 전에 충분히 고려 해야 할 8가지 항목을 설명하고 있다. (신기술을 적용 하는것이 늘 좋기만 한 것은 아니니까)

그리고 마지막으로 데이터 메시를 위한 조직과 문화에 대한 얘기로 마무리를 짓는다.


이번 책은 특징이 있다면 매 장 마지막에 정리하기라는 내용이 있다.

코드 한줄 없이 이론적인 내용만 다루는 책이라 죽~ 읽다가 보면 크게 기억에 남지 않는 문제가 있다.(나만 그런가?)

그래서 매 장 마지막 정리하기에 있는 요약은 책을 이해하는데 상당히 도움이 되는것 같았다.

먼저 읽고 정리하기를 봐도 괜찮고, 정리하기를 먼저 보고 앞에 내용을 읽어 보는 방법도 괜찮은 것 같았다.


마무리를 하자면...중앙집중식 데이터 관리에서 비즈니스 도메인별로 데이터를 분산하는 데이터 메시라는 새로운 패러다임? 이 등장 했고 그 패러다임에 대한 내용 설명 이라고 하면 정리가 될까 싶다.


이론에 대한 기나긴 설명만 있으면 책을 읽어 내려 가기가 힘들어 지는데 다행이 각 장 마지막 부분에 요약을 잘 해놓아서, 그나마 쉽게? 읽을 수 있었던 데이터에 대한 새로운 개념을 다룬 책이 었던 것 같다.


이제...세미나를 시켜 볼까나...




2023년 여섯번째 도서 리뷰 "처음부터 제대로 배우는 스프링 부트"

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

요즘 서평책을 선택 할 때 사내 스터디에 도움이 될 만한 책 위주로 골라 보고 있다.

최근 스프링으로 이런저런 작은 프로젝트도 하고 해서 스프링 책이 서평 목록에 있으면 했었는데

딱 좋은 책이 있길래 냉큼 신청을...


책을 펼쳐 처음부터 보는데 베타리더 리뷰에 반가운 이름이 똭! (형이 왜 거기서...ㄷㄷㄷㄷㄷㄷ)


책은 챕터1에서 스프링 핵심 기능 세가지를 소개 하는 것으로 시작하여 

도구 선택, REST API, 데이터베이스등의 가장 기본적인 내용으로 이어 진다.

이후에는 에플리케이션 설정과 검사, 데이터 파고들기(DB심화?), MVC, 리액티브 프로그래밍 이란 내용들을 다루고 있다.

챕터 9 이후 후반부로 넘어 가면 애플리케이션 테스트, 보안, 배포등 프로젝트 막바지에 다루는 내용들을 다루며

마지막 챕터에서는 리액티브 관련한 내용을 좀 더 심도 있게 다루고 있다.


위에 열거한 챕터 제목들만 보면 다루는 내용들이 여느 책들과 크게 다르지 않아 보인다.

하지만 개인적인 생각으로 이 책이 다른 책들과 다른점이라면 중요한 포인트를 잘 짚어서 이해하기 쉽게 알려 준다는 것이다.

특히 설명이 장황하지 않고 간결하며 쉽게 이해 할 수 있도록 하고 있어 더 좋은것 같다.


그런 특징은 챕터1에서 부터 잘 드러난다. 챕터1은 단 여섯 페이지 이다.

그 안에 "의존성 관리", "배포 간소화", "자동설정" 이라는 세가지 키워드로 스프링의 핵심 기능을 소개 한다.

스프링을 사용할 때는 별 생각 없었는데(그냥 개발 하기 바빳나...) 이렇게 정리된걸 보니 설명을 참 잘하고 있다고 느꼈다.


또 다른 차이점이라면 가려운 곳을 잘 긁어 준다고 해야 할까?

스프링을 시작 하면서 몇 가지 고민거리중 가장 대표적인것이 메이븐이냐? 그레들이냐? 중 선택 하는 문제 일 것이다.

결국은 개발자의 취향대로 하겠지만 책은 메이븐과 그레들 각각에 대해 설명하고 각각의 차이와 장단점을 비교 하면서

어떤 경우에 어느 툴을 선택하면 좋을지를 잘 안내해 주고 있다.

마찬가지로 자바와 코틀린중 어떤 언어를 선택하면 좋을지 설명하는것 같지만 언어는 그냥 개발자가 원하는거 선택 하는걸로....


이후 내용은 앞에서 전체 내용 다룰때 얘기한 것 처럼 REST API나 데이터베이스 등 일반적인 내용으로 이어진다.

역시 REST에 대한 설명등을 간략 하지만 이해하기 쉽게(나한텐 약간 아닌듯 하기도...) 설명 하고 있다.

간결하지만 충분한 설명과 복잡하진 않지만 부족하지도 않는 내용의 코드로 쉽게 따라하며 이해 할 수 있도록 되어있어 좋은것 같다.


그리고 그 뒤로 이어지는 내용중엔 리액티브 프로그래밍 관련한 내용이 나온다.

이건...나도 안해본거라...공부해야 할...

그 뒤에 보안관련 내용도 뭔가 새로워진 것 같아 공부해야 할...

배포도...예전엔 그냥 톰켓이었는데...뭔가 새로운것이...


마무리 해 보자면, 책은 스프링을 사용하는데 있어 초/중급 개발자를 대상으로 매우 좋은 책인 것 같다.

그리고 나처럼 예전에 스프링을 조금 사용해봤던 개발자에게도 좋은 책인 것 같다.


조만간 스프링 프로젝트를 시작 하게 된다면 이 책을 다시 신나게 펴 보고 있게 될 듯 하다.



2023년 다섯번째 도서 리뷰 "상상을 실현하는 로블록스 게임 만들기"

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

이번엔 좀 특이한 책에 도전 해 보았다.

사실 처음 의도는 아이들이 로블록스 게임 하는걸 재미있어 하는듯 해서 만드는것도 관심을 보이지 않을까 해서 였다.

책을 그냥 책상위에 뒀더니, 관심을 보이더니, 한 시간 정도는 봤나...

아직 어려서 무리인가 싶었는데...사실 이때까지 내가 책을 펼쳐 보질 않았으니...

로블록스 게임하는거 봤을땐 별거 있을까? 스크레치 정도의 수준이 아닐까 싶었는데...전혀 아니었다.

어쩐지...애들이 스튜디오 설치해서 잠깐 해보더니 접더라니...ㅎ


책은 로블록스의 소개와 회원가입을 시작으로 스튜디오 설치와 소개 및 기본 툴 소개와 툴을 이용한 간단한 집 만들기로 시작을 한다.

그리고 본격적으로 제작에 들어가기 전에 게임 개발에 관해 아주 짧게 설명해주고 있다.

게임개발...피처폰 시절 모바일 게임 개발자 였어서 할말은 많은데....하...


그 뒤로 이어지는 내용은 루아 언어다. 갑자기?

루아는...nginx 땜에 쪼금 본게 다 였는데...

로블록스는 툴 노가다로 모든 게임을 만드는 것이 아니라 일정 부분은 루아 언어로 만들어진다.

그래서 기본적인 루아 문법과 루아 코드를 게임에 적용하는 방법과 예시를 보여주며 설명하고 있다.


그 다음 파트는 이제 로블록스 게임을 만들어 보는 과정이다.

지형 점프맵과 다차원 드롭퍼, 두 가지를 예시로 만들어 보는데 지형 점프맵은 아이들이 종종 하던 게임 종류라 좀 더 편하게 와 닿았다고 해야 하나?

드롭퍼 게임은 애들이 보는 유튜브 체널에서 본적있는 스타일인 듯 했다.

어찌되었건 가장 쉽게 볼 수 있고 많은 형태의 게임을 예시로 제공하면서 사운드 효과나 이펙트 등을 넣는 방법을 설명하고 있어서 좀 더 쉽게 접근 할 수 있도록 해 주고 있다.


마지막은 로벅스로 수익을 내는 방법에 대하여 설명하고 있다.

부수입이라니....ㄷㄷㄷㄷㄷㄷ

기본적인 게임 판매와 유료화 방법, 게임 아이템 판매 방법등을 설명 하고 있어서 로블록스 유료게임을 만들어 보고 싶은 사람에게는 무척 유익한 내용이다.


전체적인 책에 대한 평가는 "많지 않은 페이지수에 많은것을 잘 담아 낸 책" 이라고 하고 싶다.

물론 스튜디오와 루아로 직접 게임을 만들다 보면 책에는 설명하지 않은 난관을 120% 만나겠지만, 적어도 처음 시작해서 게임을 만들어 보려 한다면 이 책은 많은 도움을 줄 수 있는 책이 분명 할 것 같다.


강의하던 시절에 교재를 써 보고 싶었는데 그 때 내가 생각 했던 스타일의 책 같다고 해야 할까?

자바를 가지고 이렇게 책을 쓰긴 힘드려나...ㅋ


개인적으로 재미있어 보이는 주제에 대하여 간결하고 알차게 잘 써놓은 책이라 생각 한다.


이 책을 보면서 나도 게임 하나 만들어 볼까 하고 지금도 생각해보지만...

나이탓일까...예전 게임 개발 할 때 처럼 상상력이 풍부하지 않아 그런지 떠오르는 아이디어가 없는게 아쉬울 따름이다.


2024년 첫번째 도서 리뷰 GPT-4를 활용한 인공지능 앱 개발

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." 24년 첫 도서 리뷰이다. 작년까지? 한참 핫 했던 인공지능 서비스 Chat GPT에 관한 책이다. 핑계지만 어쩌다보니 GPT에 대한 접근이...