legacy
-
[Spring] 서블릿과 스프링의 차이점과 상호작용legacy/Spring 2024. 6. 30. 01:30
스프링 컨테이너와 서블릿 컨테이어는 다른 목적으로 사용된다.스프링 컨테이너 : 애플리케이션의 비즈니스 로직을 관리하고, 객체의 생명주기와 의존성 관리를 담당서블릿 컨테이너 : 웹 요청과 응답(HTTP 프로토콜)을 처리하는 데 집중스프링 컨테이너는 IoC(Inversion of Control, 제어의 역전)을 기반으로 애플리케이션의 객체를 관리한다. IoC란 프로그램을 개발자가 아닌 프레임워크에 의해 관리되는 것을 의미한다.서블릿 컨테이너는 웹 서버와 통신을 하여 HTTP 요청을 받고, 서블릿을 사용하여 요청을 처리한 응답을 클라이언트로 전송한다. 스프링 컨테이너스프링 컨테이너는 애플리케이션을 실행시키기 위해 객체(빈) 생성, 초기화, 의존성 주입 등을 담당한다. 이는 개발자가 쉽게 객체 간의 의존성을 관..
-
[Database] RDBMS vs NoSQLlegacy/Database 2024. 6. 28. 16:41
데이터베이스 : 컴퓨터에 전자 방식으로 구조화된 정보를 저장DBMS : 사용자와 데이터베이스 사이에 사용자의 요구에 따라 정보를 생성 및 관리하는 소프트웨어SQL : 관계형 데이터베이스에서 데이터를 관리하기 위한 프로그래밍 언어 1. RDBMSR(Relational, 관계) + DBMS = RDBMSRDBMS는 SQL을 사용하여 데이터를 저장한다. 데이터는 테이블 형태로 저장되며, 다른 테이블과의 관계를 통해 데이터를 관리한다. 이를 통해 데이터 정합성을 유지할 수 있다. 서로 다른 테이블 간의 관계를 맺기 위해 외래키(foreign key)를 사용하며, 이 외래키를 통해 테이블 간 조인이 가능하다. RDBMS 특징테이블 형태로 데이터를 저장한다.SQL(Structured Query Language) 언..
-
[Database] Scale-Out(수평적 확장)과 Scale-Up(수직적 확장)legacy/Database 2024. 6. 28. 16:36
운영하는 서버의 사용자가 많아질수록 서버에 부하가 증가하여 많은 용량과 성능을 요구하게 된다. 이를 해결하고자 서버를 추가로 설치하는 방법과 기존의 서버의 성능을 높이는 방법이 있다. 전자의 방법을 ‘Scale-Out’이라고 하고, 후자의 방법을 ‘Scale-Up’이라고 한다. RDBMS를 사용하는 경우 수직적 확장(Scale-Up)이 필요하고, NoSQL을 사용하는 경우 수평적 확장(Scale-Out)이 유리하다. 1. Scale-Out (수평적 확장)수평적 확장이란 서버를 추가로 설치하여, 여러 대의 서버가 요청을 처리하는 방법이다. 예를 들어, 기존 1대의 서버에서 추가로 3대의 서버를 설치하면 총 4대의 서버가 사용자의 요청을 처리하게 된다.이 방식은 서버로 전달되는 부하를 여러 대의 서버로 나누..
-
[Database] 데이터베이스 키 종류legacy/Database 2024. 6. 26. 14:10
수퍼키 (Super Key)유일성 O, 최소성 X[학생번호] → 학생을 유일하게 결정한다. → 수퍼키 만족[이름, 나이, 성별] → 중복되는 학생이 존재할 수 있다. → 수퍼키 만족 X[학생번호, 나이, 성별] → 학생을 유일하게 결정한다. → 수퍼키 만족학생번호만으로도 학생을 유일하게 결정할 수 있기 때문에 최소성을 만족하지 않는다. 후보키 (Candidate Key)유일성 O, 최소성 O[학생번호] → 학생을 유일하게 결정하면서, 최소의 키를 갖는다. → 후보키 만족[학생번호, 나이, 성별] → 학생번호만으로도 학생을 결정할 수 있으므로 최소성을 만족하지 않는다. → 후보키 X 기본키 (Primary Key)일성 O, 최소성 O튜플을 식별할 때 기준이 되는 반드시 필요한 키이다.특징NULl을 저장할 ..
-
[Database] 트랜잭션이란?legacy/Database 2024. 6. 26. 10:27
트랜잭션이란?데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위를 의미한다. 트랜잭션은 여러 개의 작업을 하나의 단위로 묵어서 처리하여, 데이터베이스의 일관성(Consistency)을 유지한다. 일관성을 유지한다는 것은 트랜잭션이 수행된 후 데이터베이스는 일관된 상태를 유지해야함을 의미한다. 트랜잭션 전후에 유효한 상태를 유지하는 것을 의미한다. 트랜잭션의 특징 - ACID트랜잭션은 아래 4가지 상태를 만족해야 한다.원자성 (Atomicity)일관성 ( Consistency)격리성 (Isolation)지속성 (Duration) 원자성 (Atomicity)원자성이란 하나의 트랜잭션이 갖는 모든 작업을 모두 성공하거나 실패해야 한다. 하나의 작업이라도 실패하게 된다면 해당 트랜잭션은 실패한 것이기 때..
-
[Spring] @Autowired 과정legacy/Spring 2024. 6. 25. 14:13
@Autowired 주입 과정Spring Bean 생성애플리케이션이 시작되면서 스프링 컨테이너가 빈을 생성한다. 생성된 빈은 스프링 컨테이너에 의해 관리된다. → 이를 제어의 역전(IoC)라고 한다.의존성 탐색스프링 컨테이너는 @Autowired가 붙은 필드, 세터, 생성자를 탐색한다.의존성 주입2번을 통해 의존성 주입이 필요한 객체를 찾고, 찾은 객체의 클래스와 일치하는 인스턴스를 스프링 컨테이너에서 찾아서 주입한다. 이때, 찾은 객체의 클래스와 일치하는 Bean이 여러 개가 존재한다면 별도의 처리가 필요하다. → 아래에서 확인한다.주입 완료의존성 주입이 완료되면 초기화 콜백(@PostConstruct)이 호출된다. @Autowired를 통한 3가지 주입 방식생성자 주입@Servicepublic cla..