본문 바로가기

Vue

(45)
2. bookStore (기본 세팅) 1. Logging - logback 성능상 문제와 System.out.println()로 로그가 쌓이면 원하는 부분을 찾지 못한다. 따라서 logging툴을 사용하여 log를 쓸 것이다. Logging 설정 (slf4j - logback) slf4j : @slf4j 어노테이션 하나만 쓰면 로그변수를 쓸 수 있다 logback : 은 구현체 역할을 한다 1. pom.xml 라이브러리 추가 org.projectlombok lombok true 2. src/main/resources에 logback-spring.xml파일 추가 app.log logs/archived/app.%d{yyyy-MM-dd}.%i.log 10MB 20GB 60 %d %p %c{1.} [%t] %m%n 로그의 5단계 1. trace (..
1. bookStore (DB 테이블 생성) 지난 글에서 설명한 book & customer & keywords 테이블을 생성한다. 컬럼에 대한 설명은 아래 글에서 볼 수 있다. Springboot 와 Vue.js 를 사용하여 bookStore만들기 Tool download 0. JDK 1.8.0_031 [download page](https://www.oracle.com/java/technologies/downloads/#java8-windows) 1. git download [download page](https://mirrors.edge.kernel.org/pub/software/scm/git.. dwc04112.tistory.com CREATE TABLE `book` ( `bid` bigint(20) NOT NULL COMMENT '책id'..
Springboot 와 Vue.js 를 사용하여 bookStore만들기 Tool download 0. JDK 1.8.0_031 [download page](https://www.oracle.com/java/technologies/downloads/#java8-windows) 1. git download [download page](https://mirrors.edge.kernel.org/pub/software/scm/git/) 2. Intellij IDEA download [download page](https://www.jetbrains.com/ko-kr/idea/download/#section=windows) 3. mariadb 10.6 [download page](https://downloads.mariadb.org/) 4. DBeaver 버전21.2.1 [downlo..
로그아웃 3 (Springboot + Vue) 추가된 코드 token tokenRepository tokenService CustomLogoutSuccessHandler 코드 동작 로그아웃 후에도 기간이 남은 토큰은 재사용될 가능성이 있다. (토큰은 따로 처리하지 않기때문) 따라서 로그아웃시 로그아웃 핸들러를 통해 토큰을 따로 저장해둔다. 토큰인증필터에서 해당 토큰이 로그아웃 처리된 토큰인지 DB에서 비교하는 코드를 통해 확인가능하다. // CustomLogoutSuccessHandler @Override public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, S..
로그아웃 2 (Springboot + Vue) 코드 동작 로그아웃시 해당 토큰을 블랙리스트에 추가하는 방법으로 로그아웃 토큰을 처리 로그아웃 CustomLogoutSuccessHandler 의 requestHeader에서 토큰을 구한다 (로그인시 구하는 방법과 동일) 토큰에서 만료일을 구한 후 (토큰 id , 토큰 , 토큰 만료일) DB에 저장한다. DB에서는 이벤트 스케줄러를 통해 설정한 시간마다 블랙리스트 토큰의 만료일과 현재 시간을 비교한다. 블랙리스트 토큰의 만료일 < 현재시간 일 때, 해당 토큰을 삭제한다. 인증 필터에서는 해당 토큰이 블랙리스트에 등록되어 있는지 확인한다. 추가한 파일 & 코드 CustomLogoutSuccessHandler - 로그아웃 성공 시 핸들러 실행 Token - 토큰 엔티티 정의 Token.Repository -..
로그아웃 1 (Springboot + Vue) Vue 에서 로그아웃 버튼을 누르면 userStore의 action으로 dispatch dispatch된 logout action에서 post : /api/logout으로 Springboot 요청 Spring Security에 지정된 로그아웃 Url로 요청이 들어오면 아래 내용의 작업을 수행한다. (WebSecurityConfig) Springboot에서 logout-action으로 응답이 오면 userStore에 있는 state를 초기화 시키는 mutations를 실행 로그인 화면으로 되돌아간다. (Vue) userStore의 state값을 하나하나 초기화 시켰다.. mutations: { resetState: function (state){ state.email = ''; state.token = '..
조회수 중복 방지-cookie (Springboot + Vue) 추가한 코드 Springboot boardController - viewCount boardService - viewCountUp vue borad.vue (조회수 증가를 위한 통신) vue-cookies 설치 (npm install vue-cookies) 조회수 중복 방지를 구현하기 위해 쿠키를 사용했다. 우선 vue-cookies를 설치하고 vue- main.js 또는 vue에 쿠키를 사용한다고 명시해두자 (main.js 는 전역으로 쿠키를 사용할 때.) import VueCookies from "vue-cookies"; //쿠키를 사용한다. Vue.use(VueCookies); Home에서 board로 이동할 때 mounted로 조회수 증가 메소드와 해당 게시글을 가져오는 메소드를 실행 조회수 중복..
글 수정 & 삭제 2 (Springboot + Vue) 추가한 내용 Springboot board/edit board/delete matchInfo (boardJpaService) Vue board.Vue 에서 삭제와 수정 진행 Springboot - boardJpa Springboot에서 글 수정과 삭제 수행시 board DB에 있는 Member Id와 현재 사용자의 Id를 비교 두 Id가 일치하면 수정과 삭제를 실행, 일치하지 않으면(boolean =false) 에러메시지 출력한다. // boardJpaService // Board id 에 있는 member Id와 사용자의 member Id 비교 private boolean matchInfo(BoardRepository boardRepository, BoardDTO boardDTO){ int BoardI..