이것저것 용어들을 간단하게 정리하려 한다.. 차차 업데이트 예정
패킷필터링 방식 - 통신하는 패킷을 포트 번호와 ip address 기반으로 하는 필터링 -
애플리케이샨 게이트웨이 방식 - 패킷 대신 애플리케이션 프로토콜 레벨에서 외부와 통신하며 제어 - 프록시 서버 방식
라우터 - 서로 다른 네트워크를 연결하는 통신장비, l3 - 라우팅을 하드웨어에서 처리
클러스터 - 여러대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터의 집합, 보통 근거리 통신망으로 연결, 서버로 연결되는 노드에는 각각의 운영체제가 실행
노드 - (통신망)데이터를 주고 받는 모든 시스템 예) 네트워크안에 PC 10대 공유기 4개 -> pc와 공유기가 노드 장치나 데이터지점을 의미한다.
베오울프 시스템 - 컴퓨터 클러스터 기술의 일종으로 보통 리눅스 환경에서 클러스터를 구축하는데 쓰인다, 마스터와 슬레이브 서버로 구성되어있는 시스템, 마스터 서버는 컴퓨터의 일들을 나누고 관리하며 슬레이브 서버는 일을 처리하고 계산 하는 서버이다, 어플레케이션 프로그램은 마스터 서버와 통신할 뿐 슬레이브 서버인 노드들과는 통신하지 않는다. 하나의 서버컴퓨터가 하나이상의 많은 노드들을 관리하고 동기화 한다.
클러스터링 - 군집화, 비슷한 개체를 한 그룹으로, 다른개체는 다른그룹으로 묶는다.
온프레미스 - 데이터 센터나 서버실에 서버를 두고 직접 관리하는 방식
클라우드 - 불특정다수,퍼블릭클라우드에서 이용자를 제한한 형태의 클라우드
미들웨어 - os와 비즈니스를 처리하는 애플리케이션 사이에 들어가는 각종 소프트웨어, 웹서버,DBMS, 모니터링툴등
게이트웨이 - 현재 사용자가 위치한 네트워크(세크먼트)에서 다른 네트워크(인터넷등)로 이동하기 위해 반드시 거쳐야 하는 거점 두 pc(노드)가 네트워크상에서 연결되려면 서로 동일한 프로토콜을 사용해야 한다. 이때 프로토콜이 다른 네트워크 상의 컴퓨터와 통신하려면 두 프로토콜을 알맞게 변환해주는 게 필요한데 이때 사용되는 것이 게이트웨이다. 흔히 사용하는 유무선 공유기도 게이트웨이역활
라우터와 게이트웨이의 차이점 라우터 - layer3의 통신망 계층에서 동작을 하며, 통신망의 주소에 따라 최종 목적지 까지의 경로를 설정하여 전송한다. 라우터는 여러가지 판단 기준에 따라 전송하도록 프로그램할수 있으며, 복잡한 연동망에 사용됩니다.
게이트 웨이 - transport layer 이상에서 동작을 하며 , SNA, DECNET, X.25 등의 다른 프로토골의 형태로 변환하는 기능을 수행 합니다.
게이트 웨이는 공항입구, 라우터는 공항에서 노선따라 해당게이트로 나가게 해주는 것?
Proxy- 대리 프록시 서버 - 두 pc 사이에 껴있는 pc.. 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수있게 해주는 pc Pc와 외부인터넷 사이의 징검다리 (중계) 역할, ip 바꿀때 많이 사용됨
Scale up - 서버의 성능(스펙)을 업
Scale out - 서버의 대수를 늘린다(데이터 분산)
Sharding - 데이터베이스를 테이블 단위로 분리하는 수직 샤딩, 데이블 자체를 분할하는 수평샤딩이 있다.
수직 샤딩은 연속된 데이터에 대해 범위별로 데이터를 나누는 방법(연령대별 분할)
수평 샤딩은 연솓된 키가 아니라 카테고리와 같은 종류별로 데이터를 분리(사용자가 사는지역)
파티셔닝 - 퍼포먼스, 가용성, 정비용이성을 목적으로 논리적인 데이터를 엘리먼트들을 다수의 엔티티로 쪼개는 행위, 샤딩은 수평 파티셔닝,
Stateful - 이전의 상태를 기록하고있는 접속, 웹서버가 사용자의 작업을 기억하고 있는 것
Stateless - 이전의 상태를 기록하지않는 접속, 기억안함
Http는 stateless
Websocket - 연결지향, 양방향통신
Nas: 네트워크와 연결된 저장소 (Network Attached Storage)ㄴㄴ
기타 용어
Fail over - 웹서버를 두 대를 가동하다가, 한 대가 장애가 발생하여 웹서비스 중단되는 상황이 발생할 때, 순간적으로 나머지 한 대가 임무 교대를 하게 되는 기능을 의미합니다
페일백(failback)은 페일오버에 따라 전환된 서버/시스템/네트워크를 장애가 발생하기 전의 상태로 되돌리는 처리를 말한다.
Threshold - 적용범위의 경계로 보시면 되겠다. 한도 한계 역치
-
POC (Proof Of Concept : 기술 검증, 개념 검증) 기존에 시장에서 사용돼지 않던, 신기술을 프로젝트에 도입하기에 앞서, 검증하기 위한 목적으로 사용. 사업과 관계가 약간은 동떨어진 기술 검토를 위한 프로젝트고객사에서 하고, 업무는 아주 간단한 것을 수반. 신기술 여부는 중요치 않음
-
Pilot 이미 검증된 기술을 가지고, 대규모 프로젝트 진행에 앞서 소규모로 진행해보는 시험 프로젝트를 말함. 본사업(프로젝트) 진행을 위한 수행안 검증 프로젝트로 가령 기술셋을 확정했으면 그 기술셋으로 실제 업무에 적용해보고 문제점이나 개선안을 마련해서 본 프로젝트에 피드백 주는 것 (계획, 기술문제, 관리요소, 위험요소, 비용 이런 것을 피드백하는 용도, 당초 기대한 효과에 비해 결과가 너무 미미하거나 비용이 많이 들면 취소)
-
BMT(Bench Marking Test) 말그대로 성능테스트입니다. 예를 들면 00발주처에서 테라바이트 라우터를 도입한다고 할때, 입찰에 응한 업체들의 제품에 대해서 성능비교를 하는 겁니다. 필요에 의해 이것 저것 골라다가 테스트해보고 비교하는 것. 장비 뿐만이 아니라 소프트웨어(솔루션)도 포함되구요. (대부분은 수평적으로 기술셋 비교에 대한 내용이 많지만 업무적 특성을 포괄하는 솔루션인가? 이러한 요건이면 업무도 물론 수반)
HA 란 (High Availability) : 고 가용성 HA의 방법으로는 클러스터링(여러개가 모여서 하나를 구성, 네트워크 장애에 대비), 이중화(Active, Stand by 구성), Raid 구성(Raid 1 미러링을 통해 물리적 두 개의 하드를 논리적으로 한개 하드로 잡아, 하나에 기록하면 똑같은 사본이 다른 하드에 저장됨) 등이 있다.
스노우 플레이크 서버 한번 설치한 서버에 계속해서 설정을 변경하고 패치를 적용하는 등의 업데이트를 지속적으로 적용하여 운영하는 서버(눈송이 서버) 한번 설정하고나면 같은 환경을 꾸미고자 할때 동일한 환경을 구성하기 어려움, 구성편차유발
피닉스 서버 패턴 불사 x , reborn o
새로운 소프트웨어를 인스톨하거나 설정을 변경할때 기존 서버에 변경 작업을 더하는게 아니라 처음 OS 설치에서부터 소프트웨어 인스톨,설정변경까지 다시 반복 매번 전체 설치 반복하면 시간과 자원은? -> 공통스택은 VM 베이스이미지로 만들어놓고 이걸이용해 VM을 생성후에 차이가 나는 부분 설정하는 구조로 스크립트 코드를 이용해 자동화
기존환경 -> 새로운 환경(새로운걸 설치한 base image 생성 후 이 이미지를 이용해 VM을 생성) 생성 -> 정상적 확인 -> 로드밸런서를 구버전에서 신버전으로 트래픽을 전환 -> 기존버전 삭제
스크립트 코드
데이터베이스 트랜잭션 ACID 란
ACID(원자성,일관성,독립성,지속성)는 데이터베이스 트랜젝션이 안전하게 수행되는 것을 보장하는 특성 집합이다. 데이터베이스에서 데이터에 대한 하나의 논리적 실행단계를 트랜잭션이라고 한다. 여러 개별 단계로 이루어진다하더라도 은행 계좌이체를 트랜잭션의 예로 들 수 있다. 원자성(Atomicity)은 트래잭션과 관련 된 일들이 모두 수행되었는지 아니면 모두 실행이 안되었는지를 보장하는 능력이다. 자금 이체는 성공할 수도 실패할 수도 있지만 원자성은 중간 단계까지 실행되고 실패하는 일은 없도록 하는 것이다. 일관성(Consistency)은 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다. 무결성 제약이 모든 계좌는 잔고가 있어야 한다면 이를 위반하는 트랜잭션은 중단된다. 독립성(Isolation)은 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미한다. 이것은 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없음을 의미한다. 은행 관리자는 이체 작업을 하는 도중에 쿼리를 실행하더라도 특정 계좌간 이체하는 양 쪽을 볼 수 없다. 공식적으로 독립성은 트랜잭션 실행내역은 연속적이어야 함을 의미한다. 성능관련 이유로 인해 이 특성은 가장 유연성 있는 제약 조건이다. 자세한 내용은 관련 문서를 참조해야 한다. 지속성(Durability)은 성공적으로 수행된 트랜잭션은 영원히 반영되야 함을 의미한다. 시스템 문제, DB 일관성 체크 등을 하더라도 유지되야 함을 의미한다. 전형적으로 모드 트랜잭션은 로그로 남고 시스템 장애 발생 전 상태로 되도릴 수 있다. 트랜잭션은 로그에 모든 것이 저장된 후에만 commit 상태로 간주될 수 있다.
출처: https://jjeong.tistory.com/377 [jjeong]
Ops - 납품
Dev - 클라우드상에서의 구축
사이드카 패턴은 어플리케이션 컨테이너와 독립적으로 동작하는 별도의 컨테이너를 붙이는 패턴이다. 어플리케이션 컨테이너의 변경이나 수정 없이 독립적으로 동작하는 컨테이너를 붙였다 뗐다 할 수 있다.
출처: https://blog.leocat.kr/notes/2019/02/16/cloud-sidecar-pattern
CI - 딜리버리 전까지 환경 구축 완료 CD - 바로 배포해주는 환경
시리얼라이저는 칩내부에서 주고받는 병렬데이타를 직렬데이타로 바꿔주는 역할을 하는데 전송기(Transmitter)에 쓰이고 디시리얼라이저는 직렬로 받은 데이타를 병렬로 다시 바꿔주는데 수신기(Receiver)에 쓰인다
출처: http://wirelessall.co.kr/board_view.php?idx=89089&boardIndex=12&data=idx%3D89089
YAML - 여러 프로그래밍 언어에서 사용 가능한 가볍고 이해하기 쉬운 형태를 표방하는 ‘데이터 직렬화 양식’
callback - 1. 다른 함수의 인자로써 이용되는 함수.
2. 어떤 이벤트에 의해 호출되어지는 함수.
tempDB - 임시로 사용되고 있는 데이터베이스
아티팩트(artifact) - 아티팩트는 소프트웨어 개발 프로젝트를 진행하면서 생성하는 다양한 산출물을 의미한다. 각종 설계 문서, 유즈 케이스, UML 다이어그램, 소스 코드, 소스를 빌드하여 생성된 라이브러리나 실행 파일도 모두 아티팩트에 속한다.
의사코드(슈도코드, pseudocode) - 프로그램을 작성할 때 각 모듈이 작동하는 논리를 표현하기 위한 언어이다.
오프셋(offset) - 일반적으로 동일 오브젝트 안에서 오브젝트 처음부터 주어진 요소나 지점까지의 변위차를 나타내는 정수형이다.