전체 글 87

[CS] SSL과 TLS란?

1. SSL/TLS 개요SSL의 등장 배경 인터넷이 보편화되면서 웹 브라우저와 서버 간의 정보 교환이 증가하게 되었고, 이러한 통신의 보안 문제가 중요하게 대두되었습니다. 처음에는 모든 데이터가 평문(Plain Text)로 전송되었기 때문에 중간에서 누군가가 데이터를 가로채면 쉽게 읽을 수 있었습니다.이를 해결하기 위해 Netscape가 SSL을 개발하게 되었습니다. TLS로의 진화SSL 3.0 이후에 발생한 여러 가지 취약점으로 인해 SSL 프로토콜의 한계가 드러나기 시작했습니다. 이를 해결하기 위해 SSL의 후속 버전인 TLS가 등장했습니다. TLS는 SSL의 개선된 버전으로, 더 강력한 보안 기능과 다양한 개선사항을 포함하고 있습니다. 2. SSL/TLS의 필요성데이터 보안 : SSL/TLS는 데이..

Computer Science 2024.08.22

JAVA | JVM(Java Virtual Machine)이란? JVM의 작동원리

JVM이란 무엇인가?JVM은 Java 애플리케이션을 실행하기 위한 가상 기계입니다. 직역하면 '자바를 실행하기 위한 가상 컴퓨터'라고 할 수 있습니다.이 가상 컴퓨터는 Java 프로그램이 운영체제(OS)와 독립적으로 실행될 수 있도록 도와줍니다. Java의 플랫폼 독립성과 JVMJava의 가장 큰 특징 중 하나는 OS에 종속되지 않는다는 점입니다. 이는 Java 프로그램이 다양한 운영체제에서 동일하게 동작할 수 있다는 의미입니다. 하지만, 이를 실현하기 위해서는 운영체제와 Java 프로그램 사이에서 중개 역할을 하는 무언가가 필요합니다. 이 역할을 수행하는 것이 바로 JVM입니다.  JVM은 CPU가 JAVA 프로그램을 인식하고 실행할 수 있도록 하는 가상 컴퓨터입니다. 실제 컴퓨터처럼 Java 애플리케..

Java 2024.08.21

[CS(OS)] Heap과 Stack메모리에 대하여

Stack과 Heap은 컴퓨터 프로그램이 실행될 때 메모리를 관리하는 두 가지 주요 메모리 영역입니다. Stack 메모리Stack은 함수 호출, 지역 변수, 매개변수, 그리고 함수의 반환 주소 등을 저장하는 데 사용되는 메모리 영역입니다. 이 영역은 고정된 크기로 할당되며, 함수 호출이 일어날 때마다 새로운 메모리 블록(스택 프레임)이 생성됩니다. 스택의 작동원리와 특징LIFO(Last In, First Out)Stack은 후입선출 방식으로 동작합니다. 마지막에 들어간 데이터가 가장 먼저 나옵니다. 함수가 호출되면 해당 함수의 매개변수, 지역 변수, 반환 주소 등이 스택에 푸시(push)되고, 함수가 종료되면 이 정보들이 팝(pop)되며 스택에서 제거됩니다. 스택 프레임각 함수 호출은 스택에 스택 프레임..

Computer Science 2024.08.16

CS | 메모리(Memory) 관리의 중요성

메모리 관리의 중요성 메모리 관리는 소프트웨어 개발과 시스템 운영에서 매우 중요한 역할을 합니다.  1. 프로그램의 안정성과 성능 향상안정성올바른 메모리 관리 없이는 프로그램이 불안정해지기 쉽습니다.메모리 누수(memory leak)가 발생하면, 사용하지 않는 메모리가 해제되지 않아 프로그램이 점점 더 많은 메모리를 차지하게 됩니다. 이는 결국 시스템 리소스 부족으로 이어져 프로그램이 비정상적으로 종료되거나, 전체 시스템의 성능에 악영향을 미칠 수 있습니다. 성능효율적인 메모리 관리는 프로그램의 성능을 크게 향상시킵니다. 메모리를 불필요하게 많이 사용하면, 캐시 미스(cache miss)와 같은 현상이 증가하여 프로그램이 느려질 수 있습니다. 반대로, 메모리를 효율적으로 사용하면 데이터 접근 속도가 빨라..

개발지식공간 2024.08.16

Network | TCP/IP 통신이란?

TCP/IP(Transmission Control Protocol / Internet Protocol)란 무엇인가? TCP/IP는 오늘날 인터넷과 거의 모든 네트워크 통신의 기반을 이루는 핵심 프로토콜 스택입니다. TCP/IP는 두 가지 주요 프로토콜인 '전송 제어 프로토콜(TCP)과 인터넷 프로토콜(IP)로 구성되어 있으며,이를 통해 컴퓨터 간의 데이터 전송이 가능합니다. 이 시스템은 하드웨어나 운영체제와 관계 없이 서로 다른 네트워크 기기들이 원활하게 통신할 수 있도록 해줍니다.  TCP/IP의 기본 개념 프로토콜이란?프로토콜은 컴퓨터들이 서로 통신하기 위해 따르는 규칙과 절차의 집합입니다. TCP/IP는 이러한 규칙들을 정의하여, 데이터를 전송하고 수신하는 과정에서 발생할 수 있는 문제들을 해결합니..

