본문 바로가기

프로젝트 삽질기9 (feat AWS SQS) 들어가며리팩터링 하면서 AWS SQS를 활용한 기능을 개발하고 있습니다. 개발하는 과정에서, AWS SQS를 어떻게 사용할 수 있는지를 정리해보고 싶었습니다. AWS SQS에 대한 특징과 설정할 때 참고할 점을 정리하고자 합니다.     왜 AWS SQS인가?저는 POG 서비스에서 bull.js를 활용해서 Redis 기반의 Queue를 활용했던 경험이 있습니다. 하지만 특정 개발을 진행하면서 Bull.js보다 AWS SQS를 활용해서 큐 서비스를 활용하면 좋겠다고 생각했습니다.     [Project] 푸시 알림 프로젝트 삽질기9 (feat Queue, bull)들어가며 사이드 프로젝트에서 푸시 알림을 활용한 서비스를 개발하고 있습니다. 그 과정에서 생각하고 배웠던 점들을 하나씩 작성하고자 합니다. ..
프로젝트 삽질기8 (feat SonarCloud) 들어가며사이드 프로젝트에서 푸시 알림을 활용한 서비스를 개발하고 있습니다. CI 프로세스를 구축하는 과정에서 안정적인 통합을 위해 통합 이전에 테스트 코드를 자동으로 실행했습니다. 하지만 홀로 코드를 작성하다 보니, 컨벤션은 제대로 지켰는데, 작성한 코드가 보안적으로 취약점은 없는지 확인하기 힘들었습니다. 이때 코드를 정적으로 분석할 수 있는 SonarCloud를 적용한다면 안정적인 CI 프로세스를 구축할 수 있다고 생각했습니다.   SonarCloudSonarCloud를 적용하면 정적 코드 분석이 가능합니다. SonarCloud를 통해 코드 스멜, 잠재적인 결함, 컨벤션 체크, 보안 취약점을 확인할 수 있습니다.   SonarCloud 활용하기지금부터 SonarCloud를 적용해보겠습니다.   Open..
프로젝트 삽질기7 (feat CI) 들어가며사이드 프로젝트에서 푸시 알림을 활용한 서비스를 개발하고 있습니다. Github Action을 활용하여 배포 자동화를 구축하는 과정에서 CI는 어떻게 구축하는 것인지 궁금증이 생겼습니다. CI란 무엇이며 CI를 어떻게 구축하는 것인지 이 글을 통해 정리해보고자 합니다. 이 글은 참고 및 출처에 있는 글들을 공부하며, 프로젝트에 적용하면서 작성된 글입니다.               CI & CDCI란 Continuous Integration의 약자로 지속적 통합을 의미하며, CD는 지속적인 서비스 제공(Continuous Delivery)과 배포(Continuous Deployment)를 의미합니다. 이에 대해 좀 더 자세히 알아보겠습니다. CI?위에서 CI를 지속적 통합이라는 의미로 살펴봤습니다...
프로젝트 삽질기6 (feat 정적 팩토리 메서드) 들어가며사이드 프로젝트에서 푸시 알림을 활용한 서비스를 개발하고 있습니다. 개발하는 과정에서, 컨트롤러에서 응답 객체를 클라이언트에게 전달할 때, 어떻게 데이터를 전달하면 좋을까 생각했습니다. 개인적으로 ResponseEntity를 활용하여 응답 데이터를 전달하는 방식으로 코드를 작성했습니다. ResponseEntity를 활용하는 과정에서 했던 고민을 공유하고자 합니다. 정적 팩토리 메서드 글을 정리하면서 해당 글을 참고했습니다.   응답 객체 전달 방식 고민API에 대한 성공적인 응답을 어떻게 클라이언트에게 전달할까 고민했습니다.      NestJS에서의 일반적인 요청/응답 생명주기는 위와 같습니다. 컨트롤러에서 응답하는 과정에서 인터셉터를 거치고, 예외 필터를 거친 후 응답합니다. 그럼 성공 응답은..
[회고] 2022년 상반기 - 당신을 향한 기착(寄着) 들어가며 묵묵히 자신의 길을 걷는 사람이 있지만, 옆에서 도전하는 사람을 묵묵하게 응원하는 사람도 있습니다. 나의 도전을 응원해주시는 부모님과 사랑하는 사람을 생각하며 지난 상반기를 돌아봅니다. 누군가 도전하는 삶을 살아야 한다고 하지만, 어쩌면 나의 도전은 당신의 젊음을 갉아먹었기에 가능한 것은 아니었을까 생각하며. 나는 과연 나의 삶을 응원한 당신에게 보답할 수 있는 삶을 살았는가 돌아보기 위해 이 글을 적습니다. 기본에 관하여 이제 막 숟가락 사용법을 파악한 사람에게 땅을 파라고 요청하면, 숟가락 사용법 밖에 모르는 사람은 땅을 숟가락으로 파고 있을 것입니다. 작은 스타트업의 개발자로 일하면서, 원티드 프리온보딩 백엔드 코스에 참여하면서, 땅을 숟가락으로 파는 경험을 하고 있다고 생각했습니다. 기술..
커뮤니케이션을 잘하는 개발자 들어가며개발자가 되기 위해 노력하면서 다양한 기업 공고를 살펴봤습니다. 그때마다 기업들은 타 직군과의 커뮤니케이션을 잘할 수 있는 사람을 채용하길 원했습니다. 그럼 나는 타 직군과의 커뮤니케이션을 잘하는 개발자일까 생각했습니다. 이번 기회에 나는 동료와 어떻게 커뮤니케이션하며, 커뮤니케이션을 할 때 내가 갖고 있는 차별점은 무엇인지 정리해보려 합니다.             일 잘하는 사람창업학 복수전공을 선택하고 처음 들었던 전공 시간. 교수님은 제게 '일 잘하는 사람이란 무엇일까요'라는 질문을 한 적이 있습니다. 그 물음에 "동료가 일을 잘할 수 있도록 디테일까지 신경 쓰는 사람이 일을 잘하는 사람이라고 생각한다"라고 답한 적이 있습니다. 학교를 다니면서, 디테일을 신경 쓸 수 있는 기획자가 되고 싶다..
아홉수 소년 당신에게당신을 아홉 살에 처음 만났습니다. 운이 좋게도 고등학교 때 재회하여 잊지 못할 행복한 열아홉을 보냈고, 당신을 스물아홉에 보냈습니다. 우연하게도 아홉이 들어간 나이에 당신과 늘 함께 했습니다. 한국에는 나이의 끝자리에 9가 오면 해야 할 일을 다음 해로 미루는 미신이 있는데, 괜찮다면 당신을 보내는 일 또한 미룰 수 있다면 좋겠습니다.   인생이 힘들 때, 술 한 잔 마시고 싶을 때, 언제든 전화하라고 말해준 당신. 언제 한 번 당신이 생각나서, 우리가 처음 만났던 초등학교와 당신이 살았던 집을 한 바퀴 돌았습니다. 술에 취해 함께 걸었던 공원과 잠깐 시간나면 맥주 한 잔 하자며 나오라고 했던 호프집은 시간이 지나도 그대로였습니다. 혹여나 사는 게 바빠 당신을 잊게 된다 하더라도, 당신과 함께..
프로젝트 삽질기5 (feat Swagger 보안 구성) 들어가며NestJS로 개발하면서, Swagger를 보다 잘 사용하려면 어떻게 해야 할까 고민했습니다. 그 과정에서, Swagger 문서가 혹여나 외부에 노출된다면, 한 번 더 보안에 신경 쓰기 위해 express-basic-auth라는 라이브러리를 활용한다는 것을 알았습니다. NestJS에서 express-basic-auth를 보다 잘 적용하려면 어떻게 해야 할지 고민하기 위해 작성된 글입니다.      NestJS Swagger 보안NestJS에서 Swagger의 보안을 조금 더 신경 쓰기 위해 express-basic-auth 라이브러리를 활용합니다. 라이브러리를 설치해서 활용하려면 다음의 명령어를 입력합니다.  npm install express-basic-auth 그리고 기본 설정은 다음과 같이 ..
삶을 섬세하게 조직한다는 것 들어가며언젠가는 직접 내 집을 지어보고 싶습니다. 그래서였을까요. 저는 건축에 관한 책과 영화를 보는 것을 좋아합니다. 건축에 대해 처음 관심을 가졌던 계기는 영화 '말하는 건축가'를 보고서 였습니다. 영화를 통해 정기용 건축가의 삶의 태도, 건축을 바라보는 자세, 그의 건축이 사람들의 삶을 어떻게 변화시켰는지를 살펴볼 수 있었습니다. 개발자가 되기 위해 노력하면서, 문득 개발과 건축은 비슷한 측면이 있지 않을까 생각했습니다. 그때, 잊고 지냈던 정기용 건축가가 떠올랐습니다. 이번 글은 정기용 건축가님의 삶을 기억하기 위해 작성했습니다. 이 글을 통해 그가 전했던 건축에 대한 철학을 개발자로서 적용시킬 수 있는 점은 무엇이며, 이를 통해 나는 어떤 삶을 살고 싶은가를 고민해보고 싶습니다.         ..
프로젝트 삽질기4 (feat Sentry Slack 연동) 들어가며사이드 프로젝트에서 푸시 알림을 활용한 서비스를 개발하고 있습니다. 서버를 개발하면서, 서버가 새벽에 박살이 나서 밤샘을 하며 서버를 고친 경험이 있습니다. 고치면서 이제는 서버에 문제가 생길 때 왜 문제가 생겼는지 분석해주는 툴을 도입해야겠다고 생각했습니다. 이번 기회에 로그를 분석하는 툴을 도입하고, 서버가 문제가 생길 시 슬랙으로 알림이 오도록 구성하고 싶었습니다. 이 글은 제가 어떻게 Sentry와 Slack을 활용하여 서비스 장애에 대처할 수 있게 설정했는지 설명하는 글입니다.             SentrySentry는 애플리케이션에서 오류가 발생하면 알려주는 에러 트래킹 서비스입니다. (무료 혹은 유료) 클라이언트의 오류 발생 시 메일을 보내주고, 슬랙과 연동하면 슬랙 메시지를 통해..