[메모리] 메모리 기술
·
CS
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 메모리 기술에 대해서 공부한 것을 정리를 해보려고 합니다. 메모리 기술오늘날 사용되는 메모리 계층구조에서는 DRAM, SRAM, 플래시 메모리, 자기 디스크 이렇게 4가지 주요 기술이 사용됩니다. 메인 메모리는 DRAM(Dynamic Random Access Memory)으로 구현됩니다. 우리가 흔히 말하는 램이 바로 이 DRAM입니다. 프로세서에서 더 가까운 계층인 캐시에서는 SRAM(Static Random Access Memory)이 사용됩니다. DRAM은 SRAM보다 훨씬 느리지만 비트당 가격이 덜 비싸고, 메모리 비트당 면적이 작기 때문에 가격 차이가 생기게 됩니다. 또한 같은 양의 실리콘으로 더 큰 용량을 만들 수 있습니다. 속도 차이는 몇 ..
[운영체제] 동기화
·
CS/운영체제
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 운영체제의 동기화에 대해서 정리해보려고 합니다. 운영체제에서 다중 프로세스와 스레드가 동시에 실행되는 환경에서는 자원 접근과 실행 순서를 제어하기 위한 동기화 메커니즘이 필수적입니다. 하지만 이러한 동기화를 고려하지 않으면 문제가 발생하게 되는데 이러한 내용을 중점으로 정리를 해보겠습니다. 동기화(Synchronization)이란?우선 동기화에 대한 개념부터 살펴보자면 동기화는 여러 프로세스나 스레드가 공유 자원에 접근할 때 데이터의 일관성을 유지하고 실행 순서를 제어하는 메커니즘입니다. 다중 프로그래밍 환경에서는 여러 프로세스가 동시에 실행되기 때문에, 공유 자원에 대한 접근을 제어하지 않으면 데이터 불일치 문제가 발생할 수 있습니다. 동시다발적으로 실..
[네트워크] HTTP의 특성 톺아보기
·
CS/네트워크
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 OSI 7계층 중에서 제3계층인 응용계층과 가장 밀접하게 연결되어 있는 HTTP에 대해서 정리를 해보려고 합니다. HTTP의 개념과 특징을 잘 정리하고 알고 계시면 개발을 할 때에도 직접적인 도움을 많이 받으실 수 있을 겁니다! 그럼 바로 시작하겠습니다! HTTP란?먼저 HTTP의 특성에 대해서 배우려면 HTTP가 뭔지부터 알고 넘어가야겠죠? 정말 간단하게 설명하고 넘어가겠습니다. HTTP(Hypertext Transfer Protocol)는 월드 와이드 웹(WWW)에서 데이터를 주고받기 위한 프로토콜입니다. 웹 브라우저와 웹 서버 간의 통신을 담당하며, 요청(Request)과 응답(Response)을 통해 정보를 주고받는 방식으로 작동합니다. HTTP는..
[운영체제] CPU 스케줄링 알아보기
·
CS/운영체제
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 오랜만에 운영체제에 대해서 다뤄볼건데 그 중에서도 CPU 스케줄링에 대해서 한번 정리를 해보려고 합니다. 본론에 들어가기에 앞서서!운영체제가 CPU로 할당하는 대상에는 프로세스 뿐만 아니라 스레드도 포함이 되어 있지만 이번 포스팅에서는 이 두가지를 '프로세스'로 통칭해서 포스팅한다는 점 유의하고 봐주시면 감사하겠습니다. 스케줄링이란?먼저 기본적인 부분부터 짚고 넘어가겠습니다.  모든 프로세스와 스레드는 실행되기 위해 자원을 필요로 합니다. 여기서 자원이란 프로세스가 실행되기 위해 요구되는 모든 요소를 의미하죠. 따라서 자원 배분은 매우 중요한 문제입니다. 하지만 만약 이 중요한 자원을 무작위로 배분해, 어떤 프로세스에는 100 중 80을 주고, 다른 곳에..
[DataBase] 데이터베이스와 테이블 관리하기
·
CS/Database
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 데이터베이스 생성하고 관리하는 방법 중에서 데이터베이스 생성과 테이블 생성에 대해서 포스팅을 해보겠습니다! 우선 들어가기에 앞서서 MySQL이 관리하는 것들에 대해서 정리하고 가겠습니다. MySQL을 설치하면 DBMS가 설치될 거고, 여러개의 데이터베이스를 갖게 될 겁니다. 그리고 그 데이터베이스 안에는 여러개의 테이블을 가질 수 있습니다. 아래 그림처럼 말이죠!우리는 이런 구조로 MySQL을 관리할 수 있습니다.  MySQL이 관리하는 것MySQL이 관리하는 것들을 살펴보면 데이터베이스들을 관리하게 되고 그 데이터베이스들은 테이블들을 관리하게 될 것입니다. 그리고 또  테이블은 데이터를 의미하는 행과 열들을 가지고 있고 각각의 데이터 정확하게는 열에는 ..
[디자인패턴] MVC 패턴 이해하고 활용하기
·
CS/디자인 패턴
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 소프트웨어 디자인 패턴 중 하나인 MVC 패턴에 대해 간단하게 한 번 살펴보도록 하겠습니다. MVC 패턴이란?먼저 MVC 정의 먼저 살펴보겠습니다. "MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다"라고 하는군요.... 말이 좀 어렵죠? MVC 패턴(Model-View-Controller Pattern)은 소프트웨어 공학에서 사용되는 아키텍처 패턴 중 하나입니다. 이 패턴은 애플리케이션을 세 가지 역할로 분리하여 개발하는 방법론을 의미합니다.  제가 밑에서 좀 더 쉽게 설명해드리겠습니다! 그 전에 우선 각 키워드 별로 어떤 역할을 하는지 간단하게 살펴보겠습니다. Model(모..