🔎 RestAPI란?API: 컴퓨터의 기능을 실행시키는 명령RestAPI: HTTP 프로토콜 기반으로 다른 사람의 컴퓨터에 대한 API✍️ APIAPI는 컴퓨터에게 기능을 실행시키는 명령이다. 쉽게 얘기하면 함수이다. 예를 들어 파이썬의 print(”Hello”), 자바스크립트의 console.log(”Hello”) 모두 API로 볼 수 있다.✍️ RestAPIRestAPI는 자원(Resource) 중심RestAPI는 웹을 통해 연결 된 다른 컴퓨터의 기능을 실행시킬 수 있는 명령이다. 네이버, 카카오 모두 인터넷을 통해 연결 된 서비스다. 그리고 그 서비스들도 컴퓨터 위에서 실행된다. 사용자가 네이버 등을 사용할 때 인터넷을 타고 네이버에게 데이터를 받는데 이때 사용자의 컴퓨터가 RestAPI를 통해..
🔎 HTTP란?HTTP란 클라이언트와 서버 간의 데이터를 주고받을 때의 통신 규약이다. 예를 들어 쿼카와 비버가 있다고 하자. 쿼카와 비버는 멀리 떨어져서 살고 있지만 서로 연락하자고 약속을 했다. 쿼카와 비버는 바쁘기 때문에 규칙을 정해서 편지를 서로 주고 받자고 했다. 이때 편지를 주고 받을 때 정한 규칙이 HTTP와 같다.🔎 HTTP의 특징✍️ 텍스트 기반의 통신방식HTTP 통신은 텍스트 기반으로 사람도 HTTP 메세지를 이해할 수 있다.✍️ 클라이언트-서버 모델클라이언트는 서버에게 요청을 보내고 서버는 클라이언트에게 응답을 보낸다.✍️ 비연결성요청과 응답이 한번 왕래하면 클라이언트와 서버 간의 연결은 끊어진다. 이후 요청 시 새로운 연결을 생성한다.✍️ 상태 비저장HTTP 통신에 따른 상태는 ..
1. 깊은 복사 (Deep Copy)깊은 복사는 객체의 모든 멤버 데이터를 새로 복사하여 두 객체가 서로 독립적인 상태를 유지하도록 한다.주요 특징:새로운 메모리 공간을 할당하여 복사.원본 객체와 복사된 객체의 수명이 독립적.동적 메모리를 사용하는 경우 유용.// 복사 생성자 예제MyClass(const MyClass& other) { data = new int(*(other.data)); // 새로운 메모리 할당 후 복사}2. 얕은 복사 (Shallow Copy)얕은 복사는 객체의 멤버 데이터를 그대로 복사하되, 포인터가 같은 메모리를 참조하도록 한다.주요 특징:메모리 공간을 새로 할당하지 않음.복사된 객체와 원본 객체가 같은 메모리를 참조 (수명 공유).하나의 객체가 메모리를 해제하면 다른 객체..
캐시란캐시는 빠른 장치와 느린 장치 사이의 병목현상을 줄이기 위한 데이터 임시저장소이다.데이터를 임시로 저장하면 해당 데이터를 다시 계산하고 가져오는 시간 등을 절약할 수 있다. 캐시의 예CPU의 레지스터Redis 데이터베이스용어캐시히트: 빠른 장치가 캐시에 원하는 데이터를 찾아내는 사건캐시미스: 원하는 데이터를 찾아내기 못한 사건캐시미스가 발생할 경우, 빠른 장치는 느린장치로 접근해서 원하는 데이터를 캐시에 등록한다.지역성의 원리캐시를 설정할 때는 자주 사용하는 데이터 이여야한다. 자주 사용하는 데이터의 판단기준은 지역성이다. 지역성은 시간적 지역성과 공간적 지역성으로 나뉜다.시간적 지역성: 최근에 사용하는 데이터에 다시 접근하려는 특성공간적 지역성: 최근에 접근한 데이터의 인근 데이터에 접근하려는 특..
시스템 간의 데이터 교환다양한 시스템 간에 데이터를 효율적으로 교환하기 위해서는 통일 된 양식이 필요하다. 초기에는 XML 형식으로 데이터를 교환하였다. 하지만 XML보다 더 가벼운 양식이 필요하여 JSON이 만들어졌다. 시스템 간에 데이터를 교환할 때는 시스템 외부로 보내기 위한 작업인 직렬화, 외부 데이터를 받아서 시스템 내부에서 처리하기 좋은 형태로 변환하는 역직렬화 과정을 거친다. 직렬화와 역직렬화직렬화란 외부의 시스템에서도 사용할 수 있도록 데이터를 바이트 스트림 형태로 변환하는 기술이다. 바이트 스트림은 데이터를 담는 양식으로 JSON, XML 등이 있다.역직렬화란 외부에서 들어온 바이트 스트림을 시스템에서 처리할 수 있는 형태로 변환하는 기술이다. 자바스크립트 시스템에서 JSON을 받은 경우..
2024.11.29 - [컴퓨터과학/컴퓨터구조: CSAPP] - 1.8 시스템은 네트워크를 사용하여 다른 시스템과 통신한다 1.8 시스템은 네트워크를 사용하여 다른 시스템과 통신한다2024.11.27 - [컴퓨터과학/컴퓨터구조: CSAPP] - 1.7 운영체제는 하드웨어를 관리한다 ( 운영체제, 프로세스, 가상메모리, 파일) 1.7 운영체제는 하드웨어를 관리한다 ( 운영체제, 프로세스, 가상메모리,gyht.tistory.com내 작업이 의미를 판단하는 법개발자가 인정 받는 방법 중에 하나는 프로그램의 성능을 개선하는 것이다. 하지만 성능이란 뭘까? 우리는 동일한 작업이라도 더 빠르게 처리하는 프로그램이 있다면 그 프로그램의 성능이 좋다고 한다. 즉, 동일 작업을 더욱 빠르게 처리할 수 있도록 프로그램을 ..