일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- /etc/network/interfaces
- 친절한SQL튜닝
- ㅒ
- 스프링부트핵심가이드
- 페이징
- Kernighan의 C언어 프로그래밍
- 코드로배우는스프링부트웹프로젝트
- 처음 만나는 AI 수학 with Python
- d
- network configuration
- GIT
- 이터레이터
- 구멍가게코딩단
- 알파회계
- 티스토리 쿠키 삭제
- 리눅스
- 자료구조와 함께 배우는 알고리즘 입문
- 자료구조와함께배우는알고리즘입문
- baeldung
- 코드로배우는스프링웹프로젝트
- 데비안
- iterator
- resttemplate
- 서버설정
- 네트워크 설정
- 목록처리
- 스프링 시큐리티
- 처음 만나는 AI수학 with Python
- 자바편
- 선형대수
- Today
- Total
목록Projects/blog (53)
bright jazz music
로그인 할 때 세션 토큰을 발급하여 인증에 사용할 수 있도록 개선한다. 1. AuthService 생성 및 AuthController 수정 여기서 로그인 및 토큰 발급처리를 진행한다. //AuthService.java package com.endofma.blog.service; import com.endofma.blog.domain.User; import com.endofma.blog.exception.InvalidSigninInformation; import com.endofma.blog.repository.UserRepository; import com.endofma.blog.request.Login; import lombok.RequiredArgsConstructor; import org.sprin..
현재 DB에 값이 들어가 있지 않아 테스트가 번거롭다. 따라서 스프링을 실행할 때 sql파일을 추가하여 자동으로 값을 밀어 넣는 방법을 사용한다. 1. data.sql 파일 생성 data.sql 파일을 생성하여 resource 폴더 아래에 위치시킨다. 그 다음 application.yml 또는 application.properties 파일의 jpa설정을 수정한다. User엔티티 파일에 맞춰 sql 파일을 생성한다. -- data.sql -- INSERT INTO `users` (name, email, password, created_at) values ('catnails', 'catnails@gmail.com', '1234', '2023-02-14 21:58:00'); '가 아니라 `이다. 정 껄끄러우면..
지난 포스팅에서는 인증값을 헤더에 넣어서, 헤더에 "Authorization" 값이 존재하는 경우 API에 접근할 수 있도록 하였다. 그러나 이렇게 값이 있기만 해도 인증을 완료하는 경우는 거의 없다. 보통은 DB에서 매칭 작업을 하고 나서 토큰을 발급하여 인증하도록 하는 것이 일반적이다. (DB에서 사용자 확인 - 매칭 - 토큰발급 토큰은 로그인 시에 발급받는 것이 일반적이다. 현재 로그인 기능이 존재하지 않으므로 로그인 기능을 만들어야 한다. 1. 로그인을 위한 컨트롤러 생성: AuthController.java //AuthController.java package com.endofma.blog.controller; import lombok.RequiredArgsConstructor; import o..
지난 포스팅에서는 AuthResolver에서 getParameter로 넘어오는 값을 분석해서 인증작업을 해줬다. getParameter로 가져오면 다른 정보와 충돌이 생길 가능성이 있다. 따라서 인증정보는 헤더를 통해서 가져오는 것으로 변경한다. 1. ArgumentResolver 변경 //AuthResolver.java package com.endofma.blog.config; import com.endofma.blog.config.data.UserSession; import com.endofma.blog.exception.Unauthorized; import org.springframework.core.MethodParameter; import org.springframework.web.bind.su..
AurgumentResolver: preHandle에서 http 요청의 헤더를 검사한다. request parameter에 key값이 "accessToken"인 값이 있으면 해당 값을 요청에 setAttribute 해준다. 이 때 key 값은 임의로 정해주어도 된다. 여기서는 "userName"을 key로, accessToken을 value로 넣어줬다. 여기서는 string 값을 넣어줬지만 object를 넘길 수도 있다. request.setAttribute("userName", accessToken);
blog 26 포스팅에서 사용했던 get parameter, 또는 헤더 인증의 경우, 간단하게 값을 확인해서 if문으로 비교하여 api를 허용/거부처리 해줄 수 있었다. 0. 문제 그러나 이 방법의 경우 메소드가 추가될 때마다 동일한 작업을 반복하여 작성해야 한다는 단점이 있다. 매번 값을 꺼내고 확인하고, 인증값이 변경될 경우 모든 컨트롤러 메서드마다 변경해줘야 한다. 한 군데에서 한 번의 작업으로 전역적이고 반복적인 작업을 처리할 수 있는 방법이 필요하다. 1. 테스트 할 controller 생성하기 인터셉터는 요청이 컨트롤러 레이어에 진입하기 전에 공통된 작업을 해 준다. 인터셉터를 생성하기 전에 인터셉터를 테스트 할 핸들러를 생성하자. //postController.java @GetMapping(..
서버 입장에서는 들어온 요청의 인증 여부만 확인하여 인증이 된 요청이라면 API를 사용하도록 해주면 된다. - 새로운 기능을 추가할 때 과거에 작성한 코드가 맘에 들지 않을 수 있다. 그럴 때는 현재 내가 작성하려는 기능을 거기에 덧붙이지 말고, 과거의 코드를 리팩토링 한 뒤에 추가하는 버릇을 들이자. 그렇지 않는다면 레거시 코드로 남는 것이다. 리팩토링은 시간을 내서 하는 것이 아니다. 인증을 하는 방법 //PostControllerTest.java @Test @DisplayName("글 작성 요청시 DB에 값이 저장된다.") void test3() throws Exception { //given PostCreate request = PostCreate.builder() .title("제목입니다.") ..
애플리케이션 서버가 종료되면 접속이 되지 않는다. nohup을 사용한다. nohup은 기본적으로 애플리케이션으로 들어오는 중단 명령어를 무시하게 해준다. 터미널을 꺼도 종료되지 않는다. 그러나 ctrl + c를 누르면 종료된다. (그냥 nohup만 사용했을 경우) nohup을 쓰게 되면 터미널을 끄더라도 하더라도 계속해서 돌아간다. tail -f nohup.out : 파일이 내용이 쓰여질 때마다 갱신하면서 보여짐 종료하기 ==> 프로세스를 죽인다. ps aux (현재 시스템에 띄워져 있는 프로세스 리스트를 보여준다. nohup을 붙여서 애플리케이션을 실행하더라도 뭔가 할 수 있는 것은 아니다. 다른 일을 하기 위해서는 프로세스를 백그라운드로 넘겨야 한다. 이 때는 맨 끝에 &(ampersand)만 붙이면..
1. 터미널 열어서 프로젝트 경로에 접근하여 빌드 ./gradlew build 찾아보니 gradle-wrapper.jar 파일이 없어서 생기는 문제였음 ./gradlew build 애플리케이션 빌드 후 jar 파일 생성. 이 파일을 원격서버로 보내서 원격서버가 실행하면 이것이 애플리케이션 서버가 되는 것이다. 이렇게 생성된 jar 파일은 프로젝트 폴더의 build/lib 디렉토리에 위치하게 된다. libs 디렉토리 내부에는 두 개의 jar파일이 존재한다. - bootjar파일 (애플리케이션으로 띄울 수 있는 jar 파일이다. 빌드에 필요한 라이브러리가 포함돼 있다.) - plain.jar (관련 라이브러리가 포함되어 있지 않은 순수 자바 애플리케이션이) : 사용하지 않는다 이 plain.jar 파일이 생..
1. 개선 후 화면 소개 변경된 파일 확인 2. 개선 전 작업 DB에 값 넣어놓기 필요한 라이브러리 설치 - base.css 삭제. 방해됨 - scss 설치. (노드 서버 실행중에 설치했다면 재시작 해야 적용될 수 있음) - normalize.css 설치 npm install normalize.css package.json 확인 3. 파일 생성 및 구조 기본, 라우터 및 설정 파일 // index.ts import { createRouter, createWebHistory } from "vue-router"; import HomeView from "../views/HomeView.vue"; import WriteView from "../views/WriteView.vue" import ReadView f..