🔐 비밀번호 암호화해보자 (Feat: Spring)
·
🌱 Spring
해당 글에서 구현 언급한 코드는 practice-member-api 에서 확인 가능합니다. 시작하며 초반 연습용 프로젝트에서 회원가입을 구현하며 그냥 일반 텍스트로 회원 비밀번호를 관리해왔습니다. 하지만 보안상 비밀번호를 이렇게 평문으로 저장하는 일은 반드시 지양되어야 합니다. 마침 회원가입과 Jwt 토큰을 사용하는 인증/인가는 매우 자주 쓰는 로직이라 나만의 라이브러리를 만들고 싶었는데요. 원티드 프리온보딩 백엔드 미션이 딱 기본 회원가입 + jwt 토큰 방식의 인증인가 + 게시판 REST API라서 이참에 이 비밀번호 암호화를 구현해보기로 했습니다💪 Spring Framework 는 Spring Security 라는 하위 프레임워크에서 이러한 보안 인증인가 를 편리하게 제공해주고 있지만 해당 암호화 ..
진법의 사칙연산, 2진수를 중심으로
·
👩🏻‍💻 Computer Science
진법 계산 방법 숫자인 진법을 익힌 뒤 가장 기본적인 활용 방식인 사칙연산(+, -, *, /) 방법을 정리해보았다. 가장 익숙한 10진수의 사칙연산 원리를 다시 되짚고 뺄셈, 곱셈, 나눗셈을 가장 간단한 진법인 2진법으로 고민해보았다. 다른 진수도 같은 원리로 작동할 것이다. ➕ 덧셈 10진수의 덧셈 44 + 86 ―――― 130 10 진수에서 덧셈을 할 때에 1의 자리부터 가장 왼쪽 자리수까지 각 자리 수를 더한다. 각 덧셈 결과로 어떤 자리수가 10 이상일 경우, 해당의 자리에서 -10을 하고 바로 윗자리수에 +1 을 해준다. 2진수의 덧셈 예시로 1101 (2) + 10111 (2) 를 계산해보자. 2를 넘는 자리수에 2를 빼고 바로 윗자리에 1을 더해주면 다음과 같이 결과가 나온다. 01101 ..
진법과 진법 변환
·
👩🏻‍💻 Computer Science
진법이란? 진법은 수를 표기하는 기수법의 하나로 임의의 숫자를 사용하여 수를 표현하는 방법이다. 우리는 일상적으로 10진법을 사용하고 있다. 우리에게 주어진 가장 기본적인 수 세기 도구 손가락이 👐 10개라 가장 직관적인 방법이 아닐까? 반면 컴퓨터는 2진법으로 수를 표현한다. // 2진법 - 10진법 010 (2) == 2 // 2^3*0 + 2^2*1 + 2^0*0 // 0, 1 한자리씩 == a bit // 8 bit = 1 byte 프로그래밍에서 많이 사용되는 진법 2진법 8진법 : 리눅스나 FTP 등에서 파일/폴더 권한 표현 등 10진법 16진법 : 1byte의 크기를 쉽게 표현할 수 있다. 유니코드, 프로그래밍시 변수 주소 값 등 🤔 진법을 왜 알아야할까? 진법은 프로그래밍 전반에 걸쳐 사용된..
Java 실행 과정
·
☕️ Java
Java는 무엇일까? 자바는 객체지향 프로그래밍 언어이다. C언어에 객체지향적 기능을 추가하여 만든 C++와는 달리 처음부터 객체 지향 언어로 개발되었다. 프로그래밍 언어programing language이다. 실행환경(JRE)과 개발도구(JDK), 라이브러리(API)를 포함한다. 모던 프로그래밍 언어 (객체지향 언어 + 함수형 언어) Java의 주요 특징 객체지향 언어이다. 객체를 만들기 위해 설계도인 클래스를 작성하고, 객체를 연결하여 목적이 맞는 프로그램을 만든다. 캡슐성, 상속화, 다형성을 지원한다. 하이브리드 언어이다. 컴파일 언어인 동시에 인터프리터 언어이다. 시스템에 무관한 이진 파일을 만듦으로써 컴파일 언어에 가까운 속도와 시스템 독립성을 얻을 수 있다. 자동 메모리 관리가 가능하다. 객체..