Home

0

Spring-JWT(JSON Web Token) - 2. 회원가입

2. 회원가입목차 Spring-JWT(JSON Web Token) - 4. JWT 다루기 Spring-JWT(JSON Web Token) - 3. Spring Security 적용하기 Spring-JWT(JSON Web Token) - 2. 회원가입 Spring-JWT(JSON Web Token) - 1. JWT 알아보기 의존성 관계build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test'} 회원가입을 위한 DTO 만들기SignUpRequest.java @Data@AllArgsConstructor@NoArgsConstructorpublic class SignUpRequest { private String username; private String password;}

0

메모리 관리

메모리 관리 기본적인 메모리 관리 swapping 가상 메모리 Page replacement 알고리즘 세그멘테이션 프로그래머들이 가장 바라는 메모리는 바로 크고 빠르고 비 휘발성인것을 원한다. Memory Manager(메모리 관리자) 메모리 계층을 관리하는 운영체제의 일부분 사용하고 있는 메모리와 사용하고있지 않는 메모리를 계속해서 추적한다. 메모리를 프로세스에 할당하고 해제한다. 프로세스의 용량이 커서 메모리에 용량이 작을 경우 메모리와 디스크를 swapping한다. 기본적인 메모리 관리 기법paging이나 swapping이 없는 단일 프로그램메모리보다 더 큰 Program의 등장프로그램이 점점 커지다 보니 우리가 사용하는 메인 메모리보다 큰 프로그램이 생겨나게 됐다.이를 해결하기 위한 방법으로 overlay와 virtual memory 방법이 나왔다.

0

네트워크 - TCP

TCP(Transmission Control Protocol) TCP 서비스 연결 지향의 신뢰성이 있는 바이트 스트림 서비스를 제공한다. 양방향 통신을 지원한다.(Full-Duplex Communication) 흐름제어와 에러제어, 그리고 혼잡제어를 제공한다.(신뢰성 있는 전송) 신뢰성 있는 전송이란? 데이터가 손실, 중복되지 않고 순서가 어긋나지 않는 전송방식 바이트 스트림 서비스란? 데이터 송 수신시 버퍼 기능을 이용해 Byte 단위로 처리

0

클라우드 서비스

클라우드 서비스 종류IaaS(Infrastructure as a Service)인프라를 제공하는 방식 - 컴퓨터를 대여해주는 거라고 생각하면 이해하기 쉽다. 아마존의 AWS, MS의 Azure, 구글의 GCP Platform as a Service플랫폼을 제공하는 방식 - IaaS 서비스에 Runtime환경까지 설정이 이미 되어 있기 때문에 Software as a Service특정 소프트웨어를 제공하는 방식 - 드랍박스, 구글 Docs, 오피스365 장점 컴퓨팅 환경을 빠르게 구축할 수 있다는 장점이 있다. 사용한 만큼만 돈을 지불하면 된다. 특정기간 트래픽이 폭주하는 경우에 자원의 리소스 추가와 삭제가 기존의 on-premise방식에 비해 용이하다. 서버를 관리하기 위한 물리적 공간과 인적 자원에 대해 신경쓸 필요가 없어진다.

0

Spring Boot - Logging 설정

로그 레벨 ERROR > WARN > INFO > DEBUG > TRACE 스프링에서 제공하는 로깅 레벨은 총 5가지 입니다. 로깅 레벨은 ERROR 가 제일 높고 TRACE 가 가장 낮습니다. 로킹 레벨 설정시 현재 레벨이상의 로그 정보를 합께 보여줍니다. 따라서 로그 레벨은 TRACE로 갈 수록 표현되는 Log의 양이 많아지고 ERROR로 갈 수록 표현되는 Log의 양이 적어집니다. Configure 파일 문법Logback Configure파일을 구성하는 3가지 태그가 있다. appender 로그의 출력 위치, 출력 형식및 로깅에 대한 설정(ex. 기간, 용량 등)을 지정한다 root 전역적인 로그 설정을 위해 사용한다. appender를 사용해 appender에 정의된 형식과 위치로 로그를 출력 여러개의 appender를 사용할 수 있다. logger root와는 반대로 class나 Package단위로 Logging 정책을 설정할 수 있다. 로그 메시지를 작성하기 위해 사용하는 클래스를 명시하고 appender를 사용해 appender에 정의된 형식과 위치로 로그를 출력한다. 여러개의 appender를 사용할 수 있다. appender 클래스의 종류

