본문 바로가기
study/JAVA

자바 로그인 로직 짜보기

by stilinski 2022. 4. 30.
728x90

JFrame은 Bro code 클론 코딩했다. 거기서는 join 아니고 reset이다.

Bro code의 login system 영상에서는 로그인 기능밖에 없지만
나는 회원가입 기능도 추가하려고 바꿨다.

로그인 시스템 구현 과정


1. 리스트 생성해서 직접 값 넣기

처음에는 디비를 연결하지 않았다. codeBro가 유튜브에서 한 방법이다. 나도 처음에 했을 땐 db 배우기 전이라 이렇게 했다.



2. 오라클 디비연결
학원에서 데이터베이스를 배우기 시작하고 기존에 만들었던 로그인 시스템에 디비를 연결해서 회원가입 기능도 추가해보고 싶은 욕구가 뿜뿜해졌다. ㅎㅎ

2.1. sql에서 바로 id pw체크


별거 아니지만 뿌듯하다 이렇게까지 하는데 되게 여러 가지 방법을 거침.
한 번에 뚝딱


된 게 아님.....


처음에는 학원에서 배운 거 그대로 sql문 가져와서 클래스에 넣고 그 객체들을 리스트에 넣는 거를 활용해서 했었다.
그러니까 한번 로그인할 때 id와 pw를 확인하기 위해

깃허브에 올려둔 코드

1. 모든 데이터를 불러와서 각각 객체로 만들고 그걸 리스트에 넣음. - 여기까지가 학원에서 배운 것

2. 다른 메서드에서 리트스에 넣은 객체들을 꺼내와서 입력받은 아이디와 패스워드와 일치하는 값이 있는지 반복분으로 일일이 대조.

이런 식으로 구현했었다. 그런데 오늘 다시 꺼내보니 sql에서 바로 체크해서 그 값을 불러오면 되는데 저런 식은 너무 비효율적인 것 같았다. 심지어 저 로직은 잘못돼도 한참 잘못된 로직이었는데;;;;ㅋㅋㅋㅋㅋㅋㅋ
id를 검색하는 거 까지는 좋았으나, 비밀번호에서 틀려먹었다. 저 로직은 그저 그 비밀번호가 데이터에 존재하는지에 대한 여부만 확인하는 거라서 다른 아이디의 비밀번호를 입력해도 true를 리턴해서 로그인이 되어버린다...^^ㅋ


저거 만들었을 때는 지금보다 잠도 못 자고 해서(지금도 딱히 푹 못 자지만) 흐리멍텅한 상태로 만들어서 그랬던 거라고 믿고 싶다^^ 암튼 그래서 어차피 고칠 겸 로직도 다시 짜서 해보는데....
1. idchk() 메서드에서 sql에 입력받은 아이디 값과 같은 레코드가 있는지 체크
2. 만약 있다면 pwchk() 메서드에서 입력받은 id랑 pw 조회하는 sql문 실행해서 비밀번호도 체크
이런 식으로 하려고 했다.
그랬더니...

이렇게 뜬다. 아니 로그인할 때마다 다시 실행해서 따로따로 부르는데 무슨 상관이야!!?!!?라고 생각했지만 이유는 간단했다. pwChk()에서 sql문을 두 번 실행하니까 바보야^,^.

그래? 그럼 한 번에 다 해버리지 뭐 해서 나온 게 저 위의 코드.
사실 하나의 메서드는 하나의 기능만 하라고 해서 아이디랑 패스워드 체크를 따로따로 하려고 했는데 그냥 로그인 체크를 하나의 기능이라고 치고(?) 하나로 해도 괜찮을 거 같다. 생각하기 나름인 건가?ㅋ


암튼 간에
이젠 회원가입 구현해야겠다.

728x90

댓글