코딩 공부/web & Java127 [Mockito] ArgumentMatchers 및 any,eq ArgumentMatchers ArgumentMatchers는 메소드 호출 시 특정 인자값과 일치하는지, 혹은 특정 조건을 만족하는지를 확인하는 데 사용되는 도구입니다. Mockito는 여러 가지 Argument Matchers를 제공하며, 사용자는 이를 활용하여 원하는 조건에 맞는 인자를 검증할 수 있습니다.🏷️ ArgumentMatchers.any() Mocking 된 메소드를 설정하기 위한 방법은 여러 가지가 있는데, 첫 번째는 메소드에 "고정된 값"을 사용합니다.doReturn("...").when(userAccountService).getUserInfo("...");위와 같이 doReturn()이나 do()에 사용된 문자열처럼 고정된 값을 사용할 수 있습니다. 하지만 모든 테스트가 고정된 값만.. 2024. 10. 21. [JPA] @PrePersist와 @PreUpdate @PrePersist@Column(name = "created_at")private LocalDateTime createdAt;@PrePersistvoid createdAt() { this.createdAt = LocalDateTime.now();} 엔티티가 생성될 때마다 실행되어야 하는 로직을 구현하는 데 사용되며, 엔티티가 생성될 때마다 현재 날짜를 값으로 설정하는 로직 등을 구현할 수 있습니다. 또한, 위의 이미지같이 JPA 엔티티(entity)가 비영속 상태에서 영속 상태가 되는 시점 이전에 실행이 되게 됩니다.@PreUpdate@Column(name = "modified_at")private LocalDateTime modifiedAt;@PreUpdatevoid modifiedAt() { .. 2024. 10. 18. [JPA] @GeneratedValue의 GenerationType에 AUTO, IDENTITY 차이 @GeneratedValue(strategy = GenerationType.AUTO)@Table(name = "question_board")@Entitypublic class QuestionBoard { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; // 생략}Default로 동작되는 설정으로 DB 벤더에 따라 자동으로 3가지 전략 중 하나를 선택합니다. DB 벤더를 변경해도 전략을 수정하지 않아도 되지만, SEQUENCE나 TABLE 전략을 선택한다면 sequence나 키 테이블을 생성해두어야 함을 주의해야 합니다. 그러나 JPA ddl-auto 기능을 사용하면 hibernate가 알아서 시퀀스 테이블을.. 2024. 10. 17. [Spring / Redis] Spring에서 Redis 사용 Spring에서 Redis 사용레디스 관련 설명은 여기를 참고해 주세요!🏷️ Redis 의존성// redisimplementation 'org.springframework.boot:spring-boot-starter-data-redis'🏷️ Redis 설정@RequiredArgsConstructor@EnableRedisRepositories@Configurationpublic class RedisConfig { @Value("${spring.data.redis.host}") private String redisHost; @Value("${spring.data.redis.port}") private int redisPort; @Value("${spring.data.redis... 2024. 10. 10. [Spring / WebSocket] WebSocket와 STOMP WebSocketWebSocket은 클라이언트와 서버를 연결하고 실시간으로 통신이 가능하게 하는 프로토콜입니다.기존 HTTP 통신은 요청을 보내야만 요청을 받는 단방향 통신이고, Stateless(상태를 저장하지 않는) 방식이였습니다. 하지만 WebSocket은 양방향 통신으로 연결이 이루어지면 클라이언트가 별도의 요청을 보내지 않아도 데이터를 송신할 수 있으며, 상태를 유지하는 Stateful 프로토콜입니다.기존 HTTP 같이 양쪽 방향으로 송수신이 가능한 양방향 통신이지만 한 번에 하나의 전송만 이루어지도록 설정된 것을 반이중 통신(Half Duplex)이라하고, WebSocket 같이 데이터를 동시에 양방향으로 송수신 할 수 있는 것을 전이중 통신(Full Duplex)라고 합니다.만약 Notion.. 2024. 10. 5. [Spring / SSE] SSE(Server Sent Event) 제가 진행하는 프로젝트에사 실시간 알림 기능을 계획하고 구현을 하게되었습니다. 이때, 실시간 알림 기능은 클라이언트가 서버에게 요청을 보내는 기존 기능과는 달리, 서버가 클라이언트에게 데이터를 보내면 클라이언트가 이를 인지하고 알림을 띄워줘야하는 동작을 해야했습니다. 하지만 HTTP 프로토콜의 주요 특징은 비연결성 입니다. 따라서 서버가 클라이언트에 데이터 전송시 인지해야할 경우, 서버가 전송하고 싶어도 해당 클라이언트와 지속적으로 연결이 되어있지 않기 때문에 보낼 수 없는 상황이 발생하게 되는 것입니다.이를 해결하는 방식으로 Polling, Long Polling, WebSocket, SSE 총 네 가지가 존재합니다. 그래서 SSE에 대해 설명하기 전 SSE를 제외한 3가지를 간단하게 설명하고 넘어가고.. 2024. 10. 4. 이전 1 2 3 4 ··· 22 다음