개발일지/Today I Learn

개발일지/Today I Learn

[ TIL ] OTP 코드에서 난수를 Random이 아닌 SecureRandom으로 생성하는 이유에 대해 알아보자

otp는 유저 인증을 위해 사용되는 인증 코드이다. 이러한 인증코드는 당연 난수로 만들어지게 된다. 즉, 랜덤(random)한 값으로 만들어지게 된다. 그렇다면 OTP 코드를 math.random()으로 간단히 구현하면 될까? 아니다. random은 치명적인 단점을 가지고 있다. Random의 단점과 SecureRandom의 장점 Random의 단점과 SecureRandom의 장점은 본문을 작성하는 이유이자 핵심적인 부분이다. 우선 Random과 SecureRandom은 난수를 만든다는 점에서 공통점이 있다. 하지만 "Random은 가짜 난수"를 "SecureRandom은 진짜 난수"를 생성한다. "Random은 가짜 난수" random은 '의사난수(Pseudo Random)'이다. 의사난수란 특정한 규..

개발일지/Today I Learn

[ 코딩 점검 ] 숫자에 천단위 콤마(쉼표) 찍기

문제 철수는 1000000원을 가지고 있다. 하지만, 1000000원이라는 금액은 '0'이 너무 많아 한번에 확인하기가 어렵다. 다음 임의의 수 number가 주어질 때 1000 단위마다 쉼표(,)가 적혀 있는 문자열을 출력하자 예시 ex1) number = 1000000 answer = 1,000,000 ex2) number = 12345 answer = 12,345 문제풀이 문제 풀이 방식은 다양하다. 그 중에서도 쉽게 외부 함수를 활용하는 방법이 있고 외부 함수를 사용하지 않는 방법이 있다. 외부함수를 활용하는 방법 public class decimalFormat { public static void main(String[] args) { int number = 1000000; DecimalForm..

개발일지/Today I Learn

[ 개발 일지 ] IT 채용 한파와 비전공자 개발자의 준비

IT 채용 한파 2019-2022 인류 역사상 유례 없는 팬데믹이 유행하며, 인류가 오랜동안 유지해왔던 직업관이 송두리째 변하게 되었다. 그 중 가장 큰 역할을 한 것은 바로 IT 기술이었다.    우리는 IT 기술을 통해 재택근무의 효용성에 대해서 피부로 느낄 수 있었고, 엔데믹 시대에 대한 매우 적절한 대안으로 재택근무라는 새로운 근로 방식을 적극적으로 수용할 수 있었다. (물론, 재택근무는 팬데믹 이전부터 시행되어 왔지만, 이 시기를 기점으로 폭발적으로 증가하였음을 뜻한다.) 이와 더불어 저금리 시대에 투자 호황을 겪으며 IT 산업은 어느 나라를 막론하고 고공행진하는 전성기를 맞이할 수 있었다.  하지만, 기쁨은 잠시였다. 2022년 국제적인 이슈가 발생하였고, 이로 인해 세계적인 유류 가격이 인상..

개발일지/Today I Learn

[ TIL ] 명령형 프로그래밍과 선언형 프로그래밍

리액티브 프로그래밍과 선언형 프로그래밍 오늘은 리액티브 프로그래밍을 공부하던 중에 생겨난 여러가지 궁금증과 해답을 이야기 하고자 한다. 리액티브 프로그래밍은 선언형 프로그래밍을 패러다임으로 가지는 프로그래밍이다. 그렇다면 선언형 프로그램이 무엇을 의미할까? 선언형과 대조되는 개념은 무엇이고 어떠한 차이점이 있는지 알아보도록 하자. 선언형 프로그래밍 선언형은 what의 개념을 가지고 있다. 즉, 무엇을 할 것인가를 중점으로 만들어지는 프로그램이다. 가령, 친구가 나의 집이 어딘지를 물어볼 때 크게 두가지 방법으로 설명해 줄 수 있다. 첫째, 내가 현재 서 있는 지점부터 내 집까지 어떻게 가는지 설명한다. 둘째, 내 집 주소를 설명한다. 선언형 프로그래밍은 두번째 방법과 같다. 상대방에게 내 집이 어딘지 명..

Kangharyeom
'개발일지/Today I Learn' 카테고리의 글 목록