회원가입을 마쳤으니 이제 로그인 기능을 구현할 차례입니다. 로그인 기능은 딱히 특별할게 없기 때문에 간략하게 이미지로 설명하고 로그인 했을 경우 메인 헤더의 변경점까지 작성해보도록 하겠습니다.로그인로그인에는 아이디는 맞았으나 비밀번호가 틀렸을경우와 아이디가 틀렸을 경우 출력되는 문구를 다르게 표시해주었고, email 형식으로 작성하지 않았을 경우 email 형식으로 작성되게 설정하였습니다.로그인 성공시 헤더 변경로그인에 성공했을 경우에는 로그인에서 로그아웃으로 변경되게 하였습니다. 프로필 이미지와 로그인 된 이름을 회원가입 대신 띄우게 설정하였고, 프로필 이미지와 이름의 경우 하나의 태그로 설정하여 클릭시 마이페이지로 이동하게끔 하였습니다.최종 로그인 폼
Project
JWT 와 OAuth 2.0 이 갑자기 사라지는 바람에 회원가입은 native DB 에 저장되는 방식으로 변경되었지만 Spring Security 는 여전히 사용하였기 때문에 암호화를 진행시켜 저장하였고, 인증 인가의 방식도 사용하였습니다.회원가입1. 아이디아이디는 추후에 SMTP (이메일링 서비스) 까지 사용하여 비밀번호 찾기를 진행하기로 하였기 때문에 유니크 값으로 설정하였고, 그렇기 때문에 아이디 중복에 관한 로직이 있어야 했습니다. 중복확인 버튼을 클릭하지 않았을 경우 중복확인을 클릭하게 하였고, 만약 중복확인을 눌러서 중복확인을 한 후에 대차 아이디를 수정하게 되면 다시 중복확인 버튼을 눌러야 넘어갈 수 있게 하였습니다.2. 비밀번호비밀번호는 정규식을 활용하여 8글자 이상에 특수문자가 포함되어야..
더보기프로젝트는 잘 마무리 되었으나.. 딱 이시점부터 문제가 쌓이기 시작해 블로그에 글을 차마 남기지 못하였습니다. 늦었지만 지금이라도 차근차근 정리해둬야 나중에 기억하고 추억할 수 있을것 같아 그때의 생각을 되짚어 보며 차츰차츰 정리해두도록 하겠습니다.앞서 Spring Security, Mybatis, JWT 를 활용하여 회원가입 로그인 기능을 구현하는 중 Postman 으로는 토큰 발급을 받아 잘 전달해주는 것까지 확인하였었습니다. 이번 포스팅에서는 발급된 토큰을 헤더에 집어넣어 보내는 과정에서 HTML 에서 해당 토큰을 받지 못하는 오류가 발생하였고, 어떤 판단을 내려 해결하였는지 작성하겠습니다.변수발생 !@RequiredArgsConstructorpublic class JWTFilter exten..
제가 담당하게 된 파트는 회원가입 및 로그인을 구현하는 것입니다. 평소에 로그인 데이터가 DB 에 저장될 때 암호화 되어지지 않고 저장되는것을 보고 암호화 과정을 거쳐보고 싶은 욕심이 생겨 담당하게 되었고, 그에 따른 Spring Security 와 JWT 를 활용하여 암호화를 진행해보고자 하였습니다.Spring Security ?스프링 기반의 애플리케이션의 보안(인증과 권한)을 담당하는 프레임 워크로써 사용자 관리 기능을 구현하는데 도움을 주는 Spring 의 강력한프레임 워크 입니다. Spring Security 을 사용하게 된 이유는 다음과 같습니다.Spring Security 는 다양한 보안 표준을 준수하여 강력한 보안 기능을 제공한다.Spring Security 는 Spring Framework..
지난 시간에 Thymeleaf layout 을 활용하여 계획하였던 메인페이지를 제작하였고, 각 버튼을 눌렀을 경우 각 페이지로 이동하는 매핑까지 완료하였습니다. 따라서 1차 테스트 배포를 하기로 하였고, CI / CD 까지 구축하기로 하였습니다. Jenkins 를 다루기 위해서는 CI / CD 에 관해서 알아야 이해하기 쉽기 떄문에 잠깐 다뤄보도록 하겠습니다.CI / CD ?CI / CD (Continuous Intergration and Continuous Delivery) 는 소프트웨어 개발 프로세스의 자동화와 최적화를 위한 개념입니다.Continuous Intergration 는 지속적 통합 으로써, 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합하는것..
세미프로젝트 시작 전에 2인 프로젝트 진행시 Spring boot 2.7.xx 에 tiles 을 활용하였습니다. 하지만 tiles 는 Spring boot 3.x 대로 넘어오면서부터 duplicated 되었고, 이를 대신하여 사용되는 서버사이드랜더링 방식은 thymeleaf 였습니다. 따라서 우리는 Spring boot 3.2.6 에 thymeleaf 를 사용하여 전체적인 레이아웃을 잡기로 결정하였습니다.주요 기능 페이지 선정NCP(Naver Cloud Platform) 를 활용하여 진행되는 프로젝트 이기 때문에 팀 컬러는 네이버가 가지고 있는 시그니쳐 색상을 가져가기로 하였습니다. `#003C00` 전체적인 레이아웃은 https://untree.co/ 에서 제공해주는 무료 템플릿을 참고하여 제작하였습니..
오늘은 프로젝트 개발 전, 프론트와 백 개발자가 나뉘어져 개발 할 때 반드시 필요한 API. 명세서를 작성하였고, 이를 통해 request 와 response 에 대하여 더 자세하게 공부할 수 있었습니다. 비록, 백엔드와 프론트엔드를 따로 나누어 개발하지 않지만 현업에서 사용되는 방식을 한번 사용해보고자에 대한 목적을 가지고 작성하게 되었습니다. API 명세서란 ?API 명세서는 개발자들이 서로 다른 시스템 간의 상호작용을 위한 인터페이스를 정의하고 문서화하는 데 사용하는 문서 입니다. 쉽게 표현하여 프론트와 백엔드가 서로 동시에 개발을 하며, 주고받을 데이터에 관하여 미리 명시해 놓고 개발하는 것입니다. API 명세서는 개발전 작성과 개발후 작성으로 크게 두가지로 나뉘어 생각할 수 있습니다.개발전 ..
오늘은 스토리보드 발표를 위해 ppt 를 작성하였고, 기존에 계획하였던 WBS 를 조금 더 세분화하여 관리하기로 하였습니다. 또한 5명이서 진행되는 프로젝트 이기 때문에, Git 전략에 대해 논의하였습니다. WBS 재설계우리조는 다른조와는 조금 다르게 WBS 를 조금 더 세분화 하여 관리하는 것이 더 좋을것 같다는 생각이 들어, 세분화에 대한 재설계를 요청하였고, 팀원들 모두 동의하여 진행하게 되었습니다. 재설계한 WBS 는 다음과 같습니다.이번 재설계의 목표는 각자 담당하게 된 파트별 기능을 제한기간 안에 구현하도록 (강제) 하였으며, 3일에 한번씩 구현된 기능들을 합쳐 배포하기로 하였습니다. 또한, 다들 공부를 하면서 프로젝트를 진행해야했기 때문에 더욱더 세분화가 필요하다고 느꼈습니다. Git 전략..