2월, 2023의 게시물 표시

토이 프로젝트 일지 2 : ChatGPT 서비스를 활용하는 크롬 플러그인 만들기

이미지
그림 1. 프로그램 동작 화면 1. 시작 계기 최근 IT 쪽에서 ChatGPT가 상당한 주목을 받고 있다. ChatGPT는 언어 생성 모델로, 매우 큰 범용성을 가지고 있기 때문에 다른 자동화 툴하고 연계할 경우 큰 시너지를 일으킬 수 있다. 이미 ChatGPT for Google 과 같은 ChatGPT를 활용한 플러그인들이 다수 출시되고 있는데 이러한 플러그인들은 Open AI의 API Key를 활용하거나 Open AI에서 제공하는 Chat 서비스 서버와 간접적으로 통신해서 ChatGPT를 활용하고 있다. 이러한 프로그램들을 보니 필자도 ChatGPT를 활용하는 프로그램을 만들어보고 싶게 되어서 이번 프로젝트를 시작하게 되었다. 2. 프로젝트 개요 가. 프로젝트 소개 1. 프로젝트 유형: 개인 토이 프로젝트 2. 구현 서비스 : 구글 검색 시 ChatGPT에 질문해서 응답을 보여주는 크롬 플러그인 3. 개발 환경 : VS Code 4. 구동 환경 : Linux, Windows 5. 활용 기술 - 리버스 엔지니어링 6. 개발 기간: 2023.2.4 ~ 2023.2.10 Open AI에서 제공하는 Chat 서버의 통신을 모방해서 결과를 출력시킬 것이다. 실제 내부 동작을 자세히 모르기 때문에 통신을 수행할 때, 패킷들을 캡처해서 각각의 엔드포인트들이 어떤 동작을 일으키고, 어떤 상호작용을 하는지 파악해야 한다. 이러한 부분은 리버스 엔지니어링에 속한다. 나. 프로젝트 목표 이번 프로젝트에서는 크롬 플러그인 Manifest 3 버전으로 개발한다. 2 버전으로 개발하는 경우는 많았으나, 3 버전으로 개발하는 것은 경험이 많지 않기 때문에 이 부분에 대한 경험을 쌓는 게 중요한 목표다. 또한, 모르는 부분들이 나왔을 경우 ChatGPT로 최대한 물어봐서 ChatGPT에 익숙해지는 것도 주요 사항이다. 3. 프로젝트 구현 가. ChatGPT 웹통신 과정 분석 그림 2. Chat 서비스 엔드포인트 용도 분석 네트워크 디버깅을 통해서 각각의 엔드포인트의 용도를 분석했다. ...

토이 프로젝트 일지 1 : 네이버 웹툰 크롤링 서비스를 제공하는 Nodejs 서버 만들기

이미지
그림 1. 프로그램 동작 화면 1. 시작 계기 필자는 현재 컴퓨터 공학 4학년을 재학 중이며, 4학년까지 여러 가지 프로젝트들을 많이 만들어보았으나 지금 시점에서 보면 체계성도 매우 부족하고 너무 구현에만 급급했다는 생각이 많이 들었다. 그래서 좀 더 체계성을 키우기 위해서 개인적으로 토이 프로젝트를 만들어보자고 생각했으나 마땅히 할만한 주제가 잘 떠오르지 않았었다. 그때, 니꼴라스님이 저자이신 'Do it ! 클론 코딩' 시리즈를 모두 읽고 내가 너무 토이 프로젝트에 대해서 너무 복잡한 프로그램을 만들려고 하다 보니까 제대로 시작을 못 하고 있다는 것을 알게 되었다. 그래서 이번에는 가벼운 마음으로 '네이버 웹툰 크롤링 서비스'를 주제로 처음으로 제대로 된 토이 프로젝트를 만들어보려고 한다. 2. 프로젝트 개요 가. 프로젝트 소개 1. 프로젝트 유형: 개인 토이 프로젝트 2. 구현 서비스 : 네이버 웹툰 크롤링 3. 개발 환경 : replit(WEB IDE) 4. 구동 환경 : linux 5. 활용 기술     - 프론트 엔드 : bootstrap 4         > Vue, Angular와 같은 MVC 라이브러리는 사용하지 않았다.     - 백엔드 : Nodejs-Express         > 첫 토이 프로젝트인 만큼 필자에게 익숙한 프레임워크를 사용했다. 6. 개발 기간: 2023.1.17 ~ 2023.2.10 나. 프로젝트 목표 첫 번째로 시도해보는 토이 프로젝트인 만큼 끝까지 성공적으로 마무리하고, 관련 개발일지를 남기는 것이 가장 중요한 목표다. 그리고, 유지보수가 어려운 스파게티 코드가 되지 않도록 최대한 체계적으로 구현해보는 것도 주요 중점이다. 3. 프로젝트 구현 가. 개발 중점 요소들 1. 최소한의 요구 조건으로 v1.0.0부터 만들기 처음에 프로젝트를 시작하려고 하면 너무 구현해야 하는 사항들이 많아서 어디서부터 시작해야...