[GN#119] 스타트업 부트스트래핑 가이드

2021-10-11 ~ 2021-10-17 사이의 주요 뉴스들
온라인에서 사용자에게 정보를 입력받는 Form 기능은 대중적으로 가장 많이 알려진 구글 폼, 한국에선 네이버 폼도 많이 쓰이고, 대화 형태의 입력으로 유명한 Typeform, 엑셀과 연동하기 쉬운 MS 폼도 있는데요. Jotform은 엄청 많은 템플릿들을 통해서 자신만의 폼을 쉽게 만들 수 있게 해주는 것으로 유명합니다. Jotform은 Form 기능만으로 천만 명의 사용자를 가진 창업한 지 15년이 넘은 회사인데, CEO가 직접 자신들의 성공 스토리를 65,000단어의 책 분량으로 정리하여 "펀딩 받지않고 0명에서 천만명 사용자까지 : 스타트업 부트스트래핑 완벽 가이드" 라는 제목으로 공개했습니다. 스타트업의 성공 스토리는 그대로 전부 따라하기는 어렵긴 하지만, 찬찬히 들여다보면 여러 가지 배울 점이 있는데요. 시작부터 성장, 조직 관리 및 문화 만들기까지 다양하게 다루고 있으니 참고하시기 바랍니다.

파이썬 언어가 인기를 끌면서 책이나 온라인 강의 등 다양한 학습 교재들도 나오고 있는데요. "builtin으로 파이썬의 모든 것을 이해하기" 는 파이썬의 builtins 모듈에 있는 내장 객체들을 하나씩 설명하는 것을 통해서 파이썬이 어떻게 동작하는지를 알려주는 독특한 글입니다. 파이썬에 관심이 있으시다면 꼭 읽어보시길 추천해 드립니다.

"Talking Stock With Teens®"는 Piper Sandler 투자은행이 미국의 10대들을 대상으로 매년 두 번씩 21년간 시행해온 통계조사인데요. 굉장히 흥미로운 결과를 보여줘서, 매번 나올 때마다 정리해서 긱뉴스에도 올려보고 있습니다. 제가 애플이 계속 잘 될 거라고 보는 이유 중의 하나는 바로 이 보고서에 들어 있는 아이폰 관련 통계인데요. 미국 10대의 87%가 아이폰을 소유하고 있고, 88%가 다음에도 아이폰 구매 예정이고, 이번 조사에서는 애플 워치를 30%가 소유해서 처음으로 시계 브랜드에서 1등을 차지했습니다. 앞으로도 이 조사 결과에서 큰 변화가 있지 않다면 애플은 계속 잘 될 것 같아요. SNS, 콘텐츠 소비, 비디오 게임, 결제 선호도, 패션, 뷰티, 웹사이트, 레스토랑, 과자, 대체육 등 다양한 부분을 커버하고 있으니 전체 PDF를 참고해 주세요.

GeekNews Ask 에 다양한 질문을 올려주세요.
GeekNews Show 에 직접 만드신 오픈소스나, 재직중인 스타트업의 제품/서비스를 소개해주세요.

✓ 사내 커뮤니케이션 도구들에 GeekNews Bot을 추가해서 편하게 새 글을 받아보시고, 멤버들에게도 공유해주세요. : Slack Bot, 잔디 Bot, MS Teams Bot, Discord Bot
✓ 주위분들께 긱뉴스 위클리 - https://news.hada.io/weekly 를 추천해 주세요.

매주 월요일 아침, 지난 일주일간의 GeekNews 중 엄선한 뉴스들을 이메일로 보내드립니다.


스타트업 부트스트래핑 가이드

- 온라인 Form 기능만으로 1천만 사용자를 가진 Jotform의 CEO가 15년간의 경험을 정리
#1 Story of Jotform
#2 다른 길 - 영혼을 투자자에게 팔기 싫은 기업가들을 위한 팁
#3 Sink or Swim - 부트스트래핑이 당신을 더 나은 기업가로 만든다
#4 부트스트래핑 vs. VC펀딩 - 어떤게 당신에게 더 좋을까? 장점과 단점
#5 현재 일을 그만둘까 말까
ㅤ→ 아직 그만두지 말 것 : 성공적인 스타트업의 발판 만들기
ㅤ→ 사이드 프로젝트를 만들고, 제국을 건설하기
ㅤ→ entrepreneurship vs. “employee-ship”
#6 창업자의 필수 스킬 6가지
ㅤ→ 1. 더 나은 생각을 하는 사람이 되기
ㅤ→ 2. 카리스마 키우기
ㅤ→ 3. 무엇이든 파는 법 배우기
ㅤ→ 4. 질문하는 기술 마스터 하기
ㅤ→ 5. 상대하기 어려운 사람에게서 원하는 것 얻기
ㅤ→ 6. "올바른 방식"으로 "동의하지 않는 방법" 배우기
#7 아이디어 : 문제를 솔루션으로 만들기
ㅤ→ 열정으로 시간을 낭비하지 말기
ㅤ→ 가려운데를 긁으면 성공은 따라 올 것
ㅤ→ 차세대 페이스북/아마존을 발명하려고 하지 말 것
ㅤ→ 새로운 빅 아이디어를 찾을 수 있는 4곳 : 인구통계학적 변화/인식의 변화/부적절해보이는 것/예상치 못한 실패와 성공
#8 1인 창업 vs. 공동창업 의 길 : 공동창업자가 필요없는 이유
#9 스타트업의 초기 트랙션 : 어떻게 처음 1000명의 사용자를 모을까
#10 1000명을 넘어서 : 고객 중심 비즈니스
ㅤ→ (경쟁이 아닌) 고객에 집중함으로써 매년 100만명의 신규사용자를 모집한 방법
ㅤ→ Hater를 팬으로, 팬을 브랜드 홍보대사로 만드는 방법
ㅤ→ 고객 리텐션 전략 수립 방법
#11 마케팅 & Growth 기초
ㅤ→ 고객이 생각하는 방식을 방해하지 말 것 : 말한 것을 실천할 것(Walk you talk)
ㅤ→ 당신의 브랜드는 당신이 생각하는 것이 아님 : 고객 행복 및 기타 혼란스러운 지표들 측정 방법
ㅤ→ 왜 고객 서비스는 새로운 마케팅인가
#12 5백만명 사용자 마일스톤 : 그동안 배운 5가지 교훈
ㅤ→ 1. 고객에 집중(경쟁이 아니라)
ㅤ→ 2. 야심찬 기업은 야심찬 사람들을 끌어들인다
ㅤ→ 3. 기하급수적인 결과를 위한 생산성 향상 하기
ㅤ→ 4. 서둘러 고용하거나 해고하지 말 것
ㅤ→ 5. 다운타임(휴식시간)을 보호 할 것
#13 제품 개발과 런칭
#14 모든 사람이 지켜 볼 때 런칭하는 방법
ㅤ→ 그냥 Ship 하지 말 것 : 새로운 아이디어를 3년간 작업한 이유
#15 혁신의 예술
ㅤ→ 정신 잃지 않고 전력 질주 하기 : 해킹 주간이 혁신과 창의성을 장려하는 방법
ㅤ→ 적합성은 혁신을 죽임 : 회사내의 검은 양을 포용할 것
ㅤ→ 회사는 좋은 아이디어가 고갈나지 않음 - 단지 간과할 뿐
#16 팀 성장시키기
ㅤ→ 늦게 채용하고, 늦게 성장하기 : 우리가 1에서 300명 직원이 된 방법
ㅤ→ 더 적게해서 더 크게 성공하기 : 위임(Delegation)의 예술
ㅤ→ 효율이 아닌 생산성에 집중할 것
#17 문화의 힘
ㅤ→ 놀라운 사람들을 끌어당기고 채용하는 방법
ㅤ→ 핑퐁 테이블을 넘어 : 진부한 것들을 피해서, 사랑하는 팀을 구성하는 방법
#18 스타를 붙잡기
ㅤ→ "job-hopping" 은 근거 없음. 최고의 직원을 붙잡는 방법
ㅤ→ 스타 직원의 5가지 자질 : 훌륭한 사람을 식별하고, 육성하고, 유지하는 방법
ㅤㅤ훌륭한 태도 / 남다른 기술과 능력 / 높은 목표를 향한 자신감 / 성장을 위한 추진력 / 강력한 커뮤니케이션 능력
ㅤ→ 직장에서 독성을 가진(toxic) 직원들의 진실
#19 팀 생산성 부스팅하기
ㅤ→ 팀 빌딩 Exercise들이 직원들의 생산성을 향상시키지 못하는 이유
ㅤ→ 생산적인 일터 뒤에 숨겨진 진실
ㅤ→ 300+명의 직원이 생산성, 동기 부여 및 행복을 유지 하는 방법
#20 결론 : 산만하지 않은 기업가의 6가지 원칙
ㅤ→ 1. 리더를 따르지 않는다.
ㅤ→ 2. 잠재 고객이 아닌 실제 사람에 집착(fixate)
ㅤ→ 3. 자신만의 동기(motivation) 만들기
ㅤ→ 4. 잡초에 걸리지 않기
ㅤ→ 5. 주의를 산만하게 하는 요소를 제거할 수는 없지만, 관리할 수는 있음
ㅤ→ 6. 항상 몇 번이라도, 기본으로 돌아갈 것

 
builtin으로 파이썬의 모든 것을 이해하기

- builtins 모듈에 있는 내장 객체들을 하나씩 설명하는 방식으로, 파이썬을 이해하도록 구성한 글
- L.E.G.B. Scope 룰 이란
- dir(__builtins__)
ㅤ→ 66개의 내장 Exception 클래스들
ㅤ→ 5개의 상수 : True, False, None, Ellipsis, NotImplemented
ㅤ→ 전역 변수 : __spec__ , __loader__ , __debug__등
ㅤ→ compile, exec, val : 코드 작동 방식
ㅤ→ globals and locals : 모든 것이 저장되는 곳
ㅤ→ input and print : 빵과 버터
ㅤ→ str, bytes, int, bool, float and complex: 5개의 Primitives
ㅤ→ object: 모든것의 기초
ㅤ→ type: 클래스 팩토리
ㅤ→ hash and id: equality 의 기본
ㅤ→ dir and vars: 모든 것이 dictionary
ㅤ→ hasattr, getattr, setattr and delattr: 속성 도우미
ㅤ→ super: 상속의 힘
ㅤ→ property, classmethod and staticmethod: 메소드 데코레이터
ㅤ→ list, tuple, dict, set and frozenset: 컨테이너들
ㅤ→ bytearray and memoryview: 더 좋은 Byte 인터페이스
ㅤ→ bin, hex, oct, ord, chr and ascii: 기초 변환
ㅤ→ format: 쉬운 텍스트 변환
ㅤ→ any and all
ㅤ→ abs, divmod, pow and round: 수학의 기초
ㅤ→ isinstance and issubclass: 런타입 타입 체킹
ㅤ→ callable and duck typing basics
ㅤ→ sorted and reversed: 시퀀스 변경
ㅤ→ map and filter: Functional primitives
ㅤ→ len, max, min and sum: Aggregate 함수들
ㅤ→ iter and next: 고급 iteration
ㅤ→ range, enumerate and zip: 편리한 iteration
ㅤ→ slice
ㅤ→ breakpoint: 내장 디버깅
ㅤ→ open: File I/O
ㅤ→ repr: 개발자 편의성
ㅤ→ help, exit and quit: site builtins
ㅤ→ copyright, credits, license: 또 다른 site builtins

 
미국 10대들의 기업 선호도 조사 - 2021년 가을

Piper Sandler 투자은행이 21년째 매년 두번씩 시행하는 꽤 재미난 통계인 "Talking Stock With Teens®"
- 87%가 아이폰을 소유, 88%가 다음에 아이폰 구입예정, 애플워치 30% 소유해서 처음으로 시계에서 1등
- 지불 방식은 현금이 아직 1등, 애플페이 2등
- 페이팔의 Venmo가 페이먼트 앱중 1등이고, 그 안에서 제공하는 "Pay in 4"가 10대들의 BNPL(Buy Now Pay Later)중 1등
- 패션브랜드 : Nike가 11년 연속 1등(27%), 신발도 1등
- 패션에서 룰루레몬이 전체로는 5등인데, 상위 소득자 10대들 중에서는 3등. 상위소득자 여성 10대 대상으로 하면 1등
- Crocs가 신발에서 처음으로 6등(작년 9등)
- 8%의 시간을 중고 쇼핑에 할애. 51%가 구매 경험. 62%가 판매 경험
- 38%가 파트타임잡 하는 중 (봄 33%에서 상승)
- 10대들이 "직접 보고"한 바에 의하면 연간 소비액이 $2274로 5% 상승했고, 이중 61%가 부모에게 받은 것
- 소비중 의류가 1등(22%). 2014년 가을이후 처음으로 음식(21%)을 제치고 1등에 위치함
- 최고의 식당 : Chick-fil-A (16%) > 스타벅스(10%) > Chipotle/맥도널드(5%)
- 14%가 대체육 제품 소비. Impossible Foods (40%) > Beyond Meat (31%)
- 비디오 게임 지출이 8%. 52%가 차세대 콘솔 구매 계획
- 하루 비디오 소비 시간의 32%를 넷플릭스, 유튜브가 30%
- 9%가 암호화폐 거래 경험이 있고, 그중 78%가 남자
- 52%가 아마존을 1등 전자상거래 사이트로 선정. SHEIN이 9%로 2등
- 뷰티사이트는 Ulta 가 1등(46%), Sephora 2등 (21%)
- 뷰티 소비중에서 헤어케어와 향수 비중이 커지는중 (피부 및 화장은 정체)
- 화장품은 Maybelline 이 1등 (12%)
- 스킨케어는 CeraVe가 1등 (39%) > 2등 Cetaphil (10%)
- 핸드백 소비가 $96로 늘었고, Michael Kors가 1등으로 복귀(18%) 루이비통이 2등(16%)
- 소셜미디어중 스냅챗 1등(35%), TikTok 2등(30%), 인스타그램 3등 (22%)
- 과자 브랜드 : Goldfish (12%) > Lays (12%) > Cheez-It (10%) > Doritos (7%) > Cheetos (5%)
- 가장 좋아하는 유명인은 Adam Sandler 이고, 최고 인플루언서는 Emma Chamberlain(계속 1등이었던 David Dobrik의 자리를 탈환)

- 미국 44개주, 1만명의 10대들을 대상. 평균나이 15.8세. 남성 51% 여성 47% Non-Binary 2%
- 조사한 가정의 평균소득 $67,755

이거 전체 91페이지 짜리 자료로 보면 각 회사에 대한 분석들도 따로 있어서 굉장히 재미납니다.
- KEY FINDINGS https://www.pipersandler.com/1col.aspx?id=6216
- 인포그래픽 PDF https://www.pipersandler.com/private/pdf/TSWT_Fall21_Infographic.pdf
= 전체 리포트 PDF 91장 https://piper2.bluematrix.com/sellside/EmailDocViewer/…

- 미국 10대들의 기업 선호도 조사 - 2020년 가을 https://news.hada.io/topic?id=3072
- 미국 10대들의 기업 선호도 조사 - 2021년 봄 https://news.hada.io/topic?id=4488

지난 봄에도 읽었었는데 신기하고 재미있습니다. 인상깊었던 것들은
- BNPL 네이버도 하는것 같던데 빚내는 걸 장려하는 것 같아 조금은 무섭네요.
- 대체육이 삶속으로 확 들어왔네요
- 아담 샌들러가 미국에서 이런 인기인지 몰랐네요. 요즘 활동을 전혀 몰라서요
- Emma Chamberlain이 누구지? David Dobrik이 누구지?

 
개발자들이 알면 좋은 크롬의 숨겨진 기능들

모두 "Settings-Experiments" 에서 켜줘야 함
- CSS Overview : 사용된 컬러,폰트,미디어쿼리 및 사용 안한 선언들 보기
- CSP Violations : 알려진 보안 약점들 경고
- New Font Editor : 모든 폰트를 한번에 변경해서 보기
- Dual Screen Mode : 듀얼스크린/폴더블 기기들 디버깅용
- Full Accessibility Tree View : 접근성 관련 항목을 더 상세히 보기

이 기회에 굳이 개발자 관련이 아니더라도 크롬에서 소소하지만 유용하게 쓰고 있는 기능/확장기능을 댓글로 공유해보는 건 어떨까 싶네요.

말 꺼낸 김에 저부터. 간단하지만 의외로 자주 사용하는 것으로 [ALT] 키를 누른 채 링크 텍스트를 드래그 선택하는 기능을 자주 씁니다. 링크 텍스트를 드래그하면 링크 자체가 드래그되지 텍스트가 선택이 안 되는데, [ALT] 키를 누르면 일반 텍스트처럼 링크 텍스트도 드래그 선택이 되더라고요.

 
브라우저와 HTML을 어뷰징 하기

- 웹의 기능들을 의도하지 않은 용도로 사용하는 것들을 여러 예제를 통해서 시험해본 웹사이트
- 황당한 UI와 아이디어가 가득. 소스 코드에 대한 설명 포함
- Popup Trombone : 윈도우 크기로 트롬본 연주
- Inspect This Snake : 인스펙트 창에서 스네이크 게임 실행
- Bubble Tape Text : 스크롤로 텍스트 써진 Tape 움직이기
- URL에서 애니메이션 하기

* 대부분 팝업블로킹을 꺼야 동작됩니다.

와... 진짜 황당한데 영감이 샘솟는 예제가 많네요 ㅋㅋㅋ
트럼본은 진짜 깜짝 놀랐고, reCAPTCHA가 둥둥 떠다니는 Captcha Hunt도 아이디어가 진짜 재밌네요 ㅎㅎㅎ

 
Hello IPv6 : IPv4 사용자를 위한 최소한의 자습서

- IPv6가 단순히 더 많은 주소를 주는 것은 맞지만, 우리가 IPv4에서 배운 많은 것들이 IPv6에서는 변경되거나 사라짐
- 집 또는 작은 사무실에서 사용하는 사람들을 위한 가이드
ㅤ→ ARP, DHCP, NAT 등이 어떻게 IPv6에서 동작하는지
- 요약
ㅤ→ IPv6는 다른 이더넷 프레임 타입을 가짐 : 0x0800 (v4) vs. 0x86DD (v6)
ㅤ→ IPv6 주소는 128-bit(16 bytyes) = 64-bit (network) prefix + 64-bit interface id
ㅤ→ IPv6는 ARP(Address Resolution Protocol)가 아닌 NDP(Neighbor Discovery Protocol)
ㅤ→ IPv6는 broadcast 주소 컨셉이 없음. 일부 multicast 주소들이 이 기능을 수행
ㅤ→ IPv6는 DHCPv4처럼 동적으로 설정 가능하지만, DHCPv6, RA, PD, SLAAC을 이용 해서, 더 자주, 상태를 유지하는 것 없이 설정이 가능.
ㅤ→ IPv6 에서는 NAT는 필요 없음. 만약 보안을 위해 필요하다면 랜덤/임시 IPv6주소를 사용 가능

 
SixtyFPS - 유연한 GUI 개발 툴킷

- 임베디드/데스크탑/모바일/웹 등의 크로스플랫폼 Native UI 지원
- Rust, C++, Node.JS 지원
- 몇백KB의 램만 있으면 동작 가능
- 직관적인 API
- 부드러운 터치 인터페이스 지원
- 마크업 언어로 기기 비종속적인 UI 구현
- WASM으로 컴파일해서 웹에서도 실행 가능

 
YoHa - 실용적인 핸드 트래킹 엔진

"YOur HAnd tracking"
- 어플리케이션에 핸드 트래킹을 이용한 인터랙션을 추가할 때 사용
- 웹캠만으로 동작
- 실시간 수준의 고성능
- 그림 그리기 등에 사용 가능한 수준의 높은 정확도 제공
- 특정 포즈 인식 (핀치/피스트)
- 잘 문서화된 TypeScript API
- TensorFlow.js 와 자체 데이터셋으로 훈련시킨 커스텀 신경망 사용

페이지에 인트로 영상이 모든걸 다 말해주네요.
오픈소스도 홍보와 첫인상이 확실히 중요한 듯

- 구글, iOS/Android 에서 실시간 손(Hand) 트래킹 가능한 오픈소스 공개 https://news.hada.io/topic?id=387
- Handsfree.js - 웹에서 얼굴/손/포즈 인식을 쉽게 https://news.hada.io/topic?id=4409

 
Go+ - 엔지니어링, STEM 교육, 데이터 사이언스를 위한 언어

- 모든 Go 언어의 피쳐를 포함 (호환)
ㅤ→ 자연어에 더 가까운 쉽고 우아한 문법
ㅤ→ 배우기 쉬움
ㅤ→ 타이핑량을 많이 줄여줌
- 추가된 주요 기능들
ㅤ→ 유리수(rational) 지원
ㅤ→ Map & Slice Literal
ㅤ→ 데이터 사이언스 용도에 적합한 List comprehension
ㅤㅤㅤx := {x: i for i, x <- [1, 3, 5, 7, 11]}
ㅤㅤㅤy := {x: i for i, x <- [1, 3, 5, 7, 11], i%2 == 1}
ㅤㅤㅤz := {v: k for k, v <- {1: "Hello", 3: "Hi", 5: "xsw", 7: "Go+"}, k > 3}
ㅤ→ 컬렉션에서 데이터 가져오기
ㅤㅤㅤstudents := [student{"Ken", 90}, student{"Jason", 80}, student{"Lily", 85}]
ㅤㅤㅤunknownScore, ok := {x.score for x <- students, x.name == "Unknown"}
ㅤㅤㅤjasonScore := {x.score for x <- students, x.name == "Jason"}
ㅤ→ 그외 Lambda, 연산자 Overload, UDT의 for range 등

* STEM : 과학(S), 기술(T), 공학(E), 수학(M)

 
APT가 터미널에서 멋진 프로그레스바를 표시한 방법

- apt가 설치 진행할 때, 스크롤되는 터미널 화면에서도 최하단에 멋진 프로그레스 바를 표시
ㅤ→ 커서 위치를 저장했다가 최하단으로 가서 출력하고 커서 포지션을 복원
- 사용한 Escape 코드 (ESC = "\033" ):
print(f"\0337\033[0;{lines}r\033[{lines};0f\033[0K\0338")

ESC 7 is DECSC (Save Cursor)
ESC 8 is DECRC (Restore Cursor)
ESC [ Pn ; Pn r is DECSTBM (Set Top and Bottom Margins)
ESC [ Pn A is CUU (Cursor Up)
ESC [ Pn ; Pn f is HVP (Horizontal and Vertical Position)
ESC [ Ps K is EL (Erase In Line)

 
AWS Lambda 런타임별 Cold/Warm 시작 시간 비교 2021/09

- API-Gateway → AWS Lambda → DynamoDB 플로우로 POST 메소드를 테스트
- 메모리 128/256/512/1024/10240MB 각각 테스트
- Cold Start
ㅤ→ 전체적으로 Rust가 가장 빠름. 128Mb에서만 Python이 1등
ㅤ→ Java 와 .NET을 제외하고는 대부분 빠름
ㅤ→ Java는 128Mb로는 시작도 불가능이지만, GraalVM은 가능
- Warm Start
ㅤ→ Golang 과 Rust 가 승리자
ㅤ→ .Net도 Go/Rust와 거의 비슷한 성능을 보여주지만, 1k 반복실행 후에만 가능(JIT 이후)
ㅤ→ GraalVM도 .Net과 비슷한 안정적인 성능을 보여주고, Rust/Go 보다는 약간 느림. 최소 셋업에서는 잘 동작하지 않음
ㅤ→ Java가 GraalVM 바로 뒤. Java 역시 .Net처럼 1~3k 반복후에만 성능이 나옴
ㅤ→ Python이 안정적인 좋은 성능을 보이지만, 128MB에서는 너무 느림
ㅤ→ Ruby 는 Python과 비슷한 성능을 보이지만, 20분 정도(15k 반복)후에는 약간의 지속시간(duration)이 증가함
ㅤ→ Node.js 가 가장 느린 런타임. 지속시간도 가장 김

- Cold + Warm 으로 보면 Golang 과 Rust가 승리자. 항상 빠르고 안정적인 결과를 보여줌

- 비교 런타임 : NodeJs(14.x), Python(3.9), Go(1.x), Ruby(2.7), .Net(3.1), Java (11), Rust(1.54.0), GraalVM(21.2)

 
SerenityOS - 90년대 GUI로 구현한 Unix-like OS

- 1990년대말 윈도우/맥의 UI와 2000년대말의 *nix 코어를 합친 느낌의 OS
- 1인 프로젝트로 시작되어 3년동안 커뮤니티의 지원으로 성장중
- 커널부터 웹브라우저/IDE 까지 모두 "외부 라이브러리 없이 밑바닥부터 손수 개발"
- 시스템 자체는 Serenity C++ 로 개발됨.
ㅤ→ 자체 표준 라이브러리를 가진 최신 C++의 변형

Repo : https://github.com/SerenityOS/serenity

- 커널 기능
ㅤ→ 선점형 멀티스레딩 지원하는 x86(32bit) / x86_64(64bit) 커널
ㅤ→ IPv4 스택 (ARP, TCP, UDP, ICMP)
ㅤ→ ext2 파일 시스템
ㅤ→ POSIX signal 지원
ㅤ→ /proc 파일시스템 지원

- 시스템 서비스
ㅤ→ Launch/session daemon (SystemServer)
ㅤ→ Compositing window server (WindowServer)
ㅤ→ Text console manager (TTYServer)
ㅤ→ DNS client (LookupServer)
ㅤ→ Network protocols server (RequestServer and WebSocket)
ㅤ→ Software-mixing sound daemon (AudioServer)
ㅤ→ Desktop notifications (NotificationServer)
ㅤ→ HTTP server (WebServer)
ㅤ→ Telnet server (TelnetServer)
ㅤ→ DHCP client (DHCPClient)

- 라이브러리
ㅤ→ C++ templates and containers (AK)
ㅤ→ Event loop and utilities (LibCore)
ㅤ→ 2D graphics library (LibGfx)
ㅤ→ OpenGL 1.x compatible library (LibGL)
ㅤ→ GUI toolkit (LibGUI)
ㅤ→ Cross-process communication library (LibIPC)
ㅤ→ HTML/CSS engine (LibWeb)
ㅤ→ JavaScript engine (LibJS)
ㅤ→ Markdown (LibMarkdown)
ㅤ→ Audio (LibAudio)
ㅤ→ Digital Signal Processing/Synthesizer Chains (LibDSP)
ㅤ→ PCI database (LibPCIDB)
ㅤ→ Terminal emulation (LibVT)
ㅤ→ Out-of-process network protocol I/O (LibProtocol)
ㅤ→ Mathematical functions (LibM)
ㅤ→ ELF file handling (LibELF)
ㅤ→ POSIX threading (LibPthread)
ㅤ→ Higher-level threading (LibThreading)
ㅤ→ Transport Layer Security (LibTLS)
ㅤ→ HTTP and HTTPS (LibHTTP)
ㅤ→ IMAP (LibIMAP)

- Userland 기능들
ㅤ→ Unix-like libc and userland
ㅤ→ Shell with pipes and I/O redirection
ㅤ→ On-line help system (both terminal and GUI variants)
ㅤ→ Web browser (Browser)
ㅤ→ C++ IDE (HackStudio)
ㅤ→ Desktop synthesizer (Piano)
ㅤ→ E-mail client (Mail)
ㅤ→ Various desktop apps & games
ㅤ→ Color themes

취미로 만드는 OS 중에서 가장 독특한 것 같아요. 저 수많은 Library 와 앱들을 구현해서 넣었다는게 놀랍기도 하고요.
원작자인 Andreas Kling이 2018년에 3개월간의 약물 중독 재활프로그램을 마치고, 자기 시간이 많아져서 시간을 보내기 위해 시작한 프로젝트인데요.
그는 이전에는 애플과 노키아에서 WebKit 개발을 하던 개발자였어요. 애플에서 일했던 경험때문에 외부 패키지 없이 모든걸 직접 개발하는 것을 지향하고 있다고 합니다.

올해 5월부터는 이제 후원금이 충분히 많아져서, 풀타임으로 SerenityOS를 개발하고 있습니다.
깃헙 스폰서를 통해서 현재 232명이 후원하고 있네요. https://github.com/sponsors/awesomekling
Patreon 에는 279명이구요 https://www.patreon.com/serenityos

컨트리뷰터가 500명이 넘었고, 유튜브 채널에도 매달 OS 업데이트를 올리는데요
https://youtube.com/playlist/?list=PLMOpZvQB55bfp6ykOLayLqLrjcpv_Sw3P
2019년 초반엔 10분 단위였는데, 요즘은 30~40분 분량으로 업데이트가 길어졌어요.

디아블로 1을 리버스 엔지니어링 한 Devilution을 SerenityOS에서 돌아가게 한시간만에 포팅한 영상도 유명합니다.
https://github.com/diasurgical/devilution
https://www.youtube.com/watch?v=ZOzZ8R4gphE

 
Rancher Desktop - Docker Desktop 대체제

- 맥/윈도우 데스크탑용 쿠버네티스 및 컨테이너 관리 도구
ㅤ→ 컨테이너 이미지 생성, 실행, Push & Pull
ㅤ→ 쿠버네티스 버전 선택 지원
ㅤ→ 로컬 쿠버네티스 환경에서 어플리케이션 개발
- Electron + containerd, k3s, kubectl 등을 이용해서 개발

아직 M1 (Apple Silicon) 맥북은 지원하지 않고 있네요.
https://github.com/rancher-sandbox/rancher-desktop/…

도커 데스크탑에 대입해서 생각하는 것보단 그냥 랜처 데스크탑을 새로 배운다고 생각하는게 좀 더 마음이 편한것 같네요. k8s를 이용하면서 docker 느낌으로 사용하는게 신선합니다.

 
어떤 버전의 JDK를 써야 할까?

- OpenJDK는 Java SE 스펙의 오픈소스 구현체이지만, 소스 코드 만임
- 바이너리 배포본은 여러 벤더에서 제공
ㅤ→ 라이센스/유료 지원 여부/지원하는 플랫폼/업데이트 빈도등에서 차이가 있음
- 어떤 것을 선택하면 좋은지를 정리한 가이드
ㅤ→ 기본 추천은 Adoptium Eclipse Temurin 17
- 각 배포본에 대한 설명
ㅤ→ OpenJDK builds by Oracle (jdk.java.net)
ㅤ→ Oracle Java SE Development Kit (JDK)
ㅤ→ Adoptium Eclipse Temurin
ㅤ→ AdoptOpenJDK
ㅤ→ Azul Zulu
ㅤ→ BellSoft Liberica JDK
ㅤ→ IBM Semeru Runtime
ㅤ→ Amazon Corretto
ㅤ→ Microsoft Build of OpenJDK
ㅤ→ Alibaba Dragonwell
ㅤ→ SapMachine
ㅤ→ Red Hat OpenJDK
ㅤ→ GraalVM

AWS 기반 서비스를 운영중이라 Amazon Corretto 를 이용중입니다. :)

AdoptOpenJdk 를 주로 쓰고 있었는데 이 프로젝트가 Adoptium… 으로 이어지는 거군요

당연하게 AdoptOpenJDK를 사용하고 있었는데 7월부터 Adoptium으로 넘어갔군요...