프로젝트 15

42 내 공유우산 프로젝트 회고(42OpenUmbrella)

또 하나의 프로젝트를 마치며 42 내에서 진행한 프로젝트가 벌써 6개가 되었다. 하나하나 다들 사랑받는 서비스로 성장하고 있어서 뿌듯하면서도, 요즘은 너무 많이 개발했나?라는 생각도 들곤 한다. 특히, 요즘 몇몇 분들이 내게 '42 내에서 몇 개의 서비스를 했냐고' 묻지 않고 '몇 개의 서비스에 참여하지 않았냐고' 물어볼 때는 깜짝 놀라기도 했다. 그래서 막상 세보니 42 내부에서 작동하는 웹서비스 9개 중 5개에 리딩 혹은 인볼브 한 흔적이 있어서, 정말 많이 참여했구나라는 생각과 동시에 잘 살았구나 하는 생각이 들었다. 이번 프로젝트는 장마 기간에 공유우산을 42 일원들에게 제공해주자는 생각으로 진행된 프로젝트였다. 42 내에는 좋은 커뮤니티 일원들이 많고, 그중 jmaing님이 자신의 사비를 들여서..

"인프라 올 인원" 프로젝트(쿠버네티스)

들어가면서 지난 8개월 동안 여러 프로젝트를 진행하면서, 관리하게 된 인프라의 수가 기하급수적으로 늘고 있다. 문제는 그때마다 AWS에 있는 EC2를 이용해서 관리를 진행했는데, 프로젝트가 진행됨에 따라서 관리의 난이도가 기하급수적으로 높아진 것이다. 내가 42 내부에서만 관리하는 프로젝트만 해도 총 5가지인데, 아래와 같이 관리하고 있다. 42 내부에서 관리 중인 인프라 42 모글 - EC2, 서울 리전, T3.micro (링크) 평가지표 사이트 - EC2, 서울 리전, T3.small (링크) 42 베네핏 공식 사이트 - EC2, 파리 리전, T3.micro (링크) 42 공지 알람이, 개발자 구직 공고 알림이방(카톡, 슬렉) - EC2, 서울 리전, T3.micro (링크) 42 내부 공유우산 관리..

간단하게 슬렉 봇 만드는 방법

