2024-11-07
2024.11.07
따라하면서 배우는 노드 기본 강의를 듣는데, 이상하게 자꾸 뭔가 막히고 집중이 안 되는 현상을 경험하였습니다.
원인을 알 수 없어서 며칠 간 다른 강의들을 우선적으로 듣고 다른 작업을 하고 있었는데, 그 원인을 오늘 알게 되어서 정리하게 되었습니다.
막힌 부분: 비밀번호 해싱 및 로그인
막힌 이유: 비밀번호 해싱 과정 및 로그인 플로우의 절차적인 순서에 대해서 스스로 정리하지 않았습니다.
해결 과정: 순서 다이어그램을 가지고 이해한 순서를 정리해보았습니다. (mermaid 문법, 강의 내용과 다른 부분 존재)
sequenceDiagram Client ->> Server: POST /login { email, password } Server ->> Database: SELECT name, email, password_hash FROM user WHERE email = ? alt user exists Database -->> Server: (user_id, name, email, password_hash) alt password_matches(password, password_hash) Server ->> Session: save { user_id } alt Session -->> Server: Success <random-sid> Server -->> Client: 200 OK, Set-Cookie: sid=<random sid> else Session -->> Server: Error Server -->> Client: 500 Internal Server Error end else password does not match Server -->> Client: 401 Unauthorized end else user does not exist Database ->> Server: null Server -->> Client: 409 Conflict? end별해?: 강의와 같이 제공되는 참고자료와 겹치는 내용도 많기 때문에 제가 그 자료를 읽고 정리해 꼼꼼히 이해했다면 문제를 겪지 않았을 것 같습니다.
간단한 알고리즘 문제를 풀 때의 경우에는 의식적으로 절차적인 순서를 정리하려고 하지 않아도 문제 해결 과정에서 어떻게 해야 하는지를 손으로 필기하는 편인데, 이렇게 달라진 유형(?)으로 마주하다 보니 '절차적인 순서를 정리해야겠어!'라는 생각이 아닌, '왠지 모르지만 자꾸 막히네...' 하는 생각이 들어서 해결하는 데 시간이 조금 더 걸렸던 것 같습니다.
댓글을 작성해보세요.
단순한 분기문이 왜 생각이 안 났는지를 계속 고민해보고 있는데요...
잠이 덜 깼다.오늘만 해당됩니다. 막힌 것 같은 느낌이 드는 것은 며칠 되었습니다.로그인 기능이 구체적으로 어떻게 동작하는지에 대해서 평소에 주의깊게 살펴보지 않았다.
멍하니 있다 보니 의식적으로 로직을 생각하는데 주의를 집중하지 않았다.
등이 있는 것 같습니다.