아마 Zeno를 안 뜯어본 거 같은데
Zeno안에는 다음과 같은 src가 5개 있다.
여기서 런타임과 컴파일러가 제일 중요하고
나머지 셋은 걍 성격상 분리가 필요했거나 벤치마크용임
근데 3개 안 빼고 5개 전부 다 합쳐서 계산해도
코드 전체 총량이 겨우
5,151줄
이다
참고로 저번에 내가 보여줬던 EMP아키텍쳐로 개발된 내 홈페이지 core 프로젝트는
docs/ 런 거 다 빼고 직접 작성한 코드만 집계해도
1.7만 줄이 나온다.
참고로 내가 제일 적게 수행한 일이 홈페이지 개발이다.
아래는 에이전트에게 시켜서 집계 명령어 돌린 결과
그리고 이 밑은 내가 좋아하고 자주 참고하는 울트라리틱스의 코드 수다
보이다시피 5.7만 줄이다.
울트라리틱스나 Langchain 같이 제법 큰 프레임워크도 필요한 부분을 고쳐쓰거나,
기능 부족할 때마다 코드 리뷰하고 직접 고쳐서 쓰는 게 일상다반사다.
레딧이나 이런데 검색하면 그렇게 작업 중인 사람들이 수두룩하게 검색된다.
예를 들어 울트라리틱스는 본래 yolov8의 p0를 지원하지 않는데,
나 포함 중국 쪽 드론계열 연구자들 중에는 항공샷 연구해야돼서
울트라리틱스를 p0로 개조한 사람들이 자주 눈에 띈다.
심지어 울트라리틱스는 트랜스포머를 안쓰는데 라이브러리 고쳐서 Bi 트랜스포머 붙인 연구도 자주 봤다.
즉, 라이브러리를 고치는 건 매우 자주 일어나는 일임.
그러려면 일단 읽어보고 리뷰를 해야 고칠 수 있겠지?
5.7만줄짜리 라이브러리도 그렇게 하는데
고작 Zeno 사이즈를 리뷰 못하면 개발을 어캐 하겠냐?
만약 리뷰 못해서 직접 개발한다고 치자.
일단 보낼사람 받을 사람이 따로 있으니깐 프로토콜을 확정하고 진행해야겠지?
그러려면 너보다 높은 급이거나, 실력이 월등히 떨어지거나, 혹은 성격이 개차반인 개발자를 최소 2명, 많으면 3명까지 테이블로 모아야한다.
모으기 위해서 전화기를 들었다고쳐.
언제 모일 건데? 내일 모일 거야? 사람들이 전주나 울산에 살면 어쩔 건데?
밥은 누가 살 건데? 멀리서 불렀는데 더치페이할 거야? 니가 불렀는데 나이 많은 사람에게 밥 사달라고 할 거야?
뭐 어찌어찌해서 회의실에 앉았다고 치자.
니가 프로토콜 정할 거야? 니가 프로젝트 요구사항을 다 파악하고 있어? 의견들을 다 들어봐야겠지?
근데 의견이 상충되면 어떡하냐? A랑 B가 싸울 수도 있겠지? 니가 그걸 중재할 수 있어?
어찌저찌 건설적으로 토론이 끝났다고 치자. 요구사항 다 파악하면 네가 그 자리에서 바로 프로토콜 확정할 수 있냐?
니가 니 맘대로 확정했다가 나중에 수정사항 생기면 어쩔 거야?
사람들에게 전화돌려서 프로토콜 변경됐다고 통보할 거임?
너보다 급 높고 성격 드럽고 말귀도 못알아먹는 사람들에게 각각?
아니면 니가 찐빠냈으니까 다시 모이자고 할래? 전주에서 다시 올라오라고?
상상만해도 좆같은 게 한 두개가 아니잖아
심지어 이거 다 통과해서 라이브러리 개발하고 나면
이제 프로젝트를 위해서 위의 과정들을 1순 더 거쳐야함.
이 얼마나 끔찍한 일이야?
그러느니 걍 5천 줄짜리 각자 읽고 Zeno쓰자는 거임
사실 다 읽을 필요도 없지
리드미 읽고 튜토리얼 따라서 하면 그만이니깐
실상 제대로 읽을 코드 분량은 1, 2천 줄 내외에 불과함
글고 바이너리 프로젝션 컴파일러 질문은 내가 당시에 못봤었는데 (졸려서)
걍 지금 설명해주겠음
바이너리 <-- 데이터를 이진수로 보겠다
프로젝션 <-- 새 객체 안만들겠다
컴파일러 <-- 코드 생성기다
걍 이렇게 말한 건데 니가 이해를 못한 거는
이 단어가 flatbuffers 과의 차이점을 강조하기 위해 조합한 단어들이라 그럼.
이것도 설명해줄게.
flatbuffers는 바이너리가 아니라 table로 프로젝션을 함.
참고로 프로젝션이란 개념은 flatbuffers얘네가 먼저 사용한 개념임.
카피를 하지 않고(zero copy) 걍 오프셋의 위치를 기반으로 view만 하는 게 flatbuffers의 핵심이라고 했잖아?
이때 오프셋 기반 view를 프로젝션(투영)이라고 한 거임
그리고 얘넨 이걸 위해 .fbs란 자기만의 언어(확장자)를 사용하고 있는데,
Zeno는 이게 없음.
그럼 어떻게 프로젝션을 하느냐? 여기서 컴파일러란 개념이 나오는 거임.
컴파일러가 뭐야? A 코드를 B코드로 번역해주는 프로그램잖아?
Zeno의 컴파일러는 zeno-codegen고
이 컴파일러는 내부의 ts파일을 읽은 뒤 그걸 데이터뷰 클래스로 번역하는 일을 해준다.
즉...
1. table 프로젝션이 아니라 바이너리 프로젝션임.
2. zeno-codegen으로 데이터뷰를 위한 코드들을 생성하기 때문에 컴파일러임.
이래서 'Zeno = 바이너리 프로젝션 컴파일러'란 말이 나온 거임
물론 이 조어 자체가 좀 어색하긴 해.
근데 ㅆㅇㅆ가 원래 말 잘하는 인간이 아니라는 점을 생각하고 곰곰히 유추해보면
쉽게 파악할 수 있음.
이제 너도 이해했지??
이해했으면 잘자콘 달아줘
나는 네가 웹개발자라길래 아무 생각 없이 말했는데 혹시 금융권 개발자였으면 미안하게 생각한다. 근데 금융권은 오래 있으면 진자 실력 썩어 돈만 빨리 땡기고 나와
대 ai 시대에 안전한 금융권이 낫지않을까 딴데 비명아닌가
@피치피(183.101) ㄷㄷ 듣고보니 그렇긴 하네 - dc App
내가 어떤 분야인지 말한적도 없는데 본인 상상을 진실이라 단정짓는 습관이 ㅆㅇㅆ와 똑같군
유동이라 잘자콘을 못다네 잘자~
위 글과 상관없는 말이지만 아까 zeno 리뷰글 잘쓰더라 왜 쓰는지, 그리고 각 개념에 대해 잘 설명해줘서 난 처음 보는 개념임에도 불구하고 이해가 쉬웠음 강의도 한번 해봐 강의는 한번 만들어두면 그 이후부터는 qna정도만 하면 되니까 초기 코스트만 들이면 이후 유지보수는 비교적 저렴한 사업아이템 아니겠음?
ㄹㅇㅋㅋ그리고 소재도 끝이 없을 듯 학생들이 매일같이 질문하니까 그거 답변하는 컨텐츠만 만들어도 무한 동력이잖아 ㅋㅋ - dc App
@에이도비 그래서 나도 종종 강의 한번 도전해볼까 싶음 물론 귀찮고 일도 바빠서 결국 안하긴 하지만 ㅋㅋ
그냥 메모리 읽기 오백배라고 했으면 전달력이 오백배 더 좋았을 것입니다 훠훠
얘 ㅆㅇㅆ 다중이 맞네 ㅆㅇㅆ한테 물어본걸 ㅆㅇㅆ는 쌍욕만 박다 사라지고 얘가 열심히 해명하고 있고
flatbuffer에서 codegen이라 부르는 부분을 왜 codegen이라 부르는지 컴파일러라 안부르는지 찾아보지도 않았군
논리 전개 방식이 영업하려는 사람같은 느낌이라 간단하게 얘기할께
코드 라인 수와 리뷰 난이도는 달라 맞는지 틀린지 검증하는건 로직이 정확한지 예상하지 못한 결과가 나올지 찾아야 되는건데 정형화된 패턴이 있는 홈페지이 백 프론트랑 컴파일러 지식이 어느정도 있어야 이해하는 직렬화 라이브러리는 난이도가 달라
프로토콜 확정하려고 사람 모아야한다 어쩐다 얘기하는데 그건 zeno 라이브러리 검증해서 쓴다쳐도 어차피 해야되는 일이지 왜 자체 프로토콜은 번거롭지만 zeno는 한번도 안모여도 된다는 식으로 옹호하는지 모르겠네
컴파일러의 사전적 혹은 광범위한 정의는 A언어에서 B언어로 바꿔주는게 맞지만 통용되는 의미는 고수준 언어에서 저수준 언어로 바꿔주는거지 일반적으로 컴파일러 디컴파일러 트랜스파일러 코드제너레이터 이렇게 역할 나눠서 얘기하고 직렬화 라이브러리들은 자기들 역할에 집중해 코드젠이라고 부르지
딱 코드젠 역할이 전부인데 괜히 있어보이려고 프로젝션 컴파일러라고 거창하게 이름 붙여놓고 그래서 정적 분석과 검증까지 해주는 컴파일러 쓰는 경우와 비교하니까 갑자기 사전적 정의를 들이미는건 그냥 만든거에 비해 과하게 하입 좀 받고 싶어서 용어혼란전술을 일부러 선택한거 아니면 그냥 잘 모르는것 밖에 안되지
마지막으로 ㅆㅇㅆ랑 너랑 거의 동시에 등장하고 항상 ㅆㅇㅆ는 쌍욕박고 도배하고 ㅆㅇㅆ가 기술적으로 자세하게 설명해야할 내용을 니가 자세하게 설명하는 패턴이고 둘다 자기 상상으로만 상대는 무슨 일을 하는 사람으로 알고있다며 단정짓고 논리 전개도 그대로 따라가는데 사람들도 이상하게 느끼지
다중이면 티가 안나게 하던가 하나가 불리해질때 다른 계정으로 대신 대답하고 대신 실드치는걸 멈추고 다른 사람이면 니가 동정심으로 한쪽만 편들고 싶어하는 것 같은데 그렇게 어긋난 방향으로 동정해도 상황이 더 나빠지는 것을 인지하는지 모르는것 같아 보임
간단하게 얘기한단거 떠오르는게 많아서 길게 적었는데 대충 어느정도 알아들었길 바란다 못 알아들었다고 남탓하지 말고
@ㅇㅇ(211.234) 내용이 좀 많으니 넘버링 달아서 답변해줌 1. 영업맨같다 니가 개발자긴 한가보구나 고작 이 정도로 영업맨 같다고 하다니... 나는 좆소 사장이니깐 순수 개발자보다는 좀 더 영업에 가깝긴 함. 근데 그보단 교육을 많이 해봐서 그런 듯 2. 제노 리뷰는 난도가 높다 백 프론트랑 컴파일러는 걍 분야차이일 뿐이지 더 고급 지식이 아님 오히려 백프론트는 제 맘대로 개발해놓은 경우가 많은데 컴파일러들은 다 거기서 거기라 사람에 따라선 더 쉬울 수도 있음. 3. 라이브러리도 협의사항이다 라이브러리 쓸 때는 걍 라이브러리 알아서 읽고오라고 하면 끝이니까 편하지. 이건 너무 당연한 거고 본문에 다 설명 해놔서 더 얘기 안하겟음. 4, 5는 밥 먹고 답하겠음 - dc App
@ㅇㅇ(211.234) 4. 있어보인척 한다 당연한 거 아님? 내가 ㅆㅇㅆ 였으면 10배는 더 호들갑 떨었음. 그래야 관심을 받지 나 이번에 나라에 사업화 자금 신청했는데 나는 쟤가 한 거 20배 쯤 했음 국내 3대 선두기업들 다 올드스툴 늙은이들이라 시대의 흐름 못 따라오고 정부돈 도둑질하고 있다고 써놨다 이건 비판의 대상조차 안됨 5. ㅆㅇㅆ랑 비슷한 타이밍에 뜬다 내가 있으니까 글 올린 거 아닐까? 프갤에 코드얘기하는 사람이 별로 없는데 그 중 하나가 나니깐 나 있을 때 올린 거겠지 글고 ㅆㅇㅆ랑 나는 너무 정 반대 인간이라 비슷하다고 할 수록 진짜 프알못 되는 거임 내가 저번에 얘기한 emp아키텍쳐를 생각해봐라. 크고 고수준의 웅대한 설계잖음. 그 목적은 복붙 잘해서 돈 많이 벌기고. - dc App
@ㅇㅇ(211.234) 근데 ㅆㅇㅆ는 갈수록 저수준으로 내려가려고 하는데다가 학계 선호하고 프로젝트 구조도 단순하잖아. 코드 보면 거의 정 반대의 인간상인데 이거 보고 같다고 하면 말이 안되는 거임 애초에 쟤는 ts랑 react, 나는 python과 svelte가 주력이고 쟤는 소프트웨어 공학, 나는 ai엔지니어링이 주력이라 주력 분야조차도 다름. 글고 저번에 내가 중국 가서 사진 찍고 있을 때도 ㅆㅇㅆ는 한국에서 갤질하고 있었잖음 - dc App
@ㅇㅇ(211.234) 6. 한쪽만 편든다 니가 코드를 안 읽고 개억까를 하니깐 당연히 편들게 되지. 비판을 해도 좀 그럴싸한 비판을 해야될 거 아니냐 ㅋㅋ 글고 비판을 잘한다 하더라도 결국 자기 코드 갖고 오는 사람에게 더 우호적으로 되는 건 당연한 사실임. 왜냐면 컨텐츠 제공자잖아 글고 백수로 인생 나락 박고 있는 것도 아니고 결국 코드자산 쌓아가면서 자기 입에 풀칠 잘 하고 있는 상황인데 갈수록 나빠질거다 그렇기 살지마라 어쩌고는 걍 오지랖일 뿐임. 지가 알아서 하겠지 - dc App
@에이도비 1. 논리 전개 방식이 영업하는 방식이랬지 개발안하는 영업같다고 안했다 2. 컴파일러 지식이라고 했지 고급 지식이라고 안했다 배경지식이 없으면 생소한건 당연한거다 3. 배경 지식 없으면 붙잡고 이해시켜야해서 시간 걸리는건 똑같다 그리고 라이브러리 읽고와도 어차피 프로토콜 만드는건 또 다른 작업이다
@에이도비 4. 기술 스택에서 하입 받으려고 아무 단어나 가져다 붙여놓고 설명 못하는 빈 껍데기 지적하는데 사업 계획서랑 무슨 상관인지 모르겠다
@에이도비 5. 아니 반대로 ㅆㅇㅆ가 먼저 글올리고 니가 빨아주는 패턴이 더 많이 보인다
@에이도비 6. 리드미 다 읽고 코드 읽고 뭔가 이상해서 왜 바이너리 프로젝션 컴파일러라고 하냐 직렬화 말고 뭐가 추가된거냐 물어보니까 쌍욕만 쳐박고 정작 지가 적은 용어 지가 설명도 못하는 사람이던데 너가 실드치려고 아 그건 이런 용어야 너는 몰랐지 이러고 있음
@에이도비 그리고 통상 코드젠이라 부르는걸 컴파일러라 부르고 아무튼 사전적 정의가 언어 변환이니까 컴파일러 맞다고 우기던건 언급하길 피하네 니 말대로 사전적 정의 가져오면 컴파일러가 아니라 인터프리터나 트랜스레이터라 적어놓고 우기면 되겠네
@ㅇㅇ(211.234) 1. 나도 '개발 안하는 영엽맨'이란 의미로 들었다고는 안했는데? 니가 정확히 '영업하는 사람 같다'고 썼잖아? 2. '정형화된 패턴이 있는 홈페지이 백 프론트랑 컴파일러 지식이 어느정도 있어야 이해하는 직렬화 라이브러리는 난이도가 달라' 라고 니가 썼잖음? 오히려 컴파일러가 더 스트릭하고 정형화되어있는데? 3. 프로토콜 작업을 2번에 걸쳐서 하는 게 낭비라는 거임. 라이브러리 읽는 건 금방인데 의사소통은 여러 사람이 엄청 오래 해야되잖아. 4. 내 설명 읽고 ㅆㅇㅆ의 설명 보면 정확히 같은 얘기인데 쟤가 걍 설명을 못했을 뿐임. 글고 이게 애초에 왜 문제인지도 모르겠는게 코드 읽었으면 어차피 너 스스로도 이해 가능한 건데 니가 걍 못해놓고 남에게 왜 날 이해 못시켜주냐고 따지고 있는 거잖음 ㅋㅋ
@ㅇㅇ(211.234) 5. 이건 걍 네 생각임. 생명주기 관리 못한다고 태클 걸었다가 ㅆㅇㅆ랑 거의 3일에 걸쳐 키배했던 거 같은데 뭔 소린지 모르겠군. 글고 빨아준다는 건 아부를 떤다는 건데 내가 쟤한테 아부떨어서 대체 무슨 이득이 생긴단 거임? ㅋㅋ 앞뒤가 안 맞는 소리 6. 로고스보다는 파토스, 파토스보다는 에토스가 중요하다. 네가 그거 물은 게 잘못은 아니지만 서로 감정의 골이 깊으니깐 따지는 것처럼 느껴지고 싸움이 난 거라고 봄. 글고 내가 봤을 때 너는 저번에도 그렇고 코드를 안 읽고 까는 것 같음. 난 다 읽었으니깐 니가 까는 게 어이 없게 느껴질 때가 많음. 방금 밑에서 컴파일러 얘기한 거랑도 이어지는 건데, 저번에는 pytest로 깠던가? 근데 그거도 그렇고 용어도 그렇고
@에이도비 1. 정확히는 "논리 전개 방식"이 영업하려는 사람 이라고 했다 2. 홈페이지는 백 프론트 끝 컴파일러는 ambiguity 검증부터 배경 지식 필요 3. 위에 2번과 마찬가지로 라이브러리 읽기만 하면 끝나는게아니라 별도의 로직 검증은 어차피 필요
@ㅇㅇ(211.234) 원래 최전선에 가까워질 수록, 저마다 제멋대로 불러대고 개발도 좆대로 개발함 예를 들어 저번에 얘기나온 mvc만 해도 그래. mvc mvvm mvt 등등은 사실상 같은 건데 생태계마다 제멋대로 불러대고 있잖음 이거 말고도 저번엔 스트림릿을 안쓰고 괜히 next.js로 힘뺀다던지 뭐 그런 비판도 했었던 거 같은데 그거야 지 하고 싶으면 하는 거지 누가 그런 비판에 공감하겠냐 ㅋㅋ 너무 하잘 것 없는 비판을 하니깐 공감을 해줄 수가 없는 거임 다만 ㅆㅇㅆ가 사람 꼴받게 하는 부분이 있긴 하지. 그래서 네가 걔를 싫어하는 거 자체는 이해한다. (내가 싫어한단 얘긴 아님)
@에이도비 4. 내가 이해를 못한게 아니라 ㅆㅇㅆ가 이해를 못하고 용어를 아무거나 가져다 붙여서 진짜 그 정도 급의 다른 라이브러리랑 비교하니까 ㅆㅇㅆ가 급발진하길래 정확히 설명해보라 물어본것
@에이도비 5, 6에 반박은 없고 다른 사람이 한 말을 내가 했다고 우기면서 울분을 토해내는 것 뿐이군
@에이도비 인정받고 싶어서 오픈소스로 올리고 봐달라고 올려서 보이는 대로 얘기했을 뿐인데 자기 플젝 질문만 들어오면 자신에 대한 인신 공격으로 받아들이고 쌍욕부터 박더군
@ㅇㅇ(211.234) 울분을 토해낸다니 뭔 소리야? 왜 그렇게 받아들이는 건지 이해가 안되네
@ㅇㅇ(211.234) 다른 사람이 한 말이라고 했는데, 그럼 너는 pytest랑 스트림릿 얘기한 211.234가 아니란 거지? 말투나 톤 같은 게 비슷해서 동일인인 줄 알았음
@에이도비 너 그때 걔지? 너 그때 이런 얘기 했었지? 이러는게 말싸움하다 할말 없으면 부들대면서 빽빽대는 사람 보는거 같음 내가 그 사람인지 확인도 안하고 그 사람이 맞으거란걸 믿고 혼자 주절주절대고
@ㅇㅇ(211.234) 그래? 하는 게 너무 비슷해서 착각했네. 좆만한 갤이라 오던 애들만 오다보니 걘 줄 알았음. IP도 같고
@에이도비 pytest말한 211.234 글 가져와봐
@ㅇㅇ(211.234) 귀찮음... 네가 찾아봐. 뒤로 넘기다보면 나올 듯. 아마 한 3달 쯤 됐을 듯
@에이도비 아니 그거 말한애는 나랑 아이피 겹치지 않음 맨날 ㅆㅇㅆ랑 서로 인증하라고 싸우던 사람이거든
@ㅇㅇ(211.234) 나 기억력에 하자 있는 편이긴 함 ㅈㅅㅈㅅ
@에이도비 기억력에 하자 있는것만 문제가 아니고 부정확한 기억을 시실이라 단정짓고 믿는게 문제지 마치 ㅆㅇㅆ가 프갤 사람들보고 자기 학창시절에 자길 괴롭히던 사람이 따라왔다고 우기는 것처럼
@ㅇㅇ(211.234) 흠... 니가 그렇게까지 말하니까 나도 걍 솔직하게 말하겠음. 막말로 내가 오해하면 니가 나한테 뭘 할 수 있는데? 굳이 아니라고 하니까 걍 예의상 아닌가보다 하는 거지 솔직히 맞나 틀리나도 그다지 신경쓰지 않음 너도 나보고 자꾸 ㅆㅇㅆ랑 동일인 같다고 우기잖음? 갤질하다보면 그럴 수도 있지
@에이도비 이 논리도 ㅆㅇㅆ가 이미 나는 외주받고 돈벌고 있는데 니네가 무슨 말을 하든 자긴 타격없다고 정신승리하는 논리랑 똑같지 그런데 그렇게 타격없고 영향없다면서 왜 프갤에서 인정받고 싶어서 아둥바둥하는지
@ㅇㅇ(211.234) 두 명이나 같은 반응을 보였다면 너 스스로를 돌아보는 게 맞지 않을까? 그리고 인정 받고 싶어서 아둥바둥하는 게 낫지 니가 갤에 와서 하는 게 뭐임? 남 혐오하고 감정 배설하는 거 밖에 없잖아. 너처럼 갤질하는 게 더 바람직하다고 봄?
@에이도비 역질문만 하지말고 내 말에 반박부터 하렴 정보 글에서 용어 궁금해서 물어본걸 혐오라고 받아들이는 이유가 뭘까 반박도 간단하게 되버린게 많이 억울한거니