[SSE/moAuth] 문자 인증 구현1 : SSE

서혜선·2023년 9월 23일
0

우당탕탕

목록 보기
1/3
post-thumbnail

입사 후 처음으로 신규 프로젝트에 참여하게 되었다.
이전까지는 기존 서비스의 유지보수를 담당하고 있었는데, 생각보다 빠른 진도(?)에 당황했지만 그래도 좋은 경험이 될 것 같아 두려움 반, 설렘 반이었다.

신규 프로젝트에서 가장 중요한 부분이 회원가입과 로그인이었는데,
타겟 유저의 연령과 특성을 고려해 최~~~대한 간편하고, 빠르게 가입을 유도해야만했다.
또한 익명성이 중요한 서비스여서 입력을 최소화하고 개인정보를 수집하는데 거부감이 없게 구현을 해야했다.
그때문인지 생각보다 회원가입과 로그인의 설계가 길어졌는데, 최종적으로 귀결된 내용은 'sse방식을 도입해 문자인증을 통해 유저의 개인정보를 수집하자'는 것이었다.

우선 둘 다 너무 생소한 개념이어서 혼란 그자체였다 🌪️🌪️🌪️


여기서 생소한 개념들이 많이 나오는데, 먼저

폴링(Polling)은

  • 클라이언트에서 서버에 데이터를 반복적으로 요청하는 것.
  • 프로그램의 상태를 주기적(일정 간격)으로 검사해, 데이터 갱신이 있는지 확인하고, 갱신되면 응답을 받는 방식.
  • 주기가 짧으면 서버에 당연히 부담이 가고, 주기가 길면 실시간으로 체크할 수 없다는 단점이 있다.
  • 언제 사용할까?
    - 응답을 실시간으로 받지 않아도 될때
    - 데이터 갱신이 특정 주기를 가질 때


긴 폴링(Hanging GET/COMET)은

  • 폴링의 변형으로, 요청을 보냈을때 서버에서 응답을 바로 보내지 않고 특정 이벤트나 타임아웃이 발생했을때 응답을 전달하는 방식.
  • 유지시간을 좀 더 길게 갖는 점에서 Polling과 차이가 있다. 이때, 정보가 있으면 결과를 보내주고, 없으면 정보가 있을때까지 대기
  • 유지 시간 동안은 실시간성을 가지게 되고, 반복적으로 요청을 계속 보내지 않아도 되기 때문에 Polling에 비해 부담이 덜하다.
  • 언제 사용할까?
    - 응답을 실시간으로 받되, 상태가 자주 갱신되지 않을 경우



    그럼 우리가 사용하게 될

Server-Sent Events(SSE)은

  • sse 역시도 서버에서 클라이언트로 단일 단방향 채널을 여는 방식.
  • 웹소켓의 역할을 하지만 더 가볍다는 장점이 있다고 한다.
  • 특별한 프로토콜이나 서버구현이 없이 전통적인 HTTP방식을 사용
  • 언제 사용할까?
    - 주로 서버에서 받는(push) 위주의 작업에 유용하게 사용




우리는 서버로부터 문자인증을 통해 데이터를 받기만 하면 됐기때문에, sse가 가장 적합하다고 판단햇다.
그리고 우리의 서비스는 RN으로 만들고 있어서, sse를 지원하는 라이브러리를 사용하기로 했다.

해당 코드 및 구현은 2편에서,,,

👉 Polling / Long-polling / sse 한눈에 보기

profile
FE, 기록하고 기억하기

0개의 댓글