Network 2024.08.13

Network | TCP 세션의 SYN, ACK 패킷 추적 → 소켓, HTTP통신

오늘은 TCP 세션의 SYN, ACK 패킷 추적에 대하여 알아보겠습니다. TCP 세션과 SYN, ACK 패킷? TCP(Transmission Control Protocol)은 인터넷에서 데이터를 신뢰성 있게 전송하기 위한 프로토콜로, 세션 설정과 해제 과정에서 사용되는 SYN과 ACK 패킷이 중요합니다 . SYN 패킷은 세션을 초기화하고 연결을 요청하는 데 사용되며, ACK 패킷은 상대방의 패킷을 확인하는 데 필요합니다.  SYN(Synchronize)SYN은 TCP 연결 설정 과정에서 사용되는 패킷입니다. 클라이언트가 서버에 연결 요청을 보낼 때 사용합니다. 동작 1. 클라이언트가 서버에 TCP 연결을 요청하며 SYN 패킷을 보냅니다. 2. 서버는 이 요청을 수신하고, SYN과 함께 ACK 패킷을 보냅..

Network 2024.08.06

Network | Domain, DNS서버란?

도메인(Domain) 이란?도메인은 인터넷 상에서 웹사이트나 서버를 식별하기 위해 사용하는 주소입니다. 예를 들어, "example.com"은 하나의 도메인입니다.실제로는 IP 주소가 웹 사이트를 식별하지만, 도메인은 IP 주소를 가르켜 기억하기 쉽게 변환해주는 역할을 합니다.도메인 구조 최상위 도메인 (Top-Level Domain, TLD) 도메인의 가장 마지막 부분으로, "com", "org", "net", "kr" 등이 해당됩니다. 두번째 수준 도메인 (Second-Level Domain) TLD 바로 앞에 위치하며, "example" 과 같은 부분입니다. 서브 도메인 (Subdomain)도메인 이름 앞에 추가적으로 붙는 부분으로, "blog"나 "shop" 등이 서브 도메인으로 사용될 수 있습니..

Network 2024.08.06

Network | 서브넷(Subnet)이란?

오늘도 팀장님께서 공부해보면 좋겠다는 내용을 가지고 블로그를 작성해보려 합니다 :) 서브넷팅(Subnetting)은 네트워크 관리를 효율적으로 하기 위해 IP 주소를 여러 작은 네트워크로 나누는 과정입니다.  서브넷(Subnet) 이란?서브넷은 하나의 IP Network를 더 작은 여러 네트워크로 나눈 것 입니다. 이를 통해 네트워크 관리가 용이해지고, 보안과 효율성이 향상됩니다. 서브넷팅은 IP 주소와 서브넷 마스크를 사용하여 이루어집니다.  서브넷의 목적1. 네트워크 트래픽 감소 큰 네트워크를 작은 서브넷으로 나누면 각 서브넷 내부의 트래픽이 줄어들어 전체 네트워크의 트래픽을 줄일 수 있습니다. 2. 보안 향상 서로 다른 서브넷은 분리된 네트워크로 동작하기 때문에, 네트워크 간의 접근을 제어하여 보안..

Network 2024.07.31

Python CT | 기초문법 및 자료구조 모음 (파이썬 코딩테스트 문법 모음)

대부분 밑의 출처를 보며 작성한 글입니다 :)계속해서 업데이트 될 예정입니다 :) 출처 - 코딩테스트 [All In One] 강의  (개발남노씨)기초문법변수 및 자료형변수 할당 : variable_name = value 자료형 : int, float, str, list, tuple, dict, set(집합) 조건문if 조건: 코드블록elif 조건: 코드블록else: 코드블록반복문for 요소 in iterable: 코드블록while 조건: 코드블록함수 정의 def 함수이름(매개변수): 코드블록 [return 반환값] # []는 생략가능리스트 조작리스트 생성: list_name = [요소1, 요소2, ...]요소 추가 : list_name.append(요소)요소 삭제: del list_..

Coding Test 2024.07.12

PostgreSQL | 데이터 표준화 및 정규화 작업함수 - normalize

이번에 검색기능 및 하이라이트를 작업하면서 알게된 함수입니다 :) 파일 다운로드를 하고, 이미지의 이름을 가져올 때 한국어가 표준화가 안되어 검색이 안되는 현상이 있었는데,PostgreSQL 'normalize' 함수를 사용하여 해결하였습니다 :)데이터베이스 설계에서의 정규화데이터베이스 설계에서 정규화(normalization)란 데이터베이스 테이블을 설계할 때 중복을 최소화하고 데이터 무결성을 유지하기 위한 과정을 말합니다. 주로 관계형 데이터베이스에서 사용되며, 일반적으로 다음과 같은 정규화 단계가 있습니다.  제 1정규화(1NF) 모든 컬럼 값이 원자적(atomic)이어야 합니다. 즉, 각 셀에는 하나의 값을 가지며, 다중 값 속성이 없어야 합니다.  제 2정규화(2NF)부분 함수 종속을 제거하여 ..

Database 2024.07.12