본문 바로가기

Computer Science35

CQRS 아는 척 하기 https://www.youtube.com/watch?v=xf0kXMTFJm8 https://www.youtube.com/watch?v=H1IF3BUeFb8 최범균님의 유튜브를 보면서 공부해 본 내용이다. CQRS는 Command Query Responsibility Segregation의 약자입니다. Command(명령) - 시스템 데이터 변경 - 주문 취소, 배송 완료(주문 데이터를 변경함) Query(쿼리) - 시스템 데이터 조회 - 주문 목록 조회 Responsibility(책임) - 구성 요소의 역할 - 구성 요소 (모델) - 클래스, 함수 - 모듈/패키지 - 웹서버/DB Segregation(분리) - 역할에 따라 구성 요소 나누기 CQRS를 정리해보자면 명령 역할을 수행하는 구성 요소와 쿼리.. 2022. 4. 14.
NGINX란 무엇인가? NGINX는 웹서버이며 리버스 프록시, 로드밸런서, 그리고 Http cache로도 쓰일 수 있는소프트웨어입니다.요청에 응답하기 위해 이벤트 기반 구조를 채택했습니다. 아파치 서버C10K(Connection 10000 Problem)동시 연결 수가 많아지면 서버가 커넥션을 형성하지 못함. (하드웨어가 아닌 소프트웨어가 문제)아파치 서버의 구조상 Connection 형성시마다 Process를 생성해서 메모리 부족으로 이어진다. CPU 부하 UP.-> 수많은 동시 커넥션을 감당하기엔 아파치 서버가 적합하지 않았다. 아파치는 커넥션당 프로세스 생성아파치는 확장성이 좋은만큼 무거움 처음에는 아파치 앞 단에 nginx를 두는 방식을 위해 nginx를 만듦nginx도 웹서버이기때문에 정적파일은 직접 처리하고, 동적.. 2022. 3. 24.
DB 기초 DB를 이용하는 이유는 그냥 파일에 저장하는 것만으로는 얻을 수 없는 이득을 얻을 수 있기 때문에 (검색, 정렬, 보안) SQL(Structured Query Language)이란? RDBMS의 데이터를 관리하기 위해 설계된 프로그래밍 언어. 미국에서 시퀄(SEQUEL)이라고도 불림 DML (Data Manipulation Language): 데이터 조작어 select insert update delete 1. data row-by-row로 동작하여 더 느림 2. 조건절 가능 3. 롤백 가능 4. auto_increment 그대로 5. 개발자가 권한을 갖기도 하지만 신중히 결정 DDL (Data Definition Language): 데이터 정의어 create - create database board;.. 2022. 2. 3.
UX란 무엇인가? 항상 UI와 UX의 개념의 차이를 궁금해 했다. UX(사용자 경험) 사용자가 기업, 서비스, 기업의 제품과 상호작용하면서 얻는 모든 측면의 경험을 의미한다. 너무 어렵다. UI design 사용자들이 컴퓨터 또는 기계를 구동하기 위해 접하는 매개 Graphical GUI design Physical PUI design UX design UI(사용자들이 컴퓨터등의 기기를 구동하기 위해 접하는 매개)를 사용중, 후 사용자의 기분 Brand BX design Customer CX design case) 현대 카드 옆면의 색깔을 이용해 지갑 속에서 식별이 가능한 것 신분증 촬영을 통한 신분 확인 UI를 수정해서 사이트에 더 오래 머물게 하는 것 백화점에 시계, 창문이 없고, 에스컬레이터는 잘 보이고 엘리베이터는.. 2022. 1. 24.
트랜잭션 A가 B에게 계좌로 돈을 보낸다고 가정하면 다음과 같은 과정이 필요하다. 1. A 계좌 잔액 확인 2. A 계좌 잔액 차감 3. B 계좌 잔액 확인 4. B 계좌 잔액 증가 이러한 일련의 과정을 트랜잭션이라고 한다. 트랜잭션은 4가지 특성(ACID)을 만족해야한다. 원자성(Atomicity) 전부 반영되거나 전부 반영되지 않게(All or Nothing) 지속성(Consistency) 결과가 지속돼야함 독립성(Isolation) 여러 트랜잭션이 서로 영향을 미치면 안됨 일관성(Durability) 결과가 변하면 안됨 하지만 성능을 위해 특성을 위배하게 됨 동시에 1000000개의 요청이 들어올 때 순차적으로 처리할 수 없기 때문 트랜잭션 격리 수준 (동시성) Read-uncommited Read-comm.. 2021. 11. 30.
NTP란 무엇인가? NTP란 네트워크 시간 프로토콜(Network Time Protocol)의 약자이다. 즉 네트워크로 연결돼있는 컴퓨터들끼리 시간을 동기화 시키는데 사용되는 프로토콜이다. NTP는 미국 델라웨어 대학의 데이빗 밀스에 의해 처음 개발되었고, 지금은 인터넷 표준이 되었다. NTP는 컴퓨터 클록 시간을 1/1000초 이하까지 동기화시키기 위해 협정 세계 시각(UTC)을 사용하게 됩니다. NTP는 계층적인 구조를 가지고, 각각의 계층은 상위 계층으로부터 시간을 동기화합니다. 지연을 최소화하기 위해서 계층은 지역을 기반으로 구성됩니다. 최상위 레벨은 0 ,최하위레벨은 15로 총 16개의 계층으로 이루어집니다. 0 레벨은 Primary Reference clock입니다. Stratrum 1은 Stratum 0 에 다.. 2021. 11. 5.