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
no image
Cloud Computing
Cloud Computing 인터넷을 통해 데이터를 저장, 관리, 처리하는 컴퓨팅 리소스의 제공과 이용을 의미합니다. 전통적인 방식으로는 개인이나 기업이 자체적으로 서버나 데이터 센터를 구축하고 유지하는 반면, 클라우드 컴퓨팅은 이러한 인프라를 제공하는 서비스 제공 업체가 있어 사용자들은 인터넷을 통해 필요한 컴퓨팅 리소스를 렌탈하여 사용할 수 있습니다. 이것은 서버, 저장소, 데이터베이스, 네트워크, 소프트웨어, 분석 등 다양한 IT 리소스를 온디맨드로 제공하고 유연하게 확장 및 축소할 수 있는 기능을 제공하빈다. 사용자는 필요한 만큼의 리소스를 구독형태로 이용하며, 서비스 제공자는 해당 리소스를 효율적으로 관리하고 유지보수 합니다. 이러한 클라우드 서비스는 비교적 낮은 비용으로 시작할 수 있고, 유연..
2024.01.03
AWS
no image
JPA를 이용한 복합키(Composite Key) 매핑
@EmbeddedId와 @IdClass @EmbeddedId JPA에서 복합키를 가진 엔티티 클래스의 복합 키를 매핑하는 데 사용합니다. 이 어노테이션은 복합 키를 하나의 임베디드 클래스로 정의할 때 사용됩니다. 복합키란 단일 필드가 아닌 둘 이상의 필드를 결합하여 엔티티의 기본 키로 사용하는 경우를 말합니다. 이때 @EmbeddedId를 통해 해당 복합 키를 하나의 클래스로 정의하고 해당 클래스를 엔티티 클래스에 포함하여 사용합니다. @Getter @Setter @Builder @NoArgsConstructor(access = AccessLevel.PROTECTED) @AllArgsConstructor(access = AccessLevel.PROTECTED) @Entity @Table(name = "u..
2024.01.02
no image
FetchType.Lazy Error
FetchType.Lazy Error org.springframework.http.converter.HttpMessageConversionExcepti on: Type definition error: [simple type, class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor]] with root cause 에러 발생.... 원인 클래스의 FetchType을 Lazy로 설정하면, 해당 엔티티의 연관된 객체들은 필요할 때까지 로딩 되지 않고 프록시 객체로 대체됩니다. 이 프록시 객체는 실제 객체를 감싸고 있으며, 필요한 시점에 데이터베이스에서 정보를 가져와 초기화됩니다. 하지만 이러한 Lazy로딩은 객체를 직렬화할 때 문제를 일으킬 수 있습니다. ..
2023.12.29