Cute Running Puppy
본문 바로가기
728x90

개발일기89

TCP와 UDP TCP(Transmission Control Protocol) TCP는 신뢰성 있는 데이터 전송을 지원하는 연결 지향형 프로토콜입니다. 일반적으로 TCP와 IP가 함께 사용되는데, IP가 데이터의 전송을 처리한다면 TCP는 패킷 추적 및 관리를 하게 됩니다. 연결 지향형인 TCP는 3-way handshaking이라는 과정을 통해 연결 후 통신을 시작하는데, 흐름 제어와 혼잡 제어를 지원하며 데이터의 순서를 보장합니다. 흐름 제어: 보내는 측과 받는 측의 데이터 처리속도 차이를 조절해주는 것 혼잡 제어: 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지하는 것 특징 연결형 서비스로 가상 회선 방식을 제공 데이터의 전송 순서 보장 데이터의 경계를 구분하지 않음 신뢰성 있는 데이터 전송 UDP보다 전송속.. 2023. 6. 7.
트랜잭션 트랜잭션은 데이터베이스 시스템에서 수행되는 단일 작업 또는 논리적인 작업 단위를 말합니다. 일련의 관련된 작업들을 하나로 묶어서 한꺼번에 처리하는 것으로, 데이터베이스에서 데이터의 일관성과 무결성을 보장하기 위해 사용됩니다. 원자성(Atomicity) 트랜잭션의 모든 작업은 전체적으로 완료되거나 전혀 완료되지 않아야 합니다. 작업 중 하나라도 실패하면 이전 상태로 롤백되어야 합니다. 일관성(Consistency) 트랜잭션이 실행되기 전과 후에 데이터베이스는 일관된 상태를 유지해야 합니다. 즉, 트랜잭션이 데이터베이스의 무결성 규칙을 준수해야 합니다. 격리성(Isolation) 동시에 여러 트랜잭션이 실행될 때 각 트랜잭션은 서로 영향을 주지 않고, 한 트랜잭션의 작업이 완료되기 전에는 다른 트랜잭션에서 .. 2023. 6. 7.
List, Set, Map 차이점 List 순서가 있는 데이터의 집합 중복된 값의 저장이 가능 인덱스를 사용하여 각 요소에 접근할 수 있음 ArrayList 배열을 사용하여 데이터를 저장 데이터를 인덱스로 직접 접근할 수 있어 get(int index) 연산이 매우 빠름, O(1)의 시간 복잡도를 가짐 단점은 데이터의 삽입 또는 삭제가 발생하면 해당 인덱스 이후의 모든 요소를 이동시켜야 하기 때문에 시간이 더 많이 소요됨 최악의 경우 O(N)의 시간 복잡도를 가질 수 있음 LinkedList 노드(Node)들이 서로 연결된 구조로 데이터를 저장 각 노드는 현재 요소의 값과 다음 요소를 가리키는 포인터를 가지고 있음 데이터를 검색할 때는 처음부터 마지막 노드까지 하나씩 탐색, 최악의 경우에는 모든 요소를 탐색해야함, O(N)의 시간 복잡도.. 2023. 6. 2.
영속성 컨텍스트란 영속성 컨텍스트란? JPA(Java Persistence API)에서 영속성 컨텍스트(Persistence Context)는 엔티티(Entity) 객체를 영구 저장하는 환경으로, 애플리케이션과 데이터베이스 사이에서 객체를 보관하는 가상의 데이터베이스 같은 역할을 한다. 영속성 컨텍스트는 JPA에서 엔티티의 생명주기를 관리하고, 데이터베이스와의 효율적인 통신을 지원하여 개발자가 더욱 편리하게 데이터를 다룰 수 있게 한다. 엔티티의 생명주기 비영속(new/transient): 영속성 컨텍스트와 전혀 관계가 없는 상태 영속(managed): 영속성 컨텍스트에 저장된 상태 준영속(detached): 영속성 컨텍스트에 저장되었다가 분리된 상태 → 영속성 컨텍스트와의 관계가 끊겨서 데이터베이스에 대한 변경사항을 자.. 2023. 6. 1.
728x90