[Spring Boot] Embedded Redis 추가하기 (Mac 해결책)
·
Backend/Spring
개요친구랑 작은 토이프로젝트를 기획하면서, Redis 를 사용할 일이 생겼다. 일단 Redis 환경을 어떻게 구성할지에 대해 고민했다. 1. AWS 환경에서 사용2. 로컬에서 Docker 환경으로 구성3. 로컬에서 Docker 없이 직접 설치 일단 토이 프로젝트이고, 친구와 굳이 'Redis만을 위해' 배포를 할 필요성을 느끼지 못했기 때문에 1은 기각.로컬에서 사용하는 것에 대해 고민하다가 친구가 'Embedded Redis'라는 것을 찾아왔다. Embedded Redis란?애플리케이션 내부에서 내장형 Redis 서버를 실행할 수 있도록 도와주는 방식이다.보통 테스트환경에서 Redis를 별도로 설치하지 않고 애플리케이션과 함께 실행하고 싶을 때 사용한다. Embedded Redis 의 장점은 다음과 ..
[Spring] 로그 레벨 설정
·
Backend/Spring
로그 레벨`TRACE` > `DEBUG` > `INFO` > `WARN` > `ERROR` > FATAL`위에서 왼쪽의 레벨일수록 상세한 정보를 포함한다.TRACE: 가장 낮은 로그 레벨. 매우 상세함. 주로 개발 및 디버깅 용도로 사용.DEBUG: 디버깅 목적으로 사용. 애플리케이션의 흐름을 파악하는 데 유용한 정보를 출력.INFO: 일반적인 정보를 출력. 애플리케이션의 상태나 주요 이벤트를 기록하는 데 사용.WARN: 경고 메시지를 출력. 애플리케이션이 정상적으로 동작하지만, 잠재적인 문제를 나타낼 때 사용.ERROR: 오류 메시지를 출력. 애플리케이션이 정상적으로 동작하지 않는 경우 사용.FATAL: 치명적인 오류 출력. 주로 시스템이 더 이상 동작하지 않을 정도의 심각한 문제를 나타낼 때 사용. ..
[Spring Boot] 싱글톤 컨테이너(Singleton Container)
·
Backend/Spring
싱글톤(Singleton)싱글톤이란?싱글톤(Singleton)은 디자인 패턴 중 하나로, 애플리케이션 내에서 하나의 인스턴스만 생성되도록 보장하는 패턴이다.즉, 어떤 클래스가 싱글톤으로 정의되면, 해당 클래스의 인스턴스는 애플리케이션 내에서 오직 하나만 존재하게 된다.싱글톤이 필요한 이유자원절약 : 객체를 여러번 생성하지 않고 하나의 인스턴스만 사용. 메모리 자원 절약.글로벌 접근 : 애플리케이션 내 어디에서든 동일한 인스턴스를 접근할 수 있음.제어된 인스턴스 생명 주기 : 인스턴스 생성/소멸을 제어 -> 애플리케이션의 안정적인 관리.스프링을 사용하지 않는 DI 컨테이너의 문제점DI(Dependency Injection) 컨테이너 : 의존성을 관리하고 주입해주는 역할을 함.스프링을 사용하지 않고 DI(D..
[Spring Boot] Test Code 작성하기
·
Backend/Spring
Test Code의 중요성개발 초기에 문제를 발견할 수 있음.코드 리팩토링 시 기존 기능을 검증을 통해 리팩토링 안정성을 보장.개발 프로세스 안정성 증가. 신뢰성 향상.개발 시간 감소.테스트 코드는 초기 작성에 시간이 걸릴 수 있지만, 장기적으로는 개발 속도를 향상시킬 수 있다.테스트 코드를 한번 작성하면 반복적인 테스트 작업이 감소하고 자동화된 테스트로 인해 시간이 절약된다. 새로운 기능이 추가되었을 때도 테스트 코드를 통해 기존의 코드에 영향이 갔다면, 어떤 부분을 수정해야 하는 지 알 수 있는 장점도 존재한다.    Test Code 종류단위 테스트(Unit Test): 개별 클래스나 메서드의 기능을 테스트통합 테스트(Integration Test): 여러 컴포넌트가 함께 동작하는 것을 테스트기능 ..
[Spring Boot] Application 클래스 (@SpringBootApplication)
·
Backend/Spring
Application 클래스의 역할Application 클래스는 Spring Boot 애플리케이션의 "진입점"이다.메인 메서드를 포함한다. `SpringApplication.run()`메서드를 통해 애플리케이션을 시작한다.Spring context을 초기화하고 필요한 빈(beans)을 로드하는 역할을 한다.   정의 및 사용 방법Application 클래스를 정의할 때는 `@SpringBootApplication`  어노테이션을 사용하여 정의한다.이는 다음의 여러 어노테이션을 결합한 것이다.`SpringBootConfiguration` : Spring Boot 설정 클래스로 지정하겠다.`EnableAutoConfiguration` : Spring Boot의 자동 설정을 활성화하겠다.`ComponentSc..