2023. 8. 1. 15:09, 크래프톤 정글/웹
app.post('/login',(req,res)=>{
const {username, password} = req.body;
const user = database.filter((user)=>{
return user.username===username;
})
if(user.length===0){
res.send('해당하는 id가 없습니다');
return;
}
if(user[0].password!==password){
res.send('패스워드가 틀립니다.');
return ;
}
res.send('로그인 성공!');
})
현재 보고있는 유튜브 영상에서 위와 같은 형태로 코드를 작성해서 유저를 회원가입 시키는 형태의 코드를 작성했다.
그때에 filter() 메서드를 사용하였는데, 해당 영상에서는 이 메서드의 경우 database 에서 filter함수에 제공한 조건이 참인 것들을 배열로 반환하는 함수라고 설명을 해주었다.
위 코드에 대해서 gpt에 검색해보았다.
이와 같은 답변을 얻을 수있었고
filter() 메서드에 대해서 검색해보았다.
위와 같은 답변을 얻을 수 있었는데, 이렇게 간단하게 만드는 형태의 데이터베이스 형태에서는 딱 원하는 정도의 성능과 기능을 제공하는 형태의 로그인이라는 생각이 든다.
내가 공부하고 있는 자료에서는 로그인시에 아이디는 유일하다는 가정을 하고 로그인을 구현하고 있는데,
생각해보면 어차피 아이디가 유일하다면, filter를 통해서 모든 database 배열의 각 요소인 user객체를 모두 순회할 필요가 있을까 싶다.
그렇게 되면 초기에 filter에 로그인 하려는 사람의 아이디가 걸려들더라도, 어차피 유일하다고 가정하는 상황이면
그 뒤는 더 검색해줄 필요가 없을텐데 모든 배열의 원소들에 대해서 순회하면서 확인하지 않을까? 라는 생각이 든다.
일단은 아직 더욱 효율적으로 구현할 수 있는 방법이 있는 메서드가 있는지 잘 모르는 상황에서, 이와 같은 filter() 메서드를 만나게 되었는데 일단은 이런 메서드가 있구나, 이런식으로도 로그인을 구현할 수 있구나 알아두고 넘어가도록 하자.
'크래프톤 정글 > 웹' 카테고리의 다른 글
node.js 상에서 axios에 대하여. (0) | 2023.08.02 |
---|---|
카카오에서 제공해준 카카오 로그인 node.js REST API 예시 코드 (0) | 2023.08.02 |
req.body를 사용하기 위해서 등록하는 express.json()와 express.urlencoded({extended:false}); (0) | 2023.08.01 |
web server와 was. 프론트엔드 서버와 백엔드 서버라고 하는 표현이 잘못된 표현이라는 나의 생각에 관한 글. (0) | 2023.07.31 |
리액트를 활용한 예제안들을 볼때, 프론트 서버를 동작하는것과 백엔드 서버를 동작하는것 과 같은 형태에 대해서 궁금했던 부분에 대해서 알게된 내용들. (0) | 2023.07.31 |
Comments, Trackbacks