반응형

Programming 376

GCP 인스턴스 SSH 접속하는 방법

앞전에 아래 포스팅의 과정을 통해 구글 클라우드 플랫폼 GCP 무료 서버를 생성했었는데요. 서버 생성 후 'SSH 키를 통해 해당 서버에 접속하는 방법'에 대해 정리한 내용입니다. 해당 과정대로 진행하면 생각보다 간단하게 서버에 접속할 수 있습니다. (로컬에서 ssh 키를 생성 -> gcp에 ssh 키 등록 -> 인스턴스 접속) 구글 클라우드 플랫폼 GCP 무료 서버 생성하기(22년 6월 기준) 구글 클라우드 플랫폼(Google Cloud Platform) 무료 서버 생성하는 방법에 대해서 알아보겠습니다. 구글링을 통해 GCP 무료 서버 구축 방법을 찾아보면 포스팅이 작성된 기간에 따라 서버 구축에 관련 wildeveloperetrain.tistory.com 1. SSH 키 생성하기 ssh 키를 통해 서..

Programming/Web 2022.07.29

데몬(daemon) 프로세스의 정의와 실행 방법

프로젝트의 개발서버 배포 과정에서 데몬을 사용하여 서비스의 배포와 관리를 자동화할 수 있다는 것을 알게 되었고, 실제 적용해보면서 정리한 내용입니다. 내용 참고하시고 잘못된 부분은 지적해주시면 확인하고 공부하여 다시 수정하겠습니다. 미리 감사드립니다. 프로세스란? (background, foreground) 데몬(daemon)에 대해서 이해하기 위해서 먼저 프로세스에 대해서 간단하게 살펴보겠습니다. 프로세스(process)는 연속으로 실행되고 있는 컴퓨터 프로그램(program)을 의미하는데요. 프로세스는 포그라운드(foreground) 프로세스와 백그라운드(background) 프로세스로 나눌 수 있습니다. 각각에 대해서 살펴보면 포그라운드 프로세스는 인터넷 브라우저, 인텔리제이, 카카오톡 등, 눈에 ..

Programming/Linux 2022.07.27

SSO(Single Sign-On) jwt 동작 이론 살펴보기

SSO란, SSO(Single Sign-On)은 하나의 시스템(인증 서버)에서 클라이언트에 대한 인증을 수행하고, 그 인증 정보를 가지고 추가적인 인증 없이 다른 서비스들도 사용할 수 있도록 하는 기능입니다. (통합 인증, 단일 인증, 단일 계정 로그인, 싱글 사인온 등으로 다양하게 불리고 있습니다.) Single Sign-On을 사용하면 여러 서비스에 대한 로그인 처리가 간소해지기 때문에 편리하다는 장점이 있는데요. 하지만 하나의 인증 정보로 여러 서비스를 사용하기 때문에 보안적인 부분에 대해 더욱 신경을 써야 하며, 결제, 개인정보 등 중요 요청의 경우에는 이중 인증 등의 절차를 추가하는 등의 과정이 필요합니다. SSO의 다양한 방식, SSO에서는 인증 서버를 거친 사용자의 인증 정보에 대한 유효성을..

Programming/Web 2022.07.24

세션을 사용한 스프링 시큐리티 구현(WebSecurityConfigurerAdapter deprecated)

Session을 사용한 아주 기본적인 스프링 시큐리티 코드를 정리한 내용입니다. 최근 WebSecurityConfigurerAdapter가 deprecated 되면서 해당 부분이 적용된 코드로 구현하였으며, 세부적인 내용을 모두 담기에는 길어지기 때문에 전체적인 큰 흐름에서 참고해주시면 좋을 것 같습니다. (전체 코드는 포스팅 맨 하단 git 주소를 링크해두었고, spring security 흐름에 참고가 될만한 글도 함께 링크해 두었으니 보시면 좋을 것 같습니다.) Spring Security란? 대부분의 프로그램에서는 사용자에 대한 기능이 필수적으로 들어가는데요. 사용자 기능이 들어가면 인증(Authentication)과 인가(Authorization)에 대한 처리 역시 함께 들어가야 하는데, Spr..

@MappedSuperclass 조금 다르게 사용해보기

@MappedSuperclass 어노테이션을 조금 다르게 사용하는 방법에 대한 포스팅입니다. 해당 어노테이션의 핵심 기능은 '공통 매핑 정보를 간편하게 관리'하기 위해서 인데요. 때문에 프로젝트에서는 일반적으로 createdDate와 modifiedDate 같은 공통 필드를 관리하는 BaseTimeEntity 클래스에서 가장 많이 사용됩니다. 아래 내용은 BaseTimeEntity가 아닌 @MappedSuperclass 어노테이션을 활용해 '완전히 똑같은 필드를 가진, 같은 종류지만 서로 다른 Entity를 하나의 Repository로 관리하는 방법'을 정리한 포스팅입니다. 단순하게 공통 매핑 정보를 관리하는 것과는 조금 다르게 사용해보았기 때문에 내용 참고해보시고 필요에 따라 적용을 고려해보시면 될 것..

