프로젝트 정리

    #1 국내 핫이슈 프로젝트 구상 및 기획

    계기 : 다음은 2020년 2월에, 네이버 실시간 검색어 기능은 2021년 2월 5일부로 사라졌다. 실시간 검색어로 이슈에 대한 정보를 얻었는데 사라져서 여러 포털 사이트에서 정보를 모아서 실시간 검색어 (실검) 기능을 만들어 보려고 한다. 1. 데이터 수집 예전에 노마드 코더에서 파이썬의 Beautiful Soup을 이용해 웹 크롤링을 했었기에 자바 유저이지만 파이썬도 써보고 싶어서 이를 이용해서 정보를 긁어서 데이터베이스에 집어 넣을 것이다. 가져올 페이지로는 네이버 뉴스 랭킹 (1시간 간격 업데이트) 구글 트렌드 (1시간 마다 업데이트) 네이트 (인기검색어 + 실시간 이슈 키워드) (실검 기능 존재) 다음 ( 검색어 하단 인기 검색어) 줌 (이슈 검색어) (실검 기능 존재) API를 제공하는 페이지..

    18. 가입 확인 이메일 재전송

    구현한 로직 가입 확인 이메일을 재전송할 수 있는 기능 제공 하지만, 너무 자주 이메일을 전송할 경우 리소스를 낭비할 수 있다는 문제가 있음 보완책으로, 1시간에 한번만 인증 메일을 전송할 수 있도록 제한한다. GET “/check-email” 가입 확인 이메일을 전송한 이메일 주소 (== 가입할 때 입력한 이메일 주소)를 화면에 보여줌. 재전송 버튼 보여주기. 재전송 버튼 클릭하면 GET “/resend-confirm-email” 요청 전송 GET “/resend-confirm-email” 인증 메일을 다시 전송할 수 있는지 확인한 뒤에 보낼 수 있으면 전송하고, 첫 페이지로 리다이렉트 보낼 수 없으면 에러 메시지를 모델에 담아주고 이메일 확인 페이지 다시 보여주기. 백기선님이 구현한 이메일 다시 보내..

    17. 현재 인증된 사용자 정보 참조

    스프링 시큐리티의 스프링 웹 MVC 지원 @AuthenticationPrincipal 핸들러 매개변수로 현재 인증된 Principal을 참조할 수 있다. Princial을 어디에 넣었더라? public void login(Account account) { UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken( account.getNickname(), account.getPassword(), List.of(new SimpleGrantedAuthority("ROLE_USER"))); SecurityContextHolder.getContext().setAuthentication(token); } @Authentic..

    16. 첫 페이지 보완

    이번에 할 일 네비게이션 바에 Fontawesome으로 아이콘 추가 이메일 인증을 마치지 않은 사용자에게 메시지 보여주기 jdenticon으로 프로필 기본 이미지 생성하기 NPM으로 프론트엔f드 라이브러리 설치 npm install font-awesome npm install jdenticon 폰트어썸 아이콘 사용하기 Jdenticon으로 아바타 생성하기 타임리프 조건문 th:if 부트스트랩 경고창 스터디올레 가입을 완료하려면 계정 인증 이메일을 확인하세요. ... npm으로 내장 라이브러리에 있는 경로를 링크로 걸고 bell 아이콘 추가 jdenticon라이브러리 추가 svg생성 -> jdenticon값을 thymeleaf를 가지고 인증된 이름이 존재하면 해당 이름으로 생성 이번 강의에서 몰랐던 것 및..

    BE_PJT F-1. 예약관리 시스템: 한줄평

    1. 프로젝트 개요 이번 파트에서는 한줄평을 등록하는 기능을 만들어 보겠습니다. 나의 예매 내역에서 확정된 예매의 경우 예매자 리뷰 남기기 버튼이 보입니다. 예매자 리뷰 남기기 버튼을 클릭하면, 한줄평 등록 폼으로 이동합니다. 한줄평 등록 폼에는 별점, 리뷰, 사진을 등록할 수 있습니다. 예매자는 별점, 리뷰정보를 입력하고 사진을 선택한 후 리뷰 등록 버튼을 클릭합니다. 리뷰 등록 버튼을 클릭하면, 리뷰가 등록되고 해당 리뷰가 달린 상세페이지로 리다이렉트 됩니다. 이번 파트에서는 백엔드의 경우 기존에 배운 내용을 토대로 구현을 이어나가시면 됩니다. 프론트엔드에서는 이번 파트에서 새롭게 배운 기술을 포함해서 추가로 구현해야 합니다. 기획서 위 영상에도 나왔던 기획서는 아래 링크를 통해서 확인하실 수 있습니..

    파일 다운로드 구현하기

    학습 목표 파일을 다운로드 하는 컨트롤러를 작성할 수 있다. 핵심 개념 response.setHeader Content-Disposition Content-Type Content-Length 제공하는 connect.png 파일을 윈도우 사용자의 경우 c:/tmp/ 디렉토리에 복사하고 맥 사용자의 경우는 /tmp 디렉토리에 복사합니다. FileController에 download메소드를 추가합니다. response에 header를 설정합니다. 파일을 outputStream으로 출력합니다. http://localhost:8080/guestbook/download를 브라우저에서 입력하면 파일이 다운되는 것을 확인할 수 있습니다. @GetMapping("/download") public void download..