파일 시스템의 한계, DBMS와 소셜 로그인
#회고
DBMS를 본격적으로 공부하기 전까지,
나는 데이터 저장에 대해 꽤 단순하게 생각했다.
서버에 텍스트 파일을 올려두고 필요할 때 읽고 쓰면 그게 곧 데이터베이스 아닌가?
파일 시스템으로도 충분히 구현 가능한데,
굳이 복잡해 보이는 DBMS를 써야 할 이유가 있을까?
이 생각을 바탕으로 실제 프로젝트인 ‘레바테일’을 파일 시스템 기반으로 개발했다.
처음에는 모든 게 단순하고 직관적으로 느껴졌다.
파일을 생성하고, 내용을 쓰고, 필요할 때 읽어오는 구조는 이해하기 쉬웠고 빠르게 구현할 수 있었다.
하지만 프로젝트가 점점 커지면서, 이 방식은 점점 한계를 드러내기 시작했다.
가장 먼저 부딪힌 문제는 데이터 수정과 관리의 불편함이었다.
특정 데이터를 수정하려면 파일 전체를 읽어와 파싱한 뒤,
원하는 부분을 찾아 수정하고 다시 저장해야 했다.
또한 동시성 문제도 심각했다.
여러 사용자가 동시에 같은 파일에 접근할 경우, 데이터가 꼬이거나 덮어씌워지는 문제가 발생했다.
이를 막기 위해 락(lock) 처리나 별도의 제어 로직을 추가해야 했지만,
이 역시 구현이 쉽지 않았고 코드의 복잡도만 증가시켰다.
결국 파일 시스템만으로는 안정적이고 확장 가능한 서비스를 만들기 어렵다는 것을 깨달았다.
단순한 프로젝트 단계에서는 충분할 수 있지만,
실제 서비스로 발전시키기에는 구조적인 한계가 분명했다.
이러한 문제를 해결하기 위해 자연스럽게 DBMS에 관심을 가지게 되었다.
DBMS는 단순히 데이터를 저장하는 도구가 아니라,
데이터의 무결성을 보장하고, 동시성을 제어하며,
효율적인 검색을 가능하게 해주는 시스템이라는 것을 이해하게 되었다.
내가 직접 구현하려고 애썼던 많은 기능들이 이미 잘 설계된 형태로 제공되고 있었던 것이다.
그리고 이와 함께 사용자 인증 방식도 개선할 필요를 느꼈다.
기존에는 직접 로그인 시스템을 구현했지만, 보안과 관리 측면에서 부담이 컸다.
그래서 소셜 로그인을 도입하기로 했다.
이를 통해 사용자 인증 과정을 간소화하고, 보안성을 높이며, 사용자 경험 또한 개선할 수 있었다.
이렇게 해서 시작된 프로젝트가 바로 ‘힘내라 교통쨩’이다.
이 프로젝트는 단순한 기능 구현을 넘어,
기존의 문제를 해결하고 더 나은 구조를 적용해보려는 시도의 결과물이다.
파일 시스템 기반 개발에서 느꼈던 한계를 극복하고,
DBMS와 소셜 로그인이라는 새로운 도구를 통해
한 단계 더 발전한 시스템을 만들어가는 과정이라고 할 수 있다.
돌이켜보면, 파일 시스템으로 시작한 경험은 결코 헛되지 않았다.
오히려 그 한계를 직접 겪어봤기 때문에, DBMS의 필요성과 가치를 더 깊이 이해할 수 있었다.
이제는 단순히 “왜 DBMS를 써야 하는가?”가 아니라,
“어떤 상황에서 어떻게 활용해야 하는가?”를 고민하는 단계로 나아가고 있다.
