키(Key)데이터베이스 테이블에서의 데이터는 서로 상이합니다. 즉, 해당 테이블을 구성하고 있는 애트리뷰트 전부를 이용하면 모든 데이터들을 항상 유일하게 식별할 수 있습니다. 그러나 실제로는 애트리뷰트 전부를 이용할 필요 없이 하나 또는 몇 개의 애트리뷰트만 지정하여 그 값을 이용해도 해당 테이블에 있는 있는 모든 데이터들을 유일하게 식별할 수 있는 경우가 많습니다. 이렇게 데이터들을 유일하게 식별할 수 있는 애트리뷰트 집합을 그 테이블의 키(Key)라고 합니다. 특징1️⃣ 유일성: 유일한 값을 가져야 합니다.2️⃣ 최소성: 최소한의 값으로 식별할 수 있어야 합니다.3️⃣ 불변성: 변하는 값이어선 안됩니다.4️⃣ 존재성: 반드시 존재해야 합니다. 누구한텐 있고 누구한테는 없어선 안됩니다.후보키(Candi..
DNS란 ?DNS에 대해서 알기 위해 먼저 전화번호부를 생각해봅시다.누군가의 전화번호를 저장하기 위해 해당 번호를 저장했다고 생각해봅시다.전화번호만 알고 있다면 이 전화번호가 누구 껀지, 그리고 해당 번호를 항상 외우고 있어야 합니다.하지만 이 번호가 무수하다면 ?이를 다 외우고 있기엔 사실상 불가능할 것입니다. 그래서, 우리는 이름을 매핑해줍니다.그러면, 우리는 해당 이름만을 가지고 그 사람의 전화번호를 얻을 수 있습니다.도메인 이름 시스템(Domain Name System, DNS)란, 사람이 읽을 수 있는 도메인 이름(예: www.naver.com)을 머신이 읽을 수 있는 IP 주소(예: 192.0.2.44)로 변환해주는 서비스를 말합니다.DNS은 전세계적으로 약속된 규칙을 공유하는데, 상위 기관에..
CS 공부를 하며 항상 나오는 문제는주소창에 www.naver.com을 입력하면 무슨 일이 일어나나요 ? 였습니다.그래서 이번 포스팅에서는 해당 질문에 대해 윈도우 운영체제 기준으로 자세히 답해보도록 하겠습니다. 웹 브라우저에 www.naver.com 을 입력하면 일어나는 일 IP 주소 가져오기우리는 보통 웹 브라우저에서 검색을 하면 주소창에 URL(보통 도메인 이름)의 형태로 작성을 합니다.URI? URL?URI는 Uniform Resource Idenfier의 약자로, 통합 자원 식별자라고도 합니다.✅ Uniform은 리소스를 식별하는 통일된 방식을 말합니다.✅ Resource는 URI로 식별 가능한 모든 종류의 자원(웹 브라우저 파일 및 그 외의 리소스 포함)을 지칭합니다✅ Identifier는 다..
네이버나 구글 정도의 사이트들은 단순히 DNS를 이용해서만 IP 주소를 제공하지 않고, GSLB를 통해 IP 를 사용자에게 제공합니다. 그렇다면 GSLB는 무엇일까요 ? GSLB의 개념Global Server Load Balancing의 약자로 로드 밸런스의 발전된 형태로 생각할수도 있지만, 이름과는 달리 DNS 서버의 발전된 형태입니다. 지능적 DNS 서비스라고도 불립니다. DNS 서비스는 도메인 이름을 IP주소로 변환하는 일을 해줍니다. 하나의 도메인 주소에 대해서 여러 개의 IP 주소를 넘겨줄 수도 있는데, 이 기능을 이용해 가용성 구성과 로드 밸런싱 기능을 수행할 수 있습니다. 하지만 DNS 서비스의 목적은 이러한 목적이 아니라 한계가 분명히 존재합니다.예를 들어 클라이언트가 표준 DNS 에 질의..
컴퓨터를 하는 사람이라면 IP 주소에 대해서 한 번쯤은 들어봤을 겁니다. 또한, 통신을 할 때에 우리는 IP 주소와 포트번호를 이용해 데이터를 주고 받습니다.그렇다면 그 IP 주소는 무엇이며, 어떤 기능을 하고 있을까요 ? IP 주소란 ?인터넷 프로토콜 주소 또는 IP(인터넷 프로토콜, Internet Protocol) 주소는 고유한 식별자 역할을 하는 숫자 문자열입니다. 인터넷의 모든 디바이스에는 고유한 IP 주소가 할당됩니다. 수신자에게 편지를 전달하는 데 사용되는 실제 주소와 우편번호와 같이, IP 주소는 IP 패킷을 올바른 위치로 라우팅합니다. ISP(인터넷 서비스 사업자)는 디바이스에 IP 주소를 할당합니다. 신뢰할 수 있는 인터넷을 보장하려면 이 시스템이 올바르게 작동해야 합니다. 현재 인터넷..
프로젝트를 진행하면서 채팅 등 실시간 기능을 이용해보신 분이라면 웹소켓에 대해서 들어보신 적이 있으실 겁니다.이번 포스팅에서는 저번 포스팅에 이어 소켓이 어떻게 통신하는지에 대해 정리해보겠습니다 웹소켓에 대한 설명은 다음 포스팅을 참고해주세요🥰https://soyeonnnb.tistory.com/74 [CS] WebSocket이란 ?프로젝트를 진행하며 채팅 기능이 필요할 시 웹소켓을 통해 연결하는 경우가 많습니다. 따라서 웹소켓의 개념에 대해 한번 정리해보고자 합니다.웹소켓이란웹소켓은 두 프로그램 간의 메세지soyeonnnb.tistory.com파일이란?소켓에 대해 알기 위해서는 파일에 대해 먼저 알아야 합니다.파일이란 무엇일까요 ?? 아마 파일에 대해서는 다들 알고있지만, 정확하게 무엇이다 ! 라고 ..
Spring 에 대해 학습하며, Spring 은 MVC 디자인 패턴을 따른다고 배웠습니다.MVC 패턴에 대해 검색하면 항상 함께 나오는 패턴이 MVP, MVVM 패턴인데, 이에 대해 한번 정리해보고자 합니다.디자인 패턴이란?디자인 패턴은 건축으로치자면 공법에 해당하는 것으로, 프로그램 개발에서 자주 나타나는 과제를 해결하기 위한 방법입니다. 소수의 뛰어난 엔지니어가 해결한 문제를 다수의 엔지니어들이 처리할 수 있도록 한 규칙이면서, 구현자들 간의 커뮤니케이션의 효율성을 높이는 기법입니다. MVC패턴MVC란 Model-View-Controller의 약자로, 애플리케이션을 세가지 역할로 구분한 개발 방법론입니다. MVC 패턴은 비지니스 로직과 화면을 분리합니다. 이러한 관심사 분리는 업무를 분담하여 유지보수..
HTTP 상태코드 소개 상태코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx (Informational): 요청이 수신되어 처리중 → 거의 사용X 2xx (Successful): 요청 정상 처리 3xx (Redirectional): 요청을 완료하려면 추가 행동이 필요 4xx (Client Error): 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음) 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 모르는 상태 코드가 나타나면? 클라이언트가 인식할 수 없는 상태코드를 서버가 반환하면? 클라이언트는 상위 상태코드로 해석해서 처리 미래에 새로운 상태 코드가 추가 되어도 클라이언트는 변경하지 않아도 됨 예) 299 → 2xx (..
클라이언트에서 서버로 데이터 전송 데이터 전달 방식은 크게 2가지 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터(검색어) 메세지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원가입, 상품주문, 리소스 등록, 리소스 변경 4가지 상황 정적 데이터 조회 이미지, 정적 텍스트 문서 동적 데이터 조회 주로 검색, 게시판 목록에서 정렬 필터(검색어) HTML Form을 통한 데이터 전송 회원가입, 상품주문, 데이터 변경 HTTP API를 통한 데이터 전송 회원가입, 상품주문, 데이터 변경 서버 to 서버, 앱 클라이언트, 웹 클라이언트(Ajax) 정적 데이터 조회 → 쿼리 파라미터 미사용 이미지, 정적 텍스트 문서 조회는 GET 사용 정적 데이터는 일반적으로 쿼리 파라미터 없이 리소스 경로..