전체 글 210

스프링 스케줄러와 배치 #1 - Spring Scheduler(@Scheduled), TaskScheduler

스케줄러란?특정 작업을 예약된 시점에 수행 가능하도록 스프링 프레임워크에서 제공하는 기능사옹 예 ) 예약 알림, 이메일 전송, 피드 알림 등등  - 프로젝트 설정 - 스케줄러 사용 시 옵션 정리fixedRate이전 작업 시작 시점 기준, 주기적으로 실행fixedRate = 5000작업 시작 후 5초마다 실행fixedDelay이전 작업 종료 시점 기준, 주기적으로 실행fixedDelay = 5000작업 종료 후 5초 뒤 실행initialDelay작업 시작 전 대기 시간 설정fixedRate = 5000, initialDelay = 1000010초 대기 후 5초마다 실행cronCron 표현식을 사용해 일정 예약cron = "0 0/5 * * * *"매 5분마다 실행zone타임존 설정 (기본은 시스템 타임존 ..

API 2025.03.09

Spring AOP 설명(Annotaion, Class) 및 예제

어노테이션 먼저 정리1. @Before설명: 지정된 포인트컷 이전에 실행되는 어드바이스2. @After설명: 지정된 포인트컷 후에 실행되는 어드바이스 메소드 실행 여부와 관계없이 항상 실행3. @AfterReturning설명: 지정된 포인트컷의 메소드가 정상적으로 실행된 후에 실행되는 어드바이스 메소드가 예외 없이 정상적으로 종료되었을 때만 실행4. @AfterThrowing설명: 지정된 포인트컷의 메소드가 예외를 던졌을 때 실행5. @Around설명: 지정된 포인트컷 전후로 실행되며, 메소드의 실행을 제어 @Before와 @After를 합친 효과를 제공 ProceedingJoinPoint를 이용하여 메소드 실행을 직접 제어 가능6. @Pointcut설명: 어드바이스가 적용될 포인트컷 표현식을 정의하는 ..

API 2025.01.17

#2 TEST CODE 작성 : Todo API 단위테스트, 통합테스트

https://letsdodev.tistory.com/211에서 작업했던 Todo API 에서 단위테스트, 통합테스트를 진행한다. #1 TEST CODE 작성 : Todo API 만들기※ 테스트 코드 작성 이전, 테스트 코드 작성에 필요한 Todo API 작성해서 기록한 게시물※  테스트 코드는 다음 게시물에 작성 예정[프로젝트 생성]- 스프링 이니셜라이저 사용spring-boot : 3.4.0 verjaletsdodev.tistory.com  @WebMvcTest vs @SpringBootTest@WebMvcTest:컨트롤러만 로드하고, 그 외의 빈(서비스, 리포지토리 등)은 로드하지 않음빈 로딩 범위: 컨트롤러만 로드, 서비스나 리포지토리와 같은 다른 빈은 자동 로드되지 않음주로 웹 계층 테스트에 사..

API 2025.01.02

#1 TEST CODE 작성 : Todo API 만들기

※ 테스트 코드 작성 이전, 테스트 코드 작성에 필요한 Todo API 작성해서 기록한 게시물※  테스트 코드는 다음 게시물에 작성 예정[프로젝트 생성]- 스프링 이니셜라이저 사용spring-boot : 3.4.0 verjava(jdk) : 21 (lombok 추가하지 않았고 소스로 직접 작성하여 사용)   [패키지 구조][프로젝트 소스 및 환경 설정]- build.gradleplugins { id 'java' id 'org.springframework.boot' version '3.4.0' id 'io.spring.dependency-management' version '1.1.6'}group = 'com.testcode'version = '0.0.1-SNAPSHOT'java { toolchain { ..

API 2024.12.14

H2 DB - setting

- 다운로드 url : https://h2database.com/html/main.html H2 Database EngineH2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2.5 MB jar file size     Supph2database.com- 첫 설치라 root user 설정이 안 되어있어서 연결 시험 시 → 연결 성공  - 원하는 테이블 생성해서 ..

[spring boot + redis] 설치 및 간단 실습

redis 란?- Remote Dictionary Server 의 약자- 데이터를 메모리에 저장- 메모리에 저장하기 떄문에 데이터의 빠른 읽기 및 쓰기 가능- 큐 시스템, 세션관리, 실시간 분석 등에 사용 됨- 조회가 많은 데이터들은 redis를 통해 캐시로 관리하면 빠른 조회가 가능 - 컴퓨터 캐시와 redis 캐시는 다른 개념이다.- 따라서 pc의 캐시 (브라우저 캐시, 운영체제 캐시, 애플리케이션의 데이터 캐시)를 삭제한다고 해서- redis 의 캐시가 삭제되지 않는다.- 단, redis를 종료시키거나 데이터를 삭제하는 경우 redis 캐시가 삭제된다.,- 따라서 운영할 애플리케이션에 적용할 경우 중요할 수 있는 redis 캐시데이터는 주기적으로- RDB로 이관을 시켜주어야 한다. [redis ..

도커 #3 - 도커 컨테이너 생성[with Windows, Linux]

도커 엔진 기본 단위1. 이미지: 바이너리 파일로 존재, 컨테이너 안에서 읽기 전용으로 사용됨이름 지정 → 저장소 이름/이미지 이름/태그 형식종류 → 운영체제, 빅데이터 분석 도구, 데이터 베이스, 어플리케이션 등 다양하게 존재 2. 컨테이너: 이미지 읽기 전용으로 사용되는 이미지로부터 변경된 사항만 컨테이너에 저장컨테이너에서 진행하는 작업은 원본 데이터인 이미지에 영향을 주지 않음컨테이너가 여러 개 존재한다면,※ 각 컨테이너는 서로 독립된 공간으로 각 컨테이너에서 어떤 작업을 수행해도다른 컨테이너에 영향을 미치지 않음 아래서 기본적으로 진행되는 명령어는 리눅스 기반이다.만약 나처럼 윈도우 커맨드를 통해 도커 컨테이너 명령어롤 수행하는 경우중간 중간에 윈도우에서는 동작하지 않는 리눅스 전용 명령어들이 있..

docker(도커) 2024.11.17

리액트(react) - 리코일(Recoil) 과 Selector 사용 예제 학습

리액트에서 데이터는 단뱡항으로만 흐름이런 단점을 극복하기 위해 만들어진 변수가 바로 '전역 상태 변수'State : 컴포넌트 내에서 변화하는 값, 변화 가능한 값 리코일 : 전역 상태 변수 라이브러리 ('페이스북' 에서 만듦)전역 상태 변수 중 하나  예제 : 장바구니에 아이템을 담기 (장바구니에 담긴 데이터를 전역 상태 변수 'recoil state' 로 관리한다.) 여러 컴포넌트에서 공유하고 있는 상태를 리코일에서는 'atom' 이라고 한다. [리코일 용어]atom : 리코일 상태 최소 단위- 예시export const shoppingCart = atom ({ key : "shoppingCart" // 다른 atom 들과 독립적으로 구분되는 값이어야 함. default : []}); select..

react 2024.11.14