들어가면서 42서울에는 달리기 기록을 올리는 채널이 있다. 그런데 잘 살펴보면 이 채널에 사람이 매일 날짜를 올리고 그 아래에 쓰레드를 통해서 사람들이 자신의 달리기 기록을 인정받는다. 개인적으로 날짜 치는 것이 귀찮을 것이라고 생각했고, 그래서 채널을 위해서 간단한 날짜 봇 및 날씨를 알려주는 봇을 만들었다. 이번에는 다른 회고와 다르게 실제로 어떻게 만드는지도 설명해볼까 한다. 간단하게 슬렉 봇 만들기 준비물 : 파이썬에 대한 간단한 지식, Slack Bot TOKEN, 파이썬이 설치된 PC 아래 방법은 LINUX 및 MAC 기준입니다. 1. 가장 먼저 필요한 라이브러리를 설치해줍니다. pip3 install slack_sdk pip3 install request 2. 필요한 파일들을 만듭니다. (m..

토이 프로젝트 확장(42JOBS, 이제는 카톡으로도!)

들어가면서 슬렉으로 완전하게 만들기를 하루, 간단한 사이드 프로젝트였지만 에러를 유발할 수 있는 부분(네트워크)과 엣지 케이스들(용량 이슈 혹은 사진 크기 등등)에 대한 처리 로직도 포함하다 보니까 생각보다 시간이 길어졌다. 42 서울에서 가장 중요하게 여기는 것이 완전하게 돌아가는 프로그램을 만드는 것이다보니까, 이런 부분은 몸에 배는 것 같다. 아주 습관이라 하기 싫어도 알아서 하게 된다(특히, C언어에서 malloc이 안되었을 경우 등에 대한 처리 등등...) 만들고 보니, 이렇게 애정을 쏟은 프로젝트를 그냥 42슬렉에서만 쓰게 하기에는 너무 아쉬웠다. 그래서 이것을 카톡으로도 확장하면 좋겠다고 생각했고, 오늘 점심 먹다가 이 생각을 하게 되어서 저녁까지 마무리했다. 이 프로젝트를 하면서 몇 가지를..

토이프로젝트 후기(42JOBS, 42슬렉 취업공고 채널 봇)

들어가면서 무엇이든, 내가 필요해서 만드는 토이 프로젝트가 최고인 것 같다. 이번과 같은 경우 내가 취준생이다 보니까 계속 취업공고 사이트를 들락날락해야만 했는데 그 과정에서 너무 큰 시간소모를 하고 있었다. 이 시간소모가 나뿐만 아니라 42커뮤니티 모두가 느낄 것이라고 생각했고, 그래서 나는 우리 커뮤니티를 위해 42슬렉 취업공고 봇을 하나 만들어야겠다고 생각했다. 저녁 먹다 시작한 개발 취업공고 봇을 만들기 위해서 필요한 것은 크게 3가지 정도였다. 첫 번째로는, 해당 프로그램을 돌릴 서버에 대한 이해(프로세스, VM, CRONJOB 등에 대한 이해) 두 번째로는, 크롤링에 대한 이해(동적, 정적 사이트 가리지 않고 긁어올 수 있는 능력, 또한 HTTP Request에 대한 이해) 마지막으로는, Sl..

42Benefit 개발 회고

또 하나의 프로젝트가 성공적으로 마무리되었다. 이번 프로젝트는 내가 기획하고 제안하여 개발까지 완료했는데, 결과가 예상보다 훨씬 좋아 매우 기분이 좋다. 프로젝트를 성공적으로 마무리한 기념으로, 이 글을 통해 개발 과정에 대한 생각과 타임라인을 정리해보려 한다. 개발하게 된 계기 42서울은 교육생들에게 다양한 교육 혜택을 제공한다. 구름EDU, 프로그래머스 등 강력한 혜택이 준비되어 있지만, 아쉽게도 이를 알 수 있는 방법은 매우 제한적이었다. 따라서, 몇몇 혜택들은 이용되지 않는 상태였고, 이로 인해 업체들도 혜택 제공에 소극적인 악순환 구조가 형성되어 있었다. 사실 42서울에는 이전에 베네핏 페이지가 있었다. 2020년에는 42베네핏이라는 사이트가 존재하여 42서울 교육생들이 혜택을 확인할 수 있었다..

15분이면 충분하다 배포방법(AWS EC2, Vercel)

배포 고려사항 1. (해커톤 상황 고려)내가 잘 아는 기술 스텍을 이용하자 - EC2, Vercel 이용하기로 결정, Amazon RDS 이용은 고려하였으나 해커톤 기간 중에는 EC2 안에 마리아 DB사용하기로 결정 2. CORS, HTTPS문제는 최대한 간편하게 해결하자 - Nginx를 리버스 프록시로 이용, 해당 문제 편안하게 해결 - CertBot 및 nginx.conf 수정을 통해서 해당 문제 해결 3. 백 서버가 정상작동하지 않아도, 프론트서버에서 백 서버가 정상작동하지 않고있음을 알려줄 수 있도록 하자 - Front, Back 이원화(Vercel, Nginx-Tomcat) 4. 서버는 대한민국에 존재해야하며, 네트워크 응답시간은 최소화시켜야된다. 개발 고려사항 1. DB정규화는 최소화(빠른 개..

'15분이면 충분하다' 프로젝트 회고(42 코알리숑 해커톤)

들어가면서 42 이너서클을 끝내기까지 남은 과제 단 2개! 이제 정말 끝이 다가오니, 42에 대한 생각이 많아졌다. 이 곳에서 배운 것들이 너무 많아 앞으로 할 프로젝트에 있어서 자신감도 많이 붙었고, 앞으로 무엇을 해야할지에 대해서도 확신이 생겼다. 이제 내게 남은 것은 배운 것들을 갈고 닦는 시간이라고 생각할 무렵, 42내에 코알리숑 해커톤 공지가 올라왔다. 실력을 갈고닦을 순간이 필요했던 내게 이 해커톤은 좋은 기회가 될 것 같았고 우승을 목표로 이번 해커톤에 참여하게 되었다. 조별 만남 '인사가 만사'라는 말이 있듯, 나는 해커톤에서 어떤 팀원을 만나냐가 결과물을 결정한다고 생각한다. 이번 해커톤은 내 의사가 반영되지 않는 완전한 랜덤으로 조별 매칭이 이루어졌고, gehan님과 sungwook님 ..

프로젝트 2023.03.24

비용을 아끼자(모닝글로리 웹페이지 제작 5)

돈이 너무 많이 나간다!! 42모글의 서비스 볼륨은 결코 크지 않다. 분명히 작은 간단한 출석용 사이트인데.. 비용이 너무 많이 나간다. 첫 달은 도메인 등록 비용을 고려해서 많이 나갔다고 해도 2번째 달부터는 변명의 여지가 없었다. 내 첫 배포 프로젝트라서 일단 어떻게든 서비스를 올리겠다는 일념으로 올리긴 했지만, $55는 용납할 수 있는 범위를 넘었다. 일단 서비스가 안정되었으니 어떻게든 가격을 줄이는 방법을 찾아야만했다. 42서울에서는 클라우드 공부를 독려하기 위해서 AWS크레딧을 내부 재화로 구매하게 해준다. 덕분에 나는 지금 200만원 이상의 크레딧을 보유하고 있지만, 이 속도라면 2년 후면 서비스를 내려야했다. 내가 엄청나게 크고 많은 컴퓨팅 용량을 이용하는 서비스를 하면서 2년을 유지한다면 ..

[42서울] 인셉션을 마치고(Docker, LXC)

들어가면서 5서클에 올라오자마자 가장 만만한 친구를 고르자면 아마도 (내게는)이 인셉션이다. 이 과제는 내가 정한 리눅스 내에 가상머신의 꿈 속의 꿈을 구현해내는 과제인데, 이 과정에서 Docker을 통한 가상화를 깊이있게 학습하게 된다. 나는 지금도 3개 이상 팀에서 웹 서비스 배포를 담당하고 있다보니, 이러한 작업에 익숙해졌고 덕분에 편안하게 과제를 잘 마무리할 수 있었다. 과제의 총 소요기간은 약 5일정도였으며, 나는 과제에서 필수적으로 요구하는 PHP, DB, NGINX 외에도 추가적인 서비스들을 구축하여 보너스 점수를 얻을 수 있었다. 내가 총 구현한 도커 컨테이너는 10개로 각각은 다음과 같다. 필수 구현 : MariaDB, Nginx, WordPress 보너스 구현 : Redis, admin..

[42서울] 5서클 ft_container을 보내며(Generic Programming)

들어가면서 드디어! 5서클의 악명높은 컨테이너 과제를 성공적으로 마쳤다. 처음 이 과제를 마주했을 때에는 도대체 내게 무엇을 원하는 것인지 몰라서 절망한 순간들도 있었지만, 이렇게 과제를 다 마치고 나니 이 과제를 통해서 정말 많은 것들을 배웠던 것 같다. 이제는 42서울 과제 난이도 조정으로 인하여 이너서클의 필수과제가 아니게 되었지만, 옛날에 존재했던 이 컨테이너라는 과제가 도대체 무엇이었을지 궁금할 수 있는 카뎃분들과 내가 이 과제를 통해서 어떤 것들을 배웠는지 남기기 위해서 글로 흔적을 남겨본다. 컨테이너? 컨테이너라고 하면 모두들 어떤 것이 생각나는가? 대부분의 사람들은 부두에서 볼 수 있는 네모네모한 상자들을 생각해낼 것이다. 나는 그래도 프로그래머라고 도커를 가장 먼저 생각했다. 하지만, 이..