# Numble

31개의 포스트

넘블 딥다이브 후기

프로젝트 참여 배경 해당 프로젝트는 23.03.31 에 서비스가 런칭된 넘블 플랫폼을 이용하였습니다. Kubernetes로 모니터링 시스템 구축하기 딥다이브 (4월 7일 시작) 프로젝트의 일환으로 회고록을 위해 작성된 글입니다. 벡엔드 신입으로 일하면서, 관련된 devops 과정이 신기하고 궁금했습니다. 특히 스타트업에서 일하면서 devops 쪽 모니터링이 있으면 좋겠다는 생각을 몇번 했습니다. 비록 일하면서 사용자가 거의 없었기에 서버나 DB에 리소스 부족이나 모니터링에 대한 니즈는 중요한 것이 아니였지만, 배워볼 기회가 생겨 응하게 되었습니다. 아래 글은 과정 및 회고를 위해 적은 글이며, 처음 접한 지식을 조사하면서 작성하였기에 혹시나 오류가 있을 수 있습니다. 주변 지식이나 검증을 통해 습득하시길 추천합니다. 진행 과정과 결과 초기에 열정을 불타오르며 참여를 약속한 것과는 달리, 프로젝트 진행도중 회사를 퇴사하게 되었습니다. 이에 여러가지 일을 동시에

2023년 5월 4일
·
2개의 댓글
·

Mytly 03: int형의 나머지를 구하기 위해 long을 int로 다운캐스팅할 때 문제

