전체 글 10

Next.js와 RSC(React Server Component)를 공부하며

Next.js를 맨 처음 접한게 대학원생 시절 v3~v4 쯤 되는데, 벌써 v14까지 나와있고 v15 릴리즈를 코앞에 두고 있다...-_-그동안 React를 CSR 위주로만 개발하다가 한참 outdated되어 있는 나의 Next.js 지식을 업데이트 하기 위해 여러가지 찾아보는 중올해부터 Next.js를 다시 사용하면서 막연하게 사용법만 숙지한채로 쓰고있는 Server component의 동작 원리를 제대로 알고 쓰면 좋을 것 같아서 조사를 시작했다What is RSC(React Server Component)?RSC는 서버사이드 렌더링을 주 목적으로 설계된 React 컴포넌트의 한 유형으로, React v18 및 Next.js v13부터 RSC가 도입되기 시작했다.RSC가 등장하기 이전의 기본적으로 쓰..

JavaScript/React 2024.09.22

OpenDDS의 DCPS, Discovery Service 그리고 DCPSInfoRepo

석사를 졸업한 지 4년이 지났지만... 언젠가 실무에서 다시 쓸지도 모를 0.1%의 가능성으로 DDS의 근황을 1년에 1~2번씩 찾아보곤 합니다.석사과정 초기에 썼던 이전 글[https://leichtjoon.tistory.com/54]의 DCPSInfoRepo 내용에 살을 조금 더 붙이기 위한 후속 포스팅임1. DCPS (Data-Centric Publish Subscribe)와 RTPSDCPSDCPS는 Publisher 및 Subscriber가 데이터 통신을 위한 DDS의 구성요소들을 추상화한 계층으로, 그 구성요소로는 Topic, Publisher, Subscriber, Data Reader, Data Writer, QoS, Data Sample 등이 있다. 또한 이 구성요소들을 각각의 DDS 구현..

vscode problems with Yarn Berry(PnP) & Workspace

1. Background현재 사내에서는 Yarn Berry(v3)을 사용중이지만 PnP 또는 zero-install을 사용하지 않는다. 또한 Yarn Berry가 처음 세상에 나올 때 아주 짤막하게 공부했던 나는 (실제로는 그렇지 않지만)zero-install이 곧 PnP와 같은 것이라 생각하고 있었다.그렇기 때문에 zero-install이 얼마나 실용적이던, 빠른 개발을 위해 상당히 많은 외부 의존성을 끌어쓰는 요즘에는 이러한 전략이 git을 너무 무겁게 만들 것이라는 걱정이 더 컸다(특히 monorepo에서 더욱). 그래서 한동안 Yarn에 대한 관심을 끄고, 개인 개발할 때에는 Yarn보다 더 매력적으로 보였던 pnpm을 애용했다.이러한 배경 상황에서 Yarn v4 Release 소식을 이제야 찾아..

JavaScript/React 2024.09.14

Monorepo 구조에 대한 사용 경험

Monorepo? Monorepo는 하나의 Root repo에서 1개 이상의 repo를 모아서 구성하는 Repository 관리 방법을 뜻합니다. 1개의 애플리케이션(또는 라이브러리)가 하나의 repo와 1:1 대응하는 방식과 비교하여 다음과 같은 이점을 얻을 수 있습니다. [1]. 중첩되는 코드의 관리가 쉬워진다 여러 repo가 공유하는 코드가 있을 경우, 코드 공유를 위한 repo를 새로 만들고 수정하기가 용이하다. [2]. 중첩되는 의존성에 대한 중복 설치가 필요없다. 여러 repo가 동일한 의존성을 사용하는 경우, root repo에서 설치해두면 각 repo에서 따로 설치할 필요가 없이 불러올 수 있습니다. [단점1] root repo에서 의존성 버전을 변경하면서 관련 코드들이 상당한 양의 수정을..

General Programming 2023.12.27

Node.js v15.0.0 릴리즈 소식

본 글은 nodejs.medium.com/node-js-v15-0-0-is-here-deb00750f278의 내용을 기반으로 작성되었습니다. 본 글의 내용은 원문의 내용에 대한 보완 설명과 예제 코드를 포함하고 있습니다. 코드는 [JavaScript MDN]에서 제공하는 예제를 참고하여 작성했습니다. 2020.10.20에 Node.js의 새로운 버전인 v15.0.0이 릴리즈 되면서 LTS Release와 Current Release의 버전이 교체됩니다. LTS Release: 12 -> 14 Current Release: 14 -> 15 그간 Release 규칙에 따르면, LTS Release는 짝수 단위로 교체되어 왔습니다. 따라서 다음 버전의 Current Release(v16)가 출시되어도 LTS ..

JavaScript/Node 2020.10.27

Data Distribution Service

DDS(Data Distribution Service)란 Data Centric한 Publish-Subscribe 패턴 기반의 네트워크 커뮤니케이션 미들웨어이다 도메인이란 하나의 컨테이너로, Publisher와 Subscriber들은 이 컨테이너(도메인)를 골라서 네트워크에 참여할 수 있다. 도메인 내의 모든 참여자는 Topic이라는 단위로 데이터의 그룹을 만들고, 하나의 토픽에 대해 데이터를 Publish하면 도메인 내에 있는 Subscriber에게 전파되어 출판된 데이터를 수신하는 방식이다.일반적인 Client-Server 구조와 비교해서 생각해보면 클라이언트는 자신이 연결할 서버의 위치를 알아야 연결하여 통신할 수 있지만 Publisher와 Subscriber은 데이터를 보내고 받을 때 상대방의 위..

OpenDDS 소스코드 빌드(컴파일)로 설치방법

http://opendds.org/ OpenDDS 공식웹사이트 OpenDDS란 OMG에서 제안하는 DDS의 스펙을 구현한 오픈소스 프로젝트에요 DDS spec v1.4 를 구현한 OpenDDS-3.12.2 을 기준으로 합니다 (작성일 기준 최신버전) 이 글은 OpenDDS의 소스코드를 다운받아서 설치하는 과정을 기록해놓기 위해 간략하게 작성한 글입니다 설치환경 Ubuntu 14.04 (VM) http://opendds.org/documents/building.html : Dependencies, OS 등의 확인은 이 링크에서 c++ 컴파일러, GNU make와 perl 은 이미 설치되어 있다고 가정합니다. 순서 - (1)Oracle JAVA 설치-> (2)OpenDDS 소스코드 다운로드-> (3)컴파일 ..

golang의 효율적인 문자열 연결에 대해서 (Efficient String Concatenation in Go)

2014년도 글이지만...ㅎ 원문 링크는 여기글을 통번역해서 올리려 했으나 귀찮기도 하고, 내가 언젠가 다시 읽어보기 위해서 글을 쓰는 것이기 때문에 내가 이해한 바를 요약해서 쓰기로 함 보통 GO에서 문자열 연결(String Concatenation)을 하기 위해서 쓰는 방식이 3가지가 존재한다. 그리고 Go의 Testing 패키지를 이용해 세가지 방법의 연산 성능을 측정한 GO Benchmark를 준비했다. Method 1: Naive Appending with +=+=연산으로 문자열을 연결하는 방식이다.가장 확실한 접근법으로, 문자열이 제자리에서 수정될 수 있는 C/C++와 달리 GO의 문자열은 immutable하기 때문에 문자열이 변수에 할당될 때마다 새로운 메모리에 할당을 한다. +=연산은 문자..

Golang 2017.07.24

거대한 공룡들은 무슨 언어로 개발을 할까? - stackshare

웹 공부를 하는 중에, 아니면 굉장히 UI가 맘에 들거나 속도가 빠른 웹서비스를 접하다보면 문득 드는 생각이 있을 것이다.이런 사이트의 백엔드는 어떻게 개발한걸까?? 하고...열렬한 트렌드충이 되려면 트렌드를 주도한다고 할 수 있는 사이트들은 무엇을 사용중이고, 그 안에서 자신들이 겪게 되는 문제들을 해결하기 위해 무엇을 개발하고있는지 등등을 알고싶고 알아가야 한다이 궁금증을 해결하기 위해 구글에 영어로 온갖 키워드로 검색을 해보았으나... 정보를 만족스럽게 찾아내는 경우도 있고 그러지 못한 경우도 많기 때문에 단번에 볼 수 있는!!!https://stackshare.io/ 라는 사이트가 있다요런식으로 어떤 파트에선 무엇이 쓰였는지 줄줄이 나와요특정 사이트의 개발 스택 이외에 프레임워크 or 라이브러리 ..

General Programming 2017.01.23

(소개) keymetrics.io

https://keymetrics.io keymetrics http://pm2.keymetrics.io/docs/usage/quick-start/ pm2 사용하는법 keymetrics는 노드의 프로세스 관리 툴인 pm2를 모니터링하는 웹 GUI툴이다. 내가 작성한 노드앱을 pm2로 클러스터 구성을 하고, keymetrics에 키와 함께 등록하면, 웹에서 기본적인 상태 모니터링이 가능하고 원격으로 재시작도 할 수 있어요 이렇게 기본 프로필이 보이고 cpu, mem을 클릭하면 자세히 볼수있음 아직 복잡한 기능같은건 써본적이 없으나 현재 나의 사용 목적으로는 훌륭한 모니터링 도구이다 프리미엄 결제는 아직 그지라서 고려해보지않았지만 웹으로 돈벌이를 할때면 프리미엄 기능도 활용해보고싶다

JavaScript/Node 2016.12.28