프로젝트/42프로젝트 12

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정규화는 최소화(빠른 개..

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

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

개발을 해보니 알 수 있는 아쉬움(모닝글로리 웹페이지 제작 4)

시도하기 전에는 당신이 무엇을 할 수 있는지 결코 알 수 없다. - 윌리엄 코베트 해보지 않으면 알 수가 없다 나의 첫 리액트 프로젝트, 시작하기 전에는 느낄 수 없었던 것들이 프로젝트가 어느정도 궤도에 오르니 보이기 시작했다. 백문이 불여일견이고 백견이 불여일행이라 역시 한번 해보는 것만큼 좋은 경험과 배움은 없는 것 같다. 이번에 배웠던 것들을 다음번에는 잘 써먹을 수 있게 하기위해서 기럭을 남겨본다. 늘 협업을 중점에 두자 스스로 위대해질 수 있는 사람은 없다. 프로그래밍을 할 때 협업이 가장 중요한 이유는 프로그램은 혼자 만들 수 없기 때문이다. 간단한 쉘을 만들거나 예제 프로그램을 만드는 것은 혼자서 할 수 있을지 몰라도 이렇게 누군가에게 제공해야되는 서비스를 제작할 때 혼자하는 것은 거의 불가..

어떻게 배포할 것인가?(모닝글로리 웹서비스 제작 3)

안녕 AWS 작은 서비스를 배포하기 위해서 가장 좋은 방법은 무엇일까? 작은 서버를 사서, 처음부터 올리는 것도 좋은 공부가 되겠지만, 많이 배울 수는 있어도 나중에 써먹기는 힘들다. 프로그래밍의 분야가 세분화되고 있는 지금 그렇게까지 리눅스를 파서 공부할 필요가 있을까? 오히려 클라우드를 경험해보는 것이 더 좋지 않을까? 물론 아키텍처쪽으로 지망하면 처음부터 올려보는 것이 좋겠지만, 나는 웹 백 혹은 프론트할 생각이고 다른 팀원들도 아키텍처는 관심이 없다. 고맙게도, 42서울은 훌륭한 보상제도(발표 혹은 봉사시 주는 달러)를 가지고 있고, 그 보상제도 안에는 AWS 크레딧이 존재한다. GCP, Azure 등등 거의 모든 클라우드 플랫폼의 크레딧을 구매할 수 있지만, 우리는 접근성 및 학습을 이유로 AW..

어떻게 개발할 것인가?(모닝글로리 웹서비스 제작2)

첫 회의 이후 우리 팀은 고뇌를 거쳐 어떻게 API를 만들 것인지 설계했다. 우리는 제작자이면서도 가장 열성적인 사용자가 될 것이기에, 어떻게 제작해야 인원 확인(페이지의 목적)을 잘 처리할 수 있을지 고민했고, FIGMA에 오른쪽 사진처럼 열심히 구현하려 노력했다. 모두 좋은 계획에 좋은 제품이 나온다고 믿었기에, 계획을 짜는 과정은 매우 순조로웠다. 주 3회 이상 총 7회의 회의를 진행했고 운영진의 입장과 사용자의 입장에서 가장 효율적이고 인지하기 쉬운 디자인을 짜냈다. 아직 완벽하지는 않지만, 사용하면서 더욱 더 잘 해낼 수 있을 것이라 믿으며 우리 팀은 UI/UX에 대한 논의를 마쳤고, 이제는 어떻게 짤 것인가에 대한 고민으로 넘어갔다. 어떻게 구현할 것인가? 목표는 이제 정해졌다. 그렇다면 백엔..