일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자료구조와 함께 배우는 알고리즘 입문
- GIT
- 리눅스
- ㅒ
- 구멍가게코딩단
- 자료구조와함께배우는알고리즘입문
- 페이징
- 네트워크 설정
- 데비안
- network configuration
- Kernighan의 C언어 프로그래밍
- 알파회계
- 처음 만나는 AI 수학 with Python
- 스프링부트핵심가이드
- 티스토리 쿠키 삭제
- 서버설정
- iterator
- 선형대수
- /etc/network/interfaces
- 친절한SQL튜닝
- 코드로배우는스프링부트웹프로젝트
- 스프링 시큐리티
- 코드로배우는스프링웹프로젝트
- 이터레이터
- 자바편
- 처음 만나는 AI수학 with Python
- 목록처리
- d
- resttemplate
- baeldung
- Today
- Total
목록Projects (57)
bright jazz music
1. 데이터 추가 테스트package com.test.mallapi;import com.test.mallapi.domain.Todo;import com.test.mallapi.repository.TodoRepository;import lombok.extern.log4j.Log4j2;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import java.time.LocalDate;@SpringBootTest@Log4j2public class TodoRepositoryTests { ..
-- 1. DB설정2. 프로젝트에서 domain 패키지 만들고 거기에 Entity 생성하고 @Id와 @GeneratedValue(strategy = GenerationType.IDENTITY)로 설정package com.test.mallapi.domain;import jakarta.persistence.*;import lombok.*;import java.time.LocalDate;//엔티티를 사용해서 DB와 애플리케이션 사이의 데이터를 동기화 하고 관리@Entity@Table(name="tbl_todo")@Getter@ToString@Builder@AllArgsConstructor@NoArgsConstructorpublic class Todo { @Id // DB의 pk가 됨 // 고유한 ..
1. 타입스크립트 기반 리액트 프로젝트 생성 명령 $ npx create-react-app 프로젝트명 --template typescript 2. package.json 확인 기본적으로 리액트를 비롯한 모든 Node.js 프로젝트는 루트 디렉토리에 package.json 파일이 존재한다. { "name": "ch01_5", "version": "0.1.0", "private": true, "dependencies": { "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", "@types/jest": "^27.5.2", "@types/node": "..
1. 편집기 설정파일 설정 파일 -> 기본설정 -> 설정 ctrl + , -> user settings(json) 선택 : json형식으로 보겠다는 것 탭사이즈 2로 변경 2. prittier 설치하고 설정파일에 적용 settings.json { "editor.inlineSuggest.enabled": true, "github.copilot.enable": { "*": true, "plaintext": false, "markdown": false, "scminput": false }, "editor.tabSize": 2, "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, "[typescript]": { "ed..
- 테스트 케이스 개선 로컬에서 테스트 할 때는 굳이 암호화하여 테스트 할 필요 없으므로 평문을 사용하는 PasswordEncoder를 하나 더 생성하여 테스트 해볼 수 있다. 따라서 로컬에서 테스트 할 때는 평문을 사용하는 encoder를 주입하고, 운영에서는 암호화를 사용하는 encoder를 사용하는 것이다. 그렇게 하면 asserEquals()를 사용하여 테스트 할 수 있다. 1.PasswordEncoder 인터페이스 생성 //PasswordEncoder.java package com.endofma.blog.crypto; public interface PasswordEncoder { String encrypt(String rawPassword); boolean matches(String rawPas..
비밀번호가 평문에서 암호로 바뀌면서 기능하지 않는 것들이 있다. 예를 들면 아래와 같이 회원가입을 한 뒤에 평문을 넣어 로그인을 시도하면 실패한다. //AuthServiceTest.java @Test @DisplayName("로그인 성공") void test3(){ //given Signup signup = Signup.builder() .email("catnails@gmail.com") .password("1234") .name("catnails") .build(); authService.signup(signup); Login login = Login.builder() .email("catnails@gmail.com") .password("1234") .build(); //when authService..
비밀번호 저장을 위해 Scrypto 알고리즘을 사용한다. Scrypto를 지원하는 다양한 라이브러리들이 존재한다. 이 프로젝트에서는 Spring security에서 지원하는 Crypto 라이브러리를 사용한다. https://docs.spring.io/spring-security/site/docs/current/api/org/springframework/security/crypto/scrypt/package-summary.htm org.springframework.security.crypto.scrypt (spring-security-docs 6.0.2 API) package org.springframework.security.crypto.scrypt Classes docs.spring.io https:/..
지난 포스팅에서는 jwt키를 application.yml에 넣어 놓고 불러와서 jwt암호화를 진행하는 과정을 다뤘다. 이번에는 회원 가입을 다룬다. 구체적으로는 아이디와 비밀번호를 입력 받고, 비밀번호를 암호화 해서 DB에 넣는 과정이다. - application.yml 수정(data.sql 입력 되지 않도록) 현재 어플리케이션을 구동하면 data.sql이 자동으로 DB에 입력되도록 되어 있다. 빈 DB 에 테스트 할 수 있도록 application.yml에서 sql 설정을 never로 변경해준다. 사실 이 과정은 오늘 진행할 내용과 관련 없다. 이제 기본적인 회원가입 기능을 만든다. 1. AuthController.java에 회원가입 메서드 생성하기 //AuthController.java //회원가입 ..
지난 번에는 application.yml에 정보를 넣어두고 그 정보를 AppConfig라는 클래스에 바인딩 시키는 과정을 실습하였다. yml의 문법을 사용하여 문자열, 숫자, 해쉬맵 뿐만 아니라 클래스 인스턴스에 바인딩하였다. yml에 정보 기재 AppConfig에 @ConfigurationProperties() +@Data 메인 클래스에 @EnableConfigurationProperties(바인딩 시킬 클래스) 이번에는 지난 번 포스팅의 내용을 참고하여 JWT를 생성하기 위한 key를 application.yml에 작성하고 그것을 AppConfig.java에 바인딩하여 사용하는 과정을 진행한다. private final String KEY = "Kz06PMZdP03FQVS3m8Jg9gKSEQjV4/N..
지난 번 포스팅에서는 jwt를 사용하여 암호화를 하고 그것을 세션으로 이용하는 내용을 다루었다. 따라서 UserController.java와 AuthResolver.java에 동일한 값의 특정 키를 가져와서 jwt를 암호화, 또는 복호화 하는 데 사용했다. AuthResolver.java에서는 복호화하는 데 사용했다. AuthController.java에서는 로그인을 하는 경우에 암호화 하였다. 세션의 경우 일반적으로는 모든 사용자가 같은 키를 사용하게 된다. 사용자별로 세션을 만들어 줄 때마다 키 값이 달라지는 경우 복호화 할 수 없기 때문이다. 키 값은 서버 어딘가에 위치해야만 한다. 지난 번 포스팅에서는 AuthController.java와 AuthResolver.java에 문자열 상수로 저장하였다..