2021 Google Cloud Qwiklabs 참가 후기



구글 Quiklabs Cloud Study Jam 참가 후기 및 배지

어서와, Google Cloud Platform 은 처음이지?

그 동안, AWS에서만 클라우드 관련 작업을 하고, AWS 스터디를 하다보니
내 자신이 자연스럽게 AWS에 기술 Lock-In이 되가는 걸 느꼈다.
사실은 GCP나 Azure도, 경쟁력을 갖춘 클라우드 서비스 제공자인데..
그래서 AWS 관련 커뮤니티를 눈팅하던 중에
Google Quiklabs CLoud Jam이라는 프로그램을 알게 되었다.
한 마디로 정리하자면, Google Cloud의 서비스들을 Hands-on 형태로 강의하는게
Google Quiklabs 라는 프로그램인데,
한 달간 이 Quiklabs를 무제한으로 사용할 수 있게 해주는 이벤트였다. (구글 Korea 주관)

자세히 보기

SSAFY 활동 정리 후 포트폴리오 만들기


가슴으로 낳은 LoveLine 프로젝트

나라는 사람을 다시 한 번 정리해보는 계기

요즘은 포트폴리오 정리를 하느라, 굉장히 바쁜 날들을 보냈다.
Github 자기소개를 작성하고, 진행했던 프로젝트들의 README를 (살벌하게) 작성했고,
그 안에 들어간 코드를 수정하고, 퍼블릭화 해도 되는 것인지 검토하고…
만들었던 소개영상들, 공식문서들과 UCC를 유튜브에 업로드하고..
나라는 사람을 돌아보는 시간을 가지면서, 자기반성과 뿌듯함을 동시에 느꼈다.

진행했던 프로젝트들의 깃헙 README를 살벌하게 작성했다

자세히 보기

대용량 트래픽 대처 AWS 시스템 아키텍쳐 토이 프로젝트


이력서 클릭 한 방에, 10번이나 지원한다구?

작년 12월, 내가 면접을 봤던 연봉이 쌔기로 유명한 M모 회사의 DevOps 직군 과제는 다음과 같았다.

Public Cloud (AWS, GCP, Azure 등) 상에서의 웹서비스 시스템 아키텍처를 설계하여 10분 내로 발표하시오. 웹 서비스는 고객사별로 활용하는 사이트 도메인이 구분되고, 특정 순간에 순간적인 대용량 트래픽이 발생할 수 있다.

처음 이 과제를 딱 받은 순간부터 멘붕이었다. 매일같이 SSAFY 최종 프로젝트를 진행하는 와중에 (심지어 내가 팀장) 준비할 수 있는 기간은 고작 일주일!!
여차저차, PPT 자료 조사도 하고, Ssafy 시니어 개발자 친구님들에게 조언도 얻고, 컨설턴트님들과 화상통화로 PT의 부족한 점도 듣고, PPT도 세련되게(?) 만들고,
대본도 칼같이 10분에 딱 맞춰 제작하고, 영상을 찍어, PT전형은 통과했지만
결론부터 말하자면, 총 7차 면접 과정중 6차에서 떨어지고 말았다! ㅎㅎㅎ (인생은 쓰디쓴 법)

PT 과제는, 그저 이론상으로 대용량 트래픽에 대응할 수 있는 시스템 아키텍쳐를 설계하고 구성하는 것 뿐이었지만 PT면접을 통과하고, 기술면접을 준비하던 와중에
“내가 만든 시스템 아키텍쳐를 실제로 구현해 가야 겠다!!” 라는 생각이 들었다. 실제로 이론상으로 설계도를 그리는 것과, Backend - Frontend 로직 + Infra구성까지 다 하는 것은 하늘과 땅차이!!