문제 임의의 6~7자리 62진수를 생성 후 이를 BASE62로 인코딩하는 것으로 URl 생성기를 구현 후 단축 URL 엔드포인트에 요청을 보내봤을 때 위와 같은 에러메시지를 볼 수 있었다. 양수여야 될 digit에 음수가 바인딩되어 발생하는 문제였다. ![](https://velog.velcdn.com/images/saintho/post/b09e1c6

2023년 5월 3일
·
0개의 댓글
·

Mytly 02: Request Body를 enum에 바로 바인딩할 때 예외 처리

문제 Request Body에서 Enum을 바로 바인딩할 때 잘못된 Enum Constant의 이름을 입력할 경우 위와 같은 에러메시지를 보게 된다. 이 때 던져지는 예외는 HttpMessageNotReadableException인데 내가 원하는 메시지를 파싱하기가 쉽지 않고, 이미 정의해둔 MethodArgumentNotValidException 응답 스펙을 사용하고 싶었다. ![](https://velog.velcdn.com/images/saintho/post/c5fca0c5-6b85-4179-93cf-d72dc5e7f36

2023년 5월 3일
·
0개의 댓글
·

Mytly 01: redirect 시 location header가 protocol prefix를 갖지 않을 때 발생하는 문제

문제 단축 URL을 path variable로 받으면 연결된 원본 URL로 리다이렉트를 해주는 엔드포인트를 구현하는 중에 다음과 같은 문제가 발생했다. 기대: Original Url 페이지로 리다이렉트 실제: 해당 엔드포인트의 경로 아래 Original Url이 붙어서 (/api/v1/urls/thoughtful-arch-8c2.notion.site/_URL

2023년 5월 3일
·
0개의 댓글
·
post-thumbnail

Numble K8s로 모니터링 시스템 구축하기 회고

Numble - Kubernetes로 모니터링 시스템 구축하기 회고 > Numble(딥다이브)는 다양한 기술적 주제를 갖고 호스트님의 가이드라인/QnA 를 기반으로 참가자들이 해당 주제에 대해서 딥다이브하고, 내용을 공유하거나 피드백 받을 수 있도록 다양한 챌린지를 운영하고 있습니다. 이 회고록에서의 작업 및 내용은 https://github.com/kimsehwan96/numble-k8s 에서도 확인 가능합니다. (5월 3일 현재 기준 모집중인 챌린지들) DevOps 업무를 수행하지만 항상 부족하고 또 부족해서 여러모로 알아보고 공부하다가 이 서비스에서 Kubenretes로 모니터링 시스템 구축하기! 라는 챌린지를 대단하신 호스트님과 함께 진행한다는 소식을 듣고 잽싸게 신청하고 참가하게 되었습니다

2023년 5월 3일
·
0개의 댓글
·
post-thumbnail

[Numble] E-commerce 마이크로 서비스 설계 딥다이브 회고록

평소에 하고싶었던, 공부하고싶었던 (공부 하고있던) 도메인 (e-commerce, 성능 테스트, 동시성 이슈 등) 에 흥미가 생겨 바로 결제하게 되었다. 중급 난이도로 설정되어 있었고 한번 도전하고 싶었다. 도전하고 보니 나는 심각한 주니어 인 것 같다... 1. 서비스 설계하기 > 넘블샵은 창립 1주년을 맞아 100% 할인 쿠폰을 10,000장 발급하기로 결정했다. 이번 이벤트를 맞아 범용적인 쿠폰 시스템을 마이크로서비스로 개발하고자 한다. 쿠폰 시스템은 다음과 같은 요구 사항을 만족해야 한다. 할인 쿠폰에 대한 범용적인 쿠폰 시스템의 마이크로서비스를 개발해야 한다. 다음과 같이 ERD 를 설계하고 type을 통해 수량이 있는 쿠폰과 없는 쿠폰 을 구분했다. 수량이 있

2023년 4월 30일
·
0개의 댓글
·
post-thumbnail

[Numble] 23-03 인스타그램 챌린지_3등 수상 기록 🏆

🏆 내가 3등이라니! 🤩 이전에 짧게 회고록을 작성했던 넘블 프로젝트의 결과가 어제 나왔고, 수상한 사람들은 어떤 리뷰를 받았고 어떻게 개발했을까? 라는 마음으로 결과를 확인하였다. 결과를 확인한 순간..! 전혀 생각지도 못하게, 3등이라는 결과를 얻었다! 학기 중에 하느라 완성도가 살짝 떨어졌었고, CI/CD 기능도 AWS의 헬스케어 확인 오류로 인해 성공하지 못해서 기대도 하지 않고 있었는데 (+ 스프링으로는 단순 블로그 예시만 만들어 본 정도), 이렇게 상위 15%에 해당하는 3등을 얻게 되어 너무 좋았다. ⚡️ 자존감 회복 넘블에서의 3등 결과는 그동안 너무 지쳐 낮아졌던 자존감을 회복할 수 있게 해 주었다. 그동안 개발을 너무 좋아하고, 관련된 공부를 하는 것도

2023년 4월 27일
·
2개의 댓글
·

[numble] AI 단톡방 만들기 (with ChatGPT)

Next.js로 (with ChatGPT) 카톡 AI 단톡방 만들기 - Numble Challenge 구현 기능 방생성, 방 나가기, 방 설정 수정 채팅 메시지 보내기 보낸 메시지에 대한 AI의 답장 가장 많이 고민한 부분 개발을 하면서, 어떻게 하면 chatGPT가 정해진 포맷으로 답변을 줄 수 있을지, 프롬프트에 대해 많이 고민했다. 결과적으로, GPT에게 "00 형식으로 보내줘"라는 문항을 system 메시지로 채팅 맨 처음에 보내주는 방법을 사용하였는데, 이 방법 말고 다른 방법이 있을지 아직 고민중이다. 느낀점 많은 시간을 개발에 투자한 것은 아니였지만, 또 다시 처음 설계가 중요하다는 것을 느꼈다. 빠르게 개발을 하는 와중에, 처음에 짠 객체의 타입들을 수정해 리팩토링해야하는 경우가 빈번하게 일어났었다. 이러한 수정들이 줄려면, 초기에 설계와 고민을 많이 했어야 하는데, 그러지 않고 일단 부딧쳐보는 방식을 사용했던것 같다

2023년 4월 22일
·
0개의 댓글
·
post-thumbnail

[넘블 챌린지] Kotlin과 GPT3 API를 활용한 개인 맞춤형 모바일 Chatbot 만들어보기

| ---| ---| 개요 넘블 챌린지는 Kotlin을 활용하여 ChatBot을 만드는 외부 프로젝트입니다. 개발기간은 총 2주로, Android Studio와 Kotlin 자체에 익숙하지 않은 상태에서 개발을 진행하였습니다. 고민한 내용들 대화형 ChatBot을 어떻게 구현할 것인가? Open AI API의 매개변수에는 메세지를 하나만 넣을 수 있습니다. 과거 대화했던 내용을 넣을 수 있는 history 매개변수가 있는 API도 확인되었으나, 넘블에서 주어진 API에는 오직 하나의 대화만을 넣을 수

2023년 4월 13일
·
0개의 댓글
·
post-thumbnail

[Numble] 23-03 인스타그램 챌린지_회고록 작성

갑작스런 회고록 원래 회고록을 작성하기 전에 글을 더 작성하고 싶었지만.. 내일까지 최종 제출을 해야 하다보니 회고록을 먼저 작성해본다. 아쉬운 점 코로나 감염 가장 아쉬운 점은 그동안 전혀 걸려보지 않았던 코로나를 마감이 열흘 정도 남았을 때 걸렸다는 것이다. 3-4일 간 아무것도 하지 못하게 되면서 시간이 더 촉박해진 게 프로젝트를 끝까지 완료하지 못한 이유 중 하나인 것 같다. CI / CD 배포 최종 실패 연습용 레포지토리에서 CI / CD가 성공한 후 RDS를 연결하기만 하면 문제없겠다는 생각이 들었었는데, 예상치 못했던 곳에서 계속 막혀서 CI / CD 부분도 최종적으로는 실패하였다. 버전 라벨링 불일치 첫 번째로 마주했던 문제는 ELB에 배포 파일을 업로드하는 것 까지는 문제 없었으나, 계속 예상된 버전 이름과 다르다는 이유로 배포까지 가지 못했었다. ![](http

2023년 4월 12일
·
0개의 댓글
·
post-thumbnail

[Numble] 23-03 인스타그램 챌린지_ERD 설계

개요 넘블 인스타그램 프로젝트를 하면서 ERD를 짜 본 내용이다. ERD ERD란, Entity Relationship Diagram의 약어로 개체-관계 모델을 뜻한다. 프로젝트를 시작하기 전, 대략적인 데이터베이스의 테이블 형태를 설계하는 게 좋다. 개발과 동시에 ERD를 작업한다면, 변경 사항이 생겼을 때 대처하기 어려울 수도 있기 때문이다. 설계한 내용 설계한 ERD는 위의 그림과 같다. User 유저는 닉네임과 프로필 이미지를 가지고 있다. 향후 유저 탈퇴 기능을 구현할 때, soft delete 방식을 활용할 것이기에 유저의 상태를 나타내는 activated를 만들었다. (soft delete: 논리적으로만 삭제 처리를 하는 것, 데이터베이스에 남아 있다.) Pos

2023년 4월 3일
·
0개의 댓글
·
post-thumbnail

[Numble] 23-03 인스타그램 챌린지_소개 및 프로젝트 환경설정

넘블 챌린지 시작 23년 3월 24일, 계속 기다리고 있었던 넘블 인스타그램 챌린지가 시작되었다. 👀 넘블? 넘블 (Numble)은 실제 서비스와 유사한 기능들을 모아놓은 서비스를 만들어볼 수 있는 연습을 하며, 실제 현직자로 계신 분께 코드 리뷰도 받아볼 수 있는 챌린지들이 있는 플랫폼이다. 기획, 디자인, 웹 프론트엔드, 백엔드 직군의 사람들이 각각 개인적 직무로 프로젝트를 해볼 수 있으며, 또는 이 직무들이 연계되어 프로젝트를 해 볼수도 있다. (기간은 약 3주 정도이다.) 인스타그램 챌린지 나는 스프링을 활용한 백엔드 직군을 준비할 것이기 때문에, 그와 관련된 인스타그램의 서버 API를 연습해볼 수 있는 챌린지를 신청하였다. 제공된 API의 예시로는 다음과 같았다. 회원가입 및 로그인, 탈퇴 (단, 닉네임으로만 진행되어야 함) 글 생성,

2023년 3월 28일
·
0개의 댓글
·
post-thumbnail

[NUMBLE/MyBox챌린지 ] First Week

Environment JDK 11 Gradle Spring Webflux MongoDB Spring Security Naver Cloud Platform - Object Storage 구현 API FILE API FOLDER API USER API First Week 1. 서버구성 (Naver Cloud Platform) 1) Server 생성 2) 정책 적용 3) Object Storage + 버킷 생성 4) Docker Registry 생성 2. Reactive Spring Security 적용 1) login form 적용 2) User Domain 개발 3) 로그인 및 API 인증 테스트 진행 3. MongoDB 구성 + User API 구현 1) local 환경 mongoDB container 구성 2) Application JDBC 연동

