네트워크, 클라이언트, 서버
아마 실무에서 가장 많이 쓰는 단어가 '서버', '백엔드', '클라' 일 거다. 데이터를 서버에서 '호출한다' 는 표현도 참 많이 쓴다. S/W를 구축할 때 'OO 버튼을 누르면 OO 페이지가 뜨도록 한다' 라는 간단한 기능을 만들 때에도 '백엔드'와 '클라'를 구축하는 순서와 각자 맡은 역할이 다르다. 이 외에도 앱을 구동할 때 '로딩이 오래 걸린다' 는 표현도 자주 쓰는데 어디에서 뭘 어떻게 '로드' 한다는 건지 기본적인 틀을 알고 이해하는 것과 모르는 건 다르다. LTE에서 5G까지 이제는 통신기술이 발달하면서 앱도 전부 설치해 놓고 쓰는 게 아니라 스트리밍 처럼 필요할 때만 쓰는 날이 올 거라고 하는데, 기술 발달의 속도가 빨라지면서 알아야 할 것도 점점 많아지니 미리 조금씩 기본 틀을 익혀 두면 도움이 될 것 같다.
앱에서 로그인 버튼을 누르면 내가 갖고 있는 스마트폰에서 로그인 처리가 끝나는 게 아니라, 내 스마트폰 App (프론트엔드) 에서 '로그인 요청'을 하고 서버에서 '기존에 ID가 있는지' 와 '정확한 ID를 입력했는지' 등을 판단해서 성공 혹은 실패 여부를 '응답'해 준다. 조금 더 상세히 들어가면 '토큰'이 생성되고 토큰에는 유효기간이 있어 로그인 후 일정 시간 동안 앱을 사용하지 않으면 자동으로 로그아웃이 된다고 알림을 준다.
이렇게 기본지식은 간단한 개념 몇 개 뿐이지만 실질적으로 구현하려는 기능 별로 다양한 기술이 쓰인다. access token 이나 refresh token 등 얼핏 복잡해 보이는 개념들도 서버와 클라이언트 라는 틀을 가지고 바라보면 생각보다 쉽게 이해할 수 있다. 기획자에게 필요한 건 어떤 로그인 방식이 서비스에 적절한지 판단하는 것, 로딩 속도가 빨라지도록 화면을 최대한 심플하게 기획하는 것, 로그인을 요청할 때와 응답할 때에 어떤 시나리오가 발생할 수 있는지 미리 알고 사용자에게 적절한 알림을 주는 것 등이라고 생각한다. 보안 수준을 높이기 위한 비밀번호의 길이나 형식 등은 보안 담당자분과 개발자분에게 믿고 맡길 필요가 있다.
참고 자료
<WAN? WLAN? 어디에 쓰는 걸까>, CCTVNews 최형주 기자, 2020.10.06., http://www.cctvnews.co.kr/news/articleView.html?idxno=210852
<토큰 기반의 로그인 인증 방법 이해하기 (JWT)>, by HomieKim, 2022.4.30., https://hoime.tistory.com/94
<앱 서비스 장애편 #1 - 화면 로딩 속도>, 손영수, 2021.03.03., https://blog.imqa.io/app_failure_launch_time/
<[마소캠퍼스] 5G가 모바일 앱 혁신을 위한 토대를 어떻게 마련할까요?>, https://www.masocampus.com/article-how-5g-will-pave-the-way-for-mobile-app-innovation/