전체 글(93)
-
05.15 TCP와 UDP의 공통점과 차이점
TCP와 UDP의 차이점 TCP와 UDP는 OSI 7 계층들 중 TCP/IP의 전송 계층에서 사용되는 프로토콜이다. ※ 전송 계층은 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층이다. 즉, 데이터의 전달을 담당하며 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당한다. TCP(Transmission Control Protocol) TCP는 연결 지향적 프로토콜이다. ※ 연결 지향적 프로토콜은 클라이언트와 서버가 연결된 상태에서 데이터를 주고받는 프로토콜을 의미한다. 장치들 사이에 논리적인 접속을 성립하기 위해 연결을 설정해 신뢰성을 보장하는 연결형 서비스이다. TCP는 네트워크에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟(데이터, 메시지, 세그먼트라는 블록 단위)을 안정적으..
2023.05.15 -
05.15 Transaction
데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다 트랜잭션의 특징 트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위이다. 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업단위이다. 하나의 트랜잭션은 Commit되거나 Rollback된다. 트랜잭션의 성질 Atomicity(원자성) 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다. 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 한다. Consistency(일관성) ..
2023.05.15 -
05.12 TIL (@SpringBootTest와 @WebMvcTest의 차이점)
@SpringBootTest는 애플리케이션의 전체 컨텍스트를 로드하는 테스트를 위해 사용되며, 애플리케이션의 모든 빈과 구성 요소를 로드하므로, 주로 통합 테스트에 사용된다. 실제 애플리케이션과 유사한 환경을 구성하며, 외부 의존성이나 설정과 관련된 테스트를 수행할 때 유용하며, 단위 테스트가 아니기 때문에 테스트의 실행 시간이 더 오래 걸릴 수 있다. @WebMvcTest는 웹 계층 컴포넌트인 컨트롤러(Controller)를 테스트하는데 사용되며, 애플리케이션의 일부만 로드하므로, 주로 컨트롤러와 관련된 단위 테스트에 사용된다. 웹 계층 관련 빈들만 로드하며, 서비스나 레포지토리와 같은 다른 빈들은 로드되지 않으며, HTTP 요청 및 응답을 시뮬레이션하여 컨트롤러 동작을 테스트하는데 특화되어 있다. 테..
2023.05.12 -
05.12 TIL (Rest Client)
Restful 웹 서비스에 HTTP요청을 보내고 응답을 받는 클라이언트 소프트웨어이다. REST(Representational State Transfer)는 웹 서비스를 위한 아키텍처 스타일로, 널리 사용되는 API 디자인 패턴 중 하나이다. RESTful 웹 서비스는 일반적으로 HTTP 프로토콜을 사용하여 클라이언트와 서버 간의 통신을 처리한다. REST Client는 HTTP 메서드 (GET, POST, PUT, DELETE 등)를 사용하여 서버에 요청을 보내고, 서버는 JSON, XML 또는 기타 형식의 데이터를 응답으로 보내준다. REST Client를 사용하면 개발자는 HTTP 요청을 쉽게 만들고 보낼 수 있으며, 응답을 받아서 처리할 수 있다. REST Client는 다양한 프로그래밍 언어와 ..
2023.05.12 -
05.11 TIL (항해99 4일차 과제)
스프링 컨테이너 스프링 프레임워크의 핵심 컨포넌트이다. 자바 객체의 생명 주기를 관리하며, 생성된 자바 객체들에게 추가적인 기능을 제공한다. 스프링에서는 자바 객체를 빈(Bean)이라 한다. 즉, 스프링 컨테이너는 내부에 존재하는 빈의 생명주기를 관리(빈의 생성, 관리, 제거 등)하며, 생성된 빈에게 추가적인 기능을 제공하는 것이다. List : 순서가 있으며, 데이터(값) 중복 허용 Set : 순서가 없으며, 데이터(값) 중복을 허용하지 않음 Map : Key&Value 구조, Key는 중복을 허용하지 않으며, Value(값)는 중복을 허용, 또한 Map은 Red-Black Tree 알고리즘을 이용하고 HashMap은 Hash Table을 이용해서 Key - Value 관계를 유지합니다. HashMap..
2023.05.11 -
제네릭
다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 파라미터를 결정되지 않은 타입으로 처리하고 실제 사용할 때 파라미터를 구체적인 타입으로 대체시키는 기능을 제네릭이라고 한다. 우리가 컬렉션 프레임워크를 쓸 때 봤던 ''안에 타입을 지정하는 것이 제네릭이다. ''안에는 모든 알파벳이 들어갈 수 있지만 의미 있는 문자를 사용하는 것이 좋다. 제네릭이란 타입을 일반화 하는 것을 의미하며 클래스 내부에서 정하는 것이 아닌 사용자 호출에 의해 타입이 지정되는 것을 의미한다. 즉, 정리하자면 특정 타입의 변수형에 지정되는 것이 아닌 필요에 의해 여러 가지를 타입을 사용하고 싶을 경우 사용한다. 그렇다면 왜 제네릭을 사용하는 지 알아보자 제네릭 타입은 여러 타입의 파라미터를 삽입해 객체를 생성할 수 있기 떄문에..
2023.05.10