본문 바로가기

전체 글135

CI/CD 에 대한 간단 정리 CI/CD : 지속적인 통합과 배포를 통해 애플리케이션 개발 단계를 자동화하여 고객에게 보다 짧은 주기로 서비스를 제공하고 개선하는 방법 CI(Continuous Integration) 지속적인 통합(Continous Intergration)은 개발자가 작업한 코드를 자동으로 테스트하고 테스트에 통과하면 코드를 통합하여 저장 지속적인 통합이라는 뜻으로 어플리케이션의 새로운 코드 변경사항이 정기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합되는 것을 의미한다. 이런 경우 CI를 적용하면 좋아요 - 다수의 개발자가 형상관리 툴을 공유하며 사용하는 환경 : 여러 개발자가 한 팀으로 작업하면 공유 레포지토리에 수많은 commit들이 쌓이게 되는데, 그때마다 기능별로 빌드/테스트/병합을 하기엔 번거로우니 자동.. 2022. 2. 14.
3-Tier Architecture 정의 및 구성방식 목차 LIST 3-Tier Architecture of Web Application 이란? "3-tier 아키텍처는 다중 계층 아키텍처에서 가장 널리 사용되며 단일 프레젠테이션 계층, 로직 계층 및 데이터 계층으로 구성된다." 3-tier architecture는 모든 계층이 3개의 논리 계층으로 분할되는 아키텍처 패턴이다. 첫 번째 계층 Presentation Tier(Client) - 일반 사용자가 직접 액세스 할 수 있는 프레젠테이션 계층 콘텐츠를 HTML/JS/CSS 형식으로 브라우저에 전송하는 계층(React, ..) 모든 HTTPS 지원 클라이언트 또는 장치와 통신할 수 있으므로 프레젠테이션 계층은 다양한 형식(데스크톱 어플리케이션, 모바일 앱, 웹페이지, IoT 장치 등)을 유연하게 수행 .. 2022. 2. 13.
[통신] TCP/UDP 가볍게 읽고 기억하기, TCP vs IP TCP / UDP ? 전송 계층(Transport Layer)은 송신자와 수신자를 연결하는 통신 서비스를 제공하고 IP에 의해 전달되는 패킷의 오류를 검사하여 재전송 요구 제어 등을 담당하는 계층이다. 즉, 데이터의 전달을 담당한다. 전송 계층에서 사용하는 전송방식 TCP, UDP TCP(Transmission Control Protocol)? 응용 프로그램과 컴퓨팅 장치가 네트워크를 통해 메시지를 교환할 수 있도록 하는 통신 표준이다. 인터넷을 통해 패킷을 전송하고 네트워크를 통해 데이터와 메시지를 성공적으로 전달하도록 설계되어 있다. 또한, 인터넷의 규칙을 정하는 기본 표준 중 하나로 인터넷 특별 위원회(IEIF)가 정의한 표준 안에 포함된다. 디지털 네트워크 통신에서 가장 일반적으로 사용되는 프로.. 2022. 2. 13.
Virtualization(가상화)란 무엇인가? | Hypervisor(하이퍼바이저) 가상화란? 가상화를 관리하는 소프트웨어(하이퍼바이저)를 사용하여 하나의 물리적 머신에 가상 머신(VM)을 만드는 프로세스로 가상화 층을 구현하여 물리적 머신의 컴퓨팅 리소스로부터 가상 환경을 분리하고 가상 머신을 생성한다. VM은 물리적 머신과 동일한 역할 및 성능을 수행하지만 실제로 CPU,메모리,스토리지 등은 물리적 머신의 컴퓨팅 리소스를 사용한다. 즉 운영 체제(OS), 서버, 스토리지 장치 또는 네트워크 리소스 등의 실제 버전이 아닌 가상 버전을 생성하는 것이다. 하이퍼바이저가 설치된 물리 하드웨어를 호스트라고 하며 그 리소스를 사용하는 여러 VM을 게스트라고 한다. 게스트는 CPU, 메모리, 스토리지 등의 컴퓨터 리소스를 처리하는 리소스 풀로, 쉽게 재배치할 수 있다. 즉, 하나의 물리적 서버에.. 2022. 2. 13.
NoSQL이란 무엇인가? | 이점, 단점, SQL vs NoSQL NoSQL 데이터베이스? 비관계형 데이터베이스 특정 데이터 모델의 목적에 맞추어 구축되는 데이터베이스로 유연한 스키마를 가지고 있다. (1)DocumentDB - MongoDB 데이터를 json document 형태로 저장한다. 원하는 어떤 형태든 저장이 가능하며 데이터가 같은 모양일 필요가 없다. (2)Key/valueDB - Cassandra, AWS Dynamo Cassandra는 읽고, 쓰기가 매우 빠르다. 굉장히 많은 수의 아이템을 1초만에 쓸 수 있다. 그래서 애플이 cassandra를 이용해서 10PB 데이터 저장하고 있으며 넷플릭스, 우버, 인스타그램 등에서도 사용하고 있다. 검색엔진처럼 많은 양의 데이터를 빠르게 읽어야 하는 경우 좋다. DynamoDB - serverless, distr.. 2022. 2. 12.
[DB] 트랜잭션 ACID 간단하게 알아보자 트랜잭션? 데이터베이스 작업의 단위 쿼리가 실행될 때 동일한 Connection 객체를 공유하여 에러가 발생한 경우 진행 중인 모든 과정을 되돌리기 위함이다. 쿼리가 실행될 때 실패하면 트랜잭션 단위로 롤백한다. 트랜잭션 ACID? 원자성(Atomicity) : 트랜잭션에 포함된 작업은 모두 수행되거나 수행되지 않아야 함 일관성(Consistency) : 트랜잭션을 수행하기 전이나 후에 데이터베이스는 항상 일관된 상태를 유지해야 함 고립성(Isolation) :수행 중인 트랜잭션에 다른 트랜잭션이 끼어들어 변경 중인 데이터 값을 훼손하지 않아야 함 지속성(Durability) : 수행을 성공적으로 완료한 트랜잭션은 변경한 데이터를 영구히 저장해야 함 Reference https://mangkyu.tist.. 2022. 2. 11.
[알고리즘] B-tree에 대해 알아보자 B-tree B-Tree는 데이터베이스와 파일시스템에서 많이 사용하며, RDB 인덱스에서도 일반적으로 B-Tree , B+-Tree 자료구조를 사용한다. 이진 트리의 자식 노드의 개수가 최대 2개라면, B-Tree는 자식 노드의 개수가 2개 이상인 트리이다. 또한 노드 내의 데이터가 1개 이상일 수 있으며, 노드내 최대 데이터 수가 2개라면 2차 B-Tree, 3개라면 3차 B-Tree 라고 한다. 차수가 홀수인지 짝수인지에 따라 알고리즘이 많이 달라진다. B-tree 성립 조건 노드의 데이터수가 n개라면 자식 노드의 개수는 n+1 개이다. btree조건 : root 노드의 데이터가 3개(1,2,3)니까 자식 노드의 개수는 4개 이다. 노드 내 데이터는 반드시 정렬된 상태여야 한다. 한 노드의 자식노드에.. 2022. 2. 11.
[DB] Index? 목차 LIST Index(인덱스)란? 데이터베이스 분야에서 테이블에 대한 동작의 속도를 높여주는 자료 구조로 테이블의 검색 속도를 향상시켜준다. 전공 책에서 궁금한 내용을 찾을 때 제일 뒤 색인을 사용하는데 데이터베이스의 index가 바로 그런 역할을 한다. 데이터베이스에서 테이블 검색 시 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 인덱스를 사용한다. 특정 컬럼에 인덱스를 생성하면 해당 컬럼의 데이터를 정렬하여 별도의 공간에 데이터의 물리적 주소와 함께 저장된다. 위 이미지를 보면 인덱스를 사용해서 검색 쿼리를 날리면 Index에 먼저 접근하고, 저장되어 있는 데이터의 물리적 주소로 가서 데이터를 가져오는 방식으로 검색 속도를 향상시킨다. 인덱스에서 원하는 데이터를 찾고 -> 저장되어 있는 물리적.. 2022. 2. 11.
[Network] 뒤돌면 까먹는 OSI7 계층 목차 LIST OSI7 Layer Model 최근에 주로 사용되는 TCP/IP 모델은 제일 오른쪽에 있는 Five Layered model이다. OSI7 계층과의 차이점은 Application, Presentation, Session Layer를 하나의 Application으로 묶은 것이다. * 요약 Layer 특징 Physical Layer 전기 신호를 변환 및 전송 DataLink Layer Mac address를 사용하여 동일 네트워크 내 전송 오류 제어 Network Layer IP를 사용하여 네트워크 라우팅이 이뤄지는 계층 서로 다른 네트워크 통신 Transport Layer Port를 사용해서 목적지 프로세스를 찾아냄 예)TCP/UDP 프로토콜 Session Layer 세션을 맺고 끊는다. 복.. 2022. 2. 11.
반응형