Computer Science 10

[네트워크] HTTP의 4가지 특징 - 핵심 요약 총정리

HTTP의 특징이 뭐지? 생각하면 뭉게뭉게 한 것 같은 개념에 이참에 정리하려고 글을 쓴다. HTTP란?특징이 뭔지에 대해 제대로 보기 전에, 먼저 HTTP의 개념에 대해 알아보고 넘어가려 한다.  HTTP는 우리 사용자들과 제일 밀접하게 맞닿아 있는 프로토콜이라고 해도 과언이 아니다. (그만큼 우리 일상 생활에서 대중적으로 사용된다는 말)💡HTTP (HyperText Transfer Protocol): 인터넷에서 데이터(HTML과 같은 문서)를 주고 받을 수 있는 프로토콜→  클라이언트와 서버는 HTTP 프로토콜을 이용해 서로 통신한다. 웹 개발에서 HTTP가 중요한 이유클라이언트, 서버 모두 HTTP를 이용해 통신 하므로 웹 개발자라면 HTTP를 잘 알아야 함에러를 해결하는데도 HTTP 지식이 중요..

Computer Science 2024.12.26

[TIL] 캐시와 Redis (Redis 특징과 장점, 사용 시 주의할 점)

프로젝트에서 성능 개선을 위해 캐시를 이용해야 할 일이 생겼다. 프로젝트 적용에 앞서 캐시란 뭔지, 왜 써야하는지 등 캐시에 대한 것들과 Redis의 간결한 특징을 정리해보려 한다. 📌캐시(Cache)란?캐시란, 데이터를 빠르게 읽고 처리하기 위해 (속도가 빠른 메모리를 활용하여) 미리 데이터를 저장해두는 임시 장소이다. 계산된 값을 임시로 저장해두고, 동일한 계산 / 요청 발생 시 다시 계산하지 않고 저장된 값을 바로 사용한다고 생각하면 된다. 이 때 사용하는 임시 저장소를 '캐시'라 하고, 이런 기술을 '캐싱'이라고 한다. 📌캐시의 활용캐시는 컴퓨터 공학 전반의 매우 다양한 곳에서 쓰이는데, BE 개발자에게 익숙한 것 두 가지를 뽑아보면 DP와 JPA를 예로 들 수 있을 것 같다.Dynamic P..

Computer Science 2024.05.28

[TIL][OS] 프로세스와 스레드의 차이

전에 심포지엄 주제로 멀티 프로세스와 멀티 스레드의 개념과 그 차이에 대해서 공부했었는데, 그때는 프로세스와 스레드가 뭔지 기본적인 개념 정도만 짚고 넘어갔었다.그게 아쉬워서 오늘은 단순한 개념을 넘어, 프로세스의 상태 값들과 메모리 구조는 어떻게 되있는지, 그 각각의 구조는 뭔지 등을 공부해보면서 프로세스와 스레드에 대해 깊고! 자세하게 공부한 것을 기록해 볼 생각이다. 프로세스란?프로세스(Process)는 컴퓨터에서 실행되고 있는 프로그램을 말한다. * task (CPU 스케쥴링의 대상이 되는 작업) 라는 용어와 거의 같은 의미로 쓰인다. 문장으로만 보면 다소 추상적으로 느껴질 수 있기에 그림으로 예를 들어서 설명해보겠다. 위의 그림처럼, 프로그램이 메모리에 올라가면 프로세스가 되는 ..

Computer Science 2024.04.24

[TIL][CS] 운영체제(OS) 톺아보기

오늘 CS 스터디 주제는 '기초탄탄한 개발자가 되자!!' 운동의 일종으로 .. 기본 중 기본인 운영체제에 대해 알아보도록 하겠다! 📌운영체제란?운영체제(OS, Operating System)란 사용자가 컴퓨터를 쉽게 다루게 해 주는 인터페이스이다. 한정된 메모리나 시스템 자원을 효율적으로 분배해주는 야무진 녀석⭐이라고 생각하면 된다!  📌운영체제의 역할위에서, 운영체제는 한정된 메모리나 시스템 자원을 효율적으로 분배해준다고 했다. 그래서 '어떻게' 효율적으로 분배한다는 건지, 운영체제의 역할을 통해 알아보자. 운영체제의 역할은 크게 네 가지가 있다.CPU 스케쥴링과 프로세스 관리CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 어떤 프로세스가 CPU를 점유하고..

