본문 바로가기
반응형

전체 글343

2025-02-17 (월) 2025-02-17 (월)🚀 오늘의 핵심 배움API에서 발생할 수 있는 예외를 미리 정의하고, @ExceptionSwagger를 활용하여 API 문서화와 일관성을 유지해야 한다.AES-GCM 암호화된 데이터를 저장할 때, 충분한 VARCHAR 길이를 설정하는 것이 중요하다.Boolean 값을 TINYINT(1)로 저장할 때, 1과 0 이외의 값이 들어올 가능성이 있으므로 애플리케이션에서 검증이 필요하다.JPA @OneToOne 관계에서는 FetchType.LAZY를 기본으로 설정해야 성능 이슈를 줄일 수 있다.Hibernate Bytecode Enhancement를 활성화하면 대부분의 EAGER 관계가 LAZY로 최적화되지만, 명시적으로 EAGER인 필드는 그대로 유지된다.1️⃣ API 설계 및 예외 .. 2025. 2. 17.
원형 큐 1. 원형 큐란?원형 큐(Circular Queue)는 일반적인 큐(Queue)의 한계를 극복한 자료구조로,배열을 원형 형태로 연결하여 큐의 공간을 효율적으로 활용하는 방식이다.✅ 일반적인 큐의 문제점일반적인 선형 큐(Linear Queue)는 enqueue(삽입)과 dequeue(삭제)를 반복하면 배열의 앞쪽 공간이 비어도 재사용할 수 없음즉, 배열의 크기를 초과하면 사용되지 않는 공간이 발생하여 비효율적임✅ 원형 큐의 특징선형 큐의 메모리 낭비 문제를 해결배열의 끝과 시작이 연결된 형태배열을 넘어가면 다시 처음으로 돌아갈 수 있음 (모듈러 연산 활용)2. 원형 큐 vs 선형 큐 비교비교 항목선형 큐 (Linear Queue)원형 큐 (Circular Queue)메모리 활용비효율적 (삭제 후 공간 재사.. 2025. 2. 14.
2025-02-14 (금) 📌 TIL (Today I Learned) - 2024.02.14오늘은 API 설계 및 데이터베이스 관련 개념을 정리하면서, 여러 고민을 해결했다.🚀 오늘의 배움SUT/DoC 개념을 명확히 이해하고, 테스트에서 검증하는 범위를 고민해볼 필요가 있다.추적 코드(Tracking Code) 설계 시, TSID와 project_id 암호화 방식의 장단점을 비교해야 한다.AES-GCM을 사용하면 Base64 인코딩 후 약 55바이트가 필요하므로 VARCHAR(64)로 설정하는 것이 적절하다.created_at과 updated_at 필드는 MySQL에서 자동 처리되지만, INSERT 시 updated_at을 명시적으로 설정하는 것이 좋다.API 명세서를 작성할 때는 Markdown을 기본으로 하고, 자동화가 필.. 2025. 2. 14.
개발 도서 추천 및 공부 공부- AutoParams + Classicist개발 도서- 구글 엔지니어는 이렇게 일한다.- DDD Quickly 2025. 2. 14.
2025-02-13 (목) 📌 TIL (Today I Learned) - 2025.02.13✅ 테이블 네이밍은 특정 도메인을 반영해 유지보수성을 고려하여 결정✅ 부분 수정이 필요하면 PATCH 사용 → null 필드 무시하는 방식으로 구현✅ int[] 내림차순 정렬은 Arrays.sort() 후 직접 뒤집는 것이 효율적✅ HashMap을 활용하여 O(n²) → O(n log n)로 성능 최적화🔹 1. 데이터베이스 테이블 네이밍 고민특정 데이터를 저장하는 테이블을 만들 때, 테이블 명을 일반화할지, 특정 도메인과 연결할지 고민예시: analytics vs domain_analyticsanalytics → 범용적인 애널리틱스 데이터 저장소domain_analytics → 특정 도메인(예: 프로젝트, 사용자 등)에 특화된 애널리틱스.. 2025. 2. 13.
2025-02-12 (수) 📌 TIL (Today I Learned) - 2025-02-121. JPA 연관관계 (1:N, N:1)@ManyToOne을 B 엔티티에서 A 엔티티에 설정하면 B가 N, A가 1인 관계가 된다.즉, A(1) ↔ B(N) 관계를 의미하며, B가 A의 외래 키(FK)를 가지게 된다.@Entityclass B( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long? = null, @ManyToOne @JoinColumn(name = "a_id") val a: A)@Entityclass A( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long? = .. 2025. 2. 12.
2025-02-11 (화) 📌 TIL (Today I Learned) - Kotlin 문법 총정리 & 코루틴 실행 방법🚀 오늘 배운 점Kotlin 기본 문법을 총 정리하면서 주요 개념을 다시 한번 확실히 다졌다.코루틴을 main 함수에서 실행하는 방법을 배웠고, runBlocking과 CoroutineScope.launch의 차이점을 이해했다.안드로이드에서 UI 스레드에서 실행하려면 Dispatchers.Main을 사용해야 함을 알게 됐다.오늘은 Kotlin의 주요 문법을 정리하고, 추가로 코루틴을 main 함수에서 실행하는 방법을 배웠다.✅ 1. Kotlin 기본 문법 정리🔹 변수와 상수val: 변경 불가능한 값 (Immutable)var: 변경 가능한 값 (Mutable)const val: 컴파일 타임 상수 (탑 레벨에서.. 2025. 2. 11.
2025-02-10 (월) 1️⃣ MySQL 테이블의 DDL 구조 확인 방법MySQL에서 이미 생성된 테이블의 구조를 확인할 때, DESC table_name 대신 DDL (Data Definition Language) 구조를 확인하는 방법은 다음과 같다:SHOW CREATE TABLE table_name\G;✅ SHOW CREATE TABLE 명령어는 테이블 생성 시 사용된 CREATE TABLE 문을 그대로 출력해 주며, \G를 붙이면 가독성이 좋은 형태로 출력됨.✅ 기본 키, 외래 키, ENGINE, DEFAULT CHARSET 등의 정보를 포함한 전체 DDL이 표시됨.2️⃣ DB 테이블에 analytics_yn 필드 추가 시 기본값 고민프론트엔드에서 토글 버튼을 통해 정보 수집 여부(true / false)를 설정하는 기능.. 2025. 2. 10.
2025-02-06 (목) 🚀 오늘의 배운 점 정리✔ @Valid는 내부 객체에는 @field:Valid가 필요!✔ @field:Url을 사용해야 Validation이 정상적으로 동작.✔ shouldContainExactly로 검증 메시지를 정확하게 체크하는 것이 좋음.✔ 테스트 코드에서 요청 객체를 함수로 만들어 중복을 줄이면 가독성이 좋아짐.1️⃣ Kotlin Validation에서 @Valid 사용 시 내부 객체 적용 방법@Valid는 @RequestBody에 붙이면 자동 검증되지만, 내부 객체(data class 안의 data class)에도 검증을 적용하려면 필드 레벨에서 @field:Valid를 추가해야 한다.@ResponseBody @Valid request: RequestDTO (1차 객체)RequestDTO > .. 2025. 2. 6.
728x90
반응형