0

Spring Boot 게시판 만들기 22 - Github Action 사용하기

22. Github Action 사용하기이전에 Jenkins를 이용해 CI 환경을 구성했다. Jenkins를 이용한 CI 환경의 가장 큰 단점은 Github로부터 Web Hook을 받을 수 있게 Port를 열어둬야 한다는 것이다. ngrok을 이용하더라도 계속해서 Port를 열어둘 수는 없는 노릇이라서 Github에서 제공하는 CI 도구인 Github Action을 이용하기로 했다. Github Action Workflow Template 선택하기Github에서 프로젝트를 선택하면 상단에 Action을 선택하면 본인의 환경에 맞는 Build 환경을 위한 Template를 선택할 수 있다. Gradle을 이용해 Spring Boot 프로젝트를 진행하고 있으므로 Gradle을 선택하도록 한다. Template 수정하기Gradle을 선택하게 되면 기본적으로 Gradle을 이용한 Build Plan Template가 주어진다. 기본적인 Template에서는 JDK 버전이 1.8인데 프로젝트는 JDK 11을 이용해 진행하고 있으므로 변경해줄 필요가 있다. 그 외에 운영체제나 원하는 Build Branch들을 선택할 수 있다.

0

복수의 테이블 다루기

07장 복수의 테이블 다루기UNION으로 합집합 구하기UNION으로 합집합 구하기SELECT * FROM sample71_a;+------+| a |+------+| 1 || 2 || 3 |+------+3 rows in set (0.00 sec) SELECT * FROM sample71_b;+------+| b |+------+| 2 || 10 || 11 |+------+3 rows in set (0.00 sec) 두개의 SELECT 명령을 UNION해서 합집합 구하기SELECT * FROM sample71_aUNIONSELECT * FROM sample71_b; 결과 +------+| a |+------+| 1 || 2 || 3 || 10 || 11 |+------+5 rows in set (0.00 sec)

0

데이터베이스 객체 작성과 삭제

6장 데이터베이스 객체 작성과 삭제26장 테이블 작성, 삭제, 변경CREATE TABLE로 테이블 작성하기CREATE TABLE sample62( no INTEGER NOT NULL, a VARCHAR(30), b DATE);) 결과 mysql> DESC sample62;+-------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+-------------+------+-----+---------+-------+| no | int | NO | | NULL | || a | varchar(30) | YES | | NULL | || b | date | YES | | NULL | |+-------+-------------+------+-----+---------+-------+3 rows in set (0.00 sec) 데이터 행 삭제 TRUNCATE TABLE [테이블명] ALTER TABLE로 테이블에 열 추가하기

0

집계와 서브쿼리

집계와 서브쿼리행 개수 구하기 - COUNTCOUNT로 행 개수 구하기 테이블 SELECT* FROM sample51;+------+------+----------+| no | name | quantity |+------+------+----------+| 1 | A | 1 || 2 | A | 2 || 3 | B | 10 || 4 | C | 3 || 5 | NULL | NULL |+------+------+----------+5 rows in set (0.00 sec) 명령어 SELECT COUNT(*) FROM sample51; 결과 +----------+| COUNT(*) |+----------+| 5 |+----------+1 row in set (0.00 sec)

0

데이터 추가, 삭제, 갱신

데이터 추가, 삭제, 갱신행 추가하기 - INSERT 명령어 SELECT * FROM sample41; 결과 Empty set (0.00 sec) 현재는 비어있는 테이블이다. sample41 열 구성 확인하기 명령어