클래스 변수, 인스턴스 변수, 지역 변수 차이 설명해주세요
클래스 변수는 클래스 내에서 정의된 변수로, 모든 인스턴스가 공유하는 변수입니다.
클래스 변수는 클래스 이름으로 접근할 수 있으며, 객체 생성 없이도 사용할 수 있습니다.
인스턴스 변수는 클래스 내에서 정의된 변수로, 객체가 생성될 때마다 새로운 인스턴스 변수가 생성됩니다.
인스턴스 변수는 객체를 통해 접근할 수 있습니다.
지역 변수는 메서드 블록 내에서 정의된 변수로, 해당 메서드나 블럭 내에서 사용할 수 있습니다.
지역 변수는 해당 블럭이나 메서드가 종료되면 소멸됩니다.
ORM이란?
ORM은 Object-Relational Mapping의 약어로 객체와 관계형 데이터베이스 간의 매핑을 자동화하는 기술입니다. 객체 지향 프로그래밍 언어에서 사용되는 객체와 관계형 데이터베이스의 테이블 간의 변환을 처리해 개발자가 SQL 쿼리를 직접 작성하지 않고도 데이터베이스를 조작할 수 있게 해줍니다.
ex) Hibernate, Mybatis
+ 꼬리질문 마이바티스가 어떻게 스프링에게 전달하는가?
마이바티스와 스프링을 연동하기 위해서는 마이바티스 스프링 연동 모듈 mybatis-spring
을 사용합니다.
이 모듈은 마이바티스의 SqlSessionFactory
를 생성하고, 스프링의 SqlSession
을 관리합니다. 이를 통해 스프링 애플리케이션에서 마이바티스를 쉽게 사용할 수 있습니다.
서블릿 컨테이너의 역할, 작동방식
서블릿 컨테이너는 웹 어플리케이션의 서블릿을 관리하고 실행하는 역할을 하며 웹 서버와 웹 애플리케이션 사이에서 동작합니다.
클라이언트 요청에 따라 적절한 서블릿을 실행해 응답을 생성합니다.
작동 방식은 클라이언트로부터 HTTP 요청을 받으면 서블릿 컨테이너는 해당 요청에 대한 스레드를 실행하고 요청된 URL을 분석하여. 해당 URL에 매핑된 서블릿을 찾습니다. 요청된 데이터를 추출하여, 서블릿에 전달합니다. 서블릿은 요청에 대한 처리를 수행하고 응답 데이터를 생성합니다. 서블릿 컨테이너는 응답 데이터를 HTTP 응답 형식으로 변환해 클라이언트에게 반환합니다.
DAO와 인터페이스
DAO는 Data Access Object로 데이터베이스와의 상호작용을 추상화한 객체입니다. DAO는 데이터베이스 연결, 쿼리 실행, 결과 처리 등의 작업을 수행하며, 이를 통해 비즈니스 로직과 데이터베이스 간의 결합도를 낮춥니다.
인터페이스는 객체 간의 상호작용을 정의하는 일종의 계약 입니다. 클래스가 구현해야하는 메서드 시그니처를 정의합니다.
DAO 인터페이스는 DAO에서 제공하는 메서드를 정의합니다.
DBMS lock 이란
데이터베이스에서 동시에 여러 트랜잭션이 발생할때 데이터를 수정하려고 할 때, 데이터의 일관성 무결성을 보장하기 위해 사용되는 기술로, 트랜잭션이 데이터를 읽거나 쓸 때 다른 트랜잭션에 의해 영향을 받지 않도록 데이터를 잠그는 역할을 합니다.
select 쿼리 실행 순서
from - where - group by - having - select - order by
추상화, 상속, 다형성
추상화는 복잡한 시스템에서 중요한 부분에 집중할 수 있도록 불필요한 (구현) 부분을 제거하고 간단하게 만드는 것을 말합니다.
상속은 부모(슈퍼)클래스의 특성을 자식 클래스가 물려받는 것을 말하며 재정의를 통해 동작을 정의할 수 있습니다.
다형성은 서로 다른 클래스가 같은 이름의 메서드를 가지고 있지만, 그 메서드가 수행하는 동작이 서로 다르게 구현되어 있는 것입니다.
'Spring Framework.' 카테고리의 다른 글
Spring boot 내장 웹 서버 톰캣 설정, 다른 내장 웹 서버 설정하는 방법 (0) | 2023.10.13 |
---|---|
🌿 Spring 개발자라면 이건 꼭 알아야합니다 #1 - JDBC, DriverManager (0) | 2023.10.05 |
📗 Spring WebFlux, Reactive Stream, R2DBC, Mono, Flux 정복하기 (0) | 2023.05.08 |
📗 Spring boot Actuator 스프링 부트 액추에이터 API + Spring Cloud를 사용한 예제 (1) | 2023.05.03 |
🔒 Spring Security 구조, 흐름 그리고 역할 알아보기 🌱 (0) | 2023.02.15 |