목록CS (21)
여름의 서재
💡 Controller (컨트롤러) : 일종의 조정자. 클라이언트의 요청을 받았을 때, 그 요청에 대해 실제 업무를 수행하는 모델 컴포넌트를 호출한다. 또한 클라이언트가 보낸 데이터가 있다면, 모델에 전달하기 쉽게 데이터를 가공한다. 모델이 업무를 마치면 그 결과를 뷰에게 전달한다. 💡 Model (모델) : 컨트롤러가 호출할 때, 요청에 맞는 역할을 수행한다. 비즈니스 로직을 구현하는 영역으로 응용 프로그램에서 데이터를 처리하는 부분이다. 비즈니스 로직이란 업무에 필요한 데이터 처리를 수행하는 응용 프로그램의 일부라고 할 수 있다. DB에 연결하고 데이터를 추출하거나 저장, 삭제, 업데이트, 변환 등의 작업을 수행한다. 상태의 변화가 있을 때 컨트롤러와 뷰에 통보해 후속 조치 명령을 받을 수 있게 한다..
💡 REST 란? : HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미 💡 REST 의 특징 1) Uniform (유니폼 인터페이스) Uniform Interface는 URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일을 말합니다. 2) Stateless (무상태성) REST는 무상태성 성격을 갖습니다. 다시 말해 작업을 위한 상태정보를 따로 저장하고 관리하지 않습니다. 세션 정보나 쿠키정보를 별도로 저장하고 관리하지 않기 때문에 API 서버는 들어오는 요청만을 단순히..
💡 객체 지향 프로그래밍(OOP)이란? : 객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법 💡 객체 지향 프로그래밍의 장,단점 - 장점 ▶ 코드 재사용이 용이 : 남이 만든 클래스를 가져와서 이용할 수 있고 상속을 통해 확장해서 사용할 수 있다. ▶ 유지보수가 쉬움 : 절차 지향 프로그래밍에서는 코드를 수정해야할 때 일일이 찾아 수정해야하는 반면 객체 지향 프로그래밍에서는 수정해야 할 부분이 클래스 내부에 멤버 변수혹은 메서드로 존재하기 때문에 해당 부분만 수정하면 된다. - 단점 ▶ 처리 속도가 상대적으로 느림 ▶ 객체가 많으면 용량이 커질 ..
💡 프로토콜 : 통신 시스템이 데이터를 교환하기 위해 사용하는 통신 규약 - 물리적 측면 : 데이터 전송 매체, 신호 규약, 회선 규격 등. 이더넷이 널리 쓰임. - 논리적 측면 : 장치들끼리 통신하기 위한 프로토콜 규격. TCP/IP가 널리 쓰임. 📌 TCP/IP 프로토콜 스택 - 물리 계층, 데이터 링크 계층 : 이더넷 - 네트워크 계층: ICMP, IP, ARP - 전송 계층 : TCP, UDP - 응용 계층 : FTP, SSH, TELNET, DNS, SNMP 💡 OSI 7계층과 TCP/IP 1. OSI 7계층 - 1 ~ 4계층 : 데이터 플로 계층 / 하위 계층 -> 데이터를 상대방에게 잘 전달하는데 초점 - 5 ~ 7계층 : 애플리케이션 계층 / 상위 계층 -> 데이터를 표현하는데(만드는데) ..
💡 요구 페이징 1. 요구 페이징의 개요 - 요구 페이징 : 사용자가 요구할때 해당 페이지를 메모리로 가져오는 것 - 미리 가져오기 : 요구 페이징과 반대로 앞으로 필요할 것이라고 예상되는 페이지를 미리 가져오는 방식 ex) 캐시 2. 페이지 테이블 엔트리(PTE)의 구조 - 페이지 번호 :매핑 방식에 따라 포함되기도 하고 포함되지 않기도 함 - 프레임 번호 (주소 필드) : 가상 주소의 패당 페이지가 어느 프레임에 있는지 알려주는 자료 구조로 페이지 테이블의 핵심 - 플래그 비트 접근 비트 : 페이지가 메모리에 올라온 후 사용한 적이 있는지 알려주는 비트 변경 비트: 페이지가 메모리에 올라온 후 데이터의 변경이 있었는지 알려주는 비트 유효 비트: 페이지가 실제 메모리에 있는지를 나타내는 비트 (0일때가..
💡 가상 메모리의 개요 - 가상 메모리 : 물리 메모리의 크기와 상관없이 프로세스에 커다란 메모리 공간을 제공하는 기술 : 가상메모리의 크기 = 물리 메모리 + 스왑 영역 💡 페이징 기법 : 고정 분할 방식을 이용한 가상 메모리 관리 기법으로 물리 주소 공간을 같은 크기로 나누어 사용 - 페이징 기법의 주소 변환 과정 : VA = -> PA = * VA: 가상 주소, P (페이지), D (페이지의 처음위치에서 해당 주소까지의 거리) * PA: 물리 주소(실제 주소), F (프레임), D (프레임의 처음위치에서 해당 주소까지의 거리) 📌 페이지 테이블 엔트리 : 페이지 테이블의 각각희 한줄. 페이징 기법에서 페이지 테이블 엔트리는 프레임 번호만 가짐. - 가상 주소를 로 변환하는 공식 P = 가상주소/한 ..
💡 메모리 관리의 개요 1. 소스코드의 번역과 실행 - 컴파일러 : 소스코드를 컴퓨터가 실행할 수 있는 기계어로 번역한 후 한꺼번에 실행 ex) 자바, C 소스코드에서 오류를 발견하여 실행 시 문제가 없도록 함 실행하기 전에 코드를 점검하여 오류를 수정하고 최적화함으로써 작고 빠른 실행 파일을 만듦 - 인터프리터 : 소스코드를 한 행씩 번역하여 실행 ex) 자바스크립트, 파이썬 2. 메모리 관리자의 역할 - 가져오기 작업 : 프로세스와 데이터를 메모리로 가져오는 작업 📌 가져오기 정책 : 프로세스가 필요로 하는 데이터를 언제 메모리로 가져올지 결정하는 정책 - 배치 작업 : 가져온 프로세스와 데이터를 메모리의 어떤 부분에 올려놓을지 결정하는 작업 📌 배치 정책 : 가져온 프로세스를 메모리의 어떤 위치에 ..
💡 프로세스간 통신 - 프로세스 내부 데이터 통신 : 하나의 프로세스 내에 2개 이상의 스레드가 존재하는 경우의 통신이다. 프로세스 내부의 전역 변수나 파일을 이용하여 데이터를 주고 받는다. - 프로세스간 데이터 통신 : 같은 컴퓨터에 있는 여러 프로세스끼리 통신하는 경우로, 공용 파일 또는 운영체제가 제공하는 파이프를 이용하여 통신한다. - 네트워크를 이용한 데이터 통신 : 여러 컴퓨터가 네트워크로 연결되어 있을 때도 통신이 가능한데, 이 경우 프로세스는 소켓을 이용하여 데이터를 주고받는다. (네트워킹) 1. 프로세스 간 통신의 분류 - 통신 방향에 따른 분류 양방향 통신: 데이터를 동시에 양쪽 방향으로 전송할 수 있는 구조, 소켓 통신이 이에 해당 반양방향 통신: 데이터를 양쪽 방향에서 전송할 수 있..