no image
Web Socket
Web Socket 웹 기술에서 실시간 양방향 통신을 가능케 하는 프로토콜 중 하나입니다. 초기에 웹에서 주로 폴링이나 롱 폴링 같은 방식을 통해 실시간 통신을 시도했으나 이러한 방식들은 효율성이나 성능 면에서 한계가 있습니다. 웹 소켓은 이러한 한계를 극복하기 위해 설계되었습니다. 기존의 HTTP 프로토콜은 클라이언트가 서버에게 요청을 보내고, 서버가 응답을 보내는 단방향 통신이었습니다. 반면에 웹 소켓은 클라이언트와 서버 간에 양방향 통신이 가능하도록 하면, 이를 위해 TCP 접속을 유지하게 됩니다. 또한 웹소켓은 실시간 채팅 어플리케이션, 소셜 네트워크 서비스, 협업 도구, 멀티플레이 게임, 화상 회의 등 다양한 분야에서 사용되고 있습니다. 웹 소켓 동작 방식 1. 포트 및 프로토콜 선택 웹 소켓은..
2024.01.22
no image
net::ERR_ABORTED 404
net::ERR_ABORTED 404 import 하는 과정속에서 문제가 발생했습니다. 파일 구조도 다 맞는데 이해할 수 없었다... 이것만 빨리 해결했어도 코드 두 줄은 더 쳤을텐데.... 이 에러가 발생한 이유 1. 올바르지 않은 URL 2. 파일이 잘못되었거나 삭제 되었을 경우 3. 잘못된 파일 경로 4. 권한문제 5. 서버 구성 여러가지 이유가 있는데 나는 Thymleaf를 사용하고 있기 때문에 파일 경로가 아닌 HTML 템플릿을 이용하여 동적으로 웹 페이지를 생성하는데 사용되기 때문에 아래 그림 처럼 사용해야합니다. 이렇게 하면 브라우저가 해당 js 파일을 로드할 수 있게 됩니다. Thymeleaf는 서버 측에서 동적으로 페이지를 렌더링 하는데 사용되며 이렇게 자원을 처리하여 동적으로 페이지를 ..
2024.01.17
no image
Servlet.service() for servlet Error
Servlet.service() for servlet 500 Error? 이 Error가 왜... 뜨는지 이해할 수 없었다. 이것도... 또한 삽질을.. 하게 되었다. 찾아보니 Setting에서 gradle 설정이 intellij로 사용하고 있었다. intellij가 gradle 서버를 거치지 않고 Intellij 에서 바로 실행해서 빠르 속도로 Run 할 수 있어서 사용하고 있었는데 이것이 문제였다. 이걸 Gradle로 사용하면 에러 없이 잘 작동했다. Gradle 그래들은 오픈 소스 빌드 자동화 도구로, Groovy나 Kotlin 기반의 DSL을 사용하여 빌드 스크립트를 작성합니다. 이를 통해 구조, 종속성, 테스트, 배포 등을 정의할 수 있습니다. Gradle은 Maven과 유사하게 의존성 관리를 ..
2024.01.14
no image
Session
Session 초기 웹 개발에서 사용자 상태를 유지하기 위해 도입된 기술 중 하나입니다. 초기에는 웹은 단순한 정적 문서를 전달하는 데에 그쳤기 때문에 사용자의 상태를 관리하는 문제는 크지 않았습니다. 하지만 동적이고 상호작용이 많은 웹 애플리케이션이 발전하면서 사용자의 로그인 상태, 장바구니 내역, 등의 정보를 서버에 유지하고 관리해야 하는 필요성이 생겼습니다. 처음에는 쿠키를 사용하여 사용자의 상태를 관리하는 방식을 사용했지만 쿠키는 클라이언트에서 조작이 가능하고 보안상의 문제도 있었습니다. 이후 세션이 도입되면서 서버 측에서 사용자의 상태를 안전하게 관리하는 방식으로 발전했습니다. 세션은 사용자에 대한 정보를 서버 측에 저장하고 클라이언트에는 세션 식별자만을 부여하며 클라이언트는 이 식별자를 사용하..
2024.01.13
no image
Cookie
Cookie 쿠키란 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각입니다. 브라우저가 데이터 조각들을 저장해 놓았다가 동일한 서버에 요청 시 저장된 데이터를 함께 전송합니다. 쿠키는 두 요청이 동일한 브라우저에 들어왔는지 들어오지를 않았는지 판단할 때 주로 사용합니다. 쿠키를 사용하면 사용자의 로그인 상태를 유지할 수 있습니다. 쿠키 사용 세 가지 목적 세션 관리 쿠키는 세션 관리에 주로 사용됩니다. 사용자가 웹사이트에 로그인하면 서버는 사용자에게 고유한 세션 식별자를 할당하고 이를 쿠키에 저장합니다. 브라우저는 쿠키를 저장하고, 사용자가 다른 페이지로 이동하거나 새로고침할 때마다. 이 쿠키를 함께 서버에 전송합니다. 서버는 이를 통해 사용자를 식별하고 로그인 상태를 유지할 수 있습니다. 개인화..
2024.01.11
no image
Primary Key & Foreign Key
Primary Key(기본 키) 관계형 데이터베이스에서 특정 레코드를 고유하게 식별하고 데이터의 무결성을 유지하는데 사용되는 필드입니다. 후보키 중 하나를 기본 키로 선택함으로써 데이터베이스에서 레코드를 식별하고 관계를 설정할 수 있습니다. 기본키의 속성은 반드시 고유한 값을 가져야 합니다. 테이블당 하나만 만들 수 있으며, Null값을 가질 수 없습니다. 또한 속성 값이 변경될 가능성이 높은 경우 기본 키로 선택하는 것은 권장되지 않습니다. 가능하다면 작은 정수 값이나 짧은 문자열과 같이 빠르게 검색할 수 있는 속성을 기본 키로 선택하는 것이 좋습니다. 복합 기본키는 피하는 것이 좋고, 기본 키가 없는 테이블은 규칙에 어긋나지만 모든 테이블에 기본 키를 두는 것이 권장됩니다. 기본 키가 없는 테이블은 ..
2024.01.10
no image
NoSQL과 RDBS
NoSQL 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장소를 지칭합니다. NoSQL 데이터베이스는 다양한 형태로 데이터를 저장할 수 있는데, 이는 테이블 형태가 아닌 key-value store, document store, wide-column store, graph database 등으로 구성될 수 있습니다. NoSQL은 유연성과 확장성을 강조하는데, 대량의 분산 데이터를 다루거나 스케일링이 필요한 경우에 유용합니다. NoSQL은 특정 형식의 데이터베이스나 스키마가 자주 변경되는 경우에 유용할 수 있습니다. NoSQL 데이터베이스 MongoDB, Cassandra, Redis, Couchbase 등 NoSQL 장단점 장점 수평적 확장성 대부분 NoSQL 시스템은 수평적으로 확장이 가능합니다. 클..
2024.01.09
no image
패킷
패킷 컴퓨터 네트워크에서 데이터를 전송하는 작은 단위를 가리킵니다. 이 작은 조각은 송신된 데이터를 나타내며, 전송 중에는 송신자에서 수신자로 이동하면서 네트워크를 통해 전달됩니다. 패킷에는 송신자 및 수신자의 주소, 데이터의 일부 및 제어 정보 등이 포함도리 수 있습니다. 이러한 패킷들이 네트워크를 통해 이동함으로써 데이터가 안정적으로 전송되고, 정보가 정확하게 도달할 수 있도록 도와줍니다. 서킷 스위칭 통신에서 사용되는 전송 방식 중 하나로, 통신할 때 일정한 회선을 전체 통신 동안 할당하여 데이터를 주고받는 방식입니다. 이 방식은 통신을 위한 전용 경로를 설정하고, 데이터가 이 경로를 따라 전송되므로 데이터가 도착하는 순서가 보장되고 실시간 통신에 유리합니다. 서킷 스위칭은 전환 통화와 같은 연결 ..
2024.01.05
AWS
no image
기수 정렬
기수 정렬 비교를 통해 정렬하는 대부분의 알고리즘과는 다르게 숫자를 자릿수 별로 비교하며 정렬하는 비교하며 정렬하는 비교 정렬이 아닌 정렬 알고리즘 입니다. 이 알고리즘은 각 숫자의 자릿수를 기준으로 정렬하며, 작은 단게부터 시작하여 큰 단계까지 반복적으로 수행합니다. 또한 일반적으로 가장 낮은 자리수부터 시작하여 가장 높은 자리수까지 정렬합니다. 각 자릿수를 기준으로 숫자를 정렬하는 과정에서 카운팅 정렬이 사용될 수 있습니다. 각 숫자의 1의 자리를 기준으로 정렬하고 10의 자리를 기준으로 추가적으로 정렬합니다. 이 때 10의 자리 숫자가 같을 때는 1의 자리 숫자가 작은 순서로 배치합니다. 중복된 숫자가 있다면, 정렬된 후에도 중복된 순서가 입력 순서와 같다면 안정적이다. 또한 안정적인 정렬 알고리즘..
2024.01.04