![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cFBMvk/btsts7RRQcN/6t9ZXhz2Aeq4w7pkXys4FK/img.png)
동기 (Synchronous) vs 비동기(Asynchronous) 동기와 비동기의 차이를 간략하게 보면 직렬식, 병렬식 구조라고 볼 수 있다. 즉 동기가 직렬식이며 비동기가 병렬식으로 작동한다. 왼쪽이 동기식 방식이며 하나의 태스크가 끝날 때까지 기다렸다가 다음 태스크가 실행된다. 총 실행 시간으로 따지자면 '동기' 방식이 더 느리다. 오른쪽이 비동기식 방식이다. 한번에 여러 태스크가 동시에 병렬적으로 실행된다. 동기 (Synchronous) 요청과 결과가 한 자리에 동시에 나타나는 것으로 사용자가 서버로 요청을 보냈을 경우 요청에 대한 응답을 리턴받기 전까지는 다른 것을 하지 못하고 기다려야 한다. 특정 프로그램을 구동시키는 데 시간이 5분 소요된다고 하면, 이 프로그램이 구동되는 5분동안 컴퓨터는 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dcR4L7/btstw0YMVk5/7Ft2IvpqrNB87d7bHA1AfK/img.png)
DI(Dependency Injection)란? 스프링에서 의존성 주입(DI)이란, 객체간 의존성을 개발자가 객체 내부에서 직접 호출(new연산자)하는 대신, 외부(스프링 컨테이너)에서 객체를 생성해서 넣어주는 방식이다. 외부에서 두 객체 간의 관계설정을 해주는 디자인 패턴으로, 인터페이스를 사이에 두어 클래스 레벨에서는 의존관계가 고정되지 않도록 하고, 런타임 시 관계를 동적으로 주입하여 유연성을 확보하고 결합도를 낮출 수 있게 한다. DI 방법 3가지 생성자 주입 setter 주입 필드 주입 생성자 주입(Constructor Injection) 생성자 주입은 아래와 같이 Constructor에 @Autowired Annotation을 붙여 의존성을 주입받을 수 있다. @Component public ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/lXqu5/btsslam4Is9/5RNIY4mwMQ3wXKxI0BrrXK/img.png)
정규화(Normalization)란? 데이터베이스 정규화는 관계형 데이터베이스 데이터 모델의 중복을 최소화하고 데이터의 일관성, 유연성을 확보하기 위한 목적으로 데이터를 분해하는 과정을 뜻한다. 정규화를 하는 목적은 데이터들을 조금 더 효율적으로 관리하는 것에 있다. 정규화의 장점 데이터베이스 변경 시 이상 현상(Anomaly)을 제거할 수 있다. 정규화된 데이터베이스 구조에서는 새로운 데이터 형의 추가로 인한 확장 시, 그 구조를 변경하지 않아도 되거나 일부만 변경해도 된다. 데이터베이스와 연동된 응용 프로그램에 최소한의 영향만을 미치게 되어 응용프로그램의 생명을 연장시킨다. 정규화의 단점 릴레이션의 분해로 인해 릴레이션 간의 JOIN연산이 많아진다. 질의에 대한 응답 시간이 느려질 수도 있다. 데이터..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bQavTr/btsqB1fh0W7/dl2y1YWF2FLfgk7zPwAJh0/img.png)
Redis 란? Redis는 오픈 소스로서 NoSQL로 분류되기도 하고, Memcached와 같이 인 메모리 솔루션으로 분류되기도 한다. 성능은 Memcached에 버금가면서 다양한 데이터 구조체를 지원함으로써 DB, Cache, Message Queue, Shared Memory 용도로 사용될 수 있다. 한편, Redis는 Remote Dictionary Server의 약자로 외부에서 사용 가능한 Key-Value 쌍의 해시 맵 형태의 서버라고 생각할 수 있다. 그래서 별도의 쿼리 없이 Key를 통해 빠르게 결과를 가져올 수 있다. 또한, 디스크에 데이터를 쓰는 구조가 아니라 메모리에서 데이터를 처리하기 때문에 작업 속도가 상당히 빠르다. 즉, 레디스(Redis)는 고성능 키-값 저장소로서 문자열, 리..
- Total
- Today
- Yesterday
- 코딩테스트 공부
- 백준
- 개발자 취준
- 프로그래머스
- 코딩테스트
- 제로베이스 백준 장학금
- 자바공부
- 기술 면접 준비
- 백엔드 개발자 기술 면접 준비
- 코테준비
- 취준
- 코테 준비
- 개발자 취업 준비
- 프로그래머스 카카오
- 알고리즘
- 알고리즘공부
- 프로그래머스 자바
- 코딩테스트 준비
- 자바
- 개발자 면접 준비
- 코테공부
- 제로베이스 백엔드 스쿨
- 코딩테스트공부
- 백엔드 개발자 취업 준비
- 취업 준비
- 백엔드 개발자
- 알고리즘 공부
- 주니어 개발자 취업 준비
- java
- 취업준비
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |