본문 바로가기

프로젝트14

[USports] Spring AWS 배포 [USports] Spring AWS 배포 배포란? 프로젝트를 하다 보면, 프로젝트 테스트를 위해 localhost, 즉 로컬 서버로 어플리케이션을 띄운다 localhost는 '내 컴퓨터'의 서버를 사용하는 것이라서, 다른 사람들이 내 어플리케이션을 사용하기 위해서는, '내' 컴퓨터의 IP 주소, 그리고 컴퓨터의 주소까지 알아야 할 것이다 근데 이렇게 하면, 내가 컴퓨터를 끄게 되면, 내 어플리케이션을 사용하는 사람도 어플리케이션을 사용하지 못 할 것이다 그래서 그 localhost를 클라우드 서버에 넣어두는 것이다 여기서 클라우드 서버는, 클라우드 컴퓨터로, 해당 컴퓨터에 내 어플리케이션을 올려두는 것이다 이렇게 하면, 클라우드가 없어지지 않는 이상, 어플리케이션은 24시간 돌아가게되고, 다른 유저가 .. 2024. 1. 14.
[USports] Member 단위 테스트 [USports] Member 단위 테스트 Mock 서비스를 테스트 할 때에 필요한 외부 클래스들을 넣었다 repository, passwordEncoder 등 MemberServiceImpl에 넣었던 클래스들을 Mock으로 넘겼다 InjectMocks Mock으로 설정했던 클래스들을 MemberServiceImpl에 넣는 것이다 Nested 테스트들을 단위별로 묶을 수 있다 예를 들어, 로그인 테스트, 회원가입 테스트 별로 나누고, 그 안에 성공 케이스와 실패 케이스를 넣을 수 있다 when, thenReturn 주로 메서드 내에 repository를 사용하던지, 또는 Mock으로 설정된 클래스를 사용할 때에 when을 사용한다. 그리고 thenReturn을 통해서 when에서 불러온 메서드를 통해 어.. 2023. 12. 7.
[USports] Email 전송 [USports] Email 전송 프로젝트에서 이메일 인증과, 임시 비밀번호를 이메일을 통해 는 것이 있다 구글 SMTP 서버를 이용하였다프로젝트 용 이메일을 새로 만들고, 프로젝트를 위해, 원래 비밀번호가 아닌, 프로젝트 용 비밀번호를 개인 설정에서 받을 수 있다 하기 전에 2차 인증까지 설정을 해야 한다! Google 계정 관리에 들어가기검색에서 앱 비밀번호를 치고, 들어가기그러면 계정 비밀번호를 입력하라고 뜬다 App Name에 어플리케이션 이름 입력하기 앱 비밀번호를 받고, 꼭 복사하기 (잊어버리면, 또 다시 앱을 입력해야 한다)그리고 외부에 노출하지 말기! Gmail의 설정에 들어가서 전달 및 POP/IMAP에 들어가기 아래와 같이 설정하기  build.gradle아래 추가implementati.. 2023. 12. 6.
[USports] Login 구현 [USports] Login 구현 MemberController 로그인 로그인을 하면 access token과 refresh token을 받게 된다 MemberDto에 UserDetail을 넣어 활용했다 memberService.loginMember()에서는 간단하게 비밀번호가 일치하는지 그리고 유저가 DB에 존재하는 확인하면 된다 확인 후 MemberDto를 리턴하고, tokenProvider.saveTokenInRedis() 를 진행한다 재발급 access token이 만료되었을 경우 reissue, 재발급을 통해 refresh token과 access token을 받게 된다 tokenProvider.regenerateToken(refreshToken) 을 통해 재발급을 진행 로그아웃 로그아웃을 하면.. 2023. 12. 5.
[USports] Redis + Login [USports] Redis + Login Redis https://jejoonlee.tistory.com/376 스프링 캐시 스프링 캐시 캐시 임시로 데이터를 저장하는 공간이다 인메모리가 될 수 있고, 서버에 캐시를 만들 수 있다 빠른 처리 속도로 성능을 향상할 수 있다 이미 조회한 데이터를 임시로 저장하고, 다 jejoonlee.tistory.com 예전에 레디스에 관련해서 살짝 다뤘던게 기억이 난다. 레디스는 NoSQL로 Key-Value로 데이터를 저장하는 메모리 데이터 스토어다. 해당 기능을 사용했을 때에 Key와 Value를 넣으면서, 해당 메모리에 대한 만료 기간도 넣을 수 있었다. 로그인과 레디스? 로그인을 할 때에 access token을 클라이언트에 준다 access token은 해당 .. 2023. 12. 5.
[MovMag] 오늘 배운 것 - 20231030 [MovMag] 오늘 배운 것 JWT 토큰 @PostMapping("/login") public TokenDto login( @RequestBody @Valid MemberLogin.Request request ) { MemberLogin.Response loginInfo = memberServiceImpl.login(request); return "토큰이 생성되었습니다 : Bearer " + tokenProvider.generateToken(loginInfo.getEmail(), loginInfo.getRole()); } 토큰을 생성하고, 바로 리턴을 했다 이렇게 하면 나중에 유저가 API를 사용할 때에 토큰을 계속 복사, 붙여넣기를 해야하는 불편함이 있다 @PostMapping("/login") pu.. 2023. 10. 31.
Joontooling 프로젝트 [OAuth] Joontooling 프로젝트 업무 : 회원가입 모델링 OAuth란? Open Authorization 은 비밀번호 없이, 제 3자 웹사이트에 있는 정보를 현재 사용하려고 하는 웹사이트가 사용할 수 있도록 허용하는 것이다 네이버는 나의 웹사이트한테 accessToken을 전달 하면서, 나의 웹 사이트에서 필요한 기능들만 부분적으로 허용한다 accessToken을 통해서 네이버에 접근해서 데이터를 읽고, 생성하고, 삭제하고, 수정할 수 있다 나의 웹사이트에서 네이버의 ID, Password를 직접적으로 사용하는 것이 아니라서 보안적인 측면에서 안전하다 역할 Resource Server (Naver) : 사용하고자 하는 자원 (데이터)의 위치, 즉 Resource Server에 있다 나의 웹사이트에서 네이버.. 2023. 3. 27.
클래스 카드 소개 클래스 카드 소개 프로젝트 기간 : 2022.11.23 ~ 2022.12.15 팀원 : 김나현 (팀장), 이제준, 김지연, 김지영, 임수경 맡은 역할 : 풀스택 개발, Readme 문서 정리 댓글, 대댓글 비동기 구현 카드 디테일 페이지 구현 (기능, UI) 카드 비교 기능 구현 맞춤 카드 추천 페이지 구현 (기능) 사용 도구 : Python (Django), JavaScript | HTML, CSS | Github | AWS 내용 : 사회 초년생을 위한 카드 혜택 정보를 제공하는 웹사이트 제작 크롤링을 통해 시중에 나와있는 카드 정보 수집 (FEAT. 카드 고릴라) 카드 정보, 카드 비교, 카드 추천, 그 외에도 카드 관련 커뮤니티 기능을 구현 코드 링크 : https://github.com/Class.. 2023. 2. 26.
여행 석사 - 검색 결과 정렬 기능 검색 기능 - 정렬 기능 기능 Search의 모델 class Search(models.Model): # 검색할 때, 받는 필드 title = models.CharField(max_length=10) # 인기 검색어를 위해 필요한 필드 count = models.PositiveIntegerField(default=0) views.py의 검색 기능 def search(request): popular_list = {} if request.method == "GET": search = request.GET.get("searched", "") sort = request.GET.get("sorted", "") if not search.isdigit() and not search == "": if Review.obj.. 2023. 2. 22.