GDSC SungShin Women's University 23-24/Session

[11월 정기세션] Google의 기술 소개와 사용법

GDSC SungShin Team 2024. 2. 7. 01:57

 

안녕하세요! GDSC Sungshin 교육팀 김나은입니다!

 

 11월 정기세션에서 교육팀은 ' Google의 기술 소개와 사용법 '이라는 주제로 교육을 진행했습니다.

 

GDSC에서 활동하면서 사용하게 될 구글의 기술에 대해 알아보겠습니다!

 

목차는

 

1: GCP

 

2: BARD-API 사용법

 

3: Kubernetes

 

로 구성했습니다.

 

GCP란 구글 클라우드 플랫폼으로 구글에서 지원하는 클라우드 컴퓨팅 서비스입니다.


다양한 서비스를 통해 기업이나 개발자가 웹 애플리케이션, 데이터 분석, 기계학습, 스토리지 등을 구출하고 실행할 수 있습니다.

 

한마디로 강력한 인프라, 다양한 기술 스택, 그리고 빠른 개발 및 배포를 지원하는 클라우드 컴퓨팅 서비스라고 할 수 있습니다.

 

특징에는 다양한 것들이 있는데 컴퓨팅, 스토리지, 데이터베이스, 인공지능 등 다양한 서비스를 제공합니다.

 

또한 쿠버네티스와 같은 오픈 소스 기술과 함께 다양한 개발 언어 및 프레임워크와 호한할 수 있는 개방형 생태계,


데이터 암호화, 접근 제어, 네트워크 보안 등 다양한 보안 기능을 제공하는 보안,


가상 머신 인스턴스 및 다른 리소스를 빠르게 프로비저닝하여 개발 및 배포 시간을 단축할 수 있는 빠른 인프라 프로비저닝,

빅쿼리와 같은 서비스를 이용한 대용량 데이터 처리 등이 있습니다.

 

GCP의 사용 방법을 알려드리겠습니다.


우선 구글에 로그인을 하고 GCP에 들어가 무료로 사용하기 버튼을 누릅니다.


가입을 진행할 때 카드 번호를 넣으라는 페이지가 나오는데 확인해본 결과 일반 계정을 직접 활성화하지 않으면 요금이 청구되지 않는다고 합니다.


회원 가입을 완료하면 사용할 수 있는 서비스 목록이 뜨게 됩니다.


인스턴스를 만들어야 다른 제품들을 사용할 수 있어 제품들 중 vm 인스턴스를 만드는 것을 실습으로 진행해보겠습니다.

 

vm만들기를 누르고 들어가게 되면 오른쪽 사진과 같이 웹 앱 빌드 방법 빨리 배우기가 있는데 이것을 참조해서 방법을 알 수 있습니다.


인스턴스 만들기 버튼을 누르면 이와 같은 화면이 나오는데 아래로 내려 http 트래픽 허용에 체크를 하고 만들기를 누릅니다.

 

만들어진 인스턴스에서 연결 부분에서 브라우저 창에서 열기를 누르면 프롬포터 창이 열리게 됩니다.

 

사진에 보이는 두 코드를 작성합니다.


다시 인스턴스 창으로 돌아와 외부 IP부분을 누르게 되면 저희가 만든 화면이 보이게 됩니다.


앞으로 이 ip를 이용해서 다른 구글 제품들의 서비스를 이용하고 확인할 수 있습니다.

 

만들어진 vm을 삭제하는 방법은 vm을 선택한 후 삭제를 누르면 선택된 vm이 삭제됩니다. 

 

무료 버전에서는 사용할 수 있는 크래딧 양이 정해져있기 때문에 너무 많은 vm을 만들면 실행이 안될 수 있으니 적절히 관리해야합니다.

 

Google Bard는 구글의 대형 언어 모델(LLM)인 LaMDA와 PaLM을 기반으로 하는 인공지능 검색 엔진 서비스로 2023년 3월 21일에 미국과 영국을 대상으로 영어 버전으로 베타 테스트를 시작했습니다.

 

바드의 특징으로는 최신정보에 대한 정확성, 답변의 출처 제공, 구글의 다른 서비스와의 연동이 있습니다.

 

