일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 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
목록전체 글 (353)
기록
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에 올라가는 경우도 발생할 위험이 있었습니다.보안 문제환경 변수 파일을 안전..
소개이 포스팅에서는 C++ Builder를 사용하여 INI 파일의 경로를 사용자에게 직접 입력받지 않고, 파일 다이얼로그를 통해 선택하도록 하는 방법을 설명합니다. VCL과 Windows API를 이용한 두 가지 방법을 소개합니다.- 이전 포스팅 : 2024.09.05 - [Desktop] - [C++ Builder] INI 파일 다루기 : 파일 쓰기(1)예제 코드1. UI 구성하기먼저, C++ Builder의 폼 디자인에서 다음과 같은 컴포넌트를 추가합니다:TButton: btnOpenFolderVcl (VCL 방식으로 폴더 열기)TButton: btnOpenFolderWin (Windows API 방식으로 폴더 열기)TEdit: edtFilePath (선택된 폴더 경로 표시)2. VCL 방식으로 폴더..
시작하면서QueryDSL을 사용하여 데이터를 조회할 때 DTO를 반환하는 방법에는 크게 두 가지가 있습니다: Projections.constructor를 사용하는 방법과 **new QUserResponse(...)**를 사용하는 방법입니다. 이 글은 새로운 도메인에 대한 쿼리를 작성하려는 과정에서 작성되었습니다. 기존 도메인들을 살펴보니 두 방식이 혼재되어 있어, 어떤 방법을 선택해 DTO를 매핑하는 것이 더 적합할지 고민이 생겼습니다. 1. Projections.constructor 사용Projections.constructor는 QueryDSL이 자동으로 DTO의 생성자를 호출하여 데이터를 매핑합니다. 예를 들어, 사용자 데이터를 단순히 가져와 응답 객체로 매핑하는 경우, 이 방식은 코드가 간결하고 ..
시작하면서소프트웨어 아키텍처는 애플리케이션의 확장성과 유지보수성을 결정짓는 핵심 요소로, 설계 선택에 따라 개발 과정과 결과물에 큰 영향을 미칩니다. Layered Architecture(계층형 아키텍처)와 Hexagonal Architecture(헥사고날 아키텍처)는 서로 다른 설계 철학을 기반으로 한 대표적인 아키텍처 방식입니다. 이 글에서는 두 아키텍처의 이론적 기반과 실무적 차이를 비교하고, Kafka와 MySQL을 활용한 현실적인 예제를 통해 그 특성을 심도 있게 분석합니다.Layered Architecture (계층형 아키텍처)Layered Architecture는 소프트웨어를 여러 계층으로 나누어 설계하는 전통적이고 직관적인 방식입니다. 각 계층은 서로 독립적이면서도 특정한 역할을 수행하며,..
시작하면서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..
TDD(Test Driven Development)소프트웨어 개발이 점점 복잡해지면서 코드 품질과 유지보수성은 중요한 과제가 되었습니다. TDD(Test Driven Development, 테스트 주도 개발)는 이러한 과제를 해결하기 위해 고안된 개발 방법론으로, 코드 작성 전에 테스트를 먼저 작성하고 이를 통해 개발을 진행합니다.TDD의 핵심 원칙:1. 테스트 작성 → 코드 작성 → 리팩토링을 반복합니다.2. 테스트는 코드의 안정성과 품질을 보장하는 필수 요소입니다.3. 작은 단위로 빠른 피드백을 얻어 점진적으로 기능을 개발합니다.왜 TDD가 중요한가?코드 품질 향상: 테스트가 요구사항을 보장하며, 불필요한 코드 작성을 방지합니다.빠른 피드백: 코드 작성 후 바로 동작 여부를 확인할 수 있어 개발 속도..