본문 바로가기

CS5

HTTP/1.0 ~ 3.0까지 HTTP/1.0HTTP/1.0은 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되었습니다. 이는 RTT 증가를 불러오게 되었습니다.서버로부터 파일을 가져올 때마다 TCP의 3-웨이 핸드셰이크를 계속해서 열어야 하기 때문에 RTT가 증가하는 단점이 있었습니다.RTT패킷이 목적지에 도달하고 나서 다시 출발지로 돌아오기까지 걸리는 시간이며 패킷 왕복 시간RTT증가를 해결하기 위한 방안매번 연결할 때마다 RTT가 증가하니 서버에 부담이 많이 가고 사용자 응답 시간이 길어졌습니다. 이를 해결하기 위해 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩을 사용하곤 했습니다.이미지 스플리팅많은 이미지를 다운로드받게 되면 과부하가 걸리기 때문에 많은 이미지가 합쳐 있는 하나의 이미지를 다운로드받고, 이를 기반.. 2025. 5. 20.
SOLID 원칙이란? SOLID 원칙: 객체 지향 설계의 5대 원칙SOLID는 소프트웨어 설계를 더 유지보수 가능하고 확장 가능하게 만드는 5가지 원칙을 의미합니다.로버트 C. 마틴(Robert C. Martin, "Uncle Bob")이 정리한 객체 지향 프로그래밍(OOP)의 중요한 설계 원칙입니다.좋은 설계란 시스템에 새로운 요구사항이나 변경사항이 있을 때, 영향을 받는 범위가 적은 구조를 말한다. 그래서 시스템에 예상하지 못한 변경사항이 발생하더라도, 유연하게 대처하고 이후에 확장성이 있는 시스템 구조를 만들 수 있습니다.즉, SOLID 객체 지향 원칙을 적용하면 코드를 확장하고유지 보수 관리하기가 더 쉬워지며, 불필요한 복잡성을 제거해 리팩토링에 소요되는 시간을 줄임으로써 프로젝트 개발의 생산성을 높일 수 있습니다.1.. 2025. 2. 19.
HTTP/HTTPS란 HTTPHTTP(Hypertext Transfer Protocol)는 클라이언트와 서버 간 HTML과 같은 하이퍼미디어 문서를 전송하기 위한 통신 규칙 세트 또는 프로토콜이다. 사용자가 웹 사이트를 방문하면 사용자 브라우저가 웹 서버에 HTTP 요청을 전송하고 웹 서버는 HTTP 응답으로 응답한다.즉, HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜인 것이다. 클라이언트-서버 프로토콜이란 수신자 측에 의해 요청이 초기화되는 프로토콜을 의미한다.클라이언트와 서버는 개별적인 메시지 교환에 의해 통신한다.요청(Requests): 클라이언트에 의해 전송되는 메시지응답(Responses): 서버에서 응답으로 전송되는 메시지HTTP의 무상태성HTTP는 무상태(stateless) .. 2025. 2. 10.
[자료구조] 배열, 링크드 리스트 1. 배열[array] 동일한 데이터 유형을 가집니다. 주로 동일한 데이터 유형을 가지지만 이질형 데이터도 지원 가능한 프로그래밍 언어도 있음 이질형 데이터들이 모인 집합체는 주로 레코드라고 함. 실제 메모리 상에서 물리적으로 데이터가 순차적으로 저장되기 때문에 데이터에 순서가 있으며, index가 존재하여 indexing 및 slicing이 가능합니다. indexing : index를 사용해 특정 요소를 리스트로 부터 읽어들이는 것 slicing : 요소에 특정 부분을 따로 분리해 조작하는 것 장점 인덱스를 이용한 접근이 가능하기 때문에 모든 요소에 빠르게 접근할 수 있습니다. 기록 밀도가 1이기 때문에 공간 낭비가 적습니다. 리스트, 그래프 등은 데이터 외에 포인터 등 부가정보를 가지기 때문에 기록밀.. 2023. 7. 15.
[알고리즘] 빅오 표기법 빅오 표기법(Big-O Notation) - 가장 빠르게 증가하는 항만을 고려. - 3N^3 + 5N^2 + 1,000,000 -> O(N^3) - 일반적으로 cpu 기반의 개인 컴퓨터의 연산 횟수가 5억을 넘어가는 경우 : python을 기준으로 통상 5 ~ 15초 가량의 시간이 소요됨. - 시간제한이 1초인 문제를 만났을 때, 일반적인 기준 N의 범위가 500인 경우 : 시간복잡도가 O(N^3)인 알고리즘 N의 범위가 2,000인 경우 : 시간복잡도가 O(N^2)인 알고리즘 N의 범위가 100,000인 경우 : 시간복잡도가 O(NlogN)인 알고리즘 N의 범위가 10,000,000인 경우 : 시간복잡도가 O(N)인 알고리즘 2023. 3. 6.