파이썬과 Bard-API를 사용하여 구글 바드 액세스하는 법을 알아보겠습니다.

 

Google Bard에서는 아직 정식 API 서비스를 지원하지 않습니다.

 

향후에는 OpenAI 처럼 API를 개방해줄 것으로 기대가 됩니다.

 

따라서, 정식으로 API 토큰을 발급하는 방법은 현재로써는 없고, 크롬브라우저에서 토큰(API KEY)을 얻어와야 합니다.

 

먼저 api 키를 확보해야합니다. 

 

바드에 접속 후 개발자도구를 열어줍니다.

 

다음으로 어플리케이션을 선택 후 쿠키 메뉴에서 바드를 선택하여 5. ’__Secure-1PSID’를 찾아서 Value값 복사합니다. 

 

이 값이 api key의 역할을 합니다.

 

*__Secure-1PSID 는 타겟팅 쿠키(Targeting Cookie)로, 사용자의 관심사를 프로파일링 하기 위해 사용되는 쿠키 값입니다.

 

만약 Secure_key값을 받아왔는데 제대로 실행이 안된다면 시크릿모드로 접속해서 밸류값을 받아오면 제대로 될 것입니다. 

 

쿠키값은 계속 변하는 값이기 때문에 에러가나는 해당값이 이미 이전값이나 변경될 값일 경우가 큽니다.

 

이제 본격적으로 bard api를 사용해보겠습니다. 

 

참고로 저는 구글에서 제공하는 코랩을 이용했습니다. 

 

먼저 해당 명렁어를 입력하여 bardapi 패키지를 설치해줍니다.

 

bardapi 라이브러리에서 Bard 클래스를 가져옵니다. 

 

그다음 복사한 토큰을 입력한 후 bard 객체를 생성해주고 질문을 전달하고 응답을 출력합니다.

 

저는 "GDSC에 대해 알려줘"라는 질문을 넣었습니다.

 

GDSC에 대한 설명을 하는 것을 볼 수 있습니다.

 

Chat-gpt에 검색했을 때는 알 수 없는 현재 한국대통령의 정보도 알 수 있고, 또 이번 크리스마스 때에는 강원도에 눈이 올 가능성이 있다고 합니다.

 

지금까지 파이썬과 Bard-API를 사용하여 구글 바드 액세스하는 법에 대해 알아보았습니다.

 

향후에는 Bard 에서도 OpenAI 처럼 API를 개방해주면 이를 이용해 다양한 기술들이 펼쳐질 것으로 기대됩니다.

 

다음으로 쿠버네티스에 대해 설명하겠습니다. 

 

쿠버네티스는 컨테이너를 쉽고 빠르게 배포, 확장 하고 컨테이너 관리를 자동화해주는 플랫폼입니다. 

 

쿠버네티스는 구글이 2014년에 오픈소스로 공개하고 현재까지도 가장 인기가 많아 쿠버네티스가 컨테이너 오케스트레이션의 업계 표준이 되었습니다. 

 

쿠버네티스를 케이에잇츠라고 부르기도 한다네요!

 

쿠버네티스는 1주일에 20억개의 컨테이너를 생성하는 구글이 컨테이너 배포 시스템으로 사용하던 borg 를 기반으로 만든 오픈소스입니다. 

 

현재는 리눅스 재단에 의해 관리되고 있다고 하네요.

 

컨테이너 오케스트레이션의 표준인만큼 전세계 글로벌 클라우드 기업 3대장인 아마존 애저 구글도 쿠버네티스를 지원합니다.

 

GCP에서는 쿠버네티스 엔진 API를 제공하여 쿠버네티스 서비스를 제공합니다.

 

아 그래서 컨테이너 오케스트레이션이 뭔데??!하실 수 잇는데요!

 

복잡한 컨테이너 환경을 효과적으로 관리하기 위한 도구입니다.

 

여기서 잠깐! 컨테이너라는 용어의 개념을 모르시는 분들도 많을 것 같은데요 뒤에서 설명하니까 일단 넘어갈겠습니다~

 

서버를 관리한다는 것은 서버의 상태를 관리하기 위한 노력입니다.

 

어떻게 하면 서버의 상태를 쉽게 관리할 수 있을까요?

 

