웹 개발에서 세션과 쿠키는 사용자 데이터를 관리하고 유지하는 데 중요한 매우 역할을 한다. 세션은 서버 측에서 상태를 관리하는 방법이며, 쿠키는 클라이언트 측에 저장되는 작은 데이터 조각이며 이 두 기술은 사용자 경험을 향상시키는 데 핵심적인 역할을 한다. 세션❓ 세션은 웹 서버에서 생성되고 관리되며, 각 클라이언트와 서버 간의 상태를 유지하고 사용자가 웹 페이지에 접속하면 서버는 사용자별로 고유한 세션을 생성하고 세션 ID를 부여한다. 이 세션 ID는 사용자를 구별하고 해당 사용자에 대한 데이터를 저장하는 데 사용된다. 쿠키❓ 쿠키는 클라이언트 측에 작은 텍스트 파일로 저장되며 웹 페이지를 방문할 때 서버에서 클라이언트에게 쿠키를 전송하고, 클라이언트는 이를 저장하여 나중에 사용하하게 되는데 이를 통해..
VPN 란? 가장 기본적으로, VPN은 인터넷 연결을 통해 데이터를 안전하게 전송하는 기술이고 이는 개인 정보 보호와 온라인 보안을 강화하며, 원격 지역에서 로컬 네트워크에 접속한 것처럼 느낄 수 있도록 한다. VPN은 여러 인트라넷과 개별 클라이언트를 인터넷을 통해 연결하는 사설 통신망이다. 공공기관이나 사기업 등의 단체에서 내부인들만 쓸 수 있는 특수목적의 인트라넷을 구축할 때는 보통 해당되는 컴퓨터만 전용선으로 연결해서 제3자가 함부로 접근하지 못하게 만든다. 그러나 회선이 없는 지역에서는 망 자체에 접근이 불가능해진다. 또한 전국, 해외 단위로 회사가 커지면 커질수록 전용선 구축 비용이 천문학적으로 늘어난다. 따라서 확장성이 뛰어난 인터넷을 인트라넷처럼 사용할 수 있게 해주는 기술이 개발되었다. ..
ctypes 이란? ctypes는 외부 C 라이브러리 함수를 Python에서 호출할 수 있도록 도와주는 모듈이다. C 데이터 타입을 Python 데이터 타입과 호환시켜주며, 다양한 플랫폼에서 동작하는데 사용된다. 이는 Python과 C 사이의 상호 운용성을 제공하여 Python에서 C의 강력한 기능을 활용할 수 있게 한다. ctypes는 C 라이브러리 함수의 함수 원형을 정의하고 호출할 수 있는 기능을 제공하며 C 함수의 매개변수와 반환값은 C 데이터 타입을 사용하며, ctypes를 통해 Python 데이터 타입으로 변환된다. 이렇게 변환된 데이터는 C 함수에 전달되어 C 라이브러리와 상호 작용할 수 있게 된다. ctypes 데이터 타입: ctypes는 C 데이터 타입을 Python 데이터 타입과 연결하..
라이브러리는 무엇일까❓ 라이브러리는 소프트웨어 개발에서 재사용 가능한 코드의 모음을 뜻한다. 이 코드 모음은 함수, 클래스, 변수, 문서 등으로 구성되며, 프로그램 개발자들이 일반적으로 자주 사용하는 작업을 단순화하고 효율적으로 구현할 수 있도록 도와준다. 라이브러리의 목적 코드 재사용: 비슷한 기능을 구현하는 작업을 반복하지 않고, 이미 개발된 코드를 활용하여 개발 속도를 향상시킨다. 표준화: 특정한 작업을 처리하기 위한 표준화된 인터페이스와 구현을 제공하여 개발자들이 일관된 방식으로 작업할 수 있도록 한다. 성능 향상: 라이브러리는 최적화된 코드를 포함하고 있을 수 있으며, 개발자는 이를 활용하여 성능을 향상시킬 수 있다. 오류 감소: 이미 검증된 라이브러리를 사용하면 오류와 버그를 줄일 수 있다. ..
signature 미확인 JWT는 헤더(Header), 페이로드(Payload), 서명(Signature) 세 부분으로 구성되며, 토큰의 무결성과 인증을 보장한다. 헤더와 페이로드는 JSON 형태로 인코딩되어 Base64로 표현되며, 서명은 토큰의 변조 여부를 확인하는 역할을 한다. Signature 미확인 취약점에서는 서명을 확인하지 않아 변조된 토큰이 무조건 신뢰되는 문제가 발생할 수 있다. 일반적인 JWT 토큰은 헤더와 페이로드를 생성한 후, 비밀 키를 사용하여 서명을 생성한다. 서명은 토큰의 헤더와 페이로드, 알고리즘 정보를 조합하여 생성된다. 토큰 수신자는 헤더와 페이로드를 디코딩하고, 동일한 알고리즘과 비밀 키를 사용하여 서명을 검증한다. 헤더 인코딩: 헤더의 내용을 Base64로 인코딩하여 ..
jwt의 등장 JWT(토큰)은 JSON Web Token의 약어로, 정보 교환을 위한 인코딩된 텍스트 문자열이다. 주로 인증 및 클레임(claim) 데이터를 포함하여 서버 간에 안전하게 전달된다. JWT는 세 부분으로 구성되어 있다: 헤더(Header), 페이로드(Payload), 서명(Signature). 헤더(Header): 토큰의 유형 및 해싱 알고리즘 정보를 담고 있다. 페이로드(Payload): 클레임(claim)으로 불리는 정보들을 포함하며, 등록된(registered), 공개(public), 비공개(private) 클레임으로 나뉜다. 서명(Signature): 헤더, 페이로드, 비밀 키를 조합하여 생성되며, 토큰의 변조 여부를 확인합니다. 클레임(claim): 토큰에 포함되는 정보로, 서버와..
페일 오버(Failover)는 시스템, 네트워크, 서비스 등에서 장애가 발생했을 때 이를 감지하고, 자동적으로 다른 백업 시스템이나 리소스로 전환하여 서비스 중단을 최소화하는 프로세스를 의미한다. 이는 고가용성을 제공하고 중요한 시스템이나 서비스의 지속적인 가용성을 보장하는데 사용되는 방법 중 하나이다. 페일 오버의 목적은 다음과 같다. 가용성 보장: 시스템 또는 서비스의 장애로 인해 중단된 상태를 최소화하여 사용자들에게 끊김 없는 서비스를 제공한다. 복원 시간 최소화: 페일 오버는 자동적으로 백업 시스템이나 리소스로 전환하므로 수동적인 개입 없이도 빠른 복구를 가능하게 한다. 지속적인 업무 수행: 중요한 업무를 수행하는 동안 장애로 인한 중단이 발생할 경우, 페일 오버는 중단 없이 업무를 계속할 수 있..
현대 사회에서 디지털화와 정보 기술의 중요성이 더욱 커지는 환경에서 기업, 조직 및 개인 모두에게 수많은 이점을 제공하는 IT 인프라는 무엇일까? 인프라는 한국어로 번역하면 '기반'이란 뜻으로, 토대 혹은 지탱하는 것의 의미이다. 그러면 IT 인프라 아키텍처는 무엇일까? 일단 아키텍처는 한국어로하면 '구조'라는 의미이고 IT 인프라 아키텍처는 IT 를 지탱하는 기반의 구조라는 뜻으로 해석할 수 있다. IT 인프라의 기본적인 구성 방식에는 '집약형'과 '분할형'으로 나뉜다. 집약형 집약형은 대형 컴퓨터를 이용해서 모든 업무들 처리하는 형태가 대부분이었으며 하나의 컴퓨터로 해결하기 때문에 '집약형'이라고 불린다. 한 대의 컴퓨터는 다중화가 되어있어 고장이 나더라도 업무를 계속할 수 있다. 집약형의 장점으로는..
리졸버 리졸버(Resolver)는 네트워크 환경에서 사용자가 입력한 도메인 이름을 실제 IP 주소로 변환해주는 중요한 역할을 수행한다. 이는 인터넷에서 특정 웹사이트나 서비스를 찾을 때 필요한 핵심 기능으로, 사용자가 의미있는 도메인 이름을 이해하기 쉬운 방식으로 입력하면, 리졸버가 해당 도메인의 IP 주소를 찾아주어 실제 통신이 가능하게 해준다. 순서 사용자 요청: 사용자가 웹 브라우저나 다른 애플리케이션에서 도메인 이름을 입력하면, 해당 요청이 컴퓨터 내부의 리졸버로 전달된다. 로컬 캐시 검색: 리졸버는 이전에 해석한 도메인 이름과 IP 주소의 쌍을 로컬 캐시에 저장해두었다면, 캐시에서 해당 정보를 검색하여 빠르게 반환할 수 있다. 루트 쿼리: 만약 캐시에 정보가 없다면, 리졸버는 루트 DNS 서버에..
프로토콜 프로토콜은 컴퓨터 네트워크에서 통신하기 위한 규칙과 규약의 집합을 말하며 이 규약들은 데이터의 전송 방법, 포맷, 에러 처리 등을 포함하여 네트워크 상에서 서로 다른 시스템 간에 원활한 데이터 교환을 가능하게 한다. 프로토콜은 효율적이고 안정적인 통신을 위해 필수적이다. 프로토콜은 수신자와 송신자 간의 약속된 형식에 따라 데이터를 주고받으며 형식은 헤더(header)와 페이로드(payload)로 구성된다. 헤더에는 데이터의 속성과 전송에 필요한 메타데이터가 들어있으며, 페이로드에는 실제 전송되는 데이터가 포함된다. 프로토콜은 이러한 형식을 따르기 때문에 호환 가능한 장치 간의 통신을 보장한다. 프로토콜은 여러 계층으로 나뉘어 진화해왔고 OSI 7계층이나 TCP/IP 4계층과 같은 모델은 각 계층..