let selection = window.getSelection(); // 선택 영역 변수로 선언let content = "";// 선택된 영역이 존재한다면if (selection.rangeCount > 0) { let range = selection.getRangeAt(0); // 선택된 영역 중 첫 번째 영역을 가져옴 let selectedContent = range.cloneContents(); // 선택된 내용을 복제(clone)하여 새로운 DocumentFragment로 만듦 let div = document.createElement('div'); // 임시 div 요소를 생성 div.appendChild(selectedContent); // 복제된 내용을 임시 div 요소..

swagger 설정을 하던 도중 ApiResponse, ApiResponses라는 어노테이션을 사용하게 되었다. 해당 어노테이션의 사용 방법은 responseCode = "200", description="OK" 이러한 방식으로 특정 responseCode가 응답될 경우 설명을 보여주는 코드인데 원래 코드에서 사용하던 내용은 아래와 같다. @ApiResponses({ @ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "400", description = "BAD REQUEST"), @ApiResponse(responseCode = "404", description = "NOT FOUND")..

Redis를 Spring Boot에서 사용하는 방법은 어렵지 않다. /** Redis **/ implementation 'org.springframework.boot:spring-boot-starter-data-redis' implementation 'redis.clients:jedis:3.7.1' 먼저 application에 있는 build.gradle 파일에 해당 내용을 작성한다.. 그 이후 기본 application.properties 파일에 작성한 포트와 ip를 넣어줘야 하는데 나는 application.yml 파일이기 때문에 #redis data: redis: host: localhost port: 6379 위와 같이 설정해주었다. Redis를 사용하는 방법..

Redis 명령어 Redis도 NoSQL이기는 하지만 본질은 데이터 저장이다. 결국 우리가 알고 있는 RDBMS와 동일하게 삽입, 수정, 삭제, 조회같은 명령어가 존재한다. Redis 설치 폴더에 들어가서 redis-cli.exe 파일읋 실행시킨다. [전체 조회]KEYS * [추가]SET {KEY} {VALUE} [Key로 데이터 조회]get KeyTest1※ 위에서 확인할 수 있는건 get으로 데이터를 가져올때 Key값의 대소문자를 구별한다는 것이다. [많은 데이터 저장]mset {key1] {value1} {key2} {value2} [많은 데이터 조회]mget {key1] {value1} {key2} {value2} [데이터 특정 시간까지만 저장하기]setex {key {seconde} {va..

Redis 설치아래 링크에 접속하여 Asserts에 있는 설치 파일을 다운로드 한다.https://github.com/microsoftarchive/redis/releases Releases · microsoftarchive/redisRedis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes - microsoftarchive/redisgithub.com 정상 설치가 된다면 작업관리자 서비스 탭에서 Redis가 실행중인것을 확인할 수 있다. 이제 redis..

공부를 하다보면 NoSQL이라는 말을 들어봤을 것이다. NoSQL은 Not Only SQL이라는 뜻으로 우리가 알고있는 관계형 데이터베이스 RDBMS와 반대 개념인비관계형 데이터베이스이다.Redis일반적으로 redis의 특징은 여러가지가 있는데Key - Value 구조비정형 데이터 저장, 오픈소스 기반 NoSQLIn Memory 구조 결론적으로 Redis를 사용하는 가장 큰 이유는 Session같이 휘발성 데이터를 저장할 떄 많이 쓰이며예시를 들면 로그인할때 사용되는 JWT Token이나 메일 인증코드 같은 데이터에 많이 사용된다.

네이버 메일에 환경설정을 들어가서 설정을 한 후 spring boot에 있는 gradle 설정을 해준다.implementation 'org.springframework.boot:spring-boot-starter-mail' 그 다음으로는 application 설정을 해준다.spring: mail: host: 사용할 host 주소 port: 위에 스크린샷에서 내리면 있는 포트번호 username: 아까 환경설정한 네이버 Id password: 아까 환경설정한 네이버 PassWord properties: mail: smtp: starttls: enable: true auth: true s..
swagger 설정을 하던 도중 ApiResponse, ApiResponses라는 어노테이션을 사용하게 되었다. 해당 어노테이션의 사용 방법은 responseCode = "200", description="OK" 이러한 방식으로 특정 responseCode가 응답될 경우 설명을 보여주는 코드인데 원래 코드에서 사용하던 내용은 아래와 같다. @ApiResponses({ @ApiResponse(responseCode = "200", description = "OK"), @ApiResponse(responseCode = "400", description = "BAD REQUEST"), @ApiResponse(responseCode = "404", description = "NOT FOUND")..

Jpa사용했을떄 @CreateData 어노테이션을 본적 있을것이다. @CreateData는 해당 엔티티에 save()메소드를 실행했을떄 localtime 기준해서 데이터를 넣어주는데 이 어노테이션만 사용하게 된다면 데이터가 저장되지 않는다. 따라서 main class에서 아래의 어노테이션을 설정해주고 사용할 entity class에서 위의 어노테이션을 설정해주면 이렇게 데이터를 자동으로 insert 시킬 수 있다.

의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.mysql:mysql-connector-j' 설정 jpa: hibernate: ddl-auto: update properties: hibernate: format_sql: true show_sql: ture defer-datasource-initialization: true ddl-auto (테이블 생성 규칙) none (데이터 베이스를 변경하지 않음) update (엔티티 변경 내용만 적용) create (서버 실행시 모두 삭제하고 다시 생성) vreate-drop (create와 같지만 서버가 종료될때 모두 삭제) validate (..