예를들어 개발자A가 "내가 개발한 회원 서비스 소스코드 깃헙에 올렸어 결제 서비스 만들어줘" 하면 개발자 B는 깃헙에서 다운을 받고 실행하면 "아.;;왜안됨?" 이럴수가 있죠?

 

특히 안드로이드 개발할 때 저는 많이 경험을 해봤습니다.

 

예시처럼 서로다른 자바버전을 사용했을 경우에도 문제가 발생할 수 있습니다!


한 서버에서 어떻게 여러개의 버전을 잘 돌릴 수 있을까요? 

 

이러한 문제를 해결하기 위해 등장한 것이 컨테이너입니다.

 

만약 다른 사람에게 내가 만든 웹서버와 db서버를 전달해주고 싶다면 어떻게 할 수 있을까요?


첫번째로 하나의 컴퓨터에 즉 내 컴퓨터입니다.

 

가상으로 컴퓨터를 만들고 운영체제를 설치한 후 그 위에 웹서버와 db서버를 설치하고 이를 묶어서 다른 사람에게 줄 수 있겠죠?

 

이게 vmware입니다!

 

근데 이게 느립니다.

 

사진에서 보다시피 OS용량을 너무 잡아먹어서 OS가동시간때문에 느립니다.

그래서 컨테이너를 씁니다. 

 

컨테이너는 하나의 컴퓨터 즉 내컴퓨터 안에 각각의 앱을 실행시킵니다. 

 

각각의 앱은 그냥 실행되는게 아니라 격리된 환경에서 실행됩니다. 

 

이때 운영체제가 설치된 컴퓨터를 host라고 부르고 host에서 실행되는 격리된 각각의 실행환경을 컨테이너라고합니다. 

 

컨테이너안에는 OS가 없어서 저장장치 용량을 줄일 수 있습니다.

그래서 가상서버와 컨테이너의 가장 큰 차이점은 OS추상화입니다.

 

그래서 컨테이너를 정리해보자면


컨테이너는 소프트웨어 서비스를 실행하는데 필요한 특정 버전의 프로그래밍언어 런타임 및 라이브러리와 같은 종속 항목과 애플리케이션 코드를 함께 포함하는 경량 패키지입니다.

가상머신과 비교하여 컨테이너는 생성이 쉽고 효율적이고 컨테이너 이미지를 이용한 배포와 롤백이 간단하고 언어나 프레임워크에 상관없이 애플리케이션을 동일한 방식으로 관리하고 개발, 테스팅, 운영환경은 물론 로컬피시와 클라우드 까지 동일한 환경을 구축하고 특정 클라우드 벤더에 종속적이지도 않습니다.

이렇게 좋은 컨테이너를 관리하고 생성해주는 플랫폼이 뭘까요?

 

바로 도커입니다.

 

도커는 컨테이너를 만들고 관리하기 위한 컨테이너 기반의 오픈소스 가상화 플랫폼이며, 컨테이너 기술을 사용하는 도구와 서비스의 총칭입니다.

간단히 말해서 도커는 컨테이너를 만들고 실행하기 위한 도구 및 플랫폼이며, 컨테이너는 그 실행되는 단위라고 볼 수 있습니다. 

 

도커는 컨테이너를 쉽게 관리하고 배포할 수 있도록 도와주는 도구 중 하나입니다.

하지만 이해가 잘안될 수 잇으니 예를들어 설명해보겠습니다. 

 

여러분은 앱을 다운받을 때 앱스토어에서 프로그램을 다운받고 프로그램을 실행시키면 프로세스가 되죠?


컨테이너도 사용하기 위해서는 도커허브에서 다운받고 이 다운받은 것을 이미지라고 부르고 이미지를 실행시킨 것이 컨테이너입니다.

 

도커를 이용해서 컨테이너를 생성했다면 실행시킬 수 있는데 이때 컨테이너를 한개만 띄어서 사용한다면 도커를 계속 사용하면 되고 0월0시에 100개의 컨테이너를 자동으로 생성하고 싶을 때 쿠버네티스를 사용하는 것입니다.

즉 도커는 이미지를 컨테이너에 띄우고 실행하는 기술이고 쿠버네티스는 도커를 관리하는 툴입니다. 

 

