전체 글

    [Monorepo, React, Next, Nest] 모노레포 앱구조

    때는 새벽 심심하기도 하고, 잠도 오지 않아서, 진행중인 사이드 프로젝트 구조를 모노레포로 대강 나눠 보기로 하였다. 백엔드 프론트 모두 구조가 동일하며, 패키지는 apps, libs로 나뉜다. apps는 실제 프로덕트에 반영될 앱이고, libs는 공용으로 사용될 친구들이다. 각각 별개의 독립적인 앱으로 운용할 수 있겠다. 다음은 결과 사진이다. (각각의 앱들은 모두 Next, Nest다) 이렇게 된 경우, 프론트와 백엔드의 구조가 동일하여, 작업자들이 어디를 봐야하는지가 더 명료해진다. 사실 작업자가 별로 없고, 모두 풀스택이라, 걍 이렇게하면 main, novel, social 등등 각각 알아서 맡은 부분 풀스택으로 다 해버리라는 느낌이긴했당ㅋ + 공용으로 사용할 부분 공용으로 사용하고~! 각각의 앱..

    유난한 도전 - 경계를 부수는 사람들, 토스팀 이야기

    앞으로 읽었던 책들에 대해 독후감을 가볍게라도 남겨야겠다는 생각이 들어서, 이제부터 남겨본다... 토스팀의 성장 과정에 대한 이야기였다. 중간부터는 이승건 공화국 스멜이 조금씩 나긴 했지만, 보면서 얻어 갈 것도 많고, 말 그대로 흥미롭게 읽었다. 원래도 책 자체를 비판적인 시각으로 보려 노력하긴 했지만, 그것과 별개로 자신이 잘 할 수 있는 것을 떠나와 무언가 도전하는 사람들은 본인이 그런 사람이기 때문에 도전하는 거라, 애초부터 그런 사람이 그렇게 하는 것은 별로 멋있지 않았다. 하.지.만 책을 보면서 오랜만에, 중간중간 전율이라고 할지, 마음을 찔렀다. 은행가에 가서 설득을 해야 하는 부분이었는데, 도메인에 대해 깊게 알고 있는 은행장?이 아무리 못해도 3년은 걸릴 거라는 말에, 이승건과 이태양은 ..

    [Monorepo, Yarn Berry, Github Private Package] can't be resolved to a satisfying

    킹 받는 오류 다 ^ ^ .npmrc 에서 사용하면 됐는데, npm .pkg.github에서 찾아야하는데 yarn berry + 모노레포를 사용하는데, .npmrc를 읽어갈 수 없었다. 이유는 자꾸 yarnpkg에서 찾았던 것이 이유 ^^ 2시간 내내 해결하다가 npmScopes를 변경해주는 것으로 해결했다. 루트 디렉토리에 .yarnrc npmScopes: 사용하는 패키지이름: npmRegistryServer: "https://npm.pkg.github.com" npmAlwaysAuth: true npmAuthToken: "내깃헙토큰^^" 요렇게 해주었다. 이럼 github package에서 읽어간다 ^^ 다만 deploy할 때 루트에서 먹히지 않는 경우가 있는데.. 일단^^ 모노레포 패키지 폴더 안에..

    [SQS, MSA, Nodejs] MSA & Message Queue

    요번에 이쁘게 구조도를 만들어 봤다ㅎㅎ (모두가 예쁘다고 좋아했다) 모름지기 개발이란, 성능과 사용성보단, 예쁜게 중요하다. 팀에 합류하고, 공통 모듈을 따로 만들고, 전체 푸시 알람 만들고.. 디비 코멘트도 달고... GPT socket하고 이것저것 했는뎅, 내가 처음으로 와서 한 일은 MSA 및 메시지큐를 도입했다. 푸시 알람이나 AI등 여러 기능들을 묶일 수 있는 공통의 그룹으로 묶고, 분리하려 했다. 이유는 다음과 같다. 1. 특정 섹션에서 병목이 나면, 다른 기능에 영향을 주기 싫었고, 2. 특정 섹션에 더 많은 계산이나 트래픽이 많다면, 부분적으로 스케일아웃, 업을 할 수 없는 구조 였다. 3. 처음에는 리소스가 많이 들어가지만, 정착되면 유지보수에 있어서 리소스가 적어질 것이라 판단했기 때문..

    [GPT, Node.js, React] 실시간으로 ChatGPT 연동하기

    일을 하다가~ 요새 핫한 ChatGPT를 활용한 프로덕트를 만들었다. OpenAI의 API는 JSON으로 받아 내는데, 속도가 매우 매우 - 매우 오래 걸렸기 때문에, 유저 경험이 좋지 않았다ㅠ.ㅠ 소켓으로 뚫기로 했다. 나는 유저 경험을 매우 소중히 생각하는 친절하고 배려심있고 착한 낭만 개발자기 때문이다. 그래서 요렇게 만들었다. 1. 프론트에서는 채팅방에 입장하자마자 Socket을 연결한다. 2. 상호작용이 있을 때(채팅) API 호출 3. Node에서 GPT로 Stream를 받는다. 4. 연결된 Socket으로 Stream데이터를 쏜다. Easy~~! 물론 실프로덕트에선.. 시스템 프롬프트와, 각종 예외 처리등등.. MSA.. 여러가지 잔처리 일들이 많았다~ 정말로~ 공식문서에서도 Node는 지원..

    MySQL, PostgreSQL

    비교 연결 방식 쿼리 구문 차이 인덱싱 서버내 실사용 차이

    MP Team 회고

    (일단 졸려서 초안) 매우 매우 엄청난 프로들과 함께한 행복한 시간이었다^^ 느낀 점들이 정말 많았다. 카테고리에 맞춰 기억하려는 용도로 장난스럽게, 가볍게 회고를 해본다. 일단 고마운 사람들 기록 (실명 기록을 허가받았으니..^^) 천재 개발자 장태웅 디자인 피카소 아이돌 지향 냉정한 로봇 혜연 칼퇴 머신 수연, 착한 성오님, 언제나 친절하신 유미님.. 뉴 디자인 요정 혜린님 등등등ㅠ 회사에 썼던 "나를 소개해줘" 중간부터 뇌가 절었었다 ^^ 디자인 회고 사랑해요 이 지 향 우유비깔 이 지 향 피카소 이 지 향 인아웃을 개발할 때도 디자이너분이 디자인을 예쁘게 잘해주셔서 좋았다. 다만 차이는 아예 0부터 시작한 스타트업이라 DS나 여러 부분을 신경쓰진 못했지만 이 곳에서는 DS가 가지는 의미를 더 체감..

    1

    33