TECH 으로 돌아가기
TECH HACKER NEWS 오늘 6분 읽기 28 READS

GET만으로 굴러가는 SNS 'GET Together', HTTP 규약을 뒤집은 실험

HTTP 요청 방식을 조금이라도 다뤄본 개발자라면 "조회는 GET, 생성·변경은 POST"라는 규칙을 몸으로 익히고 있을 것이다. 해커뉴스에 소개된 'GET Together'는 바로 그 상식을 정면으로 비트는 소셜 네트워크다. 이름부터가 말장난이다. "글을 올리는(Post) 데 POST가 필요 없는 소셜 네트워크". 글쓰기, 하트, 삭제, 답글까지 모든 동작이 오직 HTTP GET 요청으로만 이뤄진다. 글은 전부 공개되고 최신 글이 위에 오는, 그야말로 최소한의 타임라인이 전부다.

브라우저 주소창이 곧 작성 도구

사용법은 극단적으로 단순하다. /post?name=alice&text=hello를 호출하면 글이 등록되고, 성공하면 새 글의 ID가 돌아온다. 피드는 /feed가 JSON으로 내려주고, 하트는 /heart?id=…&on=1로 켜고 on=0으로 끈다. 자기 글은 /delete?id=…로 지운다. 답글은 parent=POST_ID를 붙여 달고, /feed?parent=POST_ID로 원글과 답글을 함께 받아온다. 답글에 답글도 가능하며, 원글을 지워도 다른 사용자의 답글은 남는다. 이름은 2~20자의 영문·숫자·밑줄만 허용되지만 고유성 검증이나 본인 확인이 없어 누구나 같은 이름을 쓸 수 있다.

흥미로운 지점은 재시도(retry) 처리다. ID를 비워 보내면 서버가 매번 새 글을 만들기 때문에, 네트워크가 불안정할 때 같은 요청을 두 번 보내면 중복 글이 생긴다. 이를 막으려면 클라이언트가 직접 UUID 형태의 id를 만들어 보내고, 같은 쿠키와 함께 동일한 id를 재사용해야 한다. 이는 결제 API 등에서 쓰는 멱등성 키(idempotency key)와 같은 발상으로, GET이 본래 가져야 할 안전성·멱등성을 애플리케이션 계층에서 억지로 흉내 내는 구조다.

쿠키로 소유권을 붙잡는다

글쓰기 자체에는 쿠키가 필요 없지만, 나중에 자기 글을 지우려면 서버가 돌려준 gt_session 쿠키를 보관했다가 다음 요청에 실어 보내야 한다. cURL이라면 -b cookies.txt -c cookies.txt로 저장하고 재사용하며, 이 파일은 사실상 계정 열쇠이므로 외부에 노출되면 안 된다. 로그인도 비밀번호도 없이 세션 쿠키 하나로 소유권을 증명하는 방식인데, 가볍다는 장점과 쿠키를 잃으면 통제권도 사라진다는 단점이 동시에 존재한다.

모더레이션도 나름 갖춰져 있다. 새 글과 이름은 영어 욕설과 암호화폐 관련 내용을 걸러내며, 비트코인·밈코인·토큰 홍보는 금지된다. 신고가 들어오면 자동 남용 검토가 돌아가지만, 명백한 위반만 숨겨질 뿐 신고했다는 사실만으로 글이 사라지지는 않는다. 프라이버시 경고도 분명하다. 글은 전부 공개이고 본문이 URL의 일부가 되므로 개인정보를 절대 넣지 말라는 것이다.

실무자가 곱씹어 볼 지점

이 프로젝트가 재미있는 건 단순한 장난을 넘어 웹 기초를 되짚게 만들기 때문이다. RFC상 GET은 서버 상태를 바꾸지 않는 안전한 메서드로 정의된다. GET Together는 그 규약을 어겼을 때 무엇이 무너지는지를 실물로 보여준다. 우선 본문이 URL 쿼리스트링에 실리므로 서버 접근 로그, 브라우저 히스토리, 프록시 캐시, 리퍼러 헤더 곳곳에 글 내용이 그대로 남는다. "URL에 민감정보를 담지 말라"는 보안 권고가 왜 존재하는지 이보다 선명한 예시는 드물다.

또한 브라우저나 중간 캐시가 GET 응답을 캐싱하거나 프리페치하면서 의도치 않게 요청이 실행될 수 있고, URL 길이 제한 탓에 긴 글은 애초에 올라가지 않는다. 상태를 바꾸는 링크가 공개돼 있다는 점은 CSRF 관점에서도 교과서적 위험 신호다. 서버가 UUID 기반 멱등성과 세션 쿠키로 이런 문제를 부분적으로 방어하려는 모습은, 역설적으로 POST와 CSRF 토큰 같은 관행이 왜 자리 잡았는지를 되짚게 한다.

결국 GET Together는 프로덕션에 쓸 서비스라기보다 HTTP 메서드의 의미를 몸으로 체감하게 하는 교보재에 가깝다. cURL 한 줄로 글을 올리고 피드를 JSON으로 받아오는 경험은 API를 처음 배우는 사람에게 직관적인 실습 도구가 될 수 있고, 반대로 숙련된 개발자에게는 우리가 당연하게 지켜온 규약의 근거를 다시 확인시켜 준다. 규칙을 깨보는 실험이야말로 그 규칙의 존재 이유를 가장 또렷하게 드러낸다는 점에서, 이 작은 SNS는 제 몫을 하고 있다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://gettogether.dev
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기
처리 중...