반응형

전체 글 424

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

유튜브 자체 자막 업로드하는 방법(자동 동기화 기능 사용)

몇 년 전부터 불어오는 유튜브 크리에이터 열풍으로 인해 많은 사람들이 유튜브 개인 채널을 운영하고 있는데요. 유튜브 자막의 경우 영상 내부에서 직접 넣을 수도 있지만 유튜브 자체 자막 업로드를 통해 추가로 언어별 자막을 생성할 수도 있는데요. 해당 포스팅은 동영상 업로드 시 '자동 동기화 기능'을 통해 유튜브 자체 자막을 업로드하는 방법입니다. 자막 업로드는 파일을 통한 업로드 방법 등, 여러 방법이 있지만 해당 방법은 대본 텍스트를 가지고 자동 동기화를 시키는 방법인데요. 그러기 위해서 동영상 내용에 대한 대본이 필요합니다. 동영상 만들기 이후 설정해줘야 하는 부분은 '언어 및 자막 면제 인증서' 부분입니다. 언어를 한국어로 선택하고, 면제 인증서는 없기 때문에 없음으로 설정합니다. 세부 정보 설정을 ..

IT Info 2022.07.23

세션을 사용한 스프링 시큐리티 구현(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..

애드센스 결제수단 추가하는 방법(+ 수수료 절약하는 방법)

애드센스의 수익금을 지급받기 위한 과정인 '결제수단 추가 방법'에 대한 포스팅입니다. 결제수단 등록하면서 찾아보니, 수익금을 지급받는 과정에서 발생하는 수수료가 생각보다 많다는 것을 알게 되었습니다. 그래서 수수료를 절약하는 방법을 찾아보던 중, 우리은행의 '우리 크리에이터 우대 통장'이라는 것을 알게 되었는데, 포스팅 내용 맨 하단에 내용을 함께 링크해 놓았습니다. 필요하신 분들께서는 함께 참고하셔도 좋을 것 같습니다. 'Google AdSence'의 최소 지급 기준인 '100$'가 넘어가면 쌓인 광고 수익을 지급받을 수 있는데요. 설정된 최소 지급 기준이 넘었지만 결제 정보가 입력되지 않은 경우, 위 이미지와 같이 '지급에 보류가 걸려있습니다.' 라는 경고 표시를 볼 수 있습니다. 해당 문제는 지급받..

IT Info 2022.07.06

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

유튜브, 애드센스 수익 수수료 무료, '우리 크리에이터 우대 통장'

유튜브 광고 수익 입금으로 더 많은 혜택을! 애드센스의 수익을 지급받기 위해 결제 수단을 등록하던 중, 수익금을 지급받는 과정에서 발생하는 수수료가 상당하다는 것을 알게 되었습니다. 이유는 달러를 송금받는 것이기 때문인데요. 구글의 애드센스에서 우리나라로 송금할 때의 중개은행에 대한 수수료가 발생하며, 추가로 송금받는 국내 은행에서 수수료가 또 발생합니다. 그리고 송금받은 달러에 대한 환전 수수료도 발생하게 되는데요. 즉, '중개은행 수수료' + '국내 은행 수수료' + '환전 수수료' 3중의 수수료 발생합니다. 이 중에서 국내 은행에서 발생하는 수수료는 은행마다 다르지만 건별로 5,000원 또는 10,000원이 발생했는데요. 수수료를 줄일 수 있는 방법을 알아보던 중 우리은행의 유튜브나 에드센스의 수익..

Finance 2022.07.04

채권추심 1위 업체, 고려신용정보 주가 상승 이유

하락장에도 상승 중, 고려신용정보(049720) 2022년 7월, 현재 국내 시장은 양적완화 정책의 여파와 러시아 · 우크라이나 전쟁의 여파로 인한 인플레이션에 직격타를 맞아 2021년 6월, 코스피 3300p 고점을 찍은 후, 1년간의 하락 추세에 있는데요. 코스피는 고점 대비 30%나 하락했으며, 거의 대부분의 종목들이 크게 하락하고 있습니다. 이러한 가운데 고려신용정보는 올초 대비 주가가 30%나 올랐으며, 최근 52주 신고가를 경신하면서 시장의 주목을 받고 있는데요. 고려신용정보는 어떤 회사인지, 최근 거래량 증가와 함께 주가가 오르는 이유는 무엇인지 살펴보겠습니다. 고려신용정보는 전국적인 네트워크와 우수 인력들을 기반으로 견고하게 자리 잡은 '11년 연속 시장 1위 채권추심 업체'입니다. 채권추..

Finance 2022.07.02

@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의 낮은 ..

데이터 타입 CHAR, VARCHAR의 차이점, 무엇을 써야할까?

대표적인 문자열 데이터 타입에는 CHAR, VARCHAR가 있습니다. 이 두 가지의 차이점은 무엇인지, 각각의 특징은 무엇인지에 대해서 살펴보겠습니다. 먼저 데이터 타입(DataType)에 대해서 알아보면, 컴퓨터 시스템과 프로그래밍 언어의 측면에서 보는 데이터 타입(자료형)은 실수, 소수, 정수, 문자열, 날짜 및 시간 타입 등, 여러 종류의 데이터를 식별하는 타입을 말하는데요. 자료형에 대해 가능한 값, 수행할 수 있는 명령어, 데이터의 형태 및 의미, 크기, 해당 자료형의 값이 저장되는 방식을 이야기합니다. 데이터베이스의 측면에서 보는 데이터 타입 역시 비슷한데요. 테이블을 정의할 때는 컬럼 별로 저장할 수 있는 타입까지 명시해야 하는데, 컬럼에 들어갈 수 있는 데이터 유형은 일반적으로 숫자형, 문..

반응형