매일 공부하는 것들 정리합니다.
-
자바 입출력 정리 InputStreamReader BufferReader PrintWriter
기존에 알고 있었던 입출력 방식으로는 메모리 초과가 나서, 새로운 입출력 방식을 배우게 되었다. Scanner 와 BufferReader 의 차이는 무엇인가? 먼저, BufferReader 란 버퍼를 사용하여 입력을 하는 객체이다. 버퍼를 사용하지 않는 입력은, 키보드의 입력이 키를 누르는 즉시 바로 프로그램에 전달된다. 반면 버퍼를 사용하는 입력은, 키보드의 입력이 있을 때마다 한 문자씩 버퍼로 전송한다. 버퍼가 가득 차거나 혹은 개행 문자가 나타나면 버퍼의 내용을 한 번에 프로그램에 전달한다. 키보드로 데이터를 입력 받을때마다, 데이터 입출력, 그리고 하드디스크에 쓰기 작업에 모두 시간이 소요되기 때문에 데이터 량이 많을 경우 시간 소요가 크다. 그래서 반드시 buffer 를 거쳐서 작업을 하게 된다..
2024.01.18
-
개발 환경 데이터베이스를 도커 컴포즈로 관리
개발 환경에서 사용할 database 를 docker-compose.yml 로 관리할 수 있다. version: '3.8' # docker-compose 의 3.8 버전을 사용한다는 믜미services: db: image: mysql:8.0 # mysql 이미지 8.0 버전을 사용한다는 의미다. container_name: local-mysql # 컨테이너 이름 restart: always # environment: MYSQL_DATABASE: localdb MYSQL_USER: ${LOCAL_USERNAME} MYSQL_PASSWORD: ${LOCAL_PASSWORD} ports: - "3306:3306" volumes: ..
2024.11.25
-
spotless 적용하기
build.gradle 의 최상단에 존재하는 plugins 에 코드를 추가합니다. plugins { id 'java' id 'org.springframework.boot' version '3.3.5' id 'io.spring.dependency-management' version '1.1.6' id 'com.diffplug.spotless' version '6.21.0'}공식문서의 Java 코드 부분을 build.gradle 에 추가합니다. spotless {java { // Use the default importOrder configuration importOrder() // optional: you can specify import groups directly // note: you can use..
2024.11.24
-
JWT란?
1. JWT 이란유저를 인증하고 식별하기 위한 토큰기반 인증입니다. 토큰 자체에 사용자의 권한정보나 서비스를 사용하기 위한 정보가 포함됩니다. stateless 인 환경에서 사용자의 데이터를 주고 받을 수 있습니다. session 을 사용할 경우 쿠키 등을 통해서 사용자를 식별하고 서버에 세션을 저장했지만, 토큰을 클라이언트에 저장하고 요청시 HTTP 헤더에 토큰을 첨부하는 것만으로도 데이터를 요청하고 응답받을 수 있습니다. 2. JWT 구조 JWT 는 3 부분으로 구성되며, 각 부분은 점으로 구분하여 표현됩니다. 1) 헤더서명 시 사용하는 키, 사용할 타입, 서명암호화 알고리즘 의 정보가 담겨있습니다. kid : 서명 시 사용하는 키(Public/Private Key)를 식별하는 값typ : 토큰 유..
2024.08.21