SQL 조인 서커스가 진짜 머리아픈데 진짜 재밌어서 이거만큼은 손으로 짜고 싶어
robin
@robin@hackers.pub · 34 following · 46 followers
Github
- @robin-maki
오늘의 서커스 내용 세션의 정보를 가져오는데 세션의 앱은 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호)