Computer Science 2024.04.09

[TIL][CS] TCP/UDP와 동작 과정, TCP 3way handshake

오늘은 매일 잘 모르니까 해야지 해야지 하면서 다른 공부에 밀렸던 TCP, UDP와 3way handshake에 대해서 공부했다!! 먼저 본론으로 들어가기 전에, TCP/UDP는 왜 알아야 할까. 잠시 생각해 보고 스크롤을 밑으로 내려보자. 왜 알아야 하나요 🤔 TCP/UDP는 웹 애플리케이션의 신뢰성, 성능 개선을 하는 중요한 역할을 하기 때문이다. 데이터의 소실 방지, 순서 보장 ex) 데이터베이스 서버와 통신을 할 때 저장하려고 하는 데이터가 소실되거나, 혹은 순서가 뒤바뀌어버린다면? 낭패 ! HTTP3.0에서 도입된 *QUIC(Quick UDP Internet Connections)의 도입 배경 이해 => 이러한 상황을 이해하기 위해서 TCP/UDP를 알고 있어야 한다. *QUIC = = TCP ..

Computer Science 2024.04.04

[TIL][CS] 트랜잭션과 ACID, 트랜잭션의 고립 수준

오늘 스터디 주제는 '트랜잭션'! 트랜잭션에 대해 기본적인 개념만 알고 있었는데, 오늘을 기회로 트랜잭션의 기본부터 고립 수준까지 공부를 해봤다. 더불어 내가 이해한 것을 현업에 가까운 예시를 들면서 포스팅 해보고자 한다. 먼저 기본적으로 모두들 잘 알고있는 트랜잭션의 개념과 특성에 대해 간단히 알아보자. 📌 트랜잭션이란? 트랜잭션이란, 데이터베이스에서 수행되는 여러 작업을 하나의 논리적 단위로 수행하는 것을 말한다. 속된말로 곧 죽어도 같이 묶여서 수행되어야 하는 연산을 묶은 것이라고 생각하면 되겠다 ㅎㅎ 트랜잭션의 연산 하나로 묶은 연산을 수행하며 오류 없이 모든 작업이 성공적으로 마쳐야만 DB에 반영하게 되는데, 이것을 트랜잭션 연산에서는 '커밋' (COMMIT)이라고 한다. 하지만 중간에 하나에서..

Computer Science 2024.04.02

[TIL][OS] 멀티 프로세스와 멀티 스레드의 차이, 컨텍스트 스위칭

같이 항해하는 친구들끼리 진행해보기로 한 CS 스터디! aka 심포지엄 (ㅋㅋ)이번에는 매번 읽고만 넘기고 자세히 짚어보지는 않았던 멀티 프로세스와 멀티 스레드의 차이에 대해 공부해보기로 했다.이 둘의 차이에 대해 알아보기 전에 먼저 프로세스와 스레드란 뭔지 알아보자. 🔎 프로세스 (Process)란?프로세스는 컴퓨터에서 실행 중인 프로그램을 의미한다.실행 중인 프로그램은 메모리에 올라가서 CPU에 의해 실행되며, 이렇게 실행 중인 프로그램을 프로세스라고 부르는것이다.프로세스는 운영체제(OS)에 의해 관리되고, 프로세스마다 자신의 주소 공간, 메모리, 입출력, 파일 등의 자원을 갖고 있다. 또한 하나의 프로그램이 여러 개의 프로세스로 분리되어 실행될 수도 있다!즉, 프로세스란 '프로그램이..

Computer Science 2024.03.26

[TIL][CS] UML / UML 다이어그램이란?

✏️ 대표적인 개념 모델링 도구, UML UML (Unified Modeling Language) 모델링 기술과 방법론을 통합하여 표준화한 객체지향 모델링 언어 소프트웨어 개발 과정에서 의사소통을 원활하게 하기 위해 사용 UML 구성 요소: 사물(Things), 관계(Relationships), 다이어그램(Diagram) 🔹 사물 객체 간의 관계를 형성하는 대상으로 모델을 구성하는 기본 요소 구조 사물 - 시스템의 개념적, 물리적 요소를 표현 (Class, Use Case, Component, Node) 행동 사물 - 시간과 공간에 따른 요소들의 행위를 표현 (Interaction, State Machine) 그룹 사물 - 요소들을 그룹으로 묶어서 표현 (Package) 주해 사물 - 부가적인 설명이나 ..

Computer Science 2024.03.21