본문 바로가기

반응형

Server Programming/Spring Boot Backend Programming

(46)
1장. 웹 프로그래밍 시작 서블릿과 JSP 요약 서블릿/JSP는 JavaEE의 기술 일부 서블릿/JSP를 실행하기 위해 서블릿 컨테이너가 필요(톰캣) 서블릿 컨테이너가 서블릿/JSP 객체를 생성 및 생명 주기 관리 담당 JSP는 내부적으로 서블릿과 같은 방식의 코드로 변환 (.java -> .class) JSP는 HTML + 자바코드, 서블릿은 자바코드 + HTML JSP 사용법 서블릿에서 쿼리 스트링이나 파라미터 처리 JSP는 화면 구성 / 처리 결과 브라우저는 JSP 경로를 노출하면 안되며 서블릿 경로만 나타내야 한다. 자바 웹 기본 환경 1. 웹 프로젝트 기본 구조 브라우저 - DB - 서버 브라우저 : 서버 전송 결과 렌더링 / 사용자 화면 조작으로 서버에 요청 및 응답 서버 : 정적 데이터 담당하는 웹 서버와 동적 데이터..
[Spring 부트 - 운동 클럽 프로젝트] 2. 소셜 로그인 연동 https://console.cloud.google.com/ Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.google.com 구글 로그인 연동 1. oauth2 의존성 추가 org.springframework.boot spring-boot-starter-oauth2-client 2. 어플리케이션 설정에 oatuh2 설정 추가한 어플리케이션 설정파일 새로 만들기 - apllication-oauth.properties spring.security.oauth2.client.registration.google.client-id=생성된 클라이언트 아이디 spring.security.oauth2.client.registration.google.client-secret=생..
[Spring 부트 - 운동 클럽 프로젝트] 1. 스프링 시큐리티 연동 (2) CSRF 와 접근 제한 설정 진행 순서 CSRF란 무엇인가? REST방식의 보안 설정을 이용하기 위해, CSRF 토큰 비활성화 설정 스프링 시큐리티의 logout 설정 프로젝트에 스프링 시큐리티 연동을 위한 JPA 처리 ClubMemberRepository에서 일반 사용자와 소셜 로그인 사용자 구분 메소드 처리 ClubMemberRepository를 이용해 회원 처리 하는 로직 작성 일반적인 로그인 처리) 회원 정보로, DB를 조회하고, 올바른 데이터가 있으면 세션이나 쿠키로 처리 스프링 시큐리티의 경우) User라는 현재 로그인한 사용자 객체를 생성해 사용 스프링 시큐리티의 User클래스를 이용한 UserDetails 인터페이스 작성 User클래스가 필요한 정보를 제공하기 위한, ClubAuthMemberDTO클래스 작성 Club..
[Spring 부트 - 운동 클럽 프로젝트] 1. 스프링 시큐리티 연동 (1) 기본 설정 진행 순서 스프링 시큐리티를 연동하기 위한 의존성 추가 스프링 시큐리티 연동을 위한 타임리프 확장 플러그인 +) 시큐리티의 자세한 로그 파악을 위해 낮은 로그 설정 스프링 시큐리티 동작 이해를 위한 핵심 개념의 이해 SecurityConfig를 통한 프로젝트의 시큐리티 설정 관리 필터와 인증/인가 관리 객체를 이용한 스프링 시큐리티 동작 스프링 시큐리티의 인증 필터 체인 구조와 인증 매니저 UserNamePasswordAuthenticationToken 토큰을 이용해 인증매니저가 AuthenticationProvider를 통해 인증 AuthenticationProvider가 인증 확인 후, UserDetailService를 통해 실제 인증을 위한 데이터 전달 스프링 시큐리티의 인가 Authenticati..
[Spring 부트 - 영화 리뷰 프로젝트] 6. Ajax로 영화 리뷰 처리 (2) 리뷰 등록 / 수정 /삭제 진행 순서 리뷰 등록하기 리뷰 리스트 보여주기 특정 리뷰 선택하기 리뷰 수정과 삭제 원본 이미지 보기 (+) 영화 삭제, 수정, 검색 1. 리뷰 등록하기 : 화면에 버튼 추가 후, 버튼 클릭시 reviewModal을 통해 등록 수행 (1) class 속성값이 uploadResult 밑에 버튼을 추가 (2) 리뷰 숫자 보여주는 부분 아래 쪽에 Review Register 글자를 가지는 버튼 추가 (3) 영화 리뷰를 보여주는 공간인 reviewList 클래스로 div 생성 Review Count [[${dto.reviewCnt}]] Review Register (4) addReviewBtn을 이용해 reviewModal창 처리 1. 입력 부분을 통해 추가할 기능이 필요하므로 변수로 외부로 빼서 선언 2. 모..
[Spring 부트 - 영화 리뷰 프로젝트] 6. Ajax로 영화 리뷰 처리 (1) 리뷰 구성 리뷰 등록 순서 1. 버튼을 클릭해 리뷰 입력할 모달창을 띄운다. 2. 모달창에 별점주는 화면을 구성 3. 회원 아이디, 리뷰 점수, 내용 입력해 리뷰 등록 4. 리뷰 개수와 평균이 변경되었으므로, URL 재호출해서 갱신 진행 순서 ReviewDTO 구성 : Movie와 Member 참조하므로 단순 문자열 즉, 회원 mid와 mno를 참조하는 형태로 변경 작성한 리뷰의 평점과 내용을 변경할 수 있도록 Review 엔티티에 수정 메서드 추가 changeGrade() changeText() ReviewService의 entityToDto()와 dtoToEntity() 메서드 정의 후, 추가 기능 작성 특정한 영화의 모든 리뷰를 가져오는 기능 새로운 영화 리뷰를 등록하는 기능 특정 영화 리뷰를 수정하는 기능 ..
[Spring 부트 - 영화 리뷰 프로젝트] 5. 영화 조회 처리 조회 페이지 구성 영화 조회 영화 리뷰 등록 / 수정 / 삭제 진행 순서 MovieService에서 영화 번호를 이용해 MovieDTO를 반환하는 getMovie() 정의 MovieServiceImpl에서 getMovie()를 구현 MovieController의 목록 페이지에서 영화의 번호를 이용한 URL 처리 [조회와 수정에서 사용] : '/movie/read?mno=103&page=1' 1. MovieService에서 getMovie() 정의 //특정 영화 번호를 이용해 영화 정보 전달 메서드 MovieDTO getMovie(Long mno); MovieServiceImpl에서 getMovie()를 구현하기 위해서는 : MovieDTO를 반환하기 위해 MovieRepository에서 받은 데이터를 가..
[Spring 부트 - 영화 리뷰 프로젝트] 4. 영화 목록 처리 영화 목록 처리 목록 처리와 함께 평균 평점 화면에 출력 영화 목록 처리 페이징을 위한 DTO 추가 : PageRequestDTO, PageResultDTO 서비스계층에서 getList() 메서드를 생성하기 위해, 각 Object[]을 MovieDTO 하나의 객체로 처리하기 위해 : MovieDTO에 Double타입의 평점 평균과 리뷰의 개수 처리하는 파라미터와 날짜 관련 부분 추가 MovieRepository에 저장된 영화와 평점 엔티티의 처리를 위해 : Object[]로 반환하는 getListPage() 메서드 이용해, MovieService, MovieServiceImpl 클래스 수정 Movie, MovieImage 객체 double값으로 나오는 평균 평점 Long타입의 리뷰 개수 MovieCont..

반응형