Splync v1.0에서 Splync v1.1로
Splync에 가입할 때 이메일 주소와 비밀번호를 입력해야 합니다. 이전 기사에서 소개했듯이 Splync v1.0에는 이미 기본적인 보안 조치가 포함되어 있었습니다. 데이터 전송은 HTTPS로 보호되었습니다. 서버는 SSH로 안전하게 보호되어 개발자 외에는 접근할 수 없었습니다. 비밀번호는 평문으로 저장되지 않고 데이터베이스에 해시되어 아무도 해독할 수 없었습니다. 하지만 v1.0의 비밀은 계정 생성 과정에서 이메일 인증이 없었다는 것입니다. Splync는 MVP(최소 기능 제품)로서 이 기능 없이 출시되었는데, 당시 앱은 친구들만 알고 있는 단계였습니다. v1.0에서는 입력한 이메일에 “@”가 포함되어 있는지, 기존 계정 중 고유한지 여부만 확인했습니다.
이메일 인증이 없으면 어떻게 될까요
앱이 사용자에게 계정을 만들 때 신원을 확인하지 않으면 다른 사람의 이메일 주소로 계정을 쉽게 만들 수 있습니다. 바로 그런 일이 일어날 수 있습니다. 이는 데이터가 유출된다는 뜻은 아니지만, 이미 사용된 이메일 주소로는 자신이 등록할 수 없다는 뜻입니다. 게다가 완전히 허구의 이메일 주소로 계정을 만들 수도 있습니다. 처음에는 심각해 보이지 않을 수 있지만, 개발자가 나중에 요금을 부과하거나 사용자에게 연락하려 하면 큰 문제가 될 수 있습니다. 그 사람의 정체를 전혀 알 수 없기 때문입니다. 그래서 Splync는 이메일 인증을 다음 단계로 삼았습니다.
이메일 인증은 어떻게 작동하나요
Splync v1.1에서 새로운 사용자가 가입하면 앱은 자동으로 입력된 이메일 주소로 이메일을 보냅니다. 이 이메일에는 고유하게 생성된 인증 링크가 포함되어 있습니다. 사용자가 해당 링크를 클릭하면 이메일 계정에 실제로 접근할 수 있음을 확인하게 됩니다. 인증이 완료되면 서버는 사용자의 계정을 활성화하고 데이터베이스에 유효하고 인증된 사용자로 저장합니다. 익숙하지 않나요? 이 과정은 Splync의 모든 계정이 실제로 연락 가능한 사람에게 속하도록 보장합니다. 이는 신뢰할 수 있는 커뮤니티 구축을 위한 작지만 중요한 단계입니다. 기술적으로 이 흐름이 어떻게 구현되는지 자세히 살펴봅시다.
이메일 인증의 기술적 구현
Splync의 백엔드는 Python/FastAPI를 사용하고, 모바일 앱은 SwiftUI로 제작되었습니다. 앱은 사용자 인터페이스만 처리하며, 인증 로직과 민감한 자격 증명은 서버에 안전하게 남아 있습니다. v1.1에서는 “미인증 사용자”와 “인증 사용자” 사이에 표준 이메일 인증 단계를 추가했습니다. 새로운 사용자가 가입하면 앱은 입력된 데이터를 서버로 전송합니다. 서버는 MariaDB 데이터베이스를 가지고 있으며, 사용자를 미인증 상태로 데이터베이스에 저장합니다. 비밀번호는 해시되어 저장되지만 계정은 아직 활성화되지 않습니다. 그 순간 서버는 만료 시간이 있는 고유한 인증 토큰을 생성합니다. 다음으로 SMTP(간이 메일 전송 프로토콜) 서버를 사용해 보안 링크가 포함된 인증 이메일을 보냅니다. 사용자가 링크를 열면 서버는 토큰이 유효하고 만료되지 않았는지 확인합니다. 인증이 완료되면 계정이 활성화되고 사용자는 앱에서 정상적으로 로그인할 수 있습니다. 이는 인증을 안전하고 가볍게 유지합니다.
Python? FastAPI? SwiftUI? SMTP? MariaDB
이것들이 비밀 코드처럼 들린다면 걱정하지 마세요 — 시스템이 함께 작동하게 하는 도구일 뿐입니다. Splync의 가입 과정을 고객지원센터의 신원 확인 과정이라고 생각해 보세요. “이름과 이메일 주소를 알려주시겠어요?”라고 프론트 데스크의 친절한 오퍼레이터 SwiftUI가 묻습니다. 당신이 정보를 알려주면 그녀는 “잠시 기다려 주세요”라고 말합니다. 그녀는 즉시 FastAPI, 사무실의 내부 전화 시스템에 정보를 전달합니다. FastAPI는 이를 검증 담당자인 백오피스 전문가 Python에게 연결합니다. Python은 고객 데이터베이스인 MariaDB에 정보가 안전하게 기록되었는지 확인하며 “미인증”으로 상태를 표시합니다. 그런 다음 Python은 외부 메신저인 SMTP에게 보안 링크가 포함된 확인 이메일을 보내달라고 요청합니다. 링크를 클릭하면 Python이 유효성을 확인하고 MariaDB의 기록을 “인증됨”으로 업데이트합니다. 마침내 FastAPI는 오퍼레이터에게 신원이 확인되었음을 알려주고 계정이 활성화됩니다. 이 부품들이 함께 작동하여 Splync의 인증 과정을 인간적이고 안전하게 만듭니다.
Splync의 보안 여정의 다음 단계
이메일 인증은 작은 기능처럼 보일지 모르지만, 신뢰에 관한 모든 것을 변화시킵니다. 이는 Splync가 친구들 간의 개인 프로젝트에서 누구나 자신 있게 가입할 수 있는 공공 앱으로 진화하는 순간을 의미합니다. SMTP를 통해 인증 링크를 보내는 것은 Splync가 새 사용자와의 첫 악수를 하는 것과 같습니다. 이 기능은 비밀번호 재설정, 다중 인증, 계정 복구 등 향후 개선을 위한 토대를 마련합니다. 보안의 모든 계층은 이전 계층을 기반으로 구축됩니다. 이메일 인증과 함께 Splync v1.1은 의미 있는 진전을 이룹니다 — 공동 비용 관리가 더욱 편리할 뿐만 아니라 진정으로 신뢰할 수 있게 됩니다.