국비교육을 이수하며 아쉬웠던 점이 있었다. 그중 특히 채팅서비스에 대한 아쉬움이 가장 컸다. 급하게 만들어낸 서비스라 제대로 알지 못한 상태에서 구현에만 급급했던 나로썬 더 애증의 관계였던것 같다. 그래서 취업준비를 하며 사이드 프로젝트로 시작하기로 마음을 먹었고, 공부와 실력은 그렇듯 계속해야 익숙하고 성장하기 때문에 마음맞는 팀원들이 모여 중장기 프로젝트를 시작하기로 하였다. (취업을 하더라도 주말에 시간을 투자하기로)1. 주제 선정 및 계기카카오는 카카오톡으로 성장하게 된 회사이다. 카카오톡으로 시작하여 카카오스토리를 지나 현재는 대한민국에 없어서는 안될 서비스이다. 그래서 우리는 카카오톡과 같은 메신저에서 시작하여 점차적을 서비스를 늘려나가기로 하였다. 그렇게 해서 우리는 채팅서비스에 주식종목 확..
회원가입을 마쳤으니 이제 로그인 기능을 구현할 차례입니다. 로그인 기능은 딱히 특별할게 없기 때문에 간략하게 이미지로 설명하고 로그인 했을 경우 메인 헤더의 변경점까지 작성해보도록 하겠습니다.로그인로그인에는 아이디는 맞았으나 비밀번호가 틀렸을경우와 아이디가 틀렸을 경우 출력되는 문구를 다르게 표시해주었고, email 형식으로 작성하지 않았을 경우 email 형식으로 작성되게 설정하였습니다.로그인 성공시 헤더 변경로그인에 성공했을 경우에는 로그인에서 로그아웃으로 변경되게 하였습니다. 프로필 이미지와 로그인 된 이름을 회원가입 대신 띄우게 설정하였고, 프로필 이미지와 이름의 경우 하나의 태그로 설정하여 클릭시 마이페이지로 이동하게끔 하였습니다.최종 로그인 폼
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/ 에서 제공해주는 무료 템플릿을 참고하여 제작하였습니..