@robin
@robin_makirobin 지금은 또 제대로 보이는 것 같네요…!?
robin
@robin@hackers.pub · 28 following · 39 followers
Github
- @robin-maki
@hongminhee洪 民憙 (Hong Minhee) 제 프로필에서 좀 내려보시면 작성자가 뒤바뀐 글을 보실 수 있어요
조합 창립을 준비하기 위해 정관 초안을 작성하고, 조합과 관련된 논의를 하게 될 디스코드 서버를 만들었습니다.
정관 초안은 https://docs.google.com/document/d/1_X-VykHlE-YrJG4abOIe49wiWJA81iQBtmBL5hGbgio , 디스코드 초대 링크는 https://discord.gg/SV28NM8rGS 에서 확인하실 수 있습니다.
기묘한 버그를 만들었다... 뭔가 부스트한게 갑자기 해커스펍에서 원본글 취급이 되어서 부스트를 부스트하는 바람에 이 계정 목록에서는 작성자가 둔갑당하고 링크의 아이디도 둔갑당했지만 누르거나 인용하면 원작성자로 뜬다... https://hackers.pub/@robin_maki@planet.moe/0199488c-1fa7-7354-8ddb-fa8912cf55a2
@z9mb1wwj
@catamorphicCata
@msy윤민석
@joonnotnotJoon
@d01c2Hyunjoon Kim
@icecream_mable구슬아이스크림
@minju2996bbang
@2chanhaeng이찬행
@lionhairdino
@akastoot악하
@jihyeokJihyeok Seo
@linea
@woaol벨
@theeluwin제이미
@ranghoRangHo Lee
@robin
@1ho1호
@nebuletoHaze
@morealLee Dogeon
@harei106Hannah Reinecke
@realfishbread최윤희
@jcha0713joohoon
@hyunjoon
@krepe90남기현 (Krepe)
@cetaceanightskyCetacea
@aiooAhn Kiwook
@ink_punctuation책 읽는 프로그래머
@yg1ee밀
오늘 Hackers' Public 행사 첫번째 모임에 와주셔서 정말 감사합니다! 정말 즐거웠습니다! 잘 들어가세요!
조합 창립을 준비하기 위해 정관 초안을 작성하고, 조합과 관련된 논의를 하게 될 디스코드 서버를 만들었습니다.
정관 초안은 https://docs.google.com/document/d/1_X-VykHlE-YrJG4abOIe49wiWJA81iQBtmBL5hGbgio , 디스코드 초대 링크는 https://discord.gg/SV28NM8rGS 에서 확인하실 수 있습니다.
발표란 건 많이 해봐야 느는 거니까... 다음에는 준비를 해서 발표를 할거에요
기습발표의 효과: 심박수 경고
지각확정이다...
완전 기대…!!
@hongminhee洪 民憙 (Hong Minhee) 으악! 정말 별거아니에요 그저 타임라인일 뿐이에요
밋업때 뭔가 보여줘야 할 거 같아서 열심히 달리는중
정말햄드네요...
무슨 연합우주 스캐너 같은 게 있나...?
@hongminhee洪 民憙 (Hong Minhee) 아이런... null을 undefined로 착각해서 이상하다 시그니처 맞췄는데 왜 오류나지 하고 있었네요... 이래서 밤샘코딩을 하지 말아야 하는데
sendActivity를 그냥 inbox URL만으로 하고 싶은데...
robin shared the below article:
자기소개

