본문 바로가기

Android/랜덤리즘

[랜덤리즘] 로그인 구현 대작전 -1

지금까지는 사용자가 풀지 않았거나 풀었거나의 여부와는 상관없이 문제를 보여주었다.

사용자가 풀었던 문제는 보여주지 않고 풀지 않았던 문제들을 보여주기 위해서는 로그인 기능이 필요하게 되었다.

그래서 작성하는 로그인 구현 대작전!

 

솔브드에서의 로그인은 솔브드에서 로그인 버튼을 누르게 되면 백준 온라인 저지 사이트로 이동한다.

백준 사이트에서 로그인이 완료되어 솔브드로 연동된다는 버튼을 클릭하게 되면, 솔브드에서의 로그인 과정이 성공적으로 끝난다.

 


그렇다면 솔브드의 api를 사용하는 나는 어떻게 로그인을 구현해야 할까?

가장 먼저 생각한 것은 랜덤리즘에서도 로그인 버튼을 클릭하면 솔브드처럼 로그인의 과정을 거치는 것이다.

 

근데 생각해보라 ...

그렇다면 사용자는 랜덤리즘 .. 솔브드 .. 백준 .. 의 과정을 거치게되는데 내가 사용자여도 엥? 이게뭐임 ..? 하는 생각이 들 정도로 비효율적이라는 생각이 들었다 .. 

 

그러다가 솔브드 api 문서를 뒤적 .. 뒤적이다가 간단한 사용자의 정보를 가져올 수 있다는 것을 알았다.

 

 

그래서 이런 과정을 통해 사용자가 푼 문제를 가져오면 좋을 것 같다는 생각이 들었다!

그리고 DataStore에 아이디를 저장해서 다음에 다시 이용하게되었을 때 DataStore에 저장된 아이디를 통해 가져오는 것!


따로 회원가입을 진행하지 않는 이유?

회원가입을 진행한 아이디는 또 똑같이 만들지 못한다. (고유해야하기때문에)

물론 그럴 일은 없겠지만 .. 혹시나 .. 다른 사람의 백준 아이디와 같게 만든다면, 기존 아이디 이용자는 아예 서비스를 사용할 수 없을 것이다.

그리고 단순히 기존에 풀지 않았던 문제인지 아닌지를 확인하는 용도외에는 다른 기능이 없기때문에 회원가입의 필요성을 못느끼기도 했다.

어차피 PC로 코드를 작성해서 제출해야하므로 백준 사이트에서 로그인을 할테니까

그렇다면 아이디를 작성하는 부분에서도 다른 사람의 아이디를 넣으면 어떡하나? 하는 의문이 들 수도 있을 것 같다.

결론적으로 말하자면 상관없다 ... 

내가 풀지 않았던 문제 중에서 추천을 받는 것인데 다른 사람의 문제 목록과 비교해서 하는 것은 무슨 소용이 있나 ..?

하등 쓸모가 없다 ..

 


 

아이디 확인이 완료되면 문제를 가져와서 비교하는 플로우는 아래와 같을 것 같다!

 

 

문제를 가져올 때 1문제가 아니라 50문제지만 .. 어쨌든 ..

일치하는 문제들은 건너뛰고 일치하지 않는 문제만 화면에 보여준다!

 

 

로그인 .. 접속 .. 어서오세요~