1.세션 (Session)
- 세션은 웹 애플리케이션에서 클라이언트와 서버 간의 상태를 유지하고 정보를 저장하는 방법 중 하나.
세션은 HTTP 프로토콜의 기본적인 무상태 특성을 극복하기 위해 사용된다.
이를 통해 사용자가 웹 애플리케이션과 상호작용하면서 정보를 계속 유지하고, 다양한 페이지 간에 데이터를 공유할 수 있다.
특징 :
1. 상태 유지 : 세션을 통해 웹 애플리케이션은 사용자가 로그인한 상태인지, 장바구니에 어떤 물건이 들어있는지 등을 기록할 수 있다.
2. 고유성 : 각 세션은 고유한 세션 ID를 가진다. 이 ID를 사용하여 서버는 각 클라이언트의 세션을 식별하고 구분한다.
3. 세션 데이터 : 세션은 클라이언트와 관련된 데이터를 저장하는데 사용된다. 이 데이터는 웹페이지 간에 공유되며, 세션에 저장된 정보를 통해 사용자 경험을 개선할 수 있다.
4. 유한한 수명 : 세션은 보통 사용자가 브라우저를 닫거나 로그아웃할 때까지 유지된다. 세션의 수명은 웹 애플리케이션의 설정에 따라 다를 수 있다.
용도 :
1. 사용자 인증 : 로그인 후 사용자 정보를 세션에 저장하여 로그인 상태를 유지
2. 장바구니 관리 : 온라인 쇼핑 웹사이트에서 사용자의 장바구니 내용을 저장하고 관리
3. 세션 트래킹 : 사용자의 활동을 추적하고 분석하기 위해 사용
4. 사용자 설정 : 사용자 환경설정 및 선호도를 저장하고 유지
5. 임시 데이터 저장 : 임시 작업에 필요한 데이터를 저장하고 나중에 사용
2. IoC (Inversion of Control)
IoC 컨테이너는 Spring 프레임워크의 핵심 기능 중 하나이며, 의존성 주입으로도 알려져 있다.
IoC 컨테이너는 객체의 생명 주기를 관리하고, 객체 간의 의존성을 관리하며, 필요한 객체를 제공하는 역할을 한다.
특징 :
1. Bean : IoC 컨테이너가 관리하는 객체를 '빈'이라고 부른다. 빈은 spring에서 생성, 구성 및 관리되며 필요한 곳에서 주입된다.
2. ApplicationContext : IoC 컨테이너의 구현체 중 하나로, Spring 애플리케이션에서 빈의 생성 및 관리, 빈 간의 의존성 해결, 설정 정보 로딩 등을 담당한다.
3. 의존성 주입 (Dependency Injection : DI) : IoC 컨테이너는 빈 간의 의존성을 자동으로 해결해 준다. 즉 빈이 필요로 하는 다른 빈을 직접 생성하거나 관리하지 않고, 컨테이너가 필요한 빈을 주입해준다.
4.Bean의 생명주기 관리 : IoC 컨테이너는 빈의 생성, 초기화, 소멸과 같은 생명주기를 관리한다. 컨테이너는 빈의 스코프에 따라 빈을 생성하고 소멸시키며, 빈의 초기화 및 종료 메소드를 호출합니다.
5. 의존성 관리 : IoC 컨테이너는 빈 간의 의존성을 자동으로 해결하므로 개발자가 수동으로 의존성을 주입할 필요가 없다. 빈 간의 결합도가 낮아지고, 유지보수 및 테스트가 용이해진다.
6. 설정 파일 : Spring 애플리케이션에서 IoC 컨테이너를 구성하는 방법 중 하나는 XML, Java 설정 클래스, 애너테이션을 사용하는 설정 파일을 제공하는 것이다. 이 파일은 빈의 정의, 의존성 및 다른 설정 정보를 포함한다.
3. Socket
소켓은 컴퓨터 네트워크에서 데이터 통신을 가능하게 하는 프로그래밍 인터페이스이다.소켓을 사용하려면 컴퓨터 간에 데이터를 주고 받을 수 있으며, 이를 통해 클라이언트와 서버 사이에 통신을 이루어 진다.소켓은 일반적으로 네트워크 응용 프로그램을 개발할 때 주로 사용된다.
Spring레서 소켓 프로그래밍을 사용하려면 일반적으로 Spring webSocket 모듈을 활용해야하며, 이 모듈은 WebSocket 통신을 구현하고 관리하는데 도움을 주며, 실시간 웹 애플리케이션을 개발하는데 유용하다. 클라이언트와 서버 간에 양방향 통신을 가능하게 하므로실시간 채팅, 알림 서비스, 협업 도구 등에 활용이 된다.
4. JSON
JavaScript Object Notation의 약자로, 데이터 교환 형식의 하나이다.
JSON은 가벼우며 읽기 쉽고 작성하기도 쉬워 컴퓨터 프로그램 간 데이터 교환에 널리 사용된다. JSON 형식은 텍스트 기반으로 되어 있으며,
사람이 읽고 쓰기에 용이하며 기계가 피싱하고 생성하기도 쉽다.
특징 :
1. 가독성 : JSON은 사람이 읽기 쉽고 이해하기 쉽도록 설계 되어 있다. 데이터는 키 - 값 쌍으로 구성되며, 중첩된 구조로 데이터를 표현할 수 있다.
2. 데이터 교환 : JSON은 다양한 응용 프로그램 및 플랫폼 간에 데이터를 교환하는데 사용된다. 웹 서비스와 클라이언트 간의 데이터 통신, 서버에서 클라이언트로 데이터를 전송하는 데 자주 사용된다.
3. 키-값 쌍 : JSON 데이터는 키와 값의 쌍으로 구성된다. 키는 문자열이며, 값은 문자열, 숫자, 불리언, 배열, 객체 또는 null일 수 있다.
4. 중첩 가능 : JSON 데이터는 중첩이 가능하다. 즉 배열 안에 객체를 넣거나, 객체 안에 또 다른 객체를 넣을 수 있다.
5. 플랫폼 독립적 : JSON은 언어나 플랫폼에 독립적이며, 다양한 프로그래밍 언어에서 파싱하고 생성할 수 있는 라이브러리가 제공된다.
JSON 데이터는 다양한 응용 분야에서 사용되며, 웹 애플리케이션에서 데이터 교환, 설정 파일, 로깅, 구성 관리, API 응답 및 요청 등 다양한 용도로 활용된다.
5. 트랜잭션
데이터베이스 관리 시스템에서 발생하는 데이터 조작 작업의 단위를 의미한다. 트랜잭션은 데이터베이스에 대한 변경 작업을 안전하게 수행하고, 데이터의 일관성을 보장하기 위한 중요한 개념이다.
즉, 일을 처리하기까지의 가장 작은 단위라고 볼 수 있다.
특징 :
1. 원자성 : 트랜잭션은 모든 데이터 조작 작업을 원자적으로 취급한다. 즉, 트랜잭션 내의 모든 작업이 성공적으로 완성되거나 실패할 경우 이전 상태로 롤백되어야한다. 어떠한 중간 상태도 허용되지 않는다.
2. 일관성 : 트랜잭션은 데이터베이스를 일괄된 상태로 유지해야 한다. 트랜잭션 시작 전과 끝난 후에도 데이터베이스의 일관성이 보장되어야 한다. 예를 들어 모든 제약 조건을 만족하고 일관된 상태에서만 트랜잭션이 완료되어야한다.
3. 고립성 : 동시에 여러 트랜잭션이 실행될 때, 각 트랜잭션은 다른 트랜잭션의 작업에 영향을 미치지 않고 독립적으로 실행되는 것처럼 보이도록 해야한다. 다른 트랜잭션에서 발생하는 변경 사항은 다른 트랜잭션에게 보이지 않아야 한다.
4. 지속성 : 트랜잭션이 완료된 후에는 그 결과가 영구적으로 저장되어야 한다. 시스템의 장애 또는 다운 상태가 발생하더라도 데이터 손실이 발생하지 않아야 한다.
'Backend > Spring' 카테고리의 다른 글
[Spring] Web 기본 동작 방식 (0) | 2023.12.10 |
---|---|
[Spring] Socket을 이용해서 채팅 웹페이지 만들기 ! (1) (2) | 2023.09.10 |
[Spring] Spring Project - MVC 배우기 ! (0) | 2023.09.03 |
[Spring] DI(Dependency Injection) 란 ? (0) | 2023.09.03 |
[Spring] eclipse / STS / Lombok.jar 설치하기 (0) | 2023.09.03 |