루 @roo_37@hackers.pub
연합우주에 첫 발을 내딛는 루/Roo입니다. SI 1년차 풀스택 웹 개발자로서 웹 개발 전반과 UI/UX, 접근성을 학습하며, DB와 데이터 엔지니어링에도 관심을 두고 있습니다. AI Vibe Coding, 설명 가능한 AI, AI 윤리와 같은 주제에도 흥미를 느끼며, Technical Writing, 번역, 다국어 처리에도 참여합니다. 취미로는 마작(작혼, 일번가, 천봉), 야구(삼성라이온즈), 닌텐도(피크민, 포켓몬), 만화/애니메이션 감상, 언어 공부(듀오링고 1880일), 별 보기, 풍경 사진 촬영, 동물 사랑 등이 있습니다. MBTI는 INFJ-T이며, 불안장애 및 우울증 치료 중입니다. 개발 이야기 외에 다양한 취미와 일상 이야기는 트위터(@Roo_star_)에서 만나볼 수 있습니다.
Read more →아예 .well-known/webfinger만 리다이렉트 걸어서 이메일 호스팅마냥 간단하게 커스텀 도메인 핸들을 주고 싶었는데 쉽지 않을 것 같다...
Actor의 uri 도메인과 웹핑거 핸들 도메인을 다르게 설정할 수 있는가?? (실행시켜본 건 아니고 코드만 봤을때) 마스토돈 - 일단 uri 도메인으로 웹핑거 쿼리를 때린 후 uri가 일치하면 된다 (그래서 여러 서버들이 uri 도메인을 같이 쓰는건 어려울듯...) 미스키 - 무조건 uri 도메인으로 넣어버리는 듯 하다...
아예 .well-known/webfinger만 리다이렉트 걸어서 이메일 호스팅마냥 간단하게 커스텀 도메인 핸들을 주고 싶었는데 쉽지 않을 것 같다...
Actor의 uri 도메인과 웹핑거 핸들 도메인을 다르게 설정할 수 있는가?? (실행시켜본 건 아니고 코드만 봤을때) 마스토돈 - 일단 uri 도메인으로 웹핑거 쿼리를 때린 후 uri가 일치하면 된다 (그래서 여러 서버들이 uri 도메인을 같이 쓰는건 어려울듯...) 미스키 - 무조건 uri 도메인으로 넣어버리는 듯 하다...
relation 정의 다 날려서 막막했는데 stash에 넣어놨었구나! 칭찬해 2주전의 나
혹시 나중에 pothos-drizzle을 쓸지도 모르는 미래의 나에게... 쓰지마... 2주전에도 오늘도 삽질했어... 지금 케이스가 pothos-drizzle로 해결하기엔 너무 복잡하다는걸 명심해...
오늘 알게 된 사실: SchemaBuilder의 옵션에 relay.node(s)QueryOptions.resolve로 node 쿼리를 직접 만들 수 있다... 진작에 알았으면 그냥 pothos-drizzle 썼을탠데... 이미 relation 짰던 거 다 날렸는데......
relation 정의 다 날려서 막막했는데 stash에 넣어놨었구나! 칭찬해 2주전의 나
한번 pothos-drizzle을 도입해보고 있는데요... drizzleNode로 오브젝트를 정의하면 node 쿼리 결과를 무조건 플러그인에게 맡겨야 하나요...? where를 추가로 건다거나 특정 노드는 필터링한다거나 그런 방법은 (그냥 node로 정의하기 빼고) 없나요...?
오늘 알게 된 사실: SchemaBuilder의 옵션에 relay.node(s)QueryOptions.resolve로 node 쿼리를 직접 만들 수 있다... 진작에 알았으면 그냥 pothos-drizzle 썼을탠데... 이미 relation 짰던 거 다 날렸는데......
그래도 한 5%정도 사이트의 꼬라지를 갖춰간다... 이번달 안에 (테스트로) 공개할 수 있겠지...?
쿼리도 뮤테이션도 프래그먼트도 내부스토어관리도 만들었다... 이제 개인용도 정도로는 사용할만 하지 않을까??? 그치만 relay-compiler 의존성을 버리고 싶다... 얘가 svelte 파일은 무시하고 쿼리도 무슨 리액트에나 맞는 이상한 네이밍 강요하고 수정해보려 해도 RIIR 당해서 플러그인 시스템도 사라지고 참별로다... 역시 페이스북이 만든 모든건 웹 생태계를 자기 중심에 맞추기 위한 음모다... (아무말)
컴파일러를 버리려면?? 역시 타입세이프 쿼리를 만들고 싶어...
일단 첫번째 목표였던 SvelteKit SSR에 맞게 load 함수에서 쿼리하게 만드는덴 성공했다... 이제 캐시 업데이트와 relay-compiler를 때려서 svelte 파일도 컴파일하도록 만들기와 그외등등이 남았다...
쿼리도 뮤테이션도 프래그먼트도 내부스토어관리도 만들었다... 이제 개인용도 정도로는 사용할만 하지 않을까??? 그치만 relay-compiler 의존성을 버리고 싶다... 얘가 svelte 파일은 무시하고 쿼리도 무슨 리액트에나 맞는 이상한 네이밍 강요하고 수정해보려 해도 RIIR 당해서 플러그인 시스템도 사라지고 참별로다... 역시 페이스북이 만든 모든건 웹 생태계를 자기 중심에 맞추기 위한 음모다... (아무말)
결국 SvelteKit용 자체 GraphQL 클라이언트를 만드는 중... (relay-runtime 기반이지만)
일단 첫번째 목표였던 SvelteKit SSR에 맞게 load 함수에서 쿼리하게 만드는덴 성공했다... 이제 캐시 업데이트와 relay-compiler를 때려서 svelte 파일도 컴파일하도록 만들기와 그외등등이 남았다...
@robin 삵은 어떻게 된 거죠!?
@hongminhee洪 民憙 (Hong Minhee) 회사의 사용 케이스에 너무 맞춰져 있기도 하고 relay랑은 잘 안 맞는 거 같아서요...
결국 SvelteKit용 자체 GraphQL 클라이언트를 만드는 중... (relay-runtime 기반이지만)
한번 pothos-drizzle을 도입해보고 있는데요... drizzleNode로 오브젝트를 정의하면 node 쿼리 결과를 무조건 플러그인에게 맡겨야 하나요...? where를 추가로 건다거나 특정 노드는 필터링한다거나 그런 방법은 (그냥 node로 정의하기 빼고) 없나요...?
요즘은 pothos-drizzle 쓸만한가...? 라는 내용을 해커스펍에 썼더니 갑자기 500으로 맞았다 이건 쓰지 말란 뜻일까...?
오늘의 서커스 내용 세션의 정보를 가져오는데 세션의 앱은 ApplicationGrants를 받아야 하고 세션의 프로필 ID는 ApplicationGrantProfiles으로 프로필별 승인을 받거나 전체 프로필 승인(ApplicationGrantProfiles.profileId == null)을 받야아 가져올 수 있는데 세션의 프로필을 헤더로 오버라이드할 수 있고 오버라이드된 프로필 역시 위 조건을 지키는 경우만 리턴되게 하는 쿼리를 짰어요
곰곰이 생각해보니 취약점이 있는 거 같아서 5중 조인으로 업그레이드되게 생김
SQL 조인 서커스가 진짜 머리아픈데 진짜 재밌어서 이거만큼은 손으로 짜고 싶어
오늘의 서커스 내용 세션의 정보를 가져오는데 세션의 앱은 ApplicationGrants를 받아야 하고 세션의 프로필 ID는 ApplicationGrantProfiles으로 프로필별 승인을 받거나 전체 프로필 승인(ApplicationGrantProfiles.profileId == null)을 받야아 가져올 수 있는데 세션의 프로필을 헤더로 오버라이드할 수 있고 오버라이드된 프로필 역시 위 조건을 지키는 경우만 리턴되게 하는 쿼리를 짰어요
SQL 조인 서커스가 진짜 머리아픈데 진짜 재밌어서 이거만큼은 손으로 짜고 싶어
@robin_makirobin 정확히 말하자면... 해커스펍의 3개 글은 AP에서 conversation을 노출하지 않았음에도 마스토돈 DB상에서 똑같은 conversation id를 부여받았지만 마스토돈에서 쓴 답글은 DB상에서도 새로운 conversation이 되었다!!
지금까지 내린 결론은... conversation은 아무래도 ostatus 시절 표준이기도 했고 딱히 필수는 아닌 것 같다... 가 결론 그치만 (DB상에) 있으면 답글 트리 가져오기 최적화에는 좋을 것 같다
@robin_makirobin 결과: 마스토돈에서 새로운 conversation을 만들어서 AP로 노출한다!! 그럼 이 위 글에 또 다른 서버에서 답글을 남기면 conversation이 분리되겠지??
@robin_makirobin 정확히 말하자면... 해커스펍의 3개 글은 AP에서 conversation을 노출하지 않았음에도 마스토돈 DB상에서 똑같은 conversation id를 부여받았지만 마스토돈에서 쓴 답글은 DB상에서도 새로운 conversation이 되었다!!
@robin 그럼 여기에 마스토돈에서 답글을 달면 이 Note에서는 conversation을 뭐라고 할까??
@robin_makirobin 결과: 마스토돈에서 새로운 conversation을 만들어서 AP로 노출한다!! 그럼 이 위 글에 또 다른 서버에서 답글을 남기면 conversation이 분리되겠지??
(연합 테스트용) 해커스펍은 ActivityPub Note에 별도의 ostatus conversation도 context도 없다 이걸 마스토돈에서 보면 임의의 conversation id를 만들어준다
어차피 이모지 데이터 다 tag에 딸려 들어오는데 서버-이모지 관계를 분리해서 처리하고 싶은데 그럼 연합되는 쪽에서 다 박살나겠지...
CmdV까진 되고 다운됐구나!! 맥북넌최고야 굿북굿북
지금 생각해보면? 커맨드키를 누른다고 다운되지 않는 노트북이 굿북이다 나쁜북못된북흉악한북!! 그치만 코드를 날려먹진 않았으니 용서해주지
구현한 코드를 모두 클립보드에 넣은 채로 컴퓨터가 다운되서 삶의 의지가 떨어진다... 과연 남아있을까
CmdV까진 되고 다운됐구나!! 맥북넌최고야 굿북굿북
구현한 코드를 모두 클립보드에 넣은 채로 컴퓨터가 다운되서 삶의 의지가 떨어진다... 과연 남아있을까
AI와 함께라면 대규모 리팩터링도 무서워!!
이제 온 연합이 지켜보고 있어서 더 이상 쓰레기 코드를 짤 수 없다
오늘의 디버그 일기 자꾸 액펍아카데미랑 플래닛에서 요청을 보내도 씹었다 근데 액티비티 워크샵에서 수동요청 만드니까 잘 받아줬다 알고보니 액터 디스패쳐에서 inbox를 http로 던져줘서 그런 거였다...
바이브 코딩(5분만에 생성하고 4시간동안 뜯어고치기)
전에 쿼리 두 번 날려서 처리했던 일을 삼중 조인으로 쿼리 한번으로 줄이는데 성공해서 기분이 좋아졌어
@hongminhee洪 民憙 (Hong Minhee)
@xiniha
@robin 어라, 저도 저거 쓰고 있는거 같은데요(아직 v3라 이름만 다른듯?). 저거 쓰면 권한없는거 null로 떨구지 않나요?
@bglbgl gwyng
@hongminhee洪 民憙 (Hong Minhee)
@xiniha 저도 scope-auth 플러그인을 사용하고 있긴 한데... 백엔드에서의 권한 처리보다는 스키마에서 권한에 따라 어떤 필드가 생기고 어떤 필드가 안 생기는지 그런 걸 의미적으로 클라이언트에게 보여주고 싶어서 채택한 구조였어서...
평소에 GraphQL 설계를 할 때 권한에 따라서 같은 리소스의 타입을 다르게 (예를 들어 프로필 타입을 MyProfile
과 PublicProfile
로 나눈 후 PublicProfile
에만 email
등의 필드를 구현한다던가) 하는 설계를 많이 했었는데 Relay에 호환되게 짜려고 하니 node(id) 구조랑 충돌하는 거 같아서 고민이다... id만으로는 그게 Public인지 My인지 알 수도 없고...
Minecraft server on-demand: 필요할때만 켜지는 마인크래프트 서버 구축하기
robin @robin@hackers.pub
이 글은 마인크래프트 모드 서버를 운영하며 겪은 시행착오와 해결 과정을 담고 있습니다. 서버를 항상 켜두는 대신 필요할 때만 자동으로 켜지도록 구성하여 비용을 절감하고자 했습니다. 이를 위해 Pulumi를 사용하여 AWS 인프라를 구축하고, RCON 프로토콜 대신 `netstat`을 활용하여 접속자 수를 정확하게 파악하는 방법을 소개합니다. 또한, IMDSv2 설정 문제와 ASG 환경에서 볼륨 마운트 실패 문제를 해결하는 과정도 공유합니다. 마지막으로, 서버 파일 EFS 이전 및 도커라이징을 통한 ECS 배포라는 향후 개선 방향을 제시합니다. 이 글은 마인크래프트 서버 운영 비용을 절감하고 자동화된 인프라를 구축하려는 사람들에게 유용한 인사이트를 제공합니다.
Read more →sark는 현존 최강의 Svelte GraphQL 클라이언트다 (이렇게 말하면 더 좋은것들이 나오나요?)
안녕 해커스펍! 이제 정말로 열심히 개발블로그 같은걸 써볼거에요 (시즌 2147483647호)