기본 콘텐츠로 건너뛰기

100% 바이코딩만으로 AWS서비스도 만들 수 있다!(giip v3 개발 간략 해설)




그럼 요즘의 바이브 코딩으로 어디까지 만들 수 있는지를
알아야 하잖아요?

요즘 제가 깊이 있게 만들고 있는 건데요.. 

Giip라는 원래 저 혼자 classic asp로 만든 
인프라 관리 툴입니다. 

인프라를 관리하는 툴인 zabbix라던가 
New relic같은 서비스를 보셨죠?
이런 툴은 모니터링 위주의 툴이고
Jenkins는 디플로이 위주의 툴이죠.. 

이런 툴과 비슷하다고 보시면 됩니다.
 
주변에선 다들 AI개발한다느니 
프론트엔드 또는 일반 유저 대상
서비스만 개발하고 있는데, 
왜 이딴거 하냐고 물어보시는 분들도 계시는데.. 

전 기초과학이 뛰어난 국가가 
응용과학도 뛰어나다고 생각하는 주의 입니다.

때문에 IT에서도 
데이터 저장 및 관리를 잘하는 사람이
모든 IT서비스를 효율적으로 만들 수 있다고 생각하거든요. 

때문에 데이터 저장을 포커싱 했고, 
데이터 저장 및 처리에 중요한
데이터베이스나 인프라의 병목 등을 찾아
해결하고자 했죠. 

이것만 잘하면 이 위에 
어떠한 서비스를 올려도 
효율적으로 돌릴 수 있지 않을까요?

그래서 
그런 문제를 보다 쉽고 빠르게 찾아내고자 만든게
Giip인데요.. 

서론이 길었습니다. 

아직 개발중이지만

100%바이브 코딩으로 만든 giip v3를 한 번 둘러보시죠!

첫 화면은 
요즘 핫하다는 google ai studio에서 
Giip를 소개하고 그에 어울리는 이미지를 
뽑아달래서 만든거구요.. 



로그인을 해보죠. 

-- 로그인 처리

로그인 방법은 v2까지 모두 독자 계정을 사용하다보니 
그대로 사용하고 있습니다. 

이 서비스의 핵심은 

한 사람이 여러 프로젝트를 만들고 
각각의 프로젝트에 사람들을 초대하여 
공동 운영이 가능합니다. 

다국어 처리도 
바이브 코딩으로 하면
다국어가 필요한 위치를 자연스럽게
내가 지정한 나라의 언어로 자동으로 바꿔주다보니
일일이 번역해서 넣을 필요가 없습니다. 
페이지 내에 번역을 원하는 텍스트가 있다면 
그 텍스트를 드래그 해서 

다국어 처리 해줘

라는 한마디로 내가 초기에 설정한 다국어 버전 텍스트가 
그냥 만들어지는 거죠 

프로젝트를 일단 선택해보구요..



그리고 그 서버의 리스트를 보시죠. 

지금은 내 개인용 PC들 리스트인데요.. 
이 서버들이 어떻게 연결 되어 있는지 
한 번 보겠습니다. 

-- Network3d 클릭

화면이 움직이면서 피씨들이 보이죠>
제가 지금 쓰고 있는 피씨와
같은 네트워크에 연결된 고객사 피씨
그리고 데스크탑 세 대가 연결 되어 있구요

각각의 gateway도 자동으로 표기 됩니다. 

어떤 gateway를 타고 인터넷에 나가는지 
등도 표기를 하려는데
아직 동일 L2내에서의 네트워크만 표기 중입니다 .

이렇게 연결해서 만들어 나가면

내가 지정한 서버가 어디랑 연결 되었는지 알기 쉽죠. 
이 부분의 바이브 코딩을 어떻게 했냐구요?

그냥

네트워크 구성을 3D로 표현하고 싶어. 
그에 따른 추천 콤포넌트로 그림을 그려주고, 
그에 필요한 JSON데이터를 추출할 수 있게 
윈도우즈와 리눅스용 스크립트를 각각 만들어줘

라고 했더니 스크립트까지 만들어주네요.

각각의 스크립트를 각 서버에서 실행하도록
Giip에서 구성하여 내려보내구요. 

각자 PC들은 그걸 받아 실행한 결과를
Giip의 KVS라는 스토리지에 던지면
그걸 읽어서 화면에 뿌려주게 되죠. 

처음에는 이상한 뻘 짓을 많이 했지만, 
하나하나 물어가면서 조정하다보니 
여기까지 왔습니다. 

또하나 봐야죠. 

이번엔 실제 고객사의 SQL Server퍼포먼스 저하를 
찾아달라는 요청으로 
고객사의 퍼포먼스 정보를 받아오도록 만들었죠. 

전제조건은

고객사의 경우 고객사의 서버에 멋대로 에이전트를 설치할 수 없어요. 
때문에 고객사에게서 받은 노트북에서
그 서버에 접속해서 필요 정보를 받아와야 하죠. 

부하가 거의 안들도록 시스템 정보만 가져오게 해서 
보여준 것이 바로 이것입니다. 

-- DPA 버튼 클릭

