일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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클럽
- @Builder
- @GeneratedValue
- @GenericGenerator
- @NoargsConstructor
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- ApplicationEvent
- assertThat
- async/await
- AVG
- AWS
- Azure
- bind
- builder
- button
- c++
- c++ builder
- c03
- Callback
- case when
- CCW
- chat GPT
- CICD
- Today
- Total
목록분류 전체보기 (343)
기록
1. 단위 테스트란 무엇인가?단위 테스트(Unit Test) 는 애플리케이션의 가장 작은 단위(클래스, 메서드)를 독립적으로 테스트하는 과정입니다. 개발자가 작성한 코드가 기대한 대로 동작하는지 확인하며, 주로 하나의 특정 기능에 초점을 맞춥니다.단위 테스트의 주요 목적:코드의 동작을 빠르게 확인할 수 있음.개발 초기 단계에서 버그를 발견할 가능성이 높아짐.리팩토링이나 기능 추가 시 변경된 코드가 기존 기능에 영향을 미치지 않도록 보장.2. 수동 테스트먼저, 수동 테스트로 단위 테스트를 시도해보겠습니다. 아래는 간단한 수동 테스트 코드입니다:@Testvoid add() { CafeKiosk cafeKiosk = new CafeKiosk(); cafeKiosk.add(new Americano()..
소개INI 파일은 설정 정보를 저장하는 간단한 텍스트 파일 포맷으로, 애플리케이션의 환경 설정을 저장하는 데 많이 사용됩니다. 이번 포스팅에서는 C++ Builder를 사용하여 INI 파일을 읽고 쓰는 방법을 알아보겠습니다.예제 코드아래는 C++ Builder에서 INI 파일을 생성하고 데이터를 쓰는 간단한 예제입니다.#include #include #include #pragma hdrstop#include "Main.h"//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;//----------------..
시작하면서소프트웨어 개발에서 테스트는 선택이 아닌 필수입니다. 그러나 현실에서는 "테스트를 어떻게 작성해야 할까?", "효율적인 테스트 전략은 무엇일까?"와 같은 고민에 빠지기 마련입니다. 이 시리즈는 그러한 고민에 실용적인 해답을 제공하기 위해 시작되었습니다.이 블로그 시리즈는 Inflearn의 Practical Testing 강의를 듣고 학습한 내용을 기반으로 작성되었습니다. 강의의 주요 개념과 실습 과정을 정리하고, 실제 프로젝트에 활용할 수 있는 팁을 공유합니다.이 시리즈에서 다룰 내용단위 테스트와 TDD의 기본 개념Spring & JPA 기반의 레이어드 테스트 작성법Mocking과 Stubbing을 활용한 테스트 최적화BDD 스타일과 테스트 문서화 기법더 나은 테스트를 위한 구체적 조언
문제백준 22856번 - 트리 순회유사 중위 순회를 수행하면서 이동한 횟수를 계산하는 문제입니다.유사 중위 순회는 다음 규칙을 따릅니다:현재 노드의 왼쪽 자식 노드가 존재하고 방문하지 않았다면, 왼쪽 자식으로 이동합니다.그렇지 않고 오른쪽 자식 노드가 존재하고 방문하지 않았다면, 오른쪽 자식으로 이동합니다.그렇지 않고 현재 노드가 중위 순회의 마지막 노드라면, 탐색을 종료합니다.그렇지 않다면 부모 노드로 이동합니다.중위 순회를 따르는 방식으로 이동하며, 이동한 횟수를 출력합니다.풀이1) 문제풀이트리를 left와 right 배열로 표현하여, 각 노드의 왼쪽과 오른쪽 자식 정보를 저장합니다.중위 순회의 마지막 노드를 findLastNode 함수로 찾아냅니다.마지막 노드는 오른쪽 자식이 없을 때까지 오른쪽으로..
시작하면서스프링 프로젝트에서 QueryDSL을 사용해 데이터를 업데이트할 때, 테스트 코드가 예상과 다르게 동작해 당황한 경험이 있으신가요? 이번 글에서는 QueryDSL로 데이터베이스 업데이트 후 JPA 1차 캐시와 동기화되지 않는 문제를 해결한 과정을 공유합니다.문제 상황 개요QueryDSL을 사용하여 테이블의 데이터를 직접 업데이트하는 메서드를 작성한 후, 테스트 코드에서 기대한 대로 데이터가 조회되지 않는 문제가 발생했습니다.주요 동작 흐름단계 1: JPA로 엔티티를 저장할 때, 데이터베이스에 값을 저장하고 동시에 1차 캐시(영속성 컨텍스트)에 엔티티 상태를 유지합니다.단계 2: QueryDSL의 update() 메서드를 사용하여 데이터베이스의 값을 직접 수정합니다. 하지만 이 과정에서 JPA의 ..
문제백준 20207 - 달력여러 일정이 주어질 때, 이를 달력에 배치하고 차지하는 직사각형 면적을 구하는 문제입니다. 일정은 시작일과 종료일로 주어지며, 겹치는 일정이 있는 경우 이를 높이로 표현합니다. 이를 통해 달력의 전체 면적(폭 × 높이)을 계산하는 것이 목표입니다.풀이1) 일정 마킹날짜를 기준으로 일정의 시작과 끝을 배열에 기록합니다.시작일에는 +1, 종료일 다음 날에는 -1을 기록하여 일정의 변화를 마킹합니다.이를 통해 특정 날짜에 일정이 시작되고 끝나는 구간을 표시할 수 있습니다.for (int[] pair : eventList) { int start = pair[0]; int end = pair[1]; board[start]++; board[end + 1]--;} 예를..
시작하기로그인 시스템에서 중요한 과제 중 하나는 사용자 인증 토큰의 안전한 저장과 관리입니다. 이번 포스팅에서는 AWS Elasticache Redis를 활용하여 스프링 부트 프로젝트에 확장 가능한 인증 시스템을 구축하는 방법을 공유하려고 합니다. 이전 포스팅에서는 인메모리 Map을 사용해 로컬 환경에서 간단한 토큰 관리를 구현했습니다.([Web/Spring] - 테스트 환경에서의 In-Memory Map을 활용한 로그인/로그아웃 시스템 구현) 이번에는 이를 기반으로 Elasticache Redis로 확장하여 분산 환경에서도 안정적으로 인증 시스템을 운영하는 방법을 다룹니다.1. 소개Redis는 다음과 같은 이유로 인증 토큰 관리에 적합합니다:빠른 키-값 조회: 로그인 토큰의 저장과 조회 속도가 빠릅니다..
샘플 어플리케이션 만들기: Windows VCL Application이번 포스팅에서는 Windows VCL Application을 사용하여 간단한 샘플 어플리케이션을 만드는 과정을 공유하겠습니다. 이 어플리케이션은 단일 버튼을 가지고 있으며, 버튼을 클릭할 때 "Hello World!"라는 메시지 창이 나타납니다.1. Windows VCL Application이란?Windows VCL(Application Component Library)은 Windows 플랫폼에서 네이티브 애플리케이션을 개발하기 위한 프레임워크입니다.네이티브 Windows UI: VCL은 Windows 네이티브 UI를 사용하여 성능과 호환성을 극대화합니다.간편한 이벤트 처리: VCL은 이벤트 기반 프로그래밍을 쉽게 할 수 있도록 설계되..