🚀 메세지 큐 사용자의 입력을 메시지로 전달하는 시스템에서 어떤 프로세스에 대한 메지시를 저장하기 위해 할당된 큐 장점 비동기(Asynchronous): Queue에 넣기 때문에 나중에 처리할 수 있습니다. 비동조(Decoupling): Appliction 과 분리할 수 있습니다. 탄력성(Resilience): 일부가 실패 시 전체에 영향을 받지 않습니다. 과잉(Redundancy): 실패할 경우 재실행 가능합니다. 보증(Guarantees): 작업이 처리된걸 확인할 수 있습니다. 확장성(Scalable): 다수의 프로세스들이 큐에 메시지를 보낼 수 있습니다. 🚀 메세지 브로커 생산자에 의한 요청(메세지)를 Queue에 넣어 순차적 처리하는 방식으로 데이터 통신에서 발생하는 병목현상을 줄일 수 있다. 🍕..
🚀 Spring Cloud 서론 Scale-Up? Scale-Out? Scale-Up 한대의 서버로 더 높은 성능으로 서비스를 운영 Scale-Out 여러대의 서버로 분산하여 서비스를 운영 블루그림 배포 블루단계: 서비스 배포 이전 단계 그린단계: 서비스 배포 이후 단계 서버 부하 분산을 위한 네트워크 서버: 무언가를 제공하는 대상 혹은 그 주체 네트워크: 통신설비를 갖춘 컴퓨터를 이용해 서로 연결 시켜주는 조직이나 체계 어떠한 일이나 문제점을 처리하는 긴밀하게 연결되어 효율적으로 움직일 수 있는 체계 DNS 구성 및 활용 localhost:8080 도메인이 지루해? 사용자의 컴퓨터의 설정에 따라 다름 Windoew -> System32 -> drivers -> etc 파일에서 기본설절 {사용자 URL}..
기존의 아키텍쳐 전통적인 CRUD 아키텍처 기반에서 Application을 개발 및 운영하다가 보면, 자연스럽게 Domain Model의 복잡도가 증가하고 그에 따라 유지보수의 비용이 증가하고 Domain model은 설계의 방향과 다르게 변질된다. 이러한 복잡성 속에서 개선할 수 있는 방향은 데이터 흐름의 역할을 분리하는 방법이었다. CQRS(Command Query Responsibility Segregation) 명령 조회 책임 분리의 의미를 가진 CQRS는 애플리케이션을 구성하는 하나의 아키텍쳐 패턴으로 정리하면 명령과 쿼리 역할의 분리를 의미한다. Command (Create, Insert, Update, Delete)와 쿼리(Select - Read)의 책임을 분리 CQRS는 총 3가지 방식으..
WebRTC(Web Real Time Communication) 이름 그대로 웹 브러우저 간에 플러그인 없이 통신 가능한 실시간 커뮤니티 서비스이며 음성 / 영상 / p2p 파일공유 기능을 이용할 수 있다. 정리하면 서버를 통하기 않고 바로 상태 브라우저로 정보를 전달(P2P : Peer to Peer)할 수 있다는 말이다. WebRTC vs WebSocket WebSocket의 상위 기술이 WebRTC 이며 기존의 WebSocket은 서버를 중심으로 Request 와 Respond 으로 정보 전달이 이루어진다. 때문에 메모리문제, 전달속도 비용 문제가 상당하다. 이러한 문제를 해결하고자 등장한 것이 WebRTC이다. 브라우저간 빠른 정보 전달이 가능한 이 기술은 기존 서버에서 발생한 메모리 문제, 전달..
1. 객체지향 객체지향의 개념은 1970년에 등장했으며 이전에는 C 언어처럼 실행하고자 하는 순서로 명령어를 처리하는 절차지향을 주로 사용해 왔다. 이후 프로그램의 복잡도가 높아지면서 이에 들어가는 유지보수, 개발기간 등의 다양한 부분에서 비 효율이 발생하면서 많은 개발자들이 효과적인 개발 방싱의 방법을 채택하게 되고 새로운 방식의 객체지향의 방법을 적용하게 된다 현실에 존재하는 사물을 있는 그대로 모델링하여, 이들의 행위와 속성을 정희하고, 절차적이 아닌 객체가 중심이 되어 실제 사물이 동작하는 방식으로 설계하였다. 1-1 객체 설계하기 객체의 3 요소 상대 유지(객체의 상태)객체는 상대 정보를 저장하고, 유지되어야하며 이러한 속정은 변수로 정의 되어져야한다. 이러한 속성값이 바뀜으로 인하여, 객체의 ..
서론 what is Cluster DB를 통해 데이터를 조회할 경우 시간 효율을 높이기 위해 자주 사용되는 테이블 데이터를 디스크의 같은 위치에 저장시키는 방법 인덱스에서 데이터를 조회하는 방법으로 구분할 수 있는 기술로 Non-Cluster / Cluster 로 구분되며 두 방식은 서로 다른 장점을 보여주기 때문에 상황에 맞춰 적용하면 될것이다. 구분 Cluster A. 특징 단위 테이블당 한 개의 클러스터를 생성하며 행 데이터를 물리적으로 열에 맞추어 자동 정렬한다. 인덱스 자체의 리프 페이지가 곹 데이터 페이지 이므로 인덱스 자체에 데이터가 포함되어 있다 말할 수 있다. NonCluster 와 반대로 검색(Search) 속도가 매우 빠르다. 어느 테이블이던지 한개의 클러스터를 생성할 수 있지만 어느..
서론 클라이언트와 서버 간 데이터를 주고받기 위해 HTTP 통신을 사용하며 이 과정에서 사용되는 HTTP 통신 기술 js에서 비동기 HTTP 통신을 위해 사용되는 Ajax, Axios 에 대해 설명한다. AJAX(Asynchronous JavaScript And XML) JavaScript를 사용한 비동기 통신, 클라이언트와 서버간에 데이터를 주고받는 기술이다. 이전 포스팅에서 AJAX에 대한 포스팅을 한적이 있다. jQuery와의 연관성 Ajax를 JQuery를 통해 보다 더 쉽게 사용할 수 있기에 우리는 JQuery와 Ajax를 함께 묶어서 말할 때가 많은 것 뿐이이다. 순수 Ajax의 코드는 지저분했기에 이에 대한 보완으로 jQuery에서 Ajax를 편리하게 사용할 수 있도록 정립하면서 jQuery..
DB 암호화 기법 개요 데이터베이스 암호화는 데이터를 암호화하여 저장하고, 권한이 있는 사람 혹은 서버만이 해당 데이터를 복호화할 수 있도록 하여 데이터를 보호하는 기술이다. 데이터베이스 접근 제어 외에 데이터베이스 보안에 관한 국내외 법률과 규정은 2가지를 주요하게 강조한다. 암호화를 통한 데이터베이스 보안 엄격한 암호키 관리를 통해 데이터를 보호 데이터베이스 암호화의 목적은 비정상적 데이터 유출이 발생할 경우, 복호화를 어렵게 만드는 것이다. 암호키는 암호화 뿐만 아니라 복호화할 때도 사용하므로 매우 신중하게 관리하여야 한다. 랜덤 키에 의해 암호화된 데이터는 해커들이 복호화를 하기 어렵게 만든다. 따라서 복호화를 해야만 하는 사용자나 시스템 이외에 다른 사용자가 암호키에 접근하는 것을 통제해야 한다..
TDD(Test Driven Development) ? 애자일 방법론 중 하나인 eXtream Programming(XP)의 'Test-First' 개념에 기반을 둔 단순한 설계방법이다. TDD와 일반적인 개발 방식의 가장 큰 차이점은 *한다는 점이다. 설계 단계에서 프로그래밍 목적을 반드시 미리 정의해야만 하고, 정의테스트 케이스 작성해야만 한다. 테스트 코드를 작성하는 도중에 발생하는 예외 사항(버그, 수정사항)들은 테스트 케이스에 추가하고 설계를 개선한다. 이후 테스트가 통과된 코드만을 코드 개발 단계에서 실제 코드로 작성한다. 🍀 TDD 개발 방식의 장점 보다 튼튼한 객체 지향적인 코드 생산 TDD는 코드의 재사용 보장을 명시하므로 TDD를 통한 소프트웨어 개발 시 기능 별 철저한 ..
AJAX(Asynchronous JavaScript and XML) Ajax는 빠르게 동작하는 동적인 웹 페이지를 만들기 위한 개발 기법 중 하나 Ajax는 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱신할 수 있다. 즉 Ajax를 이용하면 백그라운드 영역에서 서버와 통신하여, 그 결과를 웹 페이지의 일부분에만 표시할 수 있다. AJAX 장점 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱신할 수 있다. 웹 페이지가 로드된 후에 서버로 데이터 요청을 보낼 수 있다. 웹 페이지가 로드된 후에 서버로부터 데이터를 받을 수 있다. 백그라운드 영역에서 서버로 데이터를 보낼 수 있다. Ajax의 한계 Ajax는 클라이언트가 서버에 데이터를 요청하는 클라이언트 풀링 방식을 ..
- Total
- Today
- Yesterday
- 자바
- Spring
- interview
- JPA
- OOP
- nginx
- Solid
- Matlab
- 릿코드
- springboot
- 디자인패턴
- 그래프
- spring-cloud
- 스프링부트
- CS
- 면접
- 자격증
- security
- java
- 프로그래머스
- 백준
- Algorithm
- 매트랩
- ajax
- kakao
- C언어
- 수학
- docker
- 스프링
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |