웹 개발103 RabbitMQ 개념 메시지 송신 과정🟢 1단계: 메시지 발송 메서드 (sendScheduleEventMessage) public void sendScheduleEventMessage(RabbitMqEventBaseDto rabbitMqEventDto) { try { // 메시지 본문을 JSON으로 직렬화 String jsonMessage = JsonUtils.writeValue(rabbitMqEventDto); // 지연 시간 (ms), 설정값에 따라 0 또는 지정된 값 Long expirationMs = noWaitAlarmDelayedQueue ? 0 : rabbitMqEventDto.getEventInfo().getDelayMilliSeconds(); .. 2025. 4. 20. 스프링 이메일 전송 기능 이메일 전송하는 방법을 정리해봤습니다. /** * 이메일 인증 메일 */ public static final String AUTH_EMAIL_TITLE = "[" + SERVICE_NAME + "] 이메일 인증 요청"; public static final String AUTH_EMAIL_BODY = "" + "이메일 인증번호 안내" + "어쩌구 저쩌구" + "감사합니다." + ""; 우선은 보낼 제목과 내용을 작성해줍니다. @Transactional public void sendAuthenticationEmail(String email, String authNumber) { .. 2025. 4. 19. 스프링 배치(Spring Batch)란? 스프링 배치는 반복적인 대량 데이터 처리 작업을 자동화하고 성능을 최적화하는 Spring 기반 프레임워크입니다.예를 들어, "매일 자정에 사용자의 포인트를 정산해야 한다"고 가정하면, 이를 수작업으로 처리하면 비효율적이고 오류 가능성이 큽니다.스프링 배치를 사용하면 이러한 작업을 일정한 주기 또는 특정 이벤트에 따라 자동 실행하고, 효율적으로 데이터를 읽고, 가공하고, 저장할 수 있습니다. ✅ 대표적인 활용 예시ETL(Extract, Transform, Load) 작업: 데이터베이스에서 데이터를 추출하고 변환하여 다른 시스템으로 적재데이터 마이그레이션: 기존 시스템의 데이터를 새로운 시스템으로 이동정산 작업: 월급 계산, 포인트 정산, 주문 상태 업데이트 등의 대량 데이터 처리 ✅ 스프링 배치의 핵심 .. 2025. 4. 12. 스벨트(Svelte)가 미래다? Svelte란? Svelte는 2016년 출시된 차세대 프론트엔드 프레임워크로, 다른 프레임워크(예: React, Vue)와는 달리 컴파일 단계에서 작업을 수행하여 더 빠르고 효율적인 웹 애플리케이션을 개발할 수 있게 해주는 프론트엔드 프레임워크 입니다. 인터넷을 찾아보면“리액트는 끝났다. 스벨트가 미래다”라는 말이 있지만 현실은.. 결론부터 말하면 아직 갈길이 멀다... 입니다. 스벨트를 지원해주는 기업도 없고 사용하는 사례가 거의 없어서 "스벨트가 미래다"라는 말은 아직 현실성이 없는 것 같습니다. 어쨌든 왜 스벨트가 리엑트나 Vue에 비해서 차세대 프론트엔드 프레임워크로 불리는지 한번 알아보겠습니다. React/Vue와 Svelte의 핵심 차이특징 React/Vue SvelteDOM 업데이트 .. 2025. 2. 9. 새해 덕담 카드 만들기 안녕하세요 저는 최근에 다우기술 개발센터에서 진행하는 온데이 세미나에서 이미지 생성형 ai 활용을 주제로 발표를 하게 되었습니다. 팀의 구성은 개발자 1명, 디자이너 1명으로 총 2명의 인원으로 구성되었습니다. 처음에는 기획자 1분도 계셔서 이 조합이면 어떤 서비스든 뚝딱 만들 수 있겠다고 생각했지만 기획자 1분은 개인 사정으로 불참하게 되었고 시간이 흐르고 의욕이 조금씩 떨어지게 되었습니다. 세미나 발표를 준비하면서 가장 어려웠던 부분은 다른 직무의 팀원들이 의견을 하나로 합치는게 생각보다 어려웠던 것 같습니다. 이거 엄청 괜찮다! 하는 그런 아이디어가 없었고 각자 하고 싶은 부분 그리고 세미나를 통해서 얻고자 하는 부분에서 생각이 조금 달랐습니다. 그래서 각자 하나씩 서비스를 만들어보자! 라고 의견.. 2024. 12. 1. 이벤트 리스너 사용법 @Getter@RequiredArgsConstructorpublic enum EmailAlarmEventType implements StonEnumMapperType { GOODS_OFF_SCHEDULING_STOP_MAIL_ALARM("GOODS_OFF_SCHEDULING_STOP_MAIL_ALARM", "상품 판매 중단에 따른 스케줄링 취소 메일 알림"), DEFERRED_USE_LIMIT_MAIL_ALARM("DEFERRED_USE_LIMIT_MAIL_ALARM", "후불 마스터 사용 한도 알림"); private final String code; private final String title;} 첫번째로 이벤트 타입을 Enum 클래스를 생성합니다. 원하는 이벤트 타입을 예시.. 2024. 9. 17. Java 헷갈리는 것들 모음 최근에 Java를 사용하면서 헷갈렸던 것들을 가져와봤습니다. 1. @AllArgsConstructor 주의점@AllArgsConstructor를 자주 사옹하지는 않지만 처음에 서버에서 오류가 나길래 한참 해맸더니 파라미터 순서를 지키지 않아서 발생한 오류였습니다. 2. final, static 개념final은 고정하는 것, static은 어디서든 접근할 수 있음fianl이 선언되면 해당 변수를 수정할 수 없고 클래스는 상속할 수 없습니다.static이 선언되면 해당 변수, 메서드를 다른 클래스에 공유해서 생성자를 만들필요 없이 바로 사용할 수 있습니다. 3. 정적 팩터리 메서드 개념객체를 생성할 때 생성자 방식보다 정적 팩터리 메서드를 주로 사용한다. 생성자 방식은 잘 사용하지 않는 이유는 여러 .. 2024. 9. 16. 마이바티스 사용법 쿼리에서 문자열 빈값 확인하기 이렇게 직접 null과 ""인지 확인하는 것 보다는 StringUtils를 사용하는게 더 안전하다고 합니다. 리스트 컬럼 가져오기 public Response(Long addressBookFolderNo, String folderName, LocalDateTime createdAt, List groupList) { this.addressBookFolderNo = addressBookFolderNo; this.folderName = folderName; this.createdAt = createdAt; this.groupList = groupList; } .. 2024. 9. 15. @Mapper 사용법(Dto -> 엔티티 매핑) @Mapper는 어떻게 사용하는 어노테이션일까? @Mapper(config = MapstructMapperConfig.class)public interface UserMapper { UserMapper INSTANCE = Mappers.getMapper(UserMapper.class); UserMain to(UserModifyDto.ModifyPasswordByKmcDi modifyPasswordByKmcDiDto); UserMain to(UserAwakenDto.Request request, UserStatus userStatus); UserMain to(UserPaymentRegisterDto.Request request, Long userNo);} @Mapper 어노테이션은.. 2024. 9. 9. 이전 1 2 3 4 ··· 12 다음