반응형
SMALL
반응형
LIST
2024.11.09 - [cs정리] - 인스턴스1. 클래스와 인스턴스의 차이를 설명해 주세요.더보기네, 클래스는 객체를 만들기 위한 설계도 역할을 합니다. 객체가 가질 속성이나 기능들을 미리 정의해 놓은 구조라고 볼 수 있어요.반면에 인스턴스는 이 클래스라는 설계도를 통해 실제로 만들어진 객체를 뜻합니다. 같은 클래스에서 여러 개의 인스턴스를 만들 수 있고, 각 인스턴스는 클래스의 구조를 따르지만 서로 독립적으로 존재합니다2. 클래스 변수와 인스턴스 변수의 차이점을 설명해 주세요.더보기클래스 변수는 클래스에 한 번만 선언되며, 모든 인스턴스가 공유하는 변수입니다. static 키워드를 사용해 선언되며, 클래스 이름으로 직접 접근할 수 있죠. 반면, 인스턴스 변수는 각각의 인스턴스에 고유하게 할당되는 변수..
의존성 주입(Dependency Injection)은 객체 간 결합을 줄이고 코드의 유연성과 테스트 용이성을 높이는 중요한 설계 패턴이지만, 몇 가지 문제나 주의할 점이 있어요. 이를 살펴보겠습니다.1. 순환 의존성(Circular Dependency)문제: 순환 의존성은 A 빈이 B 빈을 필요로 하고, B 빈이 다시 A 빈을 필요로 하는 상황이에요. 순환 의존성이 발생하면, 스프링이 두 빈을 생성할 수 없어 애플리케이션이 실행되지 않거나 에러가 발생할 수 있어요.해결 방법: 보통 설계를 변경해 순환 의존성을 제거하거나, 일부 의존성을 @Lazy로 지연 로딩하여 문제를 피할 수 있습니다. 또, 인터페이스로 추상화하여 순환을 피할 수도 있어요.2. 빈 라이프사이클 관리 문제문제: 스프링이 빈을 관리하지만,..
"싱글톤(Singleton)"은 객체를 오직 하나만 생성해 모든 곳에서 공유하여 사용하도록 하는 디자인 패턴입니다.싱글톤의 주요 개념인스턴스 하나만 생성: 애플리케이션 전체에서 하나의 인스턴스만 존재하도록 제한합니다. 예를 들어, 같은 타입의 객체가 여러 개 생성되면 메모리를 더 많이 사용하게 되는데, 싱글톤을 통해 이런 메모리 낭비를 줄일 수 있어요.애플리케이션 전역에서 동일 객체 참조: 싱글톤 객체는 애플리케이션 어디에서든 같은 인스턴스를 공유하기 때문에, 상태가 유지되어야 하는 경우 유용하게 사용할 수 있습니다.글로벌 접근: 싱글톤 인스턴스는 어디서든 접근할 수 있어요. 보통 getInstance() 같은 메서드를 통해 접근합니다.스프링과 싱글톤Spring에서는 모든 빈이 기본적으로 싱글톤으로 관리..
Spring에서 "빈(Bean)"이란 스프링 컨테이너가 관리하는 객체를 뜻해요. Spring Framework에서는 객체의 생성, 초기화, 관리, 소멸 등을 자동으로 처리해 주기 때문에, 개발자는 객체를 직접 생성하고 관리할 필요 없이 필요한 곳에 빈을 주입받아 사용하기만 하면 돼요.빈의 주요 개념객체 인스턴스: 빈은 결국 Java 객체를 말해요. 하지만 단순 객체와는 다르게, 스프링 컨테이너에서 만들어지고 관리되는 객체예요.DI (Dependency Injection): 스프링은 필요한 빈을 자동으로 주입해 주는 DI 기능을 제공해요. 예를 들어, 어떤 클래스가 다른 클래스(빈)에 의존한다면, 스프링이 자동으로 그 클래스를 주입해 주어서 객체 간의 의존성을 해결해요.싱글톤(Singleton): 기본적으..
ORM(Object-Relational Mapping)정의: ORM은 객체와 관계형 데이터베이스를 매핑하는 기술을 의미합니다. 자바의 클래스와 관계형 데이터베이스의 테이블 간 매핑을 통해, 개발자가 SQL을 직접 작성하지 않고도 데이터베이스 작업을 수행할 수 있습니다.역할: 자바 객체와 데이터베이스 테이블 간에 변환을 자동화하여 코드의 생산성과 유지 보수성을 높입니다.예시: ORM 프레임워크로는 Hibernate, JPA, EclipseLink 등이 있습니다.JPA(Java Persistence API)정의: JPA는 자바에서 ORM을 쉽게 사용할 수 있도록 제공되는 표준 인터페이스입니다. ORM을 위한 규칙이나 가이드라인을 정의한 것입니다. 구현체는 아니므로, 이를 이용하기 위한 구현체 HIBERNAT..
2024.02.10 - [알고리즘] - 다익스트라 알고리즘이 문제는 다익스트라 알고리즘을 활용하여 최단 경로를 찾는 문제입니다. 다익스트라 알고리즘은 한 정점에서 다른 모든 정점으로 가는 최단 거리를 찾을 때 사용되는 알고리즘으로, 가중치가 있는 그래프에서 음수 가중치가 없을 때 효율적으로 사용할 수 있습니다.다익스트라 알고리즘의 개념다익스트라 알고리즘의 핵심은 시작 정점에서 다른 정점들로 가는 최단 경로를 점진적으로 찾는 것입니다. 최단 거리를 기록하면서, 방문하지 않은 정점 중 현재까지 가장 짧은 거리로 도달할 수 있는 정점을 선택해 이동하며 최단 경로를 찾아나갑니다.다익스트라 알고리즘의 동작 과정초기화: 시작 정점의 거리를 0으로 설정하고, 다른 모든 정점의 거리는 무한대로 초기화합니다.정점 선택:..