분류 전체보기

· 개발새발
몇년간 NodeJS, TypeScript만 해오다 보니 새로운 언어를 배울 필요성에 대해 느끼게 됐다. TypeScript를 오랜 기간 사용해오면서 소위 말하는 '타입 장난질' 에 대해서 회의감을 느낀 바도 있고내가 주력으로 사용할 수 있는 언어가 제한되어 있다는 점에 경각심이 들었다. TS는 근본적으로 JS에 기생해서 살아간다는 점도 있고 말이다. C# 도 능숙하게 사용할 수 있지만 사용하면 뭐하는가.국내에서 게임만들때 말곤 쓰이지 않는데. Why go?Go를 선택하게 된 이유에 대해선 크게 두가지가 있다. 1. 언어의 철학Go는 단순성, 효율성, 실용성을 지향하며 설계되었다. JavaScript는 90년대, 웹이 등장하면서 혼돈과 같은 시대에서웹의 동적인 기능을 지원하기 위해 단 10일만에 탄생된 언..
보호되어 있는 글입니다.
얼마 전에 Svelte v5가 릴리즈 되었다.수정된 부분은 꽤나 많지만, 제일 눈여겨본 것은 export let의 deprecated와 props 변경이었다. 전체 변경사항은 아래에서 확인할 수 있다.https://svelte.dev/docs/svelte/v5-migration-guide 보이는 바와 같이  $props() 를 통하여 속성들을 내려줄수 있게 되었다. 별거 아닌거같아 보이지만, 이는 재사용 가능한 컴포넌트 작성에 아주 큰 이점을 안겨준다. 만약 button, a 등의 element를 재사용 가능하게 컴포넌트화 할 시에 기존에는 $$restProps 를 통하여 내려줄 수 밖에 없었다.근데 위와 같은 방식을 사용하게 되면 Type 안정성이 떨어진다. restProps를 사용하게 되면 해당 엘리..
· 잡다한
수 년 전까지만 해도,4차 산업혁명으로 엄청난 IT 붐이 일었고, 개발자들의 몸값과 수요는 상승하며 개발자는 좋은 직업으로 각광받았다. 네이버, 카카오, 라인, 쿠팡, 배달의민족.일명 '네카라쿠배' 는 개발자들 사이에서도 꿈의 회사로 자리잡았다. 하지만 지금, 계속 될것만 같았던 IT붐도 필자가 봤을때는 계속 될거 같아 보이지 않는다. 2020년. OpenAI에서는 GPT-3 을 출시하였다. 얼마 지나지 않아 온 세상에서 GPT, 인공지능은 뜨거운 감자가 되었다. 구글, MS, 애플 등의 세계적인 빅테크 기업들도 인공지능 시장에 뛰어들었다. 그들은 GPT가 나오자 마자 깨달았을 것이다.인공지능에서 뒤쳐지면, 미래는 없다는 것을. 인공지능에 투자하여 이윤을 남길지에 대한 확신도 없다.하지만 그렇다고 해서 ..
필자는 비즈니스 서비스 운영 시, 유지보수에서 제일 중요한건 "정형화" 라고 생각한다. 가끔 오래된 프로젝트나 앱들을 살펴보면, 난잡한 API Endpoint들과 뒤죽박죽인 response가 보인다. 어떤 요청의 response는 ok: true,또 다른 요청은 success: true,status: "OK" 등등이 섞여있는 경우가 있었다. 응답의 정형화는 시스템의 맨 바닥 기반이다. 응답이 정형화되지 않은 서비스는 그 크기가 늘어날수록 유지보수에 어려움을 겪게 될 것이다. 필자의 경우, 응답의 정형화를 아래와 같이 구성했다. - code (required)- message (required)- data (optional) HTTP status가 있는데, 어째서 code를 별도로 전송하게 되었는가? 물론..
SvelteKit은 번들링 도구로 vite를 사용한다. vite에서의 환경변수 설정에 대한 가이드는 아래와 같다. svelte에서 vite dev로 실행 시, 위 패턴에 대한 환경변수들을 자동으로 로드 해준다. 하지만 어째서인지 node adapter를 사용한 경우, 배포 환경에서는 제대로 작동하지 않았다. 분명 .env와 .env.production에 환경변수를 제대로 설정했음에도 말이다.  SvelteKit의 Node servers 공식 문서를 확인해보았다.https://svelte.dev/docs/kit/adapter-node Node servers • Docs • SvelteTo generate a standalone Node server, use adapter-node. Usage Install..
Spring에서 인증/인가를 처리하기 위해서는 일반적으로 Session과 JWT중 하나를 선택해 사용한다. 둘중 어떤 방식을 선택하려면 Stateful / Stateless에 대해서 짚고 넘어갈 필요가 있다. Stateful 방식은 서버에서 클라이언트의 상태를 저장하고 관리한다.Stateless는 서버에서 클라이언트의 상태를 관리하지 않는다. Session의 경우는 Stateful이다.기본적으로 Session id를 client에 서빙하고, 해당 Session id에 대한 정보는 서버에 저장되며,서버에서 관리된다. JWT는 Stateless다.JWT의 토큰 안에 인가에 필요한 정보가 담겨있으며, 따라서 서버에서 인가에 필요한 정보를 저장하지 않아도 된다.  Session과 JWT 중 무엇을 쓰느냐는 자유..
· 잡다한
Dell사의 PowerEdge 드라이브 캐디는 이렇게 생겼다. 이건 12, 13세대 2.5인치 드라이브 캐디다. 나사 구멍을 보면 안쪽으로 약간 패어있어 약간의 여유공간이 있다. 하지만 14세대부터는 캐디의 슬라이드가 슬림해져서 그럴만한 공간이 없어졌다. 2.5, 3.5인치 다 동일하게 말이다.  이게 아주 큰 문제가 되었다. 2.5인치 캐디의 나사 규격은 M3 x 4mm, counter-sunk 이고,3.5인치 캐디는 #6-32 UNC 4mm, counter-sunk 이다. 2.5, 3.5인치 모두 헤드와 길이는 동일하며, 나사산만 다르다. 나에겐 3종류의 나사가 있었다.왼쪽이 공식 Dell 3.5캐디 나사 (3.5 - 4mm 추정),가운데는 아마존에서 산 3.5캐디 나사고,우측은 2.5캐디 나사다. ..
· 네트워크
ZeroTier는 서버간 Private network를 설정하기엔 아주 용이하다. 하지만 만약 Proxmox들이 돌아가고 있는 하나의 내부망과 연결하기 위해선 어떻게 해야 할까. 단순하게 모든 컨테이너들에 zerotier를 설치하는 방법도 있긴 하다. 하지만 ZeroTier에는 라우팅을 추가할 수 있다. 하나의 Proxmox 인스턴스에만 ZeroTier를 연결해두고, ip forwarding을 켜두어 내부망 라우터 용으로 사용이 가능하다. 10.7.0.0/24 (ZeroTier 망)10.8.0.0/16 Proxmox 네트워크 10.7.0.4 (Proxmox 인스턴스)  다른 머신에서 10.8.0.0/16 대역에 대한 요청은 10.7.0.4 로 라우팅된다. 10.7.0.4에서는 ip forward 기능을 ..
· 네트워크
일전에 WireGuard를 이용해서 사설 내부망 구축에 관한 글을 작성한 적이 있었다. 사실 이런 망을 쉽게 구축하기 위해서 나온게 ZeroTier다. 망 하나당 무료로 최대 25개의 Peer 연결이 가능하며, 초과시 Peer당 월 2달러 과금이다. ZeroTier는 단순히 Host machine에서 라우트와 네트워크 참여만 중개해주고,트래픽 자체는 P2P로 전송되는 구조라 안전하다. 필자의 설정이다. 각각의 서버의 내부ip는 직접 설정하길 원해서 IPv4 auto assign은 해제하였다.통신이 잘 되는 모습이다. 설정법은 매우 간단하고 찾아봐도 금방 나오니 생략한다.
0xff
'분류 전체보기' 카테고리의 글 목록