반응형
SMALL
반응형
LIST
의존성 주입(Dependency Injection)은 객체 간 결합을 줄이고 코드의 유연성과 테스트 용이성을 높이는 중요한 설계 패턴이지만, 몇 가지 문제나 주의할 점이 있어요. 이를 살펴보겠습니다.1. 순환 의존성(Circular Dependency)문제: 순환 의존성은 A 빈이 B 빈을 필요로 하고, B 빈이 다시 A 빈을 필요로 하는 상황이에요. 순환 의존성이 발생하면, 스프링이 두 빈을 생성할 수 없어 애플리케이션이 실행되지 않거나 에러가 발생할 수 있어요.해결 방법: 보통 설계를 변경해 순환 의존성을 제거하거나, 일부 의존성을 @Lazy로 지연 로딩하여 문제를 피할 수 있습니다. 또, 인터페이스로 추상화하여 순환을 피할 수도 있어요.2. 빈 라이프사이클 관리 문제문제: 스프링이 빈을 관리하지만,..
"싱글톤(Singleton)"은 객체를 오직 하나만 생성해 모든 곳에서 공유하여 사용하도록 하는 디자인 패턴입니다.싱글톤의 주요 개념인스턴스 하나만 생성: 애플리케이션 전체에서 하나의 인스턴스만 존재하도록 제한합니다. 예를 들어, 같은 타입의 객체가 여러 개 생성되면 메모리를 더 많이 사용하게 되는데, 싱글톤을 통해 이런 메모리 낭비를 줄일 수 있어요.애플리케이션 전역에서 동일 객체 참조: 싱글톤 객체는 애플리케이션 어디에서든 같은 인스턴스를 공유하기 때문에, 상태가 유지되어야 하는 경우 유용하게 사용할 수 있습니다.글로벌 접근: 싱글톤 인스턴스는 어디서든 접근할 수 있어요. 보통 getInstance() 같은 메서드를 통해 접근합니다.스프링과 싱글톤Spring에서는 모든 빈이 기본적으로 싱글톤으로 관리..
Spring에서 "빈(Bean)"이란 스프링 컨테이너가 관리하는 객체를 뜻해요. Spring Framework에서는 객체의 생성, 초기화, 관리, 소멸 등을 자동으로 처리해 주기 때문에, 개발자는 객체를 직접 생성하고 관리할 필요 없이 필요한 곳에 빈을 주입받아 사용하기만 하면 돼요.빈의 주요 개념객체 인스턴스: 빈은 결국 Java 객체를 말해요. 하지만 단순 객체와는 다르게, 스프링 컨테이너에서 만들어지고 관리되는 객체예요.DI (Dependency Injection): 스프링은 필요한 빈을 자동으로 주입해 주는 DI 기능을 제공해요. 예를 들어, 어떤 클래스가 다른 클래스(빈)에 의존한다면, 스프링이 자동으로 그 클래스를 주입해 주어서 객체 간의 의존성을 해결해요.싱글톤(Singleton): 기본적으..
2024.02.10 - [알고리즘] - 다익스트라 알고리즘이 문제는 다익스트라 알고리즘을 활용하여 최단 경로를 찾는 문제입니다. 다익스트라 알고리즘은 한 정점에서 다른 모든 정점으로 가는 최단 거리를 찾을 때 사용되는 알고리즘으로, 가중치가 있는 그래프에서 음수 가중치가 없을 때 효율적으로 사용할 수 있습니다.다익스트라 알고리즘의 개념다익스트라 알고리즘의 핵심은 시작 정점에서 다른 정점들로 가는 최단 경로를 점진적으로 찾는 것입니다. 최단 거리를 기록하면서, 방문하지 않은 정점 중 현재까지 가장 짧은 거리로 도달할 수 있는 정점을 선택해 이동하며 최단 경로를 찾아나갑니다.다익스트라 알고리즘의 동작 과정초기화: 시작 정점의 거리를 0으로 설정하고, 다른 모든 정점의 거리는 무한대로 초기화합니다.정점 선택:..
Hibernate는 JPA의 대표적인 구현체로, ORM의 원칙에 따라 동작하며, MyBatis와 달리 SQL 생성과 데이터베이스 작업을 자동화합니다. MyBatis는 SQL을 개발자가 작성하도록 설계된 매퍼이기 때문에, 직접 SQL 작성이 필요합니다.HibernateHibernate는 JPA(Java Persistence API)의 구현체로, 자바 객체와 데이터베이스 테이블 간의 자동 매핑을 제공하는 완전한 ORM 프레임워크입니다.주요 특징객체-관계 매핑(ORM) 자동화: 자바 객체와 데이터베이스 테이블을 매핑하여 SQL을 직접 작성하지 않고도 데이터베이스와 상호작용할 수 있습니다.JPA 표준 구현: JPA 인터페이스를 통해 객체지향적인 방식으로 데이터베이스 작업을 할 수 있습니다.자동화된 CRUD: s..
ORM은 객체-관계 매핑이라는 뜻으로, 객체 지향 프로그래밍 언어에서 사용하는 객체와 데이터베이스의 테이블 간의 데이터를 자동으로 변환해 주는 기술이다. 간단히 말해 , 자바나 파이썬 같은 객체 지향 언어에서 사용하는 객체들을 데이터베이스의 테이블과 매핑하여. 객체와 데이터베이스 간의 데이터를 쉽게 저장하고 불러올 수 있게 해주는 도구 입니다.ORM의 필요성객체 지향 언어와 관계형 데이터베이스는 서로 다른 개념을 가지고 있습니다:객체 지향 언어에서는 데이터를 객체로 관리합니다.관계형 데이터베이스에서는 데이터를 테이블로 관리합니다.이 두 개념을 직접 연결하려면, 개발자가 객체를 테이블 형태로 변환하거나 SQL을 작성해야 합니다. 이를 매번 수동으로 처리하는 것은 번거로울 뿐만 아니라, 유지보수가 어렵고 코..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.