Programming/Java 2022.07.18

스프링 시큐리티 SecurityContextHolder에 Authentication(인증) 정보가 저장되는 과정

Spring Security에서 인증이 완료된 Authentication(인증 정보)를 SecurityContextHolder에 저장하는 과정에 대해 정리한 내용입니다. Spring Security 시큐리티 동작 원리 이해하기 - 1 스프링 시큐리티 (Spring Security)는 스프링 기반 어플리케이션의 보안(인증과 권한, 인가)을 담당하는 스프링 하위 프레임워크입니다. 보안과 관련해서 체계적으로 많은 옵션들을 제공해주기 때문 wildeveloperetrain.tistory.com 인증이 진행되는 과정 및 구현 내용이 정리된 포스팅입니다. 인증을 통해 Authentication을 반환하는 과정이 담겨있기 때문에 동작 원리를 파악하기 위해서는 먼저 보고 오셔도 좋을 것 같습니다. (WebSecurit..

Vue.js 프로젝트 기본 구조에 대한 이해

Vue.js에 대한 공부를 시작하면서 가장 기본이 되는 프로젝트의 구조와 각각의 부분에 대한 이해를 하기 위해 정리한 내용입니다. 잘못된 부분은 댓글로 남겨주시면 확인하고 공부하면서 다시 수정하겠습니다. 미리 감사드립니다. 'Vue 3'를 기본으로 'vuex'와 'router'를 사용하는 프로젝트를 생성한 결과입니다. package.json, package-lock.json, node_modules 먼저 package.json, package-lock.json, node_modules 폴더에 대해서 살펴보겠습니다. package.json 파일은 프로젝트에 대한 정보를 담고 있는데요. 프로젝트의 이름, 버전, private 여부, 배포 및 개발에서 사용할 모듈 정보, 실행 명령어, 지원할 브라우저에 대한 ..

Programming/Vue 2022.07.05

@Valid @Validated 동작 원리 파헤치기

Custom Validator, Message Bundle 등의 유효성 검사와 관련된 작업을 하면서 @Valid와 @Validated 어노테이션의 동작 원리에 대해 궁금해져서 해당 부분을 정리한 내용입니다. (코드를 살펴봤지만 아직까지 세부적으로 이해하지 못한 부분이 많습니다. 설명이 부족할 수 있다는 점 미리 양해 부탁드리겠습니다.) @Valid @Validated 차이점, Spring에서는 유효성 검증을 위해 자바 표준 스펙인 JSR-303의 @Valid Annotation을 많이 사용합니다. 하지만 어떤 경우 @Validated Annotation도 사용되는 것을 볼 수 있는데요. 두 어노테이션의 차이점은 무엇일까요? @Validated 어노테이션은 JSR-303의 업그레이드 버전으로 @Valid ..

(Spring Boot) Custom Validator 적용하는 방법, 단일 및 다중 필드

프로젝트에서는 클라이언트의 요청 값을 검증해야 하는 많은 경우가 있습니다. 이때 Java에서는 'Bean Validation'을 통해 유효성 검증을 실시하는데요. 'Bean Validation'은 빈 유효성 검사를 위한 Java API 사양으로 @NotNull @NotBlank @Email @Positive 등과 같은 어노테이션을 사용해서 빈의 속성이 유효성을 충족하는지 확인하게 됩니다. (JSR-303 또는 JSR-380 이라고도 불리며, Bean Validation 1.0 => JSR-303이고 Bean Validation 2.0 => JSR-380입니다.) JSR-303, JSR-380이 제공해주는 Validation의 종류는 다양하지만, 서비스에 따라서 기본적으로 제공되는 검증 어노테이션 외에 유..

Spring swagger 3 사용방법(springdoc-openapi-ui)

스프링 부트에서 'springdoc-openapi-ui'를 사용하여 swagger3를 적용하는 방법에 대해서 살펴보겠습니다. 'springfox-swagger-ui', 'springfox-swagger2'를 사용하는 방법과는 다른 방법이며, 오로지 'springdoc-openapi-ui' 하나만 사용하여 swagger를 설정하는 방법입니다. 스웨거를 적용하는 과정에서 실행 시 오류가 발생하는 경우는 대부분 spring boot의 버전과 springdoc의 버전 차이가 원인일 수 있는데요. 저 같은 경우는 테스트 시 spring boot 2.7.0 버전에 springdoc 1.5.2 버전으로 실행했을 때, 실행 자체에서 BeanCreationException 오류가 발생했었는데, springdoc의 낮은 ..

반응형