본문 바로가기

IT이론24

TCP와 UDP의 차이는? TCP는 전송을 제어하는 프로토콜( 규약) 이라는 뜻인데, 이는 아래의 정의와 별 다를게 없다. 일반적으로 TCP는 IP와 함께 사용한다. TCP는 패킷을 추적 및 관리한다. 연결형 서비스로 가상 회선 방식 제공, 3웨이 핸드쉐이킹으로 연결을 하고, 4웨이 핸드쉐이킹을 통해 해제. 흐름 제어, 및 혼잡 제어 높은 신뢰성을 보장, udp보다 속도가 느리다. 전이중, 점대점, 방식이다. 발신지와 수신지를 연결하여 패킷을 전송하여 논리적 경로를 배정한다는 말이다. 3웨이 과정은 수신지를 확실히 하여 정확한 전송을 보장하기 위해 세션을 수립하는 과정이다. TCP가 이런 특징을 지니는 이유는 간단하다. 신뢰서을 보장하기 위해서다. 떄문에 속도가 udp보다 느리다. 특징, 서버소켓은 연결만을 담당한다. 서버와 클라.. 2022. 3. 5.
로드 밸런스란 서버 모든 응답을 해주려 하지만 결국엔 지치게 되어 동작을 멈추게 된다. scale-up : 서버가 더 빠르게 동작하기 위해 하드웨어 성능을 올리는 방법 scale-out : 하나의 server 보단 여러 대의 server가 나눠서 일을 하는 방법 여러 대에 server에 균등하게 트래픽을 분산시키는게 로드 밸런서다. 주요 기능 : 1. NAT, network address translation -> 사설 IP 주소를 공인 IP로 바꾸는데 사용하는 주소 변조기이다. 2. Tunneling -> 인터넷상에서는 눈에 보이지 않는 통로로 통신 할 수 있는 개념, 데이터를 캡슐화해서 연결된 상호 간에만 캡슐화 된 패킷을 구별해 캡술화를 해제 할 수 있다. 3. DSR-> 로드 밸런서 사용 시 서버에서 클라이언트.. 2022. 3. 5.
마이크로서비스 아키텍쳐 장단점은 마이크로 서비스는 대형 소프트웨어 프로젝트의 기능들을 작고 독립적이며 느슨하게 결합 된 모듈로 분해하여 서비스를 제공하는 아키텍처. SOA와는 조금 다른 개념 모두 하나에 들어가있는 개념은 모널리틱 아키텍처. 1. IDE 과부하, 개발자의 생산성을 저하. 2. 하나의 war or ear에 모든 것을 넣었기에 기술 스택을 변경하는거에 주저하게 된다. 때문에 리펙토링도 힘들다. 3. 어플리케이션 특정 오류가 전체에 영향을 끼친다. 특정 함수의 영향이 어플리케이션 전체에 피해 4. 스케일아웃 시에 모든 리소스를 배포해야한다. 5. 어플리케이션이 커질 수록 작은 단위로 작업 축소 불가.독립적으로 배포할 수 없다. 마이크로 서비스 아키텍처의 중요 포인트는 바로 확장성이다. 어플리케이션 이 수평적이라 스케일하는데 .. 2022. 3. 5.
CD / CI란 지속적 통합, 지속적 제공 ( 딜리버리 ) - > 지속적인 배포 버그 테스트를 거쳐 레포지터리등에 자동으로 업로드되고, 운영팀은 실시간으로 배포가 가능해야한다. 파이프라인은 실제 프로세스를 의미하고, 독립적으로 개발하는것은 언젠가 소스코드간의 충돌을 야기한다. 그래서 계속적으로 통합해야한다. 공통 변경 사항을 공유 브런치나 트렁크에 공유하고, 각기 다른 레벨의 자동화 테스트 실행한다. 지속적 제공은, 유효한 레포지터리를 자동으로 릴리지를 한다. 그러기위핸 CI가 먼저 구축어있어야한다. 마지막으로 지속적으로 지속적 배포는, 빌드를 자동으로 릴리즈하는것이다. 제대로 구현하기 위해서는 자동화 테스트가 설계되어있어야한다. 단위 테스트 자동화란, 테스트 툴을 사용해도 되고, 직접 스크립트를 작성해도 된다. 성능 .. 2022. 3. 5.
확장 가능한 분산 시스템이란 확장성 있는 웹 사이트나 애플리케이션을 만들고 관리한다는것은 무엇일까? 자원이나 자원에 대한 접근 권한을 여러개의 서버에 분산되어 있을때를 말한다. 이제 막 비즈니스를 시작하려는 소규모의 웹 사이트를 만들때에도 설계 시 고려 사항에 대해 생각한다면 좀 더 현명한 결정을 내릴 수 있을 것이다. 주요 고려 사항은 아래와 같다. 가용성 : 항상 가용적이고 장애에 유연한 아키텍처를 가지는 것이 기본적인 비즈니스 요구사항이다. 분산 시스템에서 높은 가용성을 얻기 위해, 중요한 컴포넌트의 이중화가 실패가 발생했을 경우에 빠른 복구 방법, 문제가 발생할때 일부만으로 동작할 수 있게, 하는 구성에 대한 고려가 필요하다. 성능 : 웹 사이트의 속도는 사용성, 만족성 뿐 아니라 수익과 유지에 연관이 있다. 빠른 응답 시간.. 2022. 3. 5.
쿠버네티스, 컨테이너 오케스트레이션란 컨테이너를 관리하기 위한, 컨테이너 오케스트레이션이 부상하게 되었다. 프로비저닝, 중복성, 상태 모니터링, 리소스 항당, 스케일링 및 로드 밸런싱, 물리적 호스트 간의 이동, 등 분산 시스템을 탄력적으로 실행하기 위한 프레임 워크 제공, 1. 서비스 디스커버리와 로드 밸런싱 : DNS 이름을 사용하거나 자체 IP 주소를 사용하여 컨테이너를 노출 가능, 2. 스토리지 오케스트레이션 : 로컬, 공용 클라우드 등 원하는 저장소 시스템을 탑재 가능 3. 자동화된 롤아웃과 롤백 : 쿠버네티스를 사용하여 배포된 컨테이너의 원하는 상태를 서술 할 수 있다. 현재 상태를 원하는 상태로 설정한 속도에 따라 변경 할 수 있다. 현재 상태를 원하는 상태로 설정한 속도에 따라 변경 가능, 예를 들어 쿠버네스스를 자동화하여 배.. 2022. 3. 5.
컨테이너란 컨테이너는 클라우드, 데탑 등 어디서든 실행 할 수 있도록 애플리케이션 코드가 해당 라이브러리 및 종속 항목과 함께 패키징되어 있는 소프트웨어 OS의 커널을 활용하여 프로세스를 격리하고 해당 프로레스가 액세스 할 수 있는 CPU 메모리 디스크 양을 제어하는 OS 가상화 형식 가상 머신과 달리 컨테이너는 모든 인스턴스에 게스트 OS를 포함할 필요가 없다. 대신 호스트 OS의 기능과 리소스를 간편하게 활용할 수 있다. 따라서 컨테이너는 빠르고 이식성이 뛰어난다. 최근에는 도커를 사용한다. 컨테이너 vs 가상 머신 기존의 가상 머신은 하이퍼바이저를 활용하여 물리적 하드웨어를 가상화한다. 각각 VM에 애플리케이션 이와 관련된 라이브러리 및 종속 항목과 함께 OS가 실행해되어야 하는 하드웨어의 가상 사본 게스트 .. 2022. 3. 5.
3계층 구조란 1. 프레젠테이션 계층 -> 사용자 인터페이스, 프론트엔드 , 웹 서버 2. 어플리케이션 계층 -> 백엔드 미들웨어, 로직계층, 트랜잭션 계층 3. 데이터 계층 -> 데이터 베이스 ,mysql, db 1계층 구조는 물리적 컴퓨터 또는 서버에 3가지 다른 기능을 한번에 다 넣은 방식, 물리적 장비를 새롭게 변경하고자 하는 경우, 모든 구성을 새로 변경해야한다. 2계층 구조는, 프론트,백엔드를 한곳에, DB를 딴곳에 넣는다. 데이터베이스 변경 시 서로 영향을 받지 않는다. 3계층 구조는 프론트, 백엔드, 데이터베이스를 독립적으로 구분해서 구성한다. 또 다른 3계층 구조는 개발, 테스트, 라이브를 구분짓는다. -> 1계층을 3개로 넣는 구성 테스트 할때, 라이브 서버로 마이그레이션 가능하다. 장점은 업무 분담.. 2022. 3. 5.
도커를 공부해보자 - 1 그동안 별 생각없이 그때그때 사용했다, 처음부터 공부해보자. 출처 - https://zinirun.github.io/2020/08/15/how-to-use-docker/ ----------------------------------------------------------------------- 등장배경은 마이크로서비스, 서버관리, 각 다른 환경에 의존성 파일들을 설치할때, 환경이 다르면 구동이 까다롭기 때문에 등장했다. vmware보다 구동이 빠르다. 중요한 개념은 image, 컨테이너이다. 변하지않으며, 컨테이너에 변화가 생겨도 이미지에는 변화가 없다. 도커 설치 후, 이미지를 받아서 설치해보자. 도커 이미지를 받을땐 docker pull ubunto:latest docker pull : lates.. 2021. 12. 11.
자바 스프링 개념 중요 개념 정리 난 내가 자바를 다시 할 줄 몰랐다... 옛날에 잠깐 손을 대봤지만 산업군도 그렇고 영 매력적인 언어가 아니라고 생각한다. ( 나는 ) 일단 컴파일언어이고, 무겁다, 문법이 길고 복잡하다. 아무튼, 현업에 오고 다시 공부를 정리했다. 예전에는 그냥 어떻게든 페이지만 구현해야하는 상황이었기에 구현했지만... 이제는 구조적인 부분에도 관심이 생기고, 이미 다른 구조에 대한 생각도 해봐서 구조를 어느정도 생각하고 작업에 착수할 것 같다. 아래는 내가 자바스프링을 통해 작업을 하기전에, 짚고 넘어가야하는 부분들을 순차적으로 생각해서 관련 내용을 정리한 내용이다. 1. pc 자바 환경 세팅 -> 버전 확인 및 재설치 -> 신경써야할점, 자바 버전 jdk 버전, sts 버전 2. 자바란? JRE- > 자바 실행환경.. 2021. 11. 23.