고래서, 단 3일만에 부랴부랴 AWS 의 Auto Scaling, Route 53, Amazon RDS, Amazon S3, Cloudfront, ELB 기능을 포함한 토이 프로젝트를 개발했는데, 결론부터 말하자면 아니 이걸 어케 3일만에 다했지.. 싶을 정도의 나름 개고생한 흔적들이 보이는 토이 프로젝트가 나오게 되어서, Github 에 Open 하게 되었다.

Backend는 Django, Frontend 는 Vue(Vuetify)로 작업했고,
배포는 gunicorn, Nginx 를 사용했다.

AWS System Architecture 초안

기본적인 사이트의 컨셉은, 회원가입한 구직자가, 이력서를 간단히 작성하고
원하는 부서에 이력서를 낼 때, 대용량의 사진을 여러장을 보내도 서버가 다운 되지 않도록 하는 것이었다.
AutoScaling 기능을 추가했고, Cloudfront로 모니터링 하도록 했고, 요구사항이었던 고객사별 다른 도메인 주소를 구현하기 위해 Route 53을 붙였다.
CDN (Cloudfront)도 붙여서 Image 로딩의 레이턴시를 줄였다.

또한, Frontend 단에서 SPA가 조금 더 가볍게 로딩될 수 있도록 디렉토리를 Refactoring 해 기본적으로
각 세션단위 컴포넌트가 Lazy Loading 될 수 있게 만들었다. 컴포넌트를 재활용할 수 있게 만든 것은 덤이다.

Backend 단에서는 Django로 S3 서버로 이미지를 바로 업로드 할 수 있게 만들었는데,
이미지를 여러개를 업로드 할 수 있도록 Stack 을 만들고 그 안에서 For문을 돌며 챠라락 여러개의 이미지 업로드가 될 수 있게 만들었다.

사실은 제대로 된 테스팅을 해보려면 여러가지 부하툴을 사용했어야 했는데,
Uhm… 사실은 개발을 다 끝내고 나니까 기력이 떨어져서 좀 귀찮았… (커허흠)

시간이 너무 없어서, 다 구현하지 못한 부분(ElastiCache 등)도 있고, 아직 이때는
AWS의 이론에 대해 깊이 있는 학습을 마저 못한 것도 있어서 미흡하지만
어쨋든, 깔끔하고 이쁜 모바일 반응형 웹 서비스를 3일만에 완성시켰다는 점에서 뿌-듯 했따고 한다. ㅎㅎ






프로젝트의 세부사항과 코드는 다음 링크의 README에 올려놓았습니다. 참조!

https://github.com/Jesuisjavert/awsTest

Javascript 기초문법 가물가물할 때 5분 컷 내기


Javascript 오빠는 풍각쟁이야~ 오빠는 심술쟁이야~
난 몰라 난 몰라 문법 이렇게 만들어 놓으면 난 몰라~~

Javascript 문법은 봐도봐도 헷갈려

Backend와 Frontend를 왔다리 갔다리 하다보면,
Python식 사고방식으로 작성한 문법이 문제 없겠지? 하고 들여다보면
Javascript 의 다양한 에러메시지를 주구장창 마주치게 된다.

오죽하면, What the fuck Javascript 라는 Dev Meme (개발자 유머)도 존재하고,
Javascript의 가장 괴랄한(?) 부분만 모아놓아, 퀴즈 형식으로 풀게하는 레퍼지토리도 존재한다. 폴란드의 한 개발자 분이 만드신 것 같은데, 웃긴 건 이 페이지는 전부 Typescript로 제작 되었다는 것ㅋㅋㅋㅋㅋ 그만큼 JS를 싫어하신단거지

주위 개발자 친구들에게 보내보니 다들 점수가 처참했다

JS의 괴랄함을 겪어보고 싶으신분들은 사이트 들어가서 직접 풀어보자! :
https://wtf-js-quiz.netlify.app/

자세히 보기

내가 쓴 Django README를 다시 읽다.


Django.. the "D" is Silent

