본문 바로가기

반응형

IT공부

Singletone pattern Singleton pattern 이란 Singleton pattern(싱글턴 패턴)이란 애플리케이션에서 인스턴스를 하나만 만들어 사용하기 위한 패턴이다. 커넥션 풀, 스레드 풀 등의 경우, 인스턴스를 여러 개 만들게 되면 자원을 낭비하게 되거나 버그를 발생시킬 수 있으므로 오직 하나만 생성하고 그 인스턴스를 사용하도록 하는 것이 이 패턴의 목적이다. public class Singleton { public static final Singleton INSTANCE = new Singleton(); private Singleton() { } ... } // 혹은 ... public class Singleton { private static final Singleton INSTANCE = new Singlet.. 더보기
DAO vs. Repository 영속성(Persistence) 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성을 말한다. 영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램을 종료하면 모두 잃어버리게 된다. 때문에 파일 시스템, 관계형 테이터베이스 혹은 객체 데이터베이스 등을 활용하여 데이터를 영구하게 저장하여 영속성 부여한다. Persistence Layer 프로그램의 아키텍처에서, 데이터에 영속성을 부여해주는 계층을 말한다. JDBC를 이용하여 직접 구현할 수 있지만 Persistence framework를 이용한 개발이 많이 이루어진다. 계층 프레젠테이션 계층 (Presentation layer) - UI 계층 (UI layer) 이라고도 한다. 애플리케이션 계층 (Application la.. 더보기
Optimistic Locking vs. Pessimistic Locking Lock 데이터베이스에 접근해서 데이터를 수정할 때 동시에 수정이 일어나 충돌이 일어날 수 있습니다. 이러한 상황을 제어하기 위해서 트랜잭션의 격리 수준과 비즈니스 로직에 맞추어 Lock(잠금)이 필요합니다. Optimistic Lock 특징 낙관적인 : 기본적으로 데이터 갱신시 충돌이 발생하지 않을 것이라고 낙관적으로 보는 락 비선점적인: 데이터 갱신시 충돌이 발생하지 않을 것이라고 예상하기 때문에, 우선적으로 락을 걸지 않는다. 설명 DB가 제공하는 락 기능을 사용하지 않고, Application Level(JPA 등)에서 잡아주는 락입니다. version 등의 컬럼을 추가하여 여러 트랜잭션 내 하나의 데이터에 중복 업데이트를 확인합니다. DB 트랜잭션을 걸지 않기 때문에, 여러 트랜잭션이 동일 데이.. 더보기
Git Rebase 이해하기 포크한 저장소를 최신 원본과 동기화시키기 위해 rebase 명령어를 사용합니다. REBASE 과정 및 원리 보다 쉬운 이해를 위해 상황 순서에 맞게 번호를 붙였습니다. 1. 원본 저장소 fork 우리가 원본 저장소의 코드를 내 원격 저장소로 fork하게 되면 아래와 같은 상황입니다. 2. 내 원격 저장소 clone 그리고 이렇게 fork 한 내 원격 저장소를 로컬로 clone 하여 가지고 오면 아래와 같은 상황이 됩니다. 이와 같은 상황에서 원본 저장소에서부터 가져온 커밋들을 base라고 부릅니다. 원본 저장소와 포크를 받아온 나의 원격저장소, 그리고 클론을 받은 로컬에는 모두 같은 해시값의 커밋들로 이루어집니다. git은 base가 교체되지 않는 한, base가 같은 저장소에만 push를 할 수 있습니.. 더보기
JWT 인증과 세션인증 인증 you are who you say you are 사용자 인증이란 서버로부터 더 많은 정보에 접근하고자 할 때, 사용자가 본인을 인증하는 과정을 얘기합니다. 보통은 현재 자원에 접근하고자 하는 클라이언트(=사용자)가 '누구'인지 '증명'하는 과정으로 진행됩니다. Someting you know : 가장 많이 사용하는 인증 방식입니다. ID와 비밀번호 혹은 PIN 을 입력하는 방식입니다. 비밀번호는 다른 사람은 모르고 사용자만 알고 있는 정보입니다. Something you have : 토큰이나 ID 카드같은 사용자가 지니고 있는 정보로 인증하는 방식입니다. 토큰을 발급은 크게 두 가지 기준으로 분리됩니다. HOTP(HMAC-based One-Time Password) 토.. 더보기
Go 언어 공부해보기 다운로드 Go 홈페이지 를 통해 OS 에 맞는 Go language 다운로드 go practice Go 언어 사용을 위해 VS code를 사용하였고, VS code에서 요구하는 Go tools 설치를 진행하였다. $ go build go_practice.go $ ./go_practice 빌드는 첫번째 줄과 같이 go build '프로그램이름' 명령어를 입력하면 빌드된다. env 설정 go env: 환경변수 셋팅을 볼 수 있음 $ go env -w GOBIN=/somewhere/else/bin $ go env -u GOBIN go env -w 로 새로운 환경변수를 설정하고, 이를 사용하기 위해 -u 옵션을 이용함 go 실행하기 export PATH=$PATH:$(dirname $(go lis.. 더보기
HADOOP 이란 1. 하둡이란? 하둡은 검색엔진을 개발하는 과정에서 대용량의 비정형 데이터를 기존의 RDB 기술로는 처리가 힘들다는 것을 깨닫고, 새로운 기술을 찾는 중 구글에서 발표한 GFS(Google File System)과 MapReduce 관련 논문을 참고하여 개발되었다. 하둡은 하나의 성능 좋은 컴퓨터를 사용하는 대신 적당한 성능의 범용 컴퓨터 여러 대를 클러스터화하고, 큰 크기의 데이터를 클러스터에서 병렬로 동시에 처리하여 처리 속도를 높이는 것을 목적으로 하는 분산처리를 위한 오픈소스 프레임워크라고 할 수 있다. - 맵리듀스 원리: 1) Map: 흩어진 데이터를 key, value로 데이터를 묶어줌 2) Reduce: Map 단계의 key를 중심으로 필터링 및 정렬 2. 하둡 에코시스템 1) Zookeep.. 더보기
정규 표현식(=정규식) 참고 링크는 여기입니다. 정규식 패턴은 /abc/ 같이 단순 문자로 구성될 수 있고, /ab*c/ 또는 /Chapter (\d+)\.\d+/ 와 같이 단순 문자와 특수 문자의 조합으로도 구성될 수 있습니다. 1. 단순 패턴 사용하기 단순 패턴은 문자열을 있는 그대로 대응시키고자 할 때 사용됩니다. 예를 들어, /abc/라는 패턴은 문자열에 정확히 'abc'가 순서대로 나타나야 대응됩니다. 2. 특수 문자 사용하기 Character Meaning \ - 특수 문자가 아닌 문자 앞에 사용된 백슬래시는 '해당 문자는 특별하고, 문자 그대로 해석하면 안된다'는 사실을 가리킨다. 예를 들어, 앞에 \가 없는 'b'는 보통 소문자 b가 나오는 패턴과 대응되지만 '\b'는 어떤 문자와도 대응되지 않는다. - 특수 문.. 더보기

반응형