따라서 도커는 한 개의 컨테이너를 관리하는데 최적화 되어있고 쿠버네티스는 여러 개의 컨테이너를 서비스 단위로 관리하는데 최적화되어있습니다.

이제 컨테이너 오케스트레이션이라는 말이 이해가 됐을까요?? 

 

오케스트레이션이 지휘잖아요 컨테이너를 지휘한다~고런의미입니다.

 

쿠버네티스의 특징은 첫번째로 고가용성입니다. 

 

서버 장애시 서버가 정지되면 자동으로 재가동을 해줍니다.


두번째로 성능관리입니다. 

 

필요한 인스턴스의 개수를 유지하고 높은 부하에서 자동으로 스케일해줍니다.


세번째로 높은 유연성과 확장성


네번째로 다양한 환경에서 쿠버네티스가 사용이 가능합니다.

 

 

위 두 사진은 '도커를 모른다면 쿠버네티스를 완벽히 이해할 수 없다'라는 의미입니다.

 

 

제가 이번학기에 쿠버네티스를 배웠는데 처음들어보는 용어들과 도커까지 알아야 쿠버네티스를 제대로 사용할 수 있었습니다.

 

이렇게 어려운 쿠버네티스 내팀프로젝트에 사용하는게 무조건 좋을까요?

 

그건 아닙니다.

 

한개의 컨테이너만 사용한다면 쿠버네티스는 필요가 없습니다.

 

쿠버네티스는 많은 컨테이너 관리에 유용하니까 자신의 서비스에 맞게 사용여부를 결정했으면 좋겠습니다.

 

배워서 나쁠 건 전혀 없지만 솔챌까지 시간이 정해져있으니까요!

 

감사합니다.

 

12월 GDSC Sungshin 교육세션은 지금까지 교육세션에서 다뤘던 내용들을 정리해보는 '퀴즈 시간'입니다!

 

다음 포스팅도 기대해 주세요! :)

 

더보기

 

참고자료

dsdanielpark/Bard-API: The unofficial python package that returns response of Google Bard through cookie value. (github.com)

 

GitHub - dsdanielpark/Bard-API: The unofficial python package that returns response of Google Bard through cookie value.

The unofficial python package that returns response of Google Bard through cookie value. - GitHub - dsdanielpark/Bard-API: The unofficial python package that returns response of Google Bard through...

github.com

Google Bard API 무료로 사용해보기 | 커리어리 (careerly.co.kr)

 

sally / Google Bard API 무료로 사용해보기 | 커리어리

Google Bard는 LaMDA모델을 기반으로 하는 LLM입니다. 최근에 Bard-API를 이용할수 있도록...

careerly.co.kr

https://summerorange.tistory.com/entry/Bard-API-key-오류-error

 

Bard API key 오류 / error

23.10.04 현재 beta 버전의 Bard. chatGPT 와 Bard를 사용하고 있는데 Bard는 현재 베타 버전이지만 !pip install bardapi 요 라이브러리를 설치한 뒤 호출해서, 쿠키 값을 활용해서 api 활용할 수 있다. api를 임시

summerorange.tistory.com

[초보를 위한 쿠버네티스 안내서] 컨테이너 오케스트레이션이란? - YouTube

생활코딩 Docker 입구 수업 - 생활코딩 (opentutorials.org)

 

생활코딩 Docker 입구 수업 - 생활코딩

수업소개 vmware, virtualbox와 같은 가상머신처럼 독립된 실행환경을 제공하면서도, 성능의 저하가 훨씬 적은 도커에 대해서 알려드립니다.  수업대상 일하는 조직에서 도커를 쓰고 있는 분 개발환

opentutorials.org

[Kubernetes] 도커와 쿠버네티스 간단 비교 (tistory.com)

 

[Kubernetes] 도커와 쿠버네티스 간단 비교

도커와 쿠버네티스 비교 예시 컨테이너를 하나만 띄워서 사용해야지! => 도커 0월 0시에, 100개의 컨테이너를 자동으로 생성해야지! => 쿠버네티스 즉, 도커는 ’이미지를, 컨테이너에 띄우고 실행

wooono.tistory.com

 

발표자료 제작

김나은: GCP

김도은: Bard-api

최애림: Kubernetes

 

발표: 김나은, 최애림

포스팅: 김나은