Spring6 Redis와 SpringBoot 연동 Redis란? Key-Value 구조의 비정형 데이터를 저장하고 관리하기 위한 DBMS. 인메모리 방식의 데이터 저장소로, 일반적인 DB에 비해 속도가 빠르다. String, Set, Sorted Set, Hash, List와 같이 다양한 데이터 타입을 지원한다. Single Thread 구조이기 때문에 처리 시간이 긴 요청이 들어올 경우 해당 요청을 처리할 때 까지 다른 요청도 응답을 받을 수 없다. Master Redis 서버의 데이터를 Slave Redis 서버에 복제할 수 있다. 로컬에서 Redis는 Docker환경에 구축하기로 하였다. docker run --name redis_server -it -d -p 6379:6379 redis 실행후 docker logs -f redis_server 로.. 2023. 11. 20. @Conditional과 @AutoConfiguration @Conditional 같은 소스 코드인데 특정상황일때만 특정 빈들을 등록해서 활성화 시켜주는 기능 Condition 인터페이스를 구현해서 matches 메소드의 결과가 true면 동작 false면 동작하지 않는다. 예시를 보자. @Slf4j public class MemoryCondition implements Condition { @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { //-Dmemory=on String memory = context.getEnvironment().getProperty("memory"); log.info("memory={}", memory); return ".. 2023. 11. 6. SpringBoot AutoConfiguration 예시 소스를 먼저 본다. @Slf4j @Configuration public class DbConfig { @Bean public DataSource dataSource(){ log.info("dataSource 빈 등록"); HikariDataSource dataSource = new HikariDataSource(); dataSource.setDriverClassName("org.h2.Driver"); dataSource.setJdbcUrl("jdbc:h2:mem:test"); dataSource.setUsername("sa"); dataSource.setPassword(""); return dataSource; } @Bean public TransactionManager transactionMana.. 2023. 11. 6. SpringBoot와 웹서버 스프링부트를 실무에서 쓰진 않지만 개인적으로 공부나 인강을 들을땐 계속 써왔어서 익숙하긴하지만 기존 레거시와 비교했을때 어떤점이 편리하고 어떤원리로 제공하는지는 잘 알지 못해서 김영한 강사님의 스프링부트의 원리활용 강의를 듣고 기록해본다. WAR 배포 방식의 단점 웹 애플리케이션을 개발하고 배포하려면 다음과 같은 과정을 거쳐야 한다. 톰캣 같은 웹 애플리케이션 서버(WAS)를 별도로 설치해야 한다. 애플리케이션 코드를 WAR로 빌드해야 한다. 빌드한 WAR 파일을 WAS에 배포해야 한다. 웹 애플리케이션을 구동하고 싶으면 웹 애플리케이션 서버를 별도로 설치해야 하는 구조이다. 과거에는 이렇게 웹 애플리케이션 서버와 웹 애플리케이션 빌드 파일(WAR)이 분리되어 있는것이 당연한 구조였다. 그런데 이런 방식.. 2023. 10. 31. 이전 1 2 다음