네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것 통신이 일어나는 과정을 단계별로 파악할 수 있음 (흐름을 한 눈에 알아보기 쉬움, 이해하기 쉬움)7계층 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고 이상이 생긴 단계만 고칠 수 있음
Internet Protocol의 약자지정된 IP 주소에 데이터를 전달하며, 패킷이라는 통신 단위로 데이터를 전달한다IP 주소 - 네트워크 통신에서, 각각의 통신기기(컴퓨터, 노트북, 스마트폰 등)에 할당된 식별번호IP 패킷 - 데이터에 출발지 IP주소, 목적지 IP주
클라이언트와 서버가 연결된 상태에서 데이터를 주고 받는 연결 지향적 프로토콜장치들 사이에 연결을 설정해 신뢰성을 보장(안정적으로, 순서대로, 에러 없이)하는 연결형 서비스연속성보다 신뢰성있는 전송이 중요한 경우(ex-파일전송)에 사용됨연결형 서비스로 가상회선 방식을
HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜웹에서 이루어지는 모든 데이터 교환의 기초임HTML, TEXT / 이미지, 음성, 영상, 파일 / JSON, XML → 거의 모든 형태의 데이터 전송 가능서버 간에 데이터를 주고 받을 때도 대부분 HTTP
암호화 키와 복호화 키가 동일하기 때문에, 어떠한 정보가 대칭키를 통해 암호화되었다면 똑같은 키를 갖고 있는 사용자가 아니면 해당 정보를 확인할 수 없음 장점공개키 암호화 방식에 비해서 속도가 빠름단점키를 교환(배송)하는 도중 키가 탈취될 수 있음관리해야 할 키가 방대
1️⃣ 쿠키와 세션이 필요한 이유 HTTP 특성이자 약점을 보완하기 위해서 필요하다 즉 HTTP는 Connectionless, Stateless의 특성을 가지기 때문에 서버는 클라이언트가 누구인지 매번 확인해야 하는데, 쿠키와 세션을 사용하면 이러한 약점을 보완해준
서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술사업의 규모가 확장되고, 클라이언트의 수가 늘어나게 되면 기존 서버만으로는 정상적인 서비스가 불가능하게 되는데, 이러한 증가한 트래픽에 대처할 수 있는 방법은 크게 두 가지임Scale Up: 서버 자체
DB의 상태를 변화시키기 위해 수행하는 작업의 논리적 단위트랜잭션은 상황에 따라 Commit 되거나 Rollback 됨Commit : 모든 부분작업이 정상적으로 완료되면 이 변경사항을 한꺼번에 DB에 반영함Rollback : 부분 작업이 실패하면 트랜잭션 실행 전으로
엔터티의 인스턴스 사이 논리적 연관성관계명, 관계차수, 선택성으로 구성관계명(Membership)관계의 이름, 각 관계는 2개의 관계명을 가지고 있음 (부서포함한다-사원소속된다)관계차수(Degree, Cardinality)관계의 참여자수 1:1, 1:M, M:N으로 표
1️⃣ 개념 두 개 이상의 테이블을 묶어서 하나의 결과물을 만드는 것으로, 데이터 조회 시 다른 테이블의 데이터를 함께 조회해야할 때 사용함 2️⃣ 종류 내부조인 (Inner Join) 가장 기본적인 조인으로, 두 테이블의 교집합을 나타냄 ON의 조건에 맞는 공통된
1️⃣ 개념 DB에서 테이블에 대한 검색 속도를 향상시켜주는 자료구조 테이블의 특정 컬럼에 대한 인덱스를 생성하면, 해당 컬럼을 기준으로 데이터를 정렬한 후 별도의 메모리 공간에 물리적 주소(DB내에 저장된 데이터의 주소)와 함께 저장됨 컬럼값과 물리적 주소를 (key
모두 삭제하는 명령이다데이터는 지워지지만, 테이블 용량은 줄어 들지 않음원하는 데이터만 지울 수 있음삭제 작업 이전으로 되돌릴 수 있음 (커밋 이전이라면 가능함)사용자 commit, 로그 남김, 속도 느림💡 로그 -> 실패 지점으로 복구, 데이터베이스 동기화(DBMS
파티셔닝과 샤딩은 데이터베이스를 분할하는 방법!큰 테이블이나 인덱스를 관리하기 쉬운 파티션이라는 작은 단위로 물리적으로 분할하는 것데이터는 물리적으로 여러 테이블로 분산되어 저장되지만, 사용자는 하나의 테이블에 접근하는 것처럼 사용할 수 있음관리적 측면에서, 파티션 단
사용자에게 접근이 허용된 데이터만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 가상 테이블(기본 테이블 = 뷰를 만드는 데 기반이 되는 물리적 테이블) 뷰는 데이터가 없고 SQL을 저장하고 있음 단순 뷰(Simple View) : 하나의
데이터의 일관성, 최소한의 데이터 중복, 최대한의 데이터 유연성을 위한 방법 → 즉, 데이터를 분해하는 과정정규화를 수행하면 비즈니스에 변화가 발생해도 데이터 모델의 변경을 최소화할 수 있음정규화는 제1정규화부터 제5정규화까지 있지만, 실질적으로는 제3정규화까지만 수행
개발하면서 발생하는 반복적인 문제들을 어떻게 해결할 것인지에 대한 해결방안 문제 및 배경, 실제 적용된 사례, 재사용이 가능한 샘플 코드 등으로 구성되어 있음 객체지향 4대 원칙(캡슐화, 상속, 추상화, 다형성)과 설계 원칙(SOLID)를 기반으로 구현되어 있음 즉,
프로세스는 "실행 중인 프로그램"을 의미한다!프로그램이 실행 중이라는 것 = 보조기억장치에 저장되어 있던 프로그램을 주기억장치에 적재하여, CPU가 실행하고 있거나 실행 예정인 것즉, 운영체제가 프로그램에 메모리를 할당하여 실행하면 프로세스가 됨이때 할당 받는 시스템
메인 메모리는 CPU가 직접 접근할 수 있는 기억장치로, 프로세스가 실행되려면 프로그램 코드를 메인 메모리에 적재해두어야 함 → 만약 프로그램 용량이 메인 메모리보다 크다면, 초창기 컴퓨터에서는 "메모리 부족" 오류에 의해 해당 애플리케이션을 실행할 수 없었음이 문제를
사용가능한 메모리가 충분히 존재하지만, 메모리의 공간이 작은 조각으로 나뉘어져 할당(사용)이 불가능한 상태시스템 성능 저하를 일으킬 수 있음 (잦은 페이지 교체 필요)필요한 양보다 더 큰 메모리가 할당이 되어서, 할당된 메모리 내부에 사용하지 않는 메모리 공간이 발생한
프로세스 간 통신 (=Inter Process Communication)즉, 프로세스들끼리 서로 데이터를 주고받는 행위 또는 그에 대한 방법을 뜻함 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없기 때문 커널
일반적으로 Memory = Main Memory = 주기억장치 = RAM프로세스의 명령어와 데이터를 저장하는 부분으로, 프로그램이 실행되려면 반드시 메모리에 적재되어야 한다!메모리는 크게 커널 영역과 유저 영역으로 나눠진다유저영역은 다시 스택영역, 힙영역, 데이터영역
CPU가 특정 기능을 수행하는 도중에 급하게 다른 일을 처리하고자 할 때 사용(CPU는 한 순간에는 하나의 일 밖에 처리할 수 없기 때문에 어떤 일을 처리하는 도중에 우선순위가 급한 일을 처리할 필요가 생김)명령어 사이클은 인출과 실행, 두 가지 단계를 반복해서 수행
CPU를 사용하려고 하는 프로세스들 사이의 우선순위를 관리하는 작업선점형 스케줄링과 비선점형 스케줄링으로 유형을 나눌 수 있음프로세스 처리율 증가모든 프로세스에게 CPU를 공정하게 할당하여, 프로세스 처리율이 증가함CPU 이용률 최대화전체 시스템 시간 중 CPU가 작업
둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황\-> 교착상태를 설명하기 위한 문제로, 다익스트라가 만듦5명의 철학자가 원탁에 앉아서 식사를 함. 이때 철학자들 사이에는 포크가 하나씩 놓여 있고 철학자들은 다음의 과
여러 프로세스들이 공유 자원에 동시에 접근하려고 하는 상황(IPC의 shared memory 등)을 경쟁 상태라고 하는데, 경쟁 상태에서는 어떤 프로세스가 마지막으로 데이터를 접근했는지에 따라 데이터의 상태가 달라지게 됨 -> 데이터의 일관성을 보장할 수 없어짐!프로세
페이징 기법으로 메모리를 관리하는 운영체제에서 페이지 부재가 발생하여 새로운 페이지를 할당하기 위해, 현재 할당된 페이지 중 어느 것과 교체할지를 결정하는 방법: 메모리에 가장 먼저 올라온 페이지를 먼저 내보낸다page1.png큐로 구현메모리의 맨 위에 있는 페이지는
서로 다른 두 컴퓨터가 데이터를 주고받을 수 있도록 하는 것네트워크로 연결되어 있는 컴퓨터들 사이에서 데이터를 주고받을 때 사용하는 소프트웨어 장치 = 데이터를 주고 받는 창구 역할!네트워크 프로그래밍 = 소켓 프로그래밍역할에 따라 서버 소켓, 클라이언트 소켓으로 구분
인터넷에서 서비스를 제공하는 서버들 역시 IP 주소로 구분이 되지만, 기억하고 표현하기 어려움때문에 도메인 이름이라는 것을 IP 주소에 부여해서, 이것이 IP 주소를 대신하도록 하고 있음도메인 이름은 해당 서버에 부여된 가상의 주소이지 실제 주소가 아니므로, 가상의 주
애플리케이션 서비스를 동작시키는 서버HTTP 뿐 아니라 TCP, UDP 등 다양한 프로토콜을 전달받아 클라이언트에 다양한 서비스를 제공함 프론트엔드와 백엔드가 분리되지 않고 한 공간에 있다면 그 서버를 AP서버라고 부를 수 있음AP서버의 개념 안에 Web서버와 WAS가
사용자는 도메인 이름(api.mysite.com)을 이용하여 웹사이트에 접속함이 접속을 위해서는 도메인 이름을 DNS에 질의하여 IP 주소로 변환 과정 필요DNS는 보통 3사업자가 제공하는 유료 서비스를 이용하게 됨DNS 조회 결과로 IP 주소(15.125.23.214