프로그램

SteamAchieve

스팀 계정의 업적 진행도를 한 화면에서 보는 윈도우 앱. 서버가 없는 완전 로컬 도구라 입력한 API 키는 이 PC를 벗어나지 않는다. 내가 만든 것 중 유일하게 남에게 건네 본 물건이고, 그 과정에서 받은 지적이 그대로 다음 버전이 됐다.

2026AI 활용대표작

스크린샷

2

왜 만들었나

스팀에는 업적이 게임마다 흩어져 있습니다. "내가 전체로 얼마나 깼는지", "조금만 더 하면 완벽 달성인 게임이 뭔지"를 보려면 게임을 하나씩 열어 봐야 했습니다.

그래서 보유 게임 전체를 한 번에 훑어 홈·라이브러리·추천·친구 네 화면으로 정리하는 도구를 만들었습니다.

서버를 두지 않았다

이 앱은 서버가 없습니다. 스팀이 공개한 Web API 에 이 PC 가 직접 붙습니다.

그래서 API 키가 남의 서버를 지나갈 일이 없습니다. 키는 %APPDATA%\SteamAchieve\ 에 Windows DPAPI 로 암호화해 두는데, 지금 이 윈도우 계정에서만 풀립니다. 파일만 복사해 다른 PC 로 옮겨도 열리지 않습니다. 처음에는 이 키를 발급 페이지에서 복사해 손으로 붙여넣어야 했는데, 지금은 앱 창 안에 스팀 로그인 화면을 띄워 그 자리에서 받아 채울 수 있습니다. 로그인 창에 친 비밀번호는 스팀 서버로만 가고, 앱은 읽지도 저장하지도 않습니다.

스팀 외에 자동으로 접속하는 곳은 "새 버전 확인" 하나입니다. 처음에는 옵트인이라 꺼 두면 그만이었지만, 있는 줄도 모른 채 옛 버전에 머무는 사람이 있어 지금은 끌 수 없이 항상 켜져 있습니다. 실행할 때마다, 그리고 켜 둔 동안은 하루 한 번 릴리스 페이지에 인증 없는 GET 을 보낼 뿐이고, 키도 SteamID 도 싣지 않습니다.

"0%"와 "모른다"를 구분한다

스팀에서 "게임 세부 정보"를 비공개로 두면 업적 목록은 보이는데 내가 그걸 깼는지만 403 으로 막힙니다.

이때 0% 로 그리면 "하나도 못 깼다"로 읽힙니다. 사실이 아닙니다. 그래서 이 앱은 그런 항목을 "미확인" 으로 따로 셉니다. 친구 비교에서도 "미확인"과 "비공개"를 나눠 셉니다. 둘을 합치면 상대가 잠가 놓아 영영 못 보는 것을 "아직 안 받았다"로 읽어, 새로 고침을 눌러 가며 기다리게 됩니다.

게임을 하는 동안

스팀 웹 API 는 방금 깬 업적을 1~4분 늦게 알려 줍니다. 그래서 지금은 이 PC 의 스팀 클라이언트가 갱신하는 로컬 캐시 파일을 함께 읽어, 업적을 깨면 몇 초 안에 화면에 반영합니다. 그 파일은 읽기만 하고 고치지 않습니다.

게임을 하는 동안 이 앱을 계속 앞에 띄워 두지 않아도 되도록 작은 창(미니 창)도 만들었습니다. 지금 하는 게임의 업적을 그 창 하나로 계속 보여 주고, 게임을 끄거나 다른 게임으로 바꾸면 곧바로 따라갑니다.

남에게 주면서 배운 것

공개 배포를 준비하다가 이미 올린 스크린샷에 내 스팀 닉네임과 지인의 닉네임·게임 수가 그대로 있는 것을 지적받았습니다. 지인의 정보는 본인 동의 없이 제 배포물에 실릴 것이 아닙니다.

그래서 가리개를 한 곳으로 모으고, 배포 전에 기계가 막게 했습니다. 커밋 신원, 공개용 스크린샷 표식, 압축을 푼 결과물까지 검사해 하나라도 걸리면 배포 자체가 멈춥니다. 사람이 기억해서 지키는 규칙은 언젠가 빠뜨립니다.

첫 공개 이후 들어온 지적은 대체로 "기능이 없다"가 아니라 "그래서 내가 이겼나" 같은 것이었습니다. 친구와 게임별 승패는 보이는데 결론이 한눈에 안 들어온다는 말이었고, 비교 제목에 "내가 앞섭니다 (+12)" 한 줄을 붙였습니다. 마우스에 뒤로가기 버튼이 있는데 안 먹는다는 말에는 4번 버튼과 Alt+← 를 붙였습니다.

정직하게 말해 둘 것

코드 서명 인증서가 없어 SmartScreen 경고가 뜹니다. 개인이 만든 무료 도구에 인증서를 사는 것은 과하다고 판단해, 대신 릴리스마다 SHA256SUMS.txt 를 함께 올려 받은 파일이 원본인지 확인할 수 있게 했습니다.

Valve 와 무관한 비공식 도구이고, 스팀이 공개한 Web API 만 씁니다.

구성

파이썬과 tkinter 로 만들고 PyInstaller 로 단일 exe 를 굽습니다. 소스 114개 파일 약 39,700줄, 테스트 120개 파일 약 34,300줄입니다.

UI 는 한국어와 영어를 모두 제공합니다. 2026-09-03 에 저장소를 만들어 09-05 에 처음 공개했고, 지금은 v0.5.23 입니다.