얼마전 작년 3월에서 5월 사이에 만들었던 5차례의 Django 프로젝트들을 다시 읽어보다가,
그때 너무나도 정성스럽게 적어두었던 Django Project의 README 파일들을 발견하게 되었다.
하루에 8시간씩 개발을 하고 지쳐쓰러져도, 으으.. README는 써야해.. 하면서
좀비같이 일어나 README를 쓰던 모습이 떠오른다.

나란 녀석.. 부지런한 녀석이었군..

당시엔 좌충우돌, Django를 처음 써보는 것이라 Python 에 HTML Bootstrap을 붙여 작업하는 것만으로도
MVC 패턴이니, MVT 패턴이니.. HTML 문법이니 CSS니 허덕이며 작업했던 게 기억나는데,
혹시 Django를 공부하는 분들에게 도움이 될까 싶어 Repository를 만들었다.
호옥시 Django 공부하시는 분 있으시면 참고해보세요~

https://github.com/Jesuisjavert/Django_README

AWS AI/ML Innovate Online Conference 참가후기


Machine Learning 뽕에 취한다...

AWS AI / ML Innovate Online Conference 참가 후기

때는 코로나 시국, Offline Conference들이 Online으로 많이 이루어진다.
하지만, 오히려 좋아. Online 이니까, 참가비도, 교통비도 0원!
올해 이루어졌던, AWS re:invent 도 참여했었고 (re:invent 는 System Architecture쪽 위주)
도키도키한 마음으로 아기다리 고기다리
AWS AI (Artificial Intelligence) & ML (Machine Learning) Innovate Online Conference 의 날이 밝았다 !

기조연설의 캡쳐본으로 어떤 내용이 진행 되었는지 Summary 해보았다.

자세히 보기

VPC Endpoint & NAT Device & MetaData


VPC 끝포인트 설정을 통해 안전한 통신 환경을 제공해보자

VPC 엔드포인트

VPC 엔드포인트가 왜 필요할까?

AWS에서 제공되는 대부분의 서비스에 접근하려면, 퍼블릭 네트워크 통신이 필요하다.
하지만 금융 서비스처럼 강력한 보안 요건을 충족하려면, 격리된 프라이빗 서브넷 내에
자원이 생성 되어야 하며, 인터넷 통신이 되지않는 프라이빗 서브넷이 외부 퍼블릭
네트워크 통신이 가능하도록 만들어 주는 것이 VPC 엔드포인트이다!

자세히 보기

어느날 .. 당신의 cmd 창이 심심하다면.. Figlet & Toilet


Hello .. My name is... SkyNet... (Feat. asciiview)

어느날, 나는 심심하고야 말았다

원래 가장 바쁠 때, 가장 딴 짓이 하고 싶은 법.
Linux 환경에서 vi로 이것저것 세팅값을 건드리고 있다가,
매주 참여하는 AWS 스터디 (ANOS) 에, php 파일을 하나 만들어 기증해 보기로 했다.

CUI 환경에서 ip ping test 를 하는 우리 스터디원 분들의 눈을
1초라도 조금 더 즐겁게 만들어 보고자, CMD창에 텍스트를 그려주는 툴을 찾아보게 되었고,
그 결과 더욱 어마어마한(?) 툴 들을 써보게 됐다.
내가 찾은 Linux 상의 그리기 툴은 4가지 인데, 각각의 설치는 간단하다.

Linux 환경에서 각각의 패키지를 다운받고, 명령어를 입력해주기만 하면 끝!

Figlet 과 Toilet 은 텍스트를 예쁜 글자로 그려주는 패키지,
AsciiView 와 Cacaview 는 이미지를 텍스트로 변환해주는 패키지이다.

자세히 보기

AWS VPC 서브넷 구성과 네트워크 통신 과정


TCP/IP 전송 방식은 기차놀이처럼 줄줄이 연결되어있다. 우리는 기차역을 만들 것이다.

VPC 퍼블릭 / 프라이빗 서브넷 설정 실습

VPC 생성

