DevOps/CS

    [DevOps] 소켓과 포트의 특징, HTTP버전별 특징

    소켓(Socket)이란 무엇인가? 일반적으로 서버는 특정 컴퓨터에서 실행되며 특정 포트 번호에 바인딩된 소켓이 있다. 서버는 클라이언트가 연결 요청을 하기 위해 소켓을 수신 대기한다. 클라이언트 측에서: 클라이언트는 서버가 실행 중인 시스템의 호스트 이름과 서버가 수신 중인 포트 번호를 알고 있는데 연결 요청을 만들기 위해 클라이언트는 서버의 시스템 및 포트에서 서버와 연결을 시도하게 된다. 또한 클라이언트는 이 연결 중에 사용할 로컬 포트 ​​번호에 바인딩되도록 서버에 자신을 식별해야 한다. 일반적으로 시스템에서 할당한다. 모든 것이 순조롭게 진행되면 서버가 연결을 수락한다. 수락하면 서버는 동일한 로컬 포트에 바인딩된 새 소켓을 가져오고 remote endpoint도 클라이언트의 주소와 포트로 설정하..

    [DevOps] 데이터베이스 정규화

    정규화 설명 정규화는 데이터베이스의 데이터를 구성하는 프로세스이다. 이 프로세스에는 중복성 및 일치하지 않는 종속성을 제거하여 데이터베이스의 유연성을 높이는 동시에 데이터를 보호하도록 설계된 규칙에 따라 테이블을 만들고 해당 테이블 간의 관계를 설정하는 작업이 포함됩니다. 데이터가 중복되면 디스크 공간이 낭비되며 유지 관리상의 문제가 발생하게된다. 여러 위치에 있는 데이터를 변경해야 하는 경우에는 모든 위치에서 데이터를 정확히 동일한 방식으로 변경해야 한다. 고객 주소 데이터가 Customers 테이블에만 저장되어 있고 데이터베이스의 다른 위치에는 없다면 고객 주소 변경을 구현하기가 훨씬 쉬워질 것입니다. 그렇다면 "일치하지 않는 종속성"이란 무엇일까? 특정 고객의 주소를 찾으려는 사용자는 자연스럽게 C..

    [DevOps] HTTP가 뭐길래

    HTTP의 사전적 의미 하이퍼텍스트 전송 프로토콜(HTTP) 은 HTML과 같은 하이퍼미디어 문서를 전 송하기 위한 애플리케이션 레이어 프로토콜이다. 웹 브라우저와 웹 서버 간의 커뮤니케이션을 위해 디자인되었지만, 다른 목적으로도 사용될 수 있다. HTTP는 클라이언트가 요청을 생성하기 위한 연결을 연 다음 응답을 받을 때까지 대기하는 전통적인 클라이언트-서버 모델을 따른다. HTTP는 무상태 프로토콜이며, 이는 서버가 두 요청 간에 어떠한 데이터(상태)도 유지하지 않음을 의미한다. HTTP의 흐름 클라이언트가 서버와 통신하고자 할 때, 최종 서버가 됐든 중간 프록시가 됐든, 다음 단계의 과정을 수행한다: TCP 연결을 연다:TCP 연결은 요청을 보내거나(혹은 여러개의 요청) 응답을 받는 데 사용된다. ..

    [DevOps] DNS 너 어떻게 작동하는건데!!!

    DNS(Domain Name System)란? DNS는 인터넷 전화번호부이다. 대부분 naver.com 또는 google.com과 같은 도메인 이름을 통해 온라인으로 정보에 액세스 한다. 웹 브라우저는 인터넷 프로토콜(IP) 주소를 통해 상호작용한다. DNS는 브라우저가 인터넷 자원을 로드할 수 있도록 도메인 이름을 IP 주소로 변환한다. 인터넷에 연결된 각 기기에는 다른 컴퓨터가 기기를 찾는 데 사용하는 고유한 IP 주소가 있다. DNS 서버를 사용하면 사람이 192.168.1.1(IPv4의 경우)과 같은 IP 주소 또는 2400:cb00:2048:1::c629:d7 a 2(IPv6의 경우)처럼 영문과 숫자로 된 복잡한 IP 주소를 기억할 필요가 없다. DNS 작동 방식 DNS 서버는 URL과 도메인 ..

    [DevOps] DevOps가 뭔지알아??? 내가알려줄게

    DevOps 란 Development와 Operation의 합성어인데 개발과 운영이다 DevOps 가 나온 이유 데브옵스가 나온 배경부터 알려면 전통적인 개발 운영 체계부터 봐야 한다. 대부분 개발팀에서 개발이 끝나면 애플리케이션은 테스트를 거쳐 운영팀에서 애플리케이션을 배포하고 관리 운영을 한다. 이렇게 거쳐간 애플리케이션은 개발 팀보다 운영팀에 의해서 운영이 된다 여기서부터 문제점이 나온다 개발을 해본 사람이라면 분명 무조건 에러가 발생한다 근데 위에서 말했듯이 개발팀은 애플리케이션을 잘 알고 있지만 운영팀의 인프라를 알지 못하며 반대로 운영팀은 애플리케이션은 모르며 인프라에 대해 잘 알 것이다 이렇게 되면서 에러가 발생한 부분에서 서로 문제가 아니라고 책임회피를 하게 된다 책임회피를 하게 된다면 에..

    [DevOps] SaaS??? 너 누구야!!!

    일단 SaaS란 Software as a Service 로 번역하자면 소프트웨어 클라우드 애플리케이션과 기본 IT 인프라 및 플랫폼을 사용자에게 제공하는 구독형 서비스이다. 다들 IT에 관심이 많다면 설치형 소프트웨어가(SW) 지나가고 SaaS가 등장했다 라고 하는데 SaaS와 SW, 가장 큰 차이점은 무엇일까? 설치형 SW의 단점 SaaS는 유지 및 보수가 매우 쉽고 최신 SW 업데이트를 빠르게 제공할 수 있다. 문제가 발생해도 SaaS 패키지는 퍼블릭 클라우드 속에 있기 때문에 SW 개발사가 즉시 수정할 수 있으며, 최신 기능도 SW에 재빨리 업데이트할 수 있다. 개인과 기업 입장에서도 별도의 업데이트를 하지 않아도 문제가 해결된 최신 버전의 SW를 이용할 수 있으니 매우 편리하다. 사실 많은 SW ..

    [DevOps] 온 프레미스와 클라우드의 차이점

    온프레미스(On-premise)와 클라우드(Cloud) 시스템의 장단점을 말하기에 앞서 두 시스템의 정의를 먼저 이야기해볼까 합니다. 두 시스템의 정의를 알면 장단점을 조금 더 쉽게 이해할 수 있습니다. 기본적으로 두 시스템은 모두 서비스(게임, 웹 애플리케이션, 쇼핑몰, 실시간 채팅, 기타 등)를 만들 때 필요한 재료(자원)들을 구성하는 방법에 대한 이야기입니다. 온프레미스는 집을 짓는다고 할 때 집을 짓기 위한 자제 구매부터 건물 도면 그리는 작업, 시공, 건축, 그리고 인테리어까지 모든 과정을 누구의 도움 없이 집을 필요로 하는 사람이 혼자서 다 처리하는 방법입니다. 처음 집을 집는 사람뿐만 아니라 여러 번 집을 지어본 사람도 혼자서는 쉽게 할 수 있는 일이 아닙니다. 클라우드 시스템도 온프레미스처..