반응형

전체 글 428

Java - BigDecimal 사용하는 이유 (feat.부동소수점의 부정확성)

Java 기반 프로그램에서 소수점에 대한 정확한 계산이 필요하거나 화폐 단위를 다룰 때는 BigDecimal을 사용하는데요. 자바에서 숫자를 표현하는 데이터 타입에 대해서 간단하게 살펴보고, 이어서 BigDecimal을 사용해야 하는 이유는 무엇인지 살펴보겠습니다. Java에서 숫자를 표현하기 위한 데이터 타입 자바에서 숫자를 표현하기 위해 사용하는 데이터 타입은 크게 '정수형 데이터 타입'과 '실수형 데이터 타입'으로 나눠집니다. - 정수형 데이터 타입(Integer Types) 데이터 타입 (자료형) 크기 저장 가능한 값의 범휘 byte 1byte (8bit) -128 ~ +127 short 2byte (16bit) -32,768 ~ + 32,767 int 4byte (32bit) -2,147,483..

Programming/Java 2022.08.18

FeignClient 기본적인 사용법 (Spring Cloud OpenFeign)

기존 프로젝트에서는 서비스 간 통신에서 RestTemplate을 사용했는데 FeignClient를 통해 조금 더 편리하게 사용할 수 있다고 하여 적용해보며 정리한 내용입니다. 잘못된 부분은 댓글로 남겨주시면 확인하여 다시 공부하고 수정하겠습니다. 미리 감사드립니다. Spring Cloud OpenFeign FeignClient란 Netflix에서 최초로 개발된 선언적 HTTP 클라이언트인데요. 이때는 Spring Cloud Netflix Feign 였으나, 현재는 오픈소스 프로젝트인 OpenFeign로 변경되었는데, OpenFeign가 Spring Cloud OpenFeign에 통합되면서 SpringMVC 어노테이션에 대한 지원 및 HttpMessageConverters를 사용할 수 있게 되었습니다. F..

Java 위도 경도에 따른 거리 계산(내 주변 반경)

위도 경도에 따른 거리 계산 및 내 주변 일정 거리 이내에 있는 대상들을 판단하기 위해 작업된 코드 및 내용을 정리한 것입니다. 먼저 위도와 경도의 정의에 대해서 간단하게 살펴본 뒤 코드를 이어서 보겠습니다. (코드만 필요하신 분들은 윗부분은 살짝 스킵하셔도 될 것 같습니다.) 위도(latitude), 경도(longitude) '위도'는 적도를 기준으로 북위(N), 남위(S)로 나뉘며, 각각 0° ~ 90°로 표현합니다. 같은 위도를 연결한 가로선을 위선이라고 합니다. '경도'는 영국의 그리니치 천문대를 기준(0°)으로 하여 동쪽과 서쪽을 각각 180°로 표현합니다. 같은 경도를 연결한 세로선을 경선이라고 합니다. 우리나라의 위도와 경도 기준점은 경기도 수원에 있는 국토지리정보원이며, 이곳의 위도와 경도..

Programming/Java 2022.08.03

ExceptionTranslationFilter과 SecurityInterceptor

ExceptionTranslationFilter, FilterSecurityInterceptor, MethodSecurityInterceptor 해당 포스팅은 Spring Security에서 인증(Authentication)과 인가(Authorization)에 대한 예외 처리를 담당하는 ExceptionTranslationFilter과 해당 필터에 이어서 동작하며, 권한을 검사하는 FilterSecurityInterceptor, MethodSecurityInterceptor의 동작 과정에 대해서 살펴본 내용입니다. - ExceptionTranslationFilter 먼저 ExceptionTranslationFilter의 경우 스프링 시큐리티의 filter chain에서 인증과 인가에 대한 Exceptio..

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
반응형