Skip to content

Day 02 개발일지 Web

mon823 edited this page Nov 20, 2020 · 5 revisions

Day 02 개발일지

좌충우돌 TOTP 시작

  • 멘토님의 상세 스펙을 바탕으로 머리를 모아서 프로젝트의 흐름을 구상하여 나름의 Flow Chart를 만들어봤다.
  • Web Server에서는 Mysql을 사용하여 users, auths, has_session table 을 만들어 사용자 정보와 접근을 끊기 위한 정보들을 저장하기로 했고, Redis를 사용하여 Key : session, value : true or false 의 Key:Value 형태로 사용하기로 했다.
  • 흐름을 간단히 설명해보면,
    1. 일반적인 모든 요청 인증 로직
      • 클라이언트가 서버로 세션을 담은 요청을 보낼 때 Redis에서 세션이 존재하는지 확인하고
        1. 있다면 요청을 수행
        2. 없다면 로그인창으로 Redirect 시켜준다.
    2. 차단 요청 로직
      • 클라이언트가 현재 로그인 정보가 있는 특정 웹/디바이스의 login을 만료 시키는 요청을 보냈을 때 has_session 테이블에서 유니크 키를 사용하여 세션 값을 찾고
      • 찾은 세션 값이 Redis에 존재하는지 확인한다.
        1. 있다면 session을 삭제
        2. 없다면 아무것도 하지 않는다. image

image

고민사항

  • SecretKey를 서버가 가지고 있어도 되나..?
  • csrf에 대한 방어 적용은 어떻게 해야할까 ???

iOS BackEnd

  • 처음에는 iOS와 WEB이 같은 프로젝트를 구현하는줄 알았지만 iOS에서 구현하는 앱을 WEB에서 사용하는 구조로 프로젝트가 진행된다 !
  • Web Server DB의 설계가 끝날 때쯤 등장한 것이 바로 iOS에도 로그인과 유저가 가지고 있는 장치, 비밀키를 보여줘야 한다는 것이다 !
  • 때문에 User 정보를 저장해야하고, 사용자가 가지고 있는 SecretKey를 보여주는 페이지와 Device를 보여주는 페이지를 보여주기 위해 user, token, device 테이블이 필요하다 생각했고 token, device 테이블이 user를 참조하도록 설계하였다.
  • 나머지 부분은 좀 더 진행해보면서 맞춰가야할 것 같다.

개인 회고

강진구

  • 화상으로만 뵙다가 실제로 만나뵈서 너무 좋았습니다 !
  • 멘토님이 주신 세부스펙을 봤을 때는 아는 용어들이지만 프로젝트의 흐름이 이해가 잘 되지 않았는데 함께 머리를 맞대고 고민하면서 직접 인증도 진행해보니 프로젝트를 어떻게 진행해야할지 쉽게 알게되었습니다 !!
  • 다들 의지가 넘쳐나고 열심히 하는 모습을 보니 얼른 프로젝트를 구현하고 추가적인 구현도 함께 해보고 싶다는 욕심이 생겨났습니다 ~!!

문석암

  • 직접 만나니 의사소통이 빨라 좋았습니다.

이도경

  • 처음으로 모여서 작업을 했는데 생각보다 수월하게 진행된 느낌
  • DB 스키마를 다같이 만드는게 고된 작업이었지만 프로젝트를 많이 이해할 수 있게 되어서 도움이 많이 된 것 같다
  • TOTP 부분은 이제 이해가 어느정도 되었는데, 다른 보안관련된 부분에서는 조금 더 공부가 필요할 것 같다 (SSL, TLS, HTTP 등..)
Clone this wiki locally