VPC의 생성은 AWS의 VPC 메뉴에서 할 수 있다.
VPC 생성 버튼을 클릭하면, 다음과 같은 화면이 나온다.

VPC에 이름과 IP CIDR 블록을 입력해준다

자세히 보기

AWS VPC 프라이빗/퍼블릭 서브넷 & 인터넷 게이트웨이 & 라우팅 테이블


VPC를 설정 할 땐, 퍼블릭/프라이빗 영역설정이 중요하다

VPC (Virtual Private Cloud)란?

VPC는 Virtual Private Cloud의 약자로 AWS 클라우드 내 논리적으로 독립된 섹션을 제공하여,
사용자가 정의한 가상 네트워크상에서 다양한 AWs 리소스를 실행할 수 있게 지원한다.
한 마디로 독립된 가상의 클라우드 네트워크 라 볼 수 있다.

사용자는 VPC 내에 IP 대역, 인터페이스, 서브넷, 라우팅 테이블, 인터넷 게이트웨이, 보안 그룹,
네트워크 ACL 등을 생성하고 제어할 수 있다.

퍼블릭/프라이빗 서브넷이 하나씩 있는 VPC의 사례

자세히 보기

AWS EC2 인스턴스 생성 & 콘솔 연결 & Public IP 접근해보기

AWS Cloudformation 이란?

AWS Cloudformation Logo

AWS 의 Cloudformation 기술 공식 설명은,
AWS CloudFormation은 환경의 모든 인프라 리소스를 안전하고 반복 가능한 방식으로 설명하고 프로비저닝할 수 있도록 공통 언어를 제공합니다.
라고 하는데..

즉, 쉽게 말하자면, 자동화된 인프라 구축을 도와주는 서비스라고 하겠다.

자세히 보기

AWS EC2 인스턴스 생성 & 콘솔 연결 & Public IP 접근해보기

EC2 인스턴스를 생성해 보자!

AWS의 EC2란, 크기 조정이 가능한 컴퓨팅 용량을 클라우드에서 제공하는 웹 서비스이다. 쉽게 말하면, 클라우드 상에 내 PC를 한 대 얻는 것과 같은거라고 생각하면 된다.

EC2 콘솔창에서 Region을 서울로 바꾸는 걸 잊지 말자!

EC2를 생성하기 위해선 AWS에 회원가입을 하고, AWS Management Console에 로그인을 한다.
그 뒤, EC2 서비스를 클릭하고, 위 스크린샷의 주황색 버튼, 인스턴스 시작 버튼을 누르면 EC2를 만들 수 있다.

자세히 보기

AWS Global Infra 및 주요 개념 소개

AWS Global Infrastructure

AWS Global Infrastructure

AWS는 전 세계적으로 분포한 데이터센터를 통해, AWS를 서비스 하고 있다.
현재 AWS는 24개의 Region(리전)과 77개의 가용영역(Availability Zone),
220개 이상의 연결구간 POP(Point of Presence)를 운영하고 있다.

참조) AWS Global Infra Official info site
https://aws.amazon.com/ko/about-aws/global-infrastructure/

글로벌 네트워크들은 해저 광케이블을 통해 연결되어 있고, 물론 반갑게도 서울을 찍어보면 도쿄와 홍콩으로 연결된 해저 광케이블을 볼 수 있다.
물리적으로 케이블의 거리가 멀면 ping은 비례하겠거니.. 생각이 든다.

자세히 보기

AWS Network Online Study (ANOS 2기) 시작!

뭐.. 서버가 남는다구? 그럼 클라우드로 만들어버려!- 제프 베조스

AWS(Amazon Web Services)란..?

AWS가 세계를 휩쓸고 있다.
클라우드 서비스는 기존의 온프레미스(On-Premise) 방식을 넘어
업계의 표준으로 다가서고 있고, 많은 기업들이 서버를 클라우드로 이전하는 추세이다.

