ComputerScience 38

GET, POST의 개념과 데이터의 흐름

GET 방식 개념: GET은 요청하는 데이터가 HTTP URL의 일부로 포함되어 전송됩니다. 일반적으로 조회 작업에 사용됩니다. 데이터 흐름: 사용자가 브라우저에서 URL을 입력하거나 링크를 클릭합니다. 브라우저가 해당 URL에 포함된 파라미터와 함께 서버에 요청을 보냅니다. 서버가 요청을 처리하고 필요한 정보를 응답으로 보냅니다. 브라우저가 응답을 받아 사용자에게 표시합니다. POST 방식 개념: POST는 요청 데이터를 HTTP 메시지 본문에 담아 전송하며, 서버의 상태를 변경하거나 데이터를 추가하는 작업에 사용됩니다. 데이터 흐름:사용자가 웹 폼에 데이터를 입력하고 제출 버튼을 클릭합니다. 브라우저가 데이터를 HTTP 본문에 담아 서버에 요청을 전송합니다. 서버가 요청을 처리하고, 결과를 확인하거나..

ComputerScience 2023.09.03

ORM 이란? 사용시 쿼리가 복잡해질 경우 해결 방법은?

1. ORM이란? ORM은 오브젝트 릴레이션 매핑, 즉 DB 테이블을 자바 객체로 매핑하는것을 의미합니다. 장점으로, 생산성 및 유지보수 성능 향상과 DBMS에 종속적이지 않아 독립성이 강한 장점이 있습니다. 단점으로, 쿼리가 복잡할 때 ORM으로 표현하는데 한계가 있고, 연산 속도가 느립니다. 2. 쿼리가 복잡해질 경우 해결 방법은 무엇일까? JPA 같은 ORM은 정적인 상황에서 사용하는걸 권장하기 때문에 복잡한 쿼리와 동적인 쿼리에 대한 문제가 발생할 수 있습니다. 그럴때는 문자열 형태로 직접 쿼리문을 작성하는 JPQL이나 자바코드로 작성하는 Querydsl을 사용할 것을 권장하고 있습니다.

ComputerScience 2023.08.31

대용량 트래픽 발생 시 대응

대용량 트래픽 발생 대응 방법은 서버 확장, 캐싱, 비동기 처리 등이 있습니다. 그중에서 가장 일반적인 방법인 서버 확장에는 수직확장(scale-up)과 수평확장(scale-out) 이 있습니다. 수직 확장(scale-up)은 한 대의 서버를 구성하는 부품(CPU, RAM, DISK 등..)을 추가하거나 업그레이드하여 서버 자체의 처리 능력을 향상시키는 방법입니다. 하지만 성능 확장에는 한계가 존재합니다. 수평확장(scale-out)은 서버의 개수를 늘려서 많은 트래픽을 여러 서버가 나눠서 처리하는 방법입니다. 이때 한 서버에만 트래픽이 몰리는 것을 방지하기 위해 로드 밸런싱으로 트래픽 조절이 필요합니다. =======================================================..

ComputerScience 2023.08.31

HTTP와 HTTPS의 개념 및 차이점

1. HTTP란? [ HTTP(Hyper Text Transfer Protocol)란? ] HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. 즉, HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용하고 있다. 따라서 HTTP 서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보내게 된다. HTTP는 1989년 팀 버너스 리(Tim Berners Lee)에 의해 처음 설계되었으며, WWW(World-Wide-Web) 기반에서 세계적인 정보를 공유하는데 큰 역할을 하였다. [ HTTP의 구조 ] HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한..

ComputerScience 2023.08.29

HTTP와 HTTPS

HTTP와 HTTPS의 차이점은 무엇인가요? HTTP(Hypertext Transfer Protocol)는 클라이언트와 서버 간 통신을 위한 통신 규칙 세트 또는 프로토콜입니다. 사용자가 웹 사이트를 방문하면 사용자 브라우저가 웹 서버에 HTTP 요청을 전송하고 웹 서버는 HTTP 응답으로 응답합니다. 웹 서버와 사용자 브라우저는 데이터를 일반 텍스트로 교환합니다. 간단히 말해 HTTP 프로토콜은 네트워크 통신을 작동하게 하는 기본 기술입니다. 이름에서 알 수 있듯이 HTTPS(Hypertext Transfer Protocol Secure)는 HTTP의 확장 버전 또는 더 안전한 버전입니다. HTTPS에서는 브라우저와 서버가 데이터를 전송하기 전에 안전하고 암호화된 연결을 설정합니다. HTTP 프로토콜은..

ComputerScience 2023.08.29

프로토콜 ) TCP와 UDP의 특징과 차이