2023년 3월 20일
·
0개의 댓글
·
post-thumbnail

넘블(Numble) | JS로 만드는 SPA

넘블이라는 서비스를 접하게 되었습니다 바닐라 자바스크립트로만 구현해야하는 SPA사이트 만들기에 참여하게 되었다 넘블 사이트 넘블 챌린지 간단 소개 총 2주간 이루어진다 가이드 라인을 통해 챌린지 진행에 필요한 와이어프레임과 백엔드 API를 제공한다 상태관리 라이브러리는 사용불가하며, 바닥부터 만들어보는 챌린지이다 네카라쿠배 기업 재직중인 3년차 현직자가 TOP3에게 세부 코드리뷰를 제공하고 상위권 결과물 및 세부 코드 리뷰는 참가자 모두에게 공유 된다 오늘까지 공부해 오면서 가장 중요하게 생각하는 점은 기초라고 생각이되었었는데 마침 이러한 챌린지가 있어서 돈을 지불하고 바로 참여하게 되었습니다 express 정적 파일 제공을 위해서 express 사용이 가능하여 간단하게 작성했습니다 ![](https://velog.v

2023년 1월 19일
·
0개의 댓글
·
post-thumbnail

[VanillaJS SPA Challenge] HPNY-2023

🚀 챌린지 시작 프론트엔드를 공부하며,하면 할수록 결국 기반인 Javascript가 중요하다는 생각이 들었다.그래서 프레임 워크를 사용하지 않고도 개발할 수 있는 능력을 올리고 싶어 참여하게 되었다. > 배포 링크 : HPNY-2023 주요 코드 설명 SPA 구현 router.js SPA 라우팅을 구현하기 위해서 커스텀 이벤트를 통해서 History변경을 감지하고, 페이지 이동이 아닌 원하는 동작(onRouteChange)을 할수 있도록 하였다. **App.js ** init()함수의 parameter로 route함수를 전달해, history 변경 시에 페이지 이동이 아닌 route 함수를 실행할 수 있도록 하였다. route 함수에서는 path에 따라 해당하는 Component를 페이지에 보여줄 수 있게

2023년 1월 19일
·
0개의 댓글
·
post-thumbnail

[Numble 회고록] VanillaJS 로 신년메시지 주고받는 사이트를 SPA로 만들기

📌Numble Challenge velog에서 다른 분이 하신 사이드 프로젝트를 통해 numble을 접하게 되었다. 할 만한 거 있나 구경이나 해 볼까 했는데 정신 차려 보니 신청하고 있었다... 신청한 이유는 이랬다. 바닐라 JS 리액트로 웹개발을 처음 접했고 리액트밖에 할 줄 모르는 사람으로서 바닐라 JS로 기초를 다져두면 좋겠다고 생각했다. 백엔드 API 제공 백엔드와의 협업 체험을 해볼 수 있을 것 같았다. 다음 학기 중으로 꼭 다른 사람들과 프로젝트를 해 보고 싶다. 방학 때 연습해보면 좋을 것 같았다. 팀빌딩 제공 나는 웹개발 공부하는 친구가 없다... 같은 목표를 가진 사람들과 소통하면서 모르는 것도 물어보고 서로 도와줄 수 있

2023년 1월 18일
·
0개의 댓글
·
post-thumbnail

우당탕탕 넘블 배포기

나는 vite기반의 바닐라 자바스크립트로 개발을해서 네이버 클라우드 크레딧을 줘서 처음에 네이버 클라우드로 하려다가 잘 모르겠어서 포기 기존에 사용해 보았던 netilify나 vercel을 이용하려고 했는데 git repository를 연결해서 하니 build오류가 떳다. 아무래도 절대 경로 설정에서 문제가 되는거 같은데 로컬에서 build를 하는 것은 되서 커멘드로 빌드해서 올리는 방법을 해보았다. vercel으로 배포를 하고, 배포 도니 사이트를 확인해보니 배포는 되었는데 api가 불러오지 않는 상황이 생겼다. Mixed Content ERROR 이러한 오류가 발생하였다. https 사이트에서 fetch를 사용해 http사이트에 request를 요청해서 문제가 발행한 것이였고, 암호화된 HTTPS 기반의 사이트에서 암호화 되지 않은 HTTP 사이트에 요청을 보내서 Mixed content 에러가 발생한 것이였다. Mixcontent 오류 해결책으로 ht

2023년 1월 17일
·
0개의 댓글
·
post-thumbnail

넘블 액티브 시니어 챌린지 회고록

안녕하십니까! 이번에 넘블에서 진행하는 액티브 시니어 챌린지에 참여하게 돼서 무사히 프로젝트를 마무리하고 회고록까지 작성하게 됐습니다! 프로젝트에 대해서 간단하게 설명을 하자면! 사회에 많은 기여를 하고, 은퇴할 나이가 되어 인생의 2막을 시작하는 나이가 된 어른분들을 액티브 시니어라는 이름으로 불리고 있는데, 액티브 시니어들을 타켓으로 하는 은행 앱의 온보딩 페이지를 만드는 프로젝트입니다! 사용해야하는 기술은 React ! 이 외에는 특별하게 제한되는 부분은 없습니다! 리액트와 함께 사용하고 싶은 라이브러리는 다 사용해도 됩니다! 그래서 제 입맛대로 고른 스택들을 먼저 소개하겠습니다! 사용

2022년 11월 9일
·
0개의 댓글
·
post-thumbnail

[넘블 팀프로젝트] - 첫 회의 (서비스 주제 정하기, 타 서비스 분석)

넘블에서 시작하는 지역기반 커뮤니티 만들기 프로젝트에 참여하게 되었다. 디자이너, 백엔드 개발자, 프론트엔드 개발자가 협업해서 하나의 서비스를 만드는 프로젝트이다. 실무에서도 만나게 될 다른 직군의 사람들과 나에게 필요한 기술스택인 React를 활용한 프로젝트를 하는 것은 좋은 경험이 될 것 같아서 망설임 없이 신청했다. 우리팀은 프론트엔드 3명, 백엔드 2명, 디자이너 1명 으로 구성되어있다. OT때 팀 회의 링크를 잘못 클릭해서 내가 다른팀에서 회의를 한(?) 불상사가 있었지만 팀원들이 내게 따로 연락을 해줘서 다행히 나의 원래 팀으로 돌아갈수 있게 되었다.😂 팀 회의 - 첫째날 본격적으로 프로젝트를 위한 첫 회의를 시작하기로 한 날은 무지 기대가 되었다. 각자 생각한 서비스 이름, 기획 내용, 아이디어를 말하고 투표로 어떤 주제를 정할지 결정했다. 기획 내용 우리 팀은 마트에서 살 재료를 나누는 '소분소분' 이라는 서비스를 기획하

2022년 10월 26일
·
0개의 댓글
·

NUMBEL:: 쿠팡 클론 코딩 챌린지 [1회차] - 회고

1회차 챌린지 주제 : 좋은 모듈 설계와 객체지향 응집도 있는 모듈을 설계하는 것은 유지보수 가능한 코드를 만드는 데에 필수적 Service와 useRequest 모듈을 만들어보며 결합과 응집, 그리고 객체지향에 대해 실전적으로 고민 1. Service Service, http모듈, cookie 모듈 등의 기능을 논리적으로 분리하고 설정하는 것이 핵심이다. http request 전송 기능은 적절히 모듈화 되었는가? Service 객체와 http 모듈의 관계가 논리적인가? cookie 조회/수정 기능은 적절히 모듈화 되었는가? Service 객체와 cookie 모듈의 관계가 논리적인가? 하위 클래스에서의 확장을 고려해 부모 클래스가 적절히 정의되었는가? 2. useRequest 실무에서는 대부분 외부 의존성을 그대로 사용하지 않고 내부에서 새롭게 정의한 인터페이스를 사용한다. 외부 변경으로 인한 영향을 최소화 할 수

2022년 7월 17일
·
0개의 댓글
·