사이드 프로젝트를 세상에 내놓는다는 것 - HAVIT
·
DEV/잡다한 개발 일지
안녕하세요. 오늘은 맨날 써야지 하고 미뤘던 사이드 프로젝트에 대한 글을 시간 내서 써보려 합니다. 사이드 프로젝트를 해오면서 어떤 일을 했고, 이 과정에서 느낀 점들나 어려움들을 글로 담아보려 합니다.해빗의 시작2022년 1월 국내 최대 IT 벤처 창업 동아리 SOPT 의 장기 해커톤 AppJam (앱잼) 에서 시작한 사이드 프로젝트 해빗(HAVIT)을 약 1년 여간의 개발을 마치고 6개월 전 세상에 공개했습니다. HAVIT은 지식과 정보의 홍수 시대에 콘텐츠를 누구보다 쉽고, 똑똑하게 저장하는 콘텐츠 아카이빙 앱입니다. 언제 어디서든, 보고있던 콘텐츠를 기억하고 싶다면 공유 버튼을 통해 원하는 카테고리에 저장할 수 있습니다. 저장한 콘텐츠를 잊지 않도록 원하는 시간에 알림 설정이 가능하며, 읽은 콘텐..
Oracle Cloud에 Jenkins를 구축해보자 (feat. nginx)
·
DEV/잡다한 개발 일지
들어가며 안녕하세요. 오랜만입니다. 회사 생활로 퇴근하면 너무 피로해 글을 많이 올리지 못했는데 그래도 다시 꾸준히 이것저것 올려보려합니다. 얼마 전, Oracle Cloud의 VM 을 사용해 직접 Jenkins 환경을 구축해보았습니다. 사이드 프로젝트 Havit 을 세상에 내놓을 때까지 아직 CI/CD 라고 할 것도 없이 그냥 Github Actions 를 사용해 후딱 배포 환경을 만들어두고 지냈는데요. 백엔드 스프린트 목표 중 하나로 Jenkins 도입을 생각해놔서 대표적인 CI 툴인 Jenkins를 통해 빌드 환경을 제대로 구성해보려고 합니다. Oracle Cloud 늘 컴퓨팅 머신을 써야 한다면, AWS 프리티어를 이용해 EC2 1개씩 받아서 사용했는데요. 여러 클라우드 서비스 제공 업체들 비교를..
[Wargame] cookie, session basic
·
DEV/injection
들어가며 제법 재밌는 문제들을 발견해서 요즘 풀어보고 있다. wargame 이란 모의 해킹 문제를 제공하던 사이트인데 이 곳이 운영 중단되고 현재는 dreamhack 이란 곳에서 문제를 제공중이다. 처음 가입해서 초심자 문제들을 추천해줬는데 사실 1단계는 웹 개발 지식이 있다면 누구나 풀 수 있는 쉬운 문제들 같다. 나는 보안을 전공으로 하거나 일을 하는 사람은 아니지만, 어떤식의 취약점을 가질 수 있는지 알 수 있는 문제들이 많아서 재밌게 풀어보는 중이다. cookie cookie, 인터넷 사용자가 어떠한 웹사이트를 방문할 경우 사용자의 웹 브라우저를 통해 인터넷 사용자의 컴퓨터나 다른 기기에 설치되는 작은 기록 정보 파일을 일컫는다. (위키백과) dreamhack 에서 제공하는 접속 vm 으로 들어가..
PR 좀 봐달라고 독촉 하는 Slack app (Feat. Node.js, AWS Lambda)
·
DEV/Node.js
들어가며 사이드 프로젝트를 하며 pr 을 올려보지만 팀원들이 안봐준다면 .. 슬프잖아요 그럴땐 빨리 Node.js 와 AWS Lambda 를 사용해 15분만에 pr 독촉 슬랙 앱을 만들어봅시다. Github 슬랙 앱이 이미 있지만,, 이런 깨끗한 메시지로 경각심을 주지 못합니다. https://github.com/jokj624/approve-my-pr GitHub - jokj624/approve-my-pr Contribute to jokj624/approve-my-pr development by creating an account on GitHub. github.com Slack webhook 생성 구글에 slack webhook 을 검색하면 제일 첫번째로 뜨는 링크를 클릭합시다. 들어가면 이렇게 cre..
M1 MacOS Ventura ruby build failed error (Feat. XCode 14)
·
DEV/잡다한 개발 일지
이 글이 도움이 될 만한 경우 해당 경우가 아니면 다른 글을 찾는게 더 빠를지도 모릅니다. 1. 최근 MacOS Ventura 업데이트 후 ruby 가 이상해졌다. (XCode도 14로 업데이트 했다.) 2. 터미널에 gem 이나 ruby 관련 명령어를 입력 시 architecture 문제가 뜬다 (주로 arm64 나 x86_64) 들어가며 2022년에 MacOS ventura 가 릴리즈 되었다. "OS 는 최신이지 ~ " 릴리즈 기능 중 스테이지 매니저가 신선해서 바로 써보려고 OS 업데이트를 진행했다. 띠용 (?) 어느날부터 터미널을 키면 상단에 어마 무시한 에러가 뜨곤 했다. 저렇게 gem pristine 을 하라는 글이 수도없이 떴다. 대충 ruby가 뭔가 꼬였구나 직감했다. 하지만 gem pri..
Nest.js docker 이미지 최적화 대작전 (Feat. no space left on device, multi-stage build)
·
DEV/docker
들어가며 사이드 프로젝트로 리뉴얼 중인 cherish 개발용 테스트 서버를 배포하던 중 삽질을 하던 경험을 풀어보려한다. 배포는 aws 서비스를 사용해 진행했고, 설계한 테스트 서버 전체 구조는 다음 이미지와 같다. 전체적으로 Beanstalk 환경에 ELB를 사용한 오토 스케일링 그룹을 만들고, 내부적으로는 EC2, docker 를 사용해 Nest.js 앱을 배포하는 구조이다. Beanstalk 으로 보내는 과정은 Github Actions 를 통해 자동화해보았다. 이 과정에서 배포에 실패하는 다양한 문제를 겪었는데 그 중 No space left on device 라는 킹받는 이슈를 해결하기까지 과정을 적어보려한다. 아직 docker 나 인프라 관련 지식이 많이 부족해 틀린 부분이 있을 수 있어 발견..
React Query 알아보기 - 2
·
DEV/React
지난 포스팅 보기 2022.09.14 - [프로그래밍/React] - React Query 알아보기 - 1 들어가며 안녕하세요. 오늘도 React Query 에 대해 알아보겠습니다. 지난편에는 개념과 간단한 세팅, 실습 + useQuery hook 을 알아봤는데요. 오늘은 값을 변경할 때 쓰이는 useMutation 쪽을 알아보고 실습도 해보려 합니다. useMutation useMutation 은 useQuery 와 달리 값을 변경, 추가, 삭제 하기 위해 사용하는 hook 입니다. mutation 는 다음 표에 있는 상태 중 순간마다 단 한가지 상태로만 존재합니다. isIdle or status === 'idle' 현재 fresh/reset 상태 isLoading or status === 'loadi..
React Query 알아보기 - 1
·
DEV/React
들어가기 최근 React Query를 조져질 공부할 기회가 생겨 블로그에 정리해보려 합니다. 사실 여태 Node.js 만 파왔던 제게 React 는 아직도 너무나 어렵지만.. 열심히 해볼게요 :-) React Query 는 아예 처음 들어보진 않았고, 최근 SWR 을 써본 일이 있어서 둘의 차이나 장단점 등을 간략하게 공부했던 경험이 있습니다. 하지만 개념적으로나 사용법은 전혀 모르니 official document 와 구글 자료들을 찾아보며 하나씩 정리해보겠습니다. React Query 란? React Query는 React Application 에서 서버 상태를 가져오고, 캐싱하고, 동기화하고, 업데이트하는 작업을 쉽게 만들어 주는 라이브러리 입니다. 기본적으로 리액트에는 데이터를 가져오거나 업데이트..
[SOPT] 29대 서버 파트장 돌아보기 - 1
·
DEV/잡다한 개발 일지
🚀 들어가며 안녕하세요. 오랜만입니다. 오늘은 제가 3기수 활동했고, 29대 서버 파트장으로 활동했던 많은 분들이 잘 아시는 국내 최대 IT 벤처 창업 연합 동아리 SOPT를 돌아보려고 합니다. (9/5 부터 31기 신입회원 모집이라고 합니다. 많관부 😖) https://sopt.org SOPT SOPT는 매년 두 번, 3월과 9월에 신입회원을 모집합니다. 서류 평가와 면접 평가를 통해 신입회원을 선발합니다. SOPT 채널(페이스북, 인스타그램, 유튜브, 카카오톡 채널)을 통해 다음 기수 리크루 sopt.org 서버 파트장(이하 서팟장)을 하면서 어떤걸 했고, 어떤걸 배웠고, 어떤게 힘들었는지 등등 개인적인 생각을 적어보려합니다. 굉장히 재미없습니다. 이번 편은 리크루팅 위주로 작성해볼게요. 🥱 왜 지원..