오늘은 네트워크의 계층들 중 전송 계층에서 사용하는 프로토콜에 대해서 알아보려고 합니다. 전송계층은 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층으로, 쉽게 말해 데이터의 전달을 담당합니다. 그리고 데이터를 보내기 위해 사용하는 프로토콜이 있는데, 그 프로콜들이 바로 오늘의 주인공 TCP와 UDP입니다. 원래 TCP와 UDP에 대한 글을 포스팅 할 생각은 1도 없었는데, UDP 채팅 서버를 구현해야하는 과제를 하는 과정에서 부족함을 느끼고 공부의 목적으로 포스팅을 결심했습니다. 많이들 알고 계실텐데 그래도 확실히 집고 넘어가면 좋을 것 같습니다 전송계층이 어디있나 헷갈리시는 분들을 위해 OSI 7layer와 TCP/IP 4layer에 대한 사진도 첨부합니다~ 1. TCP(Transmission C..

ComputerScience 2023.08.25

쿠키(Cookie)와 세션(Session)의 차이, 쿠키란? 세션이란?

쿠키(Cookie)란? 쿠키는 클라이언트(로컬)에 저장되는 키와 값이 들어있는 작은 데이터 파일이다. 이러한 쿠키는 클라이언트에 저장되어 필요시 정보를 참조하거나 재사용할 수 있다. 보통 웹 환경에서는 클라이언트와 서버가 HTTP 프로토콜을 이용해 통신한다. 하지만 HTTP 프로토콜은 아래와 같은 특징을 가지기 때문에 쿠키를 사용한다. 1. Connectionless(비연결성) -> HTTP는 TCP 연결을 맺고 요청(Request)을 보내면 서버는 응답(Response)을 보내고 연결이 끊어진다. 물론 HTTP 1.1 버전은 커넥션을 계속 유지하는 keep-alive 옵션이 디폴트이긴 하다. 하지만 HTTP 1.0 버전은 기본적으로 connectionless이다. 참고) [Web] HTTP 1.0 과 ..

ComputerScience 2023.08.24

브라우저의 동작 원리

브라우저의 작동 방식은 다음과 같은 단계로 이루어집니다: 1 URL 입력 및 요청: 사용자가 URL을 입력하면 브라우저는 해당 주소의 웹 서버에 HTTP 요청을 보냅니다. 2 서버 응답 및 데이터 수신: 서버는 요청을 처리하고 HTML, CSS, JavaScript 파일 등을 브라우저에게 응답으로 보냅니다. 3 HTML 파싱 및 DOM 생성: 브라우저는 HTML을 파싱하여 Document Object Model (DOM) 트리를 만듭니다. 이 트리는 웹 페이지의 구조를 나타냅니다. 4 CSS 파싱 및 CSSOM 생성: CSS 파일도 파싱되어 CSS Object Model (CSSOM) 트리가 생성됩니다. 이것은 페이지의 스타일을 정의합니다. 5 렌더 트리 생성: DOM과 CSSOM을 결합하여 렌더 트리를..

ComputerScience 2023.08.23

CORS(Cross-Origin Resource Sharing)란 무엇인가?

개요 웹 프로그래밍에서 프런트와 백엔드 작업을 하면, 한번씩 발생하는 문제가 CORS 문제입니다. 현재 하는 업무가 이런 경우는 없었지만, 개인 프로젝트 시 발생했던 문제를 기억하며 해당 문제가 왜 발생하고 어떻게 방지할 수 있는지 궁금증이 생겼습니다. 그래서 개념과 스프링에서 사용 방법을 정리해보려고 합니다. CORS란? CORS(Cross-Origin Resource Sharing)는 출처가 다른 자원들을 공유한다는 뜻으로, 한 출처에 있는 자원에서 다른 출처에 있는 자원에 접근하도록 하는 개념입니다. 직역하면, 교차되는 출처 자원들의 공유입니다. 다른 출처에 있는 자원을 요청한다고 하면, 이를 교차 출처 요청이라고 부릅니다. 교차 출처 리소스 공유(Cross-Origin Resource Sharin..

ComputerScience 2023.08.23

HTTP 메서드

HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타냅니다. GET GET 메서드는 특정 리소스의 표시를 요청합니다. GET을 사용하는 요청은 오직 데이터를 받기만 합니다. HEAD HEAD 메서드는 GET 메서드의 요청과 동일한 응답을 요구하지만, 응답 본문을 포함하지 않습니다. POST POST 메서드는 특정 리소스에 엔티티를 제출할 때 쓰입니다. 이는 종종 서버의 상태의 변화나 부작용을 일으킵니다. PUT PUT 메서드는 목적 리소스 모든 현재 표시를 요청 payload로 바꿉니다. DELETE DELETE 메서드는 특정 리소스를 삭제합니다. CONNECT CONNECT 메서드는 목적 리소스로 식별되는 서버로의 터널을 맺습니다. OPTIONS OPTIONS 메서드는 목적 ..

ComputerScience 2023.08.21