[네트워크] HTTP 상태유지 기술 & SOP와 CORS & REST
·
⚙️ CS
✅ 쿠키와 세션: HTTP 프로토콜의 특성인 비연결성(connectionless)과 무상태성(stateless)을 보완하기 위해 만들어진 기술 ex) HTTP 특성상 매번 페이지를 이동할 때마다 로그인을 다시 해야 한다. -> 이렇게 상태 정보를 저장할 필요가 있을 때 쿠키와 세션 사용 비연결성 : 한 번의 요청과 응답이 오간 후에 맺었던 연결을 끊어버림무상태성: 통신이 끝나면 상태 정보를 기억하지 않음 📍 쿠키(Cookie): 클라이언트 PC에 저장되는 작은 기록 정보 파일 [특징]Key-Value 쌍으로 구성이름, 값, 만료일, 경로 정보로 구성도메인 당 20개의 쿠키를 가질 수 있음하나의 쿠키는 4KB까지 저장 가능 [작동 방식]클라이언트가 서버에 HTTP 요청을 보냄서버는 요청을 처리한 후, 응..
[스프링] JPA N+1 문제 트러블 슈팅
·
🎯 Programming
실제 프로젝트를 진행하면서 만났던 N+1 문제를 해결하는 과정을 중심으로 작성해 보았습니다.✅ N+1 문제란?: 요청이 1개의 쿼리로 처리되길 기대했는데 추가로 N개의 쿼리가 발생하는 현상 개념은 정말 간단합니다.N개의 데이터를 한 번에 조회하는 쿼리 1개를 날렸는데, 추가적으로 N개의 쿼리가 더 발생하는 현상입니다.(사실 흐름상 1+N 문제라고 하는 것이 더 적절합니다) 이제 실제 프로젝트 상황을 중심으로 `N+1` 문제가 언제, 어떤 상황에서 발생하는지 알아보겠습니다. ✅ 프로젝트 상황📍 ERD"프로젝트 팀원을 모집하는 기능"을 구현하기 위해 아래와 같이 `ERD`를 설계했습니다. 팀원 모집 게시물에는 선호하는 성격, 모집하는 분야, 모집하는 언어를 여러 개 설정할 수 있습니다.따라서 각각 1:N의..
[네트워크] DNS(Domain Name System Servers)
·
⚙️ CS
✅ DNS(Domain Name System Servers)란?: 도메인 이름을 IP 주소로 변환하거나 그 반대의 역할을 해주는 시스템 사용자가 웹사이트에 접근할 때, 기억하기 쉬운 도메인 이름(예: http://www.google.com)을 입력하면 DNS가 이 이름을 해당하는 IP 주소로 변환하여 웹사이트에 연결할 수 있도록 도와준다. DNS는 인터넷의 전화번호부와 같은 역할을 한다. 도메인 이름(Domain Name): 네트워크 상에서 컴퓨터를 식별하는 이름으로, IP 주소에 대응된다. DNS 질의는 주로 UDP(User Datagram Protocol)를 사용한다.속도: UDP는 연결을 설정하지 않고 데이터를 전송하기 때문에 더 빠르다.간단한 요청: DNS 질의는 일반적으로 짧고 간단한 요청이므로..
[네트워크] HTTP/HTTPS 프로토콜
·
⚙️ CS
✅ HTTP란?: 애플리케이션 계층의 프로토콜로, 웹 서비스 통신에 사용된다이미지, 영상, json 등 형태의 데이터를 주고받는다.80 포트를 사용한다.✅ HTTP 진화 과정🏷 HTTP 1.0: HTTP 0.9를 확장버전 정보가 각 요청에 포함요청 메서드가 GET, HEAD, POST 세 가지로 확장상태 코드가 각 응답의 시작 부분에 포함되어, 브라우저가 해당 요청에 대한 성공, 실패 파악 가능해짐HTTP 헤더 개념이 등장Content-Type 도입으로 HTML 이외의 문서 전송 기능이 가능해짐🏷 HTTP 1.1: 표준화된 HTTPKeep-Alive: 한 번 수립한 연결을 재사용하게 설정Pipelining: 여러 개의 요청을 보낼 때 처음 용청이 응답될 때까지 기다리지 않고 바로 요청을 한꺼번에 보냄..
[네트워크] OSI 7계층 vs TCP/IP 모델
·
⚙️ CS
✅ OSI 7 계층 모델 vs. TCP/IP 모델OSI 모델이 표준과 학습도구로써의 의의가 있다면 TCP/IP 모델은 실무적인 통신 기술을 구현하는데 의미를 가진다 OSI 모델을 역할을 기반으로 각 계층을 구성하고, TCP/IP 모델을 프로토콜의 집합을 기반으로 구성된다.전체적인 통신전반에 대한 표준화 방식이 OSI 모델이라면 TCP/IP 모델은 데이터 전송에 특화되어있다.✅ OSI 7 계층ISO(국제 표준화 기구)에서 통신이 일어나는 과정을 7개의 계층으로 나누어 추상화한 모델입니다. 1️⃣ 물리 계층: 0과 1의 디지털 데이터를 아날로그 신호로 바꾸어 통신리피터, 케이블, 허브 등비트(bit) 단위 사용 2️⃣ 데이터 링크 계층(Data Link Layer): 같은 네트워크에 존재하는 호스트와 통신M..
[네트워크] 인터넷, 프로토콜, 데이터 전송 방식
·
⚙️ CS
✅ 컴퓨터 네트워크아래 네트워크 개념을 컴퓨터에 접목시키면, “그물처럼 서로 엮어서 일하는 컴퓨팅 디바이스 모음” 으로 해석 가능하다.즉, 더 길게 풀면 각 통신 장비들이 서로 연결되어 데이터를 교환하고 리소스를 공유하는 통신망이라고 할 수 있다. 가정에서 스마트폰, 노트북 등이 하나의 와이파이에 연결되는 것도 하나의 네트워크이고, 우리가 흔히 아는 인터넷도 네트워크이다. 🏷 네트워크Net와 Work의 합성어로, “그물처럼 서로 엮어서 일하는 것”이라고 해석할 수 있다. ✅ 인터넷의 구성 요소인터넷 = 전 세계적으로 수십억 개의 컴퓨팅 장치를 연결하는 컴퓨터 네트워크인터넷은 아래와 같은 요소들로 구성되어 있다. 🏷 호스트(host) = 종단 시스템(end system): 컴퓨터 네트워크에 연결된 컴퓨..
[ISSUE] error: connect econnrefused
·
🎯 Programming
🚨 문제 상황`GitHub Actions`를 이용해 `EC2`에 `Spring Boot` 서버를 성공적으로 배포했지만, `Postman`을 통해 API를 호출해 보니 다음과 같은 오류가 발생했습니다error: connect econnrefused ✅ 해결 과정1️⃣ 서버에 실행 중인 java 프로세스 확인~$ ps aux | grep javaubuntu 5166 0.0 0.2 7076 2048 pts/0 S+ 10:02 0:00 grep --color=auto java출력 결과에서 `grep --color=auto java`만 보인다면, 현재 Java 프로세스가 실행되고 있지 않다는 것을 의미합니다.  2️⃣ jar 파일 있는지 확인~$ lscicdtest.jar o..
[BOJ/백준] 2597 계단 오르기(JAVA)
·
💪 Algorithm
링크https://www.acmicpc.net/problem/2579 문제 요약각 계단에 쓰여 있는 점수가 주어질 때 이 게임에서 얻을 수 있는 총점수의 최댓값 구하기계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다.연속된 세 개의 계단을 모두 밟아서는 안 된다. 단, 시작점은 계단에 포함되지 않는다.마지막 도착 계단은 반드시 밟아야 한다. 제한첫째 줄에 계단의 개수 주어진다.300 이하의 자연수둘째 줄부터 한 줄에 하나씩 제일 아래에 놓인 계단부터 순서대로 각 계단에 쓰여 있는 점수가 주어진다.계단에 쓰여 있는 점수는 10,000 이하의 자연수풀이주어진 예제에 대해 최대 점수로 각 계단에 도착하는 방식은 아래와 같습니다.도착 계단1번2번3번4번5번6번경로11-22-31-2-41-2-4-51-2-..