화면 아래로 뭔가 박스가 연결 되어 있죠. 
부하가 큰 시간대로 이동해 볼께요. 
드래그 해서 빨간 색이 있는데로 이동도 가능하지만, 
바로 아래쪽 가장 부하가 큰 시간대 10개가 
부하 순으로 나열 되어 있어서 이걸
클릭해도 됩니다. 

-- 11:45:12 클릭

이렇게 3D 로 몇 개가 연결되어 
어떤 놈이 부하를 주는지를 선의 색으로 
표시하고 있구요.. 
클릭을 해보면 이 부하에 사용된 쿼리까지 볼 수 있습니다. 

어짜피 화면은 임팩트용이고
자세히 천천히 보기 위해서는 
아래로 스크롤 해보면
이 타이밍에 추출된전체 쿼리 각각의 부하 정도를
볼 수 있죠.. 

-- 프로젝트를 lowy personal로 변경
-- Automation 클릭

그리고 현재 각각 서버에 설정되어서 
돌고 있는 작업들의 리스트를 볼 수 있구요. 
등록, 삭제등도 이제 추가해야죠.. 
기존 버전에는 전부 사용 가능합니다. 

-- KVS factor일람 클릭

그리고 
각각의 서버마다 최신KVS데이터나 
KVS의 이력을 추적할 수도 있구요.. 

매일 작업할 시간이 몇 시간 안되어서 
이제 며칠 정도 한 분량이라 이 정도인데요. 

가장 시간이 많이 들어갈 줄 알았던
3D구현이 되어버렸으니
나머진 노가다로 바이브코딩을 하면 됩니다. 

개발자 분들이라면 여기서 의문이 있겠죠.

API는 어떻게 된거냐?
DB는 어떻게 연결하냐?
등등요..

물론 많은 분들이 DB를 직접 연결했으리라 
생각하시겠지만, 

전 웹서버나 client에선 DB를 절대
호출하면 안된다는 개발논리를 가지고 있습니다. 

보안에 취약해지 잖아요..

그러니 API공통 규약을 만들고
API서버를 운영하고 있죠. 

-- azure faw보여줌

Azure의 Funcation App이란 것입니다. 

여기에 딱 한 페이지 짜리 API를 만들었구요.
물론! 이것 조자 바이브 코딩입니다. 

그리고 API의 표준화를 위해
DB에서 Procedure를 만들면
자동으로 매핑하도록 만들었습니다. 

그러고나니
Procedure에서 모든 계산이나 처리를 하기만 하면
프론트나 API는 아주 간단해져 버리는 거죠. 

로그인 판정에서부터
현재 세션의 유효성 검사, 
데이터의 조건에 따른 INSERT또는 실패 코드를
리턴하기도하고.. 

그러면 그 리턴은 전부 프론트에서 
코드와 메시지를 보고 판단하는 것 뿐입니다. 

이런식으로 만들면
쿼리 인젝션은 기본적으로 불가능하구요.. 
Cookie등을 조작해서 들어올 수는 있지만, 
정상 데이터를 알고 있다는 전제하에 
들어오는거라서 accesstoken을 굳이 
사용자의 PC에서 빼내가서 조작할 정도로
PC가 거덜났다면
굳이 giip에 그 유저 계정으로 엑세스 하는 것 보다
그냥 그 유저PC에 있는 보안 계정으로 
직접 서버 해킹하면 되는거죠.. 

즉, 사용자의 PC가 안전하다면
충분히 안전하도록 만들어져 있구요..

또 재밌는건

요즘 copilot에서는 
뭔가 요청하면
관련으로 추가 보안 적용 사항등을 제안하더라구요. 

그래서 프론트는 추천하는 보안을 다 때려 넣어달라면
알아서 때려 넣습니다. 

그러다가 충돌나는건 ai가 해결 못해주기 때문에
언제든 돌아갈 수 있게 해야하구요.. 

혹시 
여기까지 보신 분 들 중에
아직 바이브코딩은 아냐.. 

라고 생각하시는 분들은 
제 채널에서는 별로 건져가실 건 없으리라 봅니다. 

혹시 바이브코딩으로 뭔가 만들어보고자 하는 
아이디어가 있다면
같이 만들어가는 시간을 가져보면 어떨까 합니다. 



giip :: Control all Robots and Devices! Free inter-RPA orchestration tool! https://giip.littleworld.net/

댓글

이 블로그의 인기 게시물

일본 두바퀴 여행(바이크 편)

