팀 프로젝트를 진행하기전에 아래와 같은 이유로 코딩 컨벤션 및 커밋 규칙을 정하려고한다.(아래 내용은 계속 바뀔 수 있음)정해진 규칙이 있기 때문에 명칭이나 구조를 빠르고 정확하게 정할 수 있다.통일된 규약이 있기 때문에 모든 사람들이 코드를 이해하기 쉽고 편리하다.유
OAuth를통해 구글로그인을 진행한 후 페이스북 로그인을 할 수 있게 하려고 시도중 페이스북의 username을 설정하는데 null값이 찍히는 상황을 만낫습니다.에러사진은 다른 이유이다.그 이유는 facebooke은 강제 로그인을 시킬때 id가 facebook\_{fa
crew모임글에 댓글을 작성하는 로직을 추가해 보겠습니다.한명의 User가 여러게의 Comment를 작성할 수 있다.하나의 crew에 여러개의 Commnet를 작성할 수 있다.Authentication에서 UserName을 가져와 사용했습니다.게시물에 댓글을 달것이여서
팀 프로젝트를 진행하다 main branch를 보호하기위해 develop 브랜치를 하나 더 만들어서 main브랜치로 병합하기 전 최종 테스트를 하기로 했습니다. 그리고 develop 브랜치를 하나 더 만들었는데 팀원중 한분이 develop 브랜치에 MR을 요청승인이
Jacoco란? > Java code coverage tool 테스트를 실행하고, 그 결과를 html, csv, xml파일로 확인 할 수 있습니다. 테스트 결과가 내가 설정한 커버리지 기준을 만족하는지 확인하는 기능도 있습니다. Jacoco 플러그인 추가 repo
앞서 개인프로젝트에서 Session에 JWT를 담아 로그인을 진행했습니다.Jwt는 Session에 담을 수도있지만, Cookie에도 담을 수 있어 팀프로젝트에는 Cookie에 담아서 Jwt를 시큐리티 컨텍스트 홀더에 담고 싶었습니다.팀 회의를 통해 Session보다 C
Security Filter의 로그아웃을 사용하여 로그아웃을 하여도 계속 로그인이 되어있는 상황이 발생하였습니다.왜 로그인이 안되지? 라는 생각과 동시에 여러 추측을 해보았지만 잘 모르겠어서 Security가 제공하는 logout에 대하여 구글검색을 해보았습니다.위 설
로그인, 로그아웃 기능을 구현하고 develop브랜치에 업로드 후 로직이 잘 동작하는것을 확인하고Main Branch로 push를 했습니다.이렇게 Cookie와 Jwt를 이용한 로그인이 끝난줄 알았지만, 팀원중 한분이 로그아웃을 하지 않았는데 Jwt가 만료되어 웹 브라
팀 프로젝트를 진행하다 인프라를 맞고있는 팀원분께서 AWS관련하 설정을 잘못하여 서버를 잠시 내려야한다고 하셨습니다그래서 일단 제가 컨테이너를 띄우려고하던 도중에 만난 에러를 기록하고자 합니다.첫번째는 yml파일이 잘못되어있었습니다.Jpa의 하이버네이트가 자동으로 테이
Oauth 2.0의 매커니즘을 이해하려면 우선 용어부터 정리해야합니다.Client : 우리가 만든 서비스Resource Owner : Resourece Server의 주인Resource Server : 타 플랫폼클라이언트가 할 일은 크게 2가지가 있습니다.Resourc
외부 웹 어플리케이션에 Google로 로그인하면 API를 통해 연동된 계정의 Google Calendar 정보를 가져와 사용자에게 보여줄 수 있습니다.이때 사용되는 프로토콜이 OAuth입니다.OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자
앞서 OAuth를 이용하여 구글로그인을 하는 방법을 알아보았습니다. 하지만 아직 후처리가 안되어있어서 이제 후처리를 할것입니다. 구글 로그인이 완료된 뒤의 로직처리 코드받기 (인증이 되었다는것) 엑세스 토큰받기 (권한이 생긴다.) 사용자 프로필 정보를 가져온다.
앞서 Oauth로그인 세팅을 해보았습니다.이제 PrincipalOauth2UserService의 loadUser를 작성해 보겠습니다.구글 로그인과, 페이스북 로그인을 해보면서다형성이 필요한 이유를 알아보겠습니다.우선 앞서 설명한 회원가입 시나리오처럼 전달받은 프로필 정
OAuth로그인을 적용을 하면서 구글, 페이스북, 네이버 순으로 연결을 하였습니다.분명 잘 사용하고 있었는데 안되었기때문에 분명 페이스북과 네이버를 설정할때 무언가 잘못설정했나 싶었습니다.그렇게 페이스북과 네이버 설정을 한참 살펴보다 전부 잘 설정되었다고 판단하여 해당
앞서 Oauth 로그인을 했을때 Session에 jwt를 저장하여 로그인을 구현했습니다.이때, 아래와 같은 아쉬운 부분이 있었습니다.세션은 스케일 아웃시 공유되지 않는다.서버에 저장되어있는 in-Memory에 접근해야하기때문에 트래픽이 몰린다면 서버가 복구될 때까지 서
앞서 Session의 단점과 단점을 보완할 수 있는 Redis서버에 대해 알아보았습니다.오늘은 Redis에 Session을 저장하여 서버가 다중화되어도 Session정보를 저장 할 수 있게 리펙토링할 것입니다.컨테이너 스케일 인, 아웃할때 세션을 공유하여 여러 컨테이너
Redis로 Session을 공유하는 로직을 구현하고 실제 로그인 시 Redis 서버에 저장이 되나 확인을 하려고 하는데 Ec2가 내려가있었습니다...트래픽도 몰리지 않았고 CPU도 높아지지 않았지만 서버가 내려갔습니다..그원인을 정확히 찾지는 못했지만 구글링을하여 찾
팀프로젝트를 진행하며 로그인기능을 Cookie에 jwt를 담아 구현했습니다.분명 localhost에서는 잘돌았는데 Ec2로 띄워 로그인을 해보니 Cookie값이 넘어오지 않았습니다.원인을 알 수 없어 바로 검색에 들어갔습니다.쿠키는 Http에서는 보낼 수 없다고 합니다
구글 개발자 api 리다이렉션 URI 도움말위에 명시된 정보와 같이 리디렉션 URI는 IP주소를 사용 할 수 없습니다...하지만 저는 IP주소가 짧고 편해서 사용해왔는데, Oauth로그인시 도움말을 제대로 읽지 못하여 시간을 너무 많이 날려먹었습니다...앞으로 꼼꼼히
팀프로젝트를 진행하면서 로그인, Oauth, 알림기능을 구현하였습니다.알림기능을 구현하다보니 순간 실시간 알림이 있으면 좋겠는데?라는 생각을 하였고 실시간 알림을 구현하기 위한 방법이 여러개 있다는 것을 알게되었습니다.여러개의 방법 중 저는 실시간 알림기능을 SSE를
앞서 실시간 알림기능을 SSE로 구현하기로 하였습니다.이번글에서는 실시간 알림 기능을 구현해 보겠습니다.서버단의 로직은 생각보다 복잡하여 Front먼저 살펴보겠습니다.클라이언트에서 서버로 연결이 필요합니다.이때 자바스크립트의 EventSource를 사용하여 연결하면 됩
Dto에서 readOrNot을 추가해주었습니다.페이징을 처리하기위한 작업니다.첫페이지와 마지막페이지 그리고 정렬된 순서를 지정해주었습니다.알림이 생겼을때 해당 알림을 체크했다면 false로 만들어주는 함수 readAlarms를 작성하였습니다.알림을 체크하는 로직입니다.
지금 진행하는 팀 프로젝트는 운동을 같이할 운동메이트를 동네에서 찾는게 핵심입니다.여기에 추가로 실시간 매칭기능을 넣으려고 하고 있습니다.원래는 운동 종목별로, 가까운 사람들 기준으로 등등 여러가지 사항을 고려해야하지만우선은 구현하기 쉽게 실시간 매칭기능을 누른다면1\
알림이 온다면 실시간으로 알림창이 나오게 하고 싶다는 생각이 들었습니다.기존에는 일반 alert창이기에 디자인면에서 좋지 않았습니다.기존 alert그래서 검색을 해본결과 Sweet alert를 통해서 커스텀이 가능하다고 하여 바로 적용을 해보았습니다.sweetalert
팀 프로젝트에서 모임을 하고 리뷰를 남기는 기능을 구현해야 했습니다.이때 아래와 같은 에러가 발생했습니다.조회한 값이 unique하지 않아서 발생한 에러입니다.리뷰기능은 팀원이 맡은 로직이지만, Merge하는 과정에서 첫번째 참가자가 리뷰를 작성하면 두번째부터는 위와같