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

내가 쓴 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

머신러닝야학-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기를 신청하게 되었다.

자세히 보기