영상버전 : https://youtu.be/P3vC17iVu1I 이번에는 일본으로 넘어와서 일본 종주하시는 바이커들을 위한 정보입니다.  일본에서의 2륜의 정의가 면허와 도로교통법이 조금씩 다르다고 합니다.  그래도 그렇게 크게 신경쓸 건 없으니 딱 세 종류로 말씀 드릴께요.  50cc는 원동기 1종이라고 하여 3차선 이상 교차로에서 우회전, 한국에선 좌회전 같이 크게 도는 것이지요..  이게 불가능합니다.  직진 신호로 넘어간 뒤에 방향을 틀고 다시 직진으로 두번 꺾어 가야 하구요,  두 명이 타면 안됩니다.  그리고 맨 가장자리 길로만 가야해서 애매하게 끝에서 두 번째 차선만 직진인 곳들이 있어서 난감할 때가 있지요. 그런데에 직진하면 걸리는 곳이 있다고 합니다. 어느 정도까지 걸리고 안걸리고는 정확히는 모르지만,  직좌 마크가 아닌 좌회전 마크만 있는 곳이 은근히 많으니 조심해야 하겠더라구요.  최고 시속도 30km를 넘기면 안되어 천천히 달려야 합니다.  아뭏든 제약이 엄청나게 많으므로 60cc이상을 가져오시거나 렌트 하시는 것을 추천하구요,  125cc미만은 겐츠키 2종이라고 하여 두 명이 타도 되고, 3차선 이상에서 우회전이 가능합니다.  상당히 제약이 풀리는 대신 고속도로를 탈 수가 없지요.  만약 국도로 천천히 올라오신다면 125cc미만으로도 충분합니다.  실제로 일본인 바이커들 중에서도 국도 종주하는 모습을 많이 볼 수 있구요,  도심에 가면 125cc미만까지만 주차 가능한 바이크 주차장도 꽤 많기 때문에 도심용으로는 메리트가 큰 것 같습니다.  뭐, 125cc대는 곳에 큰 바이크를 대는 경우도 자주 보는데, 아무도 뭐라 안하긴 합니다.  그도 그럴 것이, 일본의 바이크 등록대수는 1031만대 인데도 바이크 전용 주차장은 턱없이 부족하다고 합니다. 바이크 주차장이 저렴하기 때문에 웬만한 ...

[Classic ASP] Cookie가 삭제 안되는 문제

만든 쿠키가 삭제가 계속 안되서 여기저기 삽질을 했다. 모든 쿠키를 삭제하는 함수도 만들었다. Function CookieClear(cldomain) For Each cookie in Request.Cookies Response.Cookies(cookie).Domain = "." & cldomain Response.Cookies(cookie).Path = "/" Response.Cookies(cookie).Expires = DateAdd("d",-1,now()) Next End Function 그런데.. 안되서 계속 삽질하다가 하나 알았다.  littleworld.net littleworld.co.kr www.littleworld.net  의 모든 값을 지우려고 했으나.. 처음 만든 쿠키가 www.littleworld.net 인 관계로.. 처음에 www.littleworld.net 의 쿠키를 삭제 해야만 나머지가 지워졌다.. -ㅅ-;; 간단하지만 몰랐던 초보적인 사실.. ---- 누구나 쉽게 광고를! http://www.cashtalk.co.kr Free Infrastructure automation & management tool Global Infrastructure Integration Platform http://giip.littleworld.net Subscribe and publish your links as a book with friends  My Favorite Link Share http://link.littleworld.net

BI의 궁극판! Apache Drill을 써보자!

사실 Apache Drill 은 BI(Business Intelligence)라고 부르는 것 보다는 단순 데이터 연결 엔진이다. https://drill.apache.org/ 하지만 내가 왜 극찬을 하느냐면.. DBA로서 항상 문제가 되어왔던게, 이기종 데이터의 변환이나 처리였다. 포맷을 맞추는데 엄청난 시간이 걸리고, 데이터 임포트 실패가 무수하게 나고.. 한 번 잘못 데이터를 추출하면 다시 조정, 변환, 추출하는데 시간이 많이 걸린다. 그런데! Apache Drill은 그냥 RDB를 CSV랑 연결해서 조인해서 통계를 낼 수 있다. 그것도 표준 SQL을 사용하여! 예를 들어, CSV의 세 번째 컬럼이 price 이고, 물건의 판매이력을 PG사에서 CSV로 출력 받았다. 우리 DB와의 검증을 위해서는 수동으로 Import를 한 뒤에 포맷이 안맞아 잘리는 데이터가 있다면 다시 맞춰주고, 재 임포트를 수십 번, 그리고 나서 겨우 들어간 데이터를 조인하여 빠진 데이터를 분간한다. 숫자가 적다면 개발자가 개발로 처리할 수도 있지만, 건수가 하루에 300만건 짜리라면.. 한 달 온 파일은 9천만 건이다. 프로그램으로 고작 처리하는 것이 초당 500건. 거의 20만초, 에러 없이 약 56시간.. 에러가 생기면 다시 56시간.. ㅠㅡㅠ 이런게 현실이기 때문에 쿼리 말고는 방법이 없다. apache drill 의 진면목을 보자! 이번에는 좀 범용 적인 MySQL DB와 붙여 보자. . 난 이번에는 Mac에서 작업을 했기 때문에 그냥 다운 받아서 풀었음.. https://drill.apache.org/download/ 여기서 자기 OS에 맞는 버전을 받아서 설치하시길.. 압축을 풀고 나면 MySQL 커넥터를 붙여야 한다. https://dev.mysql.com/downloads/connector/j/5.1.html 여기서 다운로드 이런 커넥터 들을 붙일 때마다 콘피그를 수정해 줘야 하지만, 몇 번만...