전체 글
원시타입(Primitive type) vs 참조타입(Reference type)
데이터 타입이란 해당 데이터가 메모리에 어떻게 저장되고, 어떻게 처리되어야하는지를 알려준다.자바에서 타임은 크게 Primitive type, Reference type 두가지로 나뉜다.Primitive Type(기본형 타입)자바에서의 기본 타입은 모두 8종류가 제공되며, 크게 정수형, 실수형, 문자형, 논리형으로 나뉜다.기본값이 존재하기때문에 Null이 존재하지 않는다.실제 연산에 사용하는 값들을 말한다ㅣ컴파일 시점에 담을 수 있는 크기를 벗어나면 컴파일 에러가 발생한다.실제 값을 저장하는 공간으로 Stack에 저장된다.1. 정수형 타입부호를 가지며, 소수가 없는 수를 의미한다.byte(1byte), short(2byte) ,int(4byte), long(8byte)주의해야할 점은 데이터 타입을 결정할때..
JVM과 자바의 실행 과정
1. JVM이란 무엇인가? Java Vitual Macine 의 줄임말으로 자바를 실행하기 위한 가상 컴퓨터이다. 이때 가상 컴퓨터는 실제 컴퓨터가 아닌 소프트웨어로 구성된 컴퓨터라고 이해하면 된다. 자바로 작성된 모든 어플리케이션은 모두 이 가상 컴퓨터 즉, JVM으로 실행되기 때문에 자바를 실행하기 위해서는 무조건 이 JVM이 필요하다. 일반 어플리케이션은 os만 거치고 하드웨어로 전달되는데, 자바 어플리케이션은 JVM을 한번더 거치기 때문에 실행 시 약간 속도가 느리다는 단점을 가진다. 하지만 다른 애플리케이션은 OS에 붙어있기때문에 OS에 종속적인 반면, 자바 어플리케이션은 OS와 하드웨어에 독립적이다. 단, JVM은 OS에 종속적이라 해당 OS마다 실행가능한 JVM이 다르다. 2. 자바 컴파일하..
RDBMS vs NOSQL
RDBMS (= Relational Database Management System) 관계형 데이터 베이스는 엑셀의 형식과 유사하게 행(Row)과 열(Record)을 가지고 있는 2차원 테이블 형식이다. RDBMS는 말 그래도 테이블끼리 관계를 가지고 있는데 일대일관계, 일다대관계, 다대다관계로 나눌 수 있으며 이러한 관계를 나타내기 위해 외래 키(foreign key)를 사용한다. 이 외래 키는 한 테이블의 키 중에서 다른 테이블의 행을 식별할수 있는 키를 의미한다. sql언어를 사용해 저장, 수정, 삭제를 할 수 있으며, 대표적으로 mysql, oracle이 있다. 장점 명확한 구조를 가지고 있기 때문데 정보의 내용을 확인하기 쉽다. 데이터의 분류, 정렬 , 탐색 속도가 빠르다. 오랫동안 사용된 만큼..
redis의 특징과 자료구조 및 pub/sub
레디스 특징레디스는 Key-value 형태의 Nosql DB이다.In-Memory DB 이다.관계형 데이터 베이스(mysql)보다 훨씬 빠른데, 그 이유는 메모리 접근이 디스크 접근보다 빠르기 때문이다.인메모리 데이터 베이스 : RAM에 데이터를 저장하기 때문에 빠르지만, 휘발성 메모리이기 때문에 시스템 장애시 데이터가 손실될 수 있다. 따라서 cache로 주로 사용한다.레디스 자료구조 레디스의 장점은 다양한 자료구조를 지원하는 것이다. 레디스는 다양한 자료구조를 key-value 형태로 저장한다. String, BitMap, Hash, List, Set,Sorted Set 등 String : 키와 연결할 수 있는 가장 간단한 유형의 값이다. 레디스의 키가 문자열이므로 문자열을 다른 문자열에 매핑하는 ..
JWT (JSON Web Token)
1.1 JWT 이란?유저를 인증하고 식별하기 위한 토큰(Token)이다.JWT는 서버와 클라이언트 간 정보를 주고 받을 때, Http Request Header에 JWT 토큰을 넣어서 전송하며, 서버는 별도의 인증 과정없이 헤더에 포함되어 있는 JWT정보를 통해 인증한다.JWS(Json Web Signature)은 JSON으로 전자 서명을 하여 url - safe 문자열로 표현한 것이며 JWE(JSON Web Encryption)은 json을 암호화하여 url-safe 문자열로 표현한 것이다.1.2 JWT 토큰 구조: JWT는 세 파트로 나누어지며 순서대로 헤더 , 페이로드 ,시그니처(서명) 으로 이루어져 있다.며. 각 파트는 점으로 구분하여 xxxxx.yyyyyy.zzzzz의 형식으로 표현된다. 각각의..
암호화와 복호화 그리고 양방향 암호화
- 암호화 & 복호화 암호화 : 평문(해독 가능한 텍스트)을 암호문으로 변환하는 과정 ex) “12345” → 암호화 → 암호문(”ads5gjsk!asfasdf”) 복호화 : 암호문을 평문으로 변환하는 과정 ex) 암호문 → 복호화 → 평문(”12345”) - 암호화의 종류 단방향 암호화 : 암호화 후 복호화를 할 수 없는 것이 특징 ex ) 사용자 비밀번호. 사용자가 입력한 비밀번호를 암호화하여 db에 저장이 될때, 모든 접근자는 암호화 된 코드를 다시 평문으로 볼 수 없다. 이는 해킹이 되어도 복호화가 매우 힘들다 해쉬 방식이 대표적 해쉬 함수: 해쉬 함수는 임의의 길이의 데이터를 입력받아 일정한 길이의 비트열로 반환 시켜주는 함수로 입력값의 길이가 달라도 출력값은 언제나 동일한 길이로 반환되며 동일..
자료구조의 개념과 특징
1. 자료구조란? 프로그램에서 사용할 많은 데이터를 메모리 상에서 관리하는 여러 구현 방법들을 말한다. 효율적인 자료구조가 좋은 알고리즘의 기반이 된다. 2. 자료구조의 종류 자료구조에는 두가지 유형이 존재한다. 선형구조 : 데이터를 한줄로 나열할 수 있다. - 배열, 연결리스트, 스택, 큐 비선형 자료구조 : 데이터를 한줄로 나열할 수 없다.- 그래프 , 트리 2.1 배열 (Array) : 연속된 메모리 공간에 순차적으로 저장된 데이터 모음의 자료구조 특징 0부터 시작하는 인덱스(index)를 가지고 있다. 동일한 타입의 데이터만 저장할 수 있다. 크기가 고정되어 있다. 장점 인덱스를 통해 접근하기때문에 빠르게 데이터를 가지고 올 수 있기 때문에 검색 성능이 좋다. 구현이 쉽다. 단점 처음 생성할때 메..