반응형

Programming 375

리눅스 서버 시간 확인 및 설정 방법 (linux timedatectl 명령어)

linux timedatectl 명령어를 통한 리눅스 서버 시간 확인 및 설정 리눅스 서버에서 시스템 시간 및 해당 설정을 확인하고 변경해야 할 일이 있어 찾아보며 정리한 내용입니다. linux에서는 timedatectl 명령을 사용하여 현재 시간, 날짜 및 시간대(timezone) 설정을 확인 및 변경할 수 있는데요. 아래 내용을 통해 사용되는 명령어들에 대해서 살펴보겠습니다. (timedatectl 명령어는 CentOS 7부터 사용할 수 있습니다.) 1. 서버 시간 및 설정 확인 # timedatectl # timedatectl status timedatectl 또는 timedatectl status 명령어를 통해 시스템에 설정된 시간 및 시간 설정을 확인할 수 있습니다. 여기서 Local time의..

Programming/Linux 2023.03.30

Spring Boot OAuth2-Client 내부적인 동작 과정

스프링 부트 OAuth2-Client 내부적인 동작 과정 스프링 부트 2.x 버전으로 올라오며 oauth를 연동하는 방법이 크게 변경되었는데요. 아래 내용은 spring-boot-starter-oauth2-client 라이브러리를 적용하여 소셜 로그인(google, naver, kakao)을 구현하는 과정에서 내부적인 동작 과정에 대한 궁금증으로 찾아본 내용입니다. /* 기존(1.5 버전)에서는 'org.springframework.security.oauth:spring-security-oauth2' 라이브러리를 사용하였다면, 2.x 버전부터는 'org.springframework.boot:spring-boot-starter-oauth2-client' 라이브러리를 사용합니다. */ OAuth 2.0의 경..

OAuth, OAuth2 개념과 동작 방식 정리

OAuth, OAuth2 개념과 동작 방식 정리 Spring Security + OAuth2를 통한 소셜 로그인을 구현하던 중, oauth의 개념과 이론적인 동작 방식에 대해서 자세하게 알고 싶어 정리한 내용입니다. 1. OAuth, OAuth2.0 이란? 위키백과에 따르면 'OAuth(Open Authorization)'는 인터넷 사용자들이 비밀번호를 제공하지 않고, 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로써 사용되는, 접근 위임을 위한 개방형 표준인데요. 사용자의 아이디와 비밀번호 없이 접근 권한을 위임받을 수 있다는 것은, 로그인 및 개인정보 관리 책임을 'Third-Party Application(google, kakao, n..

Programming/Web 2023.03.22

Spring Event, @TransactionalEventListener 사용하기

