728x90
반응형

로그인 4

[로그인 기능 만들기] 3. 비즈니스 로직

로그인 기능이라는게 몹시 전형적인 서비스 로직을 가지고 있다고 생각해, DB 구조만 정하고 개발에 착수하려 했다.그런데 아무리 전형적이어도 내 머릿속에서만 가지고 있으면 알아보기 힘들다는 피드백을 받아,동작 흐름을 그려보았다.(나중에 변경될 수 있다는 점!)(flow chart나 usecase diagram 등을 정확히 배운 것은 아니라서, 흐름 표현 외적인 세세한 표현은 틀릴 수 있음!) 1.1. 서버에 id, pw를 입력해 회원가입하는 상황 User가 화면에서 ID, PW를 입력하고, 기본 정보(이름, 전화번호, 이메일 등)를 작성하면 유효성을 체크하여 새로운 회원을 등록한다.기본 정보 중 전화번호나 이메일을 이용해 본인인증을 받고,본인 인증된 정보로 중복 가입을 막는 방식을 취하고 싶은데, 사실 이..

개발/Spring Boot 2024.05.03

[로그인 기능 만들기] 2. DB 기획(2)

이전까지의 DB 구조는 다음과 같다.일단 정말 바보같은 실수를 했다는 것을 발견!이렇게 되면 여러 외부 사이트 인증을 사용할 수 있도록 하겠다는 기획이 무색하게,각 유저당 하나의 인증 방법으로만 로그인 가능하게 된다.one to one의 관계를 가지게 되는 것이다!!one to many의 관계가 성립하려면, UserInfo에서 AuthId를 FK로 가지는 것이 아니라,AccountAuth에서 UniqueId를 FK로 가지도록 해야 한다.수정한 그림은 다음과 같다.  AccountAuth 테이블에 User와 인증 정보가 함께 추가되므로 유저와 인증수단이 여럿으로 매칭될 것이다. 아래는 수정된 테이블 정보. ◎ table : user의 정보를 담고있는 테이블Column NameTypeDescriptionU..

개발/Spring Boot 2024.05.03

[로그인 기능 만들기] 1. DB 기획(1)

사실 이 프로젝트의 핵심은 서버 로직 구현이기 때문에, DB 구조는 가장 단순하게 만드는 것을 목표로 잡았다.추후 기능이 추가되고, 필요해진다면 제대로 따로 DB서버까지 구현해볼 예정.따라서 지금은 Spring DATA JPA, H2 in-memory DB를 사용할 것이다. DB 구조는 다음과 같다. ◎ table : user의 정보를 담고있는 테이블Column NameTypeDescriptionUniqueId(PK)Long Intauto increment. 유저 아이디를 직접 PK로 사용하는 것은 보안상, 조회 상 문제가 될 수 있기 때문에 따로 유저를 구분할 수 있는 PK로서 숫자를 저장해 사용함CreatedDateDate생성된 시간을 JPA Audit 기능을 사용해 자동으로 저장LastModifi..

개발/Spring Boot 2024.05.02

[로그인 기능 만들기] 0. 기본 설정

스프링부트를 사용해 로그인 api를 만들어보려 한다.안 쓰다보니 점점 실력이 주는 것 같아서,회사에서 좀 한가해진 이 시점에 하나씩 공부해봐야지! 우선, Windows 환경에서 java 17을 이용해 개발을 시작하였다.github와 연동하였고, IDE는 visual studio code를 사용한다.뭔가 경로나 그런 부분에서 이상이 계속 발생해서, 동작하도록 만드는 과정에 몹시 많은 시간이 걸렸다.역시 환경설정 시작하는게 제일 어려운듯.. 로그인 기능을 구현하는 방식은 크게 두 가지를 생각해봤다.첫째, id와 pw를 전송하면 프로토콜로 암호화하여 db에 저장 및 인증 등, 서버에서 직접 로그인 기능을 구현하는 방법.둘째, OAUTH를 사용해 네이버나 카카오 로그인 서비스를 만들어 간접 저장하는 방법.사실,..

개발/Spring Boot 2024.05.02
728x90
반응형