일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 1차원 DP
- 2차원 dp
- 99클럽
- @BeforeAll
- @BeforeEach
- @Builder
- @Entity
- @GeneratedValue
- @GenericGenerator
- @NoargsConstructor
- @Query
- @Table
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- ApplicationEvent
- assertThat
- async/await
- AVG
- AWS
- Azure
- bind
- builder
- button
- c++
- c++ builder
- c03
- Today
- Total
목록전체 글 (241)
기록
테스트 코드에서 assertThat을 사용할 때 가장 큰 장점은 가독성과 다양한 조건 메서드입니다. 아래 글에서는 assertThat과 함께 자주 사용하는 주요 메서드를 정리하고 예제 코드를 통해 각각의 메서드가 어떤 상황에 적합한지 설명하겠습니다.1. 기본 비교 메서드1-1. isEqualTo(expected)실제 값이 기대 값과 같은지 비교합니다. 가장 기본적인 비교 메서드입니다.assertThat(10).isEqualTo(10);assertThat("Hello").isEqualTo("Hello");1-2. isNotEqualTo(expected)실제 값이 기대 값과 같지 않은지 비교합니다.assertThat(10).isNotEqualTo(5);assertThat("Hello").isNotEqualT..
1. 문제 상황얼마 전, Kafka Consumer가 특정 메시지를 받아 DB에 저장하는 기능을 담당하는 서비스를 운영하던 중 Dto를 수정하는 일이 생겼습니다. 테스트 코드를 위해 생성자가 필요했고, 이에 DTO 클래스에 @Builder 어노테이션을 추가했습니다. 이를 통해 테스트 코드에서 MyDto.builder().dataId("testId").name("testName").build()와 같이 편리하게 객체를 생성할 수 있었습니다.수정된 코드는 다음과 같습니다:@Getterpublic class MyDto { private String dataId = "11111"; private String name = "22222"; // 추가 시작 @Builder public M..

1. 들어가며웹 애플리케이션 개발에서 프론트엔드와 백엔드를 통합하는 방식은 개발자에게 중요한 선택 중 하나입니다. Java 생태계에서는 Spring Boot와 같은 백엔드 프레임워크가 널리 사용되고, 프론트엔드에서는 React, Angular, Vue.js와 같은 자바스크립트 프레임워크가 주류를 이루고 있습니다.하지만 Vaadin을 사용하면 Java만으로 프론트엔드와 백엔드를 모두 개발할 수 있습니다. 이 글에서는 Vaadin의 특징을 소개하고, 간단한 게시판 애플리케이션 예제를 통해 실제로 Vaadin이 어떻게 동작하는지를 보여드리겠습니다. 2. Vaadin이란 무엇인가?Vaadin은 Java 기반의 풀스택 웹 프레임워크로, 백엔드와 프론트엔드 개발을 통합할 수 있는 강력한 도구입니다. 주요 특징은 다..

개요로컬에서 환경 설정 파일을 관리할 때, .gitignore를 이용해 민감 정보가 Git에 업로드되지 않도록 할 수 있습니다. 하지만 로컬에서 직접 관리하다 보면 파일 갱신을 동료에게 수동으로 공유해야 하는 불편함이 있었습니다. 이를 해결하기 위해 여러 대안을 검토했고, 최종적으로 AWS Systems Manager Parameter Store를 활용하기로 결정했습니다.1. 기존의 문제점로컬 환경 변수 관리의 불편함기존에는 .env 파일을 .gitignore에 추가하여 관리했습니다.하지만 팀원 간 환경 변수를 공유할 때, 별도의 방식(메신저, 이메일 등)으로 전달해야 했습니다.파일 업데이트 시 동기화가 어려웠으며, 실수로 Git에 올라가는 경우도 발생할 위험이 있었습니다.보안 문제환경 변수 파일을 안전..
시작하면서QueryDSL을 사용하여 데이터를 조회할 때 DTO를 반환하는 방법에는 크게 두 가지가 있습니다: Projections.constructor를 사용하는 방법과 **new QUserResponse(...)**를 사용하는 방법입니다. 이 글은 새로운 도메인에 대한 쿼리를 작성하려는 과정에서 작성되었습니다. 기존 도메인들을 살펴보니 두 방식이 혼재되어 있어, 어떤 방법을 선택해 DTO를 매핑하는 것이 더 적합할지 고민이 생겼습니다. 1. Projections.constructor 사용Projections.constructor는 QueryDSL이 자동으로 DTO의 생성자를 호출하여 데이터를 매핑합니다. 예를 들어, 사용자 데이터를 단순히 가져와 응답 객체로 매핑하는 경우, 이 방식은 코드가 간결하고 ..

시작하면서JPA에서 @Query 어노테이션을 사용하여 쿼리를 작성하던 중 문법 오류를 겪었습니다. 이 오류의 원인은 바로 nativeQuery 옵션의 사용 방식에 있었습니다. nativeQuery는 JPQL(JPA Query Language)이 아닌 네이티브 쿼리(데이터베이스 종속적인 쿼리)를 사용하겠다는 의미입니다. 따라서 JPQL 문법으로 작성한 쿼리가 네이티브 쿼리로 처리되면서 문제가 발생한 것입니다.발생한 오류아래는 실제로 작성한 코드와 테스트 실행 결과입니다.@Query(value = "SELECT o FROM orders o " + "WHERE o.registeredDateTime >= :startDateTime " + "AND o.regist..
1. 서론: hawkBit와 Vaadin의 만남디바이스 소프트웨어 업데이트 관리를 위한 오픈소스 프로젝트인 hawkBit를 분석하는 과정에서 Vaadin 프레임워크를 발견하게 되었습니다. hawkBit은 Java 기반으로 작성된 백엔드와 웹 UI를 제공하는 프로젝트로, UI 구현에 Vaadin 프레임워크가 사용된 것이 인상적이었습니다. 이를 계기로 Vaadin에 대해 더 깊이 알아보고 학습을 시작하게 되었습니다.특히 hawkBit의 /hawkbit-simple-uiGit 주소 저장소는 Vaadin을 사용하여 간단한 배포 화면을 구성하고 있었으며, 다음과 같은 구조로 구성되어 있습니다.위 디렉토리 구조에서 볼 수 있듯이, AboutView.java, ConfigView.java, LoginView.java..
문제백준 22856번 - 트리 순회유사 중위 순회를 수행하면서 이동한 횟수를 계산하는 문제입니다.유사 중위 순회는 다음 규칙을 따릅니다:현재 노드의 왼쪽 자식 노드가 존재하고 방문하지 않았다면, 왼쪽 자식으로 이동합니다.그렇지 않고 오른쪽 자식 노드가 존재하고 방문하지 않았다면, 오른쪽 자식으로 이동합니다.그렇지 않고 현재 노드가 중위 순회의 마지막 노드라면, 탐색을 종료합니다.그렇지 않다면 부모 노드로 이동합니다.중위 순회를 따르는 방식으로 이동하며, 이동한 횟수를 출력합니다.풀이1) 문제풀이트리를 left와 right 배열로 표현하여, 각 노드의 왼쪽과 오른쪽 자식 정보를 저장합니다.중위 순회의 마지막 노드를 findLastNode 함수로 찾아냅니다.마지막 노드는 오른쪽 자식이 없을 때까지 오른쪽으로..