@TransactionalEventListener 사용하기 및 propagation.REQUIRES_NEW spring framework 4.2부터 스프링 이벤트의 사용이 간편해졌는데요. 지난 포스팅에서 spring event를 사용하는 이유와 @EventListener를 통한 기본적인 이벤트 처리 방법에 대해서 살펴본 것에 이어, 이번 포스팅에서는 더 향상된 기능인 @TransactionalEventListener에 대해서 살펴볼 예정입니다. 2022.12.23 - [Programming/Spring Boot] - spring 이벤트 사용하기(event publisher, event listener) (이전 포스팅 내용으로 spring event에 대한 기본적인 처리 방법이 궁금하시다면 참고하시면 좋을..

(Spring Security + JWT) Refresh Token을 통한 토큰 재발급에 대해서

Spring Security + JWT / Refresh Token을 통한 토큰 재발급 방식 spring security + jwt를 사용한 인증 방식을 구현할 때, 토큰 재발급은 어떤 방식으로 이루어지는 게 좋을지에 대해 생각해 보며 정리한 내용입니다. * 토큰 재발급의 경우 다양한 방식으로 구현될 수 있으며, 해당 포스팅에서 구현된 방식은 여러 방식 중 하나라는 점 참고 부탁드립니다. Refresh Token을 사용하는 이유 access token은 발급된 이후, 서버에 저장되지 않고 토큰 자체로 검정을 하며 사용자 권한을 인증한다는 stateless(무상태)라는 특징이 있는데요. 때문에 access token이 탈취되면 토큰이 만료되기 전까지 토큰을 가진 사람은 누구나 권한 인증이 가능해진다는 문제..

(spring boot) RedisRepository 사용하는 방법, @RedisHash

Spring Data Redis, RedisRepository 사용하는 방법 spring boot에서 인메모리 데이터 저장소인 redis를 사용하기 위해서는 org.springframework.data.redis.core 패키지에 있는 'RedisTemplate 클래스를 사용하는 방법'과 CrudRepository를 상속받는 'RedisRepository를 사용하는 방법'이 있는데요. 해당 포스팅에서는 두 번째 방법인 CrudRepository를 상속받은 인터페이스를 이용해서 Redis를 사용하는 방법에 대해서 살펴보겠습니다. (예시에 사용된 spring boot 버전은 2.6.4 버전을 사용했으며 Jedis, Lettuce 오픈소스 라이브러리 중 spring boot 2.0부터 기본적으로 탑재된 Let..

Programming/Web 2023.03.07

Redis 데이터 타입, (error) WRONGTYPE Operation against a key holding the wrong kind of value

(error) WRONGTYPE Operation against a key holding the wrong kind of value 다음은 Redis 사용 중에 볼 수 있는 오류로 내용처럼 잘못된 타입으로 인해 발생하는 오류인데요. Redis에서 사용되는 데이터 타입과 각 타입 별 내용 및 데이터를 가져오는 명령어에 대해서 살펴보겠습니다. type * Redis에서 데이터 타입을 확인하기 위해서는 위 type 명령어를 사용할 수 있습니다. 1. String 가장 기본적인 Redis 데이터 유형인 'String'입니다. String 타입의 경우 텍스트, 직렬화된 객체 및 이진 배열을 포함한 바이트 시퀀스를 저장하며, Redis에서 사용되는 String type의 기본적인 크기는 최대 512MB입니다. * ..

Programming/Error 2023.03.05

(java) 어플리케이션 단계에서 외부 이미지 파일 불러오는 방법

java, application 단계에서 외부 이미지 파일 불러오는 방법 어플리케이션에서 파일 업로드를 구현할 때, 업로드되는 파일의 경우 application 내부의 static 폴더에 저장되는 것이 아니라 application 외부에 있는 서버 단의 별도의 공간에 저장되거나, 외부 파일 서버에 저장되는 방식이 사용되는데요. 업로드 이후 해당 이미지 파일을 보기 위해서는 web server를 통한 방식이 주로 사용됩니다. 하지만 특수한 경우로 web server를 통해 정적 파일에 접근하는 것이 아니라, 어플리케이션 단계에서 해당 파일을 가져와야 하는 경우가 있는데요. 이때 어떤 방법으로 application 단계에서 이미지 파일을 가져올 수 있는지 살펴보겠습니다. 핵심이 되는 부분 @GetMappin..

Programming/Java 2023.03.01

REST API Response Format, 응답 객체는 어떤 형식이 좋을까?

rest api response format and example 1. REST API 응답 형식에 대한 의문 지금까지 백엔드로 RESTful API를 여러 번 작업하면서 의문을 느낀 점은 각각의 프로젝트마다 'api 요청에 대한 response 형식이 다르다'는 것입니다. 이유는 RESTful API 응답 형식에 대한 표준이 없기 때문인데요. 표준은 없더라도 많이 사용되거나 선호되는 형식이 있을 것 같았으며, 해당 형식을 사용하는 합당한 이유들이 존재할 것 같아서 그에 대한 내용을 찾아보았습니다. (rest api response 형식에 대해서는 stackoverflow 등의 커뮤니티에서도 활발한 토론이 이뤄지고 있습니다.) 추가로 내용을 찾아보면서 개인적으로 적합하다고 생각되는 응답 형식의 예시와 해..

Programming/Web 2023.02.25

gcp vm 인스턴스 swap 스왑 메모리 적용하는 방법

GCP VM 인스턴스 스왑 메모리(swap) 적용하는 방법 스왑 메모리(swap memory)란? 시스템에서 메모리(RAM)가 부족할 경우 프로세스는 더 이상 작업을 이어가지 못하고 종료되는데요. 스왑 메모리는 시스템에 메모리가 부족한 상황에서 하드 디스크의 일부 공간을 활용하여 작업이 계속되도록 도와주는 영역으로, '하드 디스크의 일부를 RAM처럼 사용할 수 있게 만드는 방법'입니다. RAM처럼 사용할 수 있게 만들었다지만 하드 디스크 상에 위치하기 때문에 RAM에 접근하는 것보다 접근 속도가 느리며, 따라서 데이터를 처리하는 속도도 느린데요. 속도는 느리지만 메모리가 부족하여 시스템이 다운되거나 장애를 발생시키는 것 보다는 스왑 메모리를 활용하는 것이 안전성 측면에서 뛰어나다는 장점이 있습니다. 대부..

Programming/Web 2023.02.22
반응형