평소에 AWS를 활용해 서비스를 배포하고, 이것저것 기능을 더해 아키텍쳐를 설계해 본 경험은 있지만,
네트워크에 대한 이론적 배경을 좀 더 자세히 공부하고 싶어서,
AWS Network Online Study [ANOS 2기]를 시작하게 되었다.

자세히 보기

머신러닝야학-Tensorflow (python) 핵심요약-5

데이터타입이 다르면 무한한 오류를 가져올 수 있다

딥러닝 데이터의 전처리 과정

데이터 타입의 변경

원핫 인코딩이 안된다? 데이터의 타입을 확인하자!

원핫 인코딩, 즉 카테고리의 범주화가 필요한 데이터인데, 품종 이라는 변수가 int 값으로 되어 있어서 원핫 인코딩이 되지 않는 상태?

int(정수형)타입을 category(범주형)타입으로 바꿔주자.

자세히 보기

머신러닝야학-Tensorflow (python) 핵심요약-2

독립변수와 종속변수가 여럿인 예제 (보스턴 집값 예측)

중앙값 (Median Value)란?

해당 지역 주택 값 중에 가장 가운데에 있는 값 (Range List 중 중앙 인덱스 값)

일반적으론 평균값이 집단을 대표하는 숫자로 많이 사용되지만, 평균값의 표준편차가 너무 커서, 평균의 대표성을 무너뜨리는 이상치(Outlier)가 평균을 왜곡시킬때, 중앙값을 많이 사용함.

Machine Learning으로 여러 독립변수가 하나의 종속변수에 영향을 미치는 가중치를 공식화 할 수 있다!

자세히 보기

머신러닝야학-Tensorflow (python) 핵심요약-1

머신러닝 이 머선말이고?

Deel Learning을 Tensorflow로 구현해보자

Tensorflow로 주로 사용하는 Deep Learning Algorithm은
지도 학습(회귀, 분류)을 위한 5가지가 주로 쓰인다.

  1. Decision Tree
  2. Random Forest
  3. KNN
  4. SVM
  5. Neural Network

이런 알고리즘을 구현하기 위한 라이브러리들도 여러가지가 있는데,
TensorFlow, PyTorch, Caffe2, theano 등이 있다.


머신러닝의 프로세스

  1. 과거의 데이터를 준비한다.
  2. 데이터로 모델을 학습(Fit)한다.
  3. 모델의 구조를 만든다.
  4. 모델을 이용한다.
자세히 보기

머신러닝 야학-머신러닝1 핵심 요약노트

2021 머신러닝 야학 2기 개강!

2021 머신러닝 야학 2기 개강

평소 SSAFY 에서부터 관심이 생겼던 Machine Learning 분야에 새롭게 도전해 보았다.
친구들이 딥러닝 프로젝트로 Image Scanning 이나 Classification 기술을 도입해서
얼굴 관상 보기 프로젝트라던지, 물고기 종류 분류라던지 신박한 기술들을 많이 보여줬었는데,
평소 자연어 처리에 관심 많았던지라, 그동안 배워왔던 빅데이터 기술들을 좀 더 딥하게 적용시켜 보고 싶어서
머신러닝 야학 2기를 신청하게 되었다.

자세히 보기

Markdown 문서를 보기 좋게 작성해보자

Markdown

VScode에서 Markdown Preview Extension을 이용하면 보기 편하다

마크다운이란?

Markdown은 2004년 미국의 개발자 John Gruber와 Aaron Swartz가 개발한 경량형 마크업 언어로, 쉽고 빠른 포맷을 지녀 많은 개발자들에 의해 널리 사랑받고 있습니다.

Github 의 README, 블로그의 글, 개발 TIL 작성 등, 여러 분야에서 활용 되고 있습니다.

마크다운의 문법 요소들을 정리해두어, 앞으로 작성할 블로그의 포스팅에 어느정도의 Guideline을 만들어 두려고 합니다.


자세히 보기