| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- WSLHostPatcher
- beautifullsoup
- vercel
- reactnative
- springboot
- kidznote
- java
- wsl2
- flyio
- shadcn-ui
- Delphi
- oraclecloude
- superbase
- Book
- stepzen
- tessrect
- TypeScript
- FastAPI
- edgestore
- spring
- svelte
- dokerfile
- AWS
- bpl
- docker
- Markdown
- Module
- react
- Expo
- Nextjs
- Today
- Total
목록전체 글 (55)
Blog
델파이(Delphi) 개발 시 화면(Form) 간에 독립성을 유지하면서 복잡한 데이터를 주고받거나, 함수의 매개변수가 5개, 10개 이상으로 늘어나는 '롱 파라미터 리스트(Long Parameter List)' 현상은 유지보수를 어렵게 만드는 대표적인 원인임.이를 해결하기 위해 윈도우 메시지를 이용한 폼 간 비결합 통신은 물론, 일반 함수 호출 시에도 수십 개의 인자를 단 하나로 압축할 수 있는 타입 명시형 TModuleLink 클래스의 설계와 두 가지 실무 활용 예제를 정리함.1. 아키텍처 개념 및 데이터 흐름인자가 추가될 때마다 함수의 선언부를 고치거나 화면 간에 유닛을 직접 참조(uses)하는 방식은 결합도를 높여 관리가 힘들어짐.해결책: 모든 파라미터를 TModuleLink라는 단 하나의 객체에 ..
1. 아키텍처 전체 구조 레이아웃전체적인 의존성 구조는 아래와 같이 철저히 단방향 하향 참조로 구성됨.BaseCommon.bpl (레이어1): 서드파티 컴포넌트, 공통 유틸리티, DB 연결 정보, 그리고 모듈 간 통신을 위한 인터페이스(Interface)를 포함함.Main.exe (레이어2): 구체적인 기능 화면을 직접 들고 있지 않는 가벼운 껍데기임. 화면을 언제 띄울지 제어하는 엔진 역할만 수행함.A.bpl, B.bpl (레이어3): 실제 업무 화면(매출관리, 고객관리 등)과 상세 로직이 포함됨. 모듈 간에는 서로 절대 참조하지 않음.2. 각 요소별 핵심 역할 및 내부 구현 방식① BaseCommon.bpl (모든 패키지의 기반)모든 컴포넌트(DevExpress, TMS 등)에 대한 참조 정보와 공통..
BPL(Borland Package Library) 모듈화 아키텍처 정리임1. BPL(Borland Package Library) 개요정의: 델파이 전용 DLL. 공통 코드, 컴포넌트, 화면(Form)을 별도 파일로 분리하여 메인 프로그램(.exe) 용량 최적화 및 모듈별 독립 업데이트 가능.로딩 방식:정적 로딩 (Runtime Packages): 앱 시작 시 필요한 BPL을 메모리에 자동 로드. 구현이 단순하나 초기 로딩 속도와 메모리 소모 증가.동적 로딩 (Dynamic Loading): 특정 메뉴 실행 시에만 BPL을 메모리에 올리고 사용 후 해제. 대규모 프로젝트 표준 방식.2. 실무 분리 개발의 핵심: OpenForm 패턴BPL 모듈화 프로젝트에서 주로 사용되는 화면 호출 함수 형태임.funct..
6.진짜로 데이터를 깊이 파고들기Spring Boot 애플리케이션에서 데이터를 다루는 일은 단순히 저장하고 불러오는 것을 넘어, 시스템 전체의 구조와 품질에 큰 영향을 미친다.이 장에서는 Spring Data를 활용해 다양한 저장소(Redis, JPA, MongoDB)에 데이터를 저장하고 읽어오는 여러 접근 방식을 실제 예제와 함께 설명한다.데이터 접근의 복잡성과 Spring Data의 등장현대 애플리케이션은 다양한 데이터 저장소를 사용하지만, 각각의 API, 설정, 쿼리 언어가 다르기 때문에 복잡도가 커진다.이를 해결하기 위해 등장한 Spring Data는 저장소마다 다른 접근 방식을 하나의 일관된 프로그래밍 모델로 추상화해준다.Spring Data는 크게 두 가지 접근 방식을 제공한다.템플릿 기반: ..
Delphi 열거형 및 집합 레코드 헬퍼를 사용한 기능 확장Delphi의 기본 열거형 타입은 각 멤버가 정수 값(서수)을 가지지만, 해당 값에 대한 커스텀 문자열 설명을 직접 정의하는 내장 구문은 없습니다. 이를 개선하고 열거형 및 열거형 집합을 더 편리하게 사용하기 위해 레코드 헬퍼(Record Helper) 기능을 활용할 수 있습니다. 레코드 헬퍼는 기존 타입의 정의를 변경하지 않고도 해당 타입에 메서드나 속성을 추가할 수 있게 해줍니다.다음은 레코드 헬퍼를 사용하여 열거형과 그 집합에 기능을 추가하는 코드 구조 예시입니다.unit uEnumTypes;interfaceuses System.SysUtils;type EnumType = (etNum1, etNum2, etNum3); EnumT..
5. Spring Boot 애플리케이션 구성 및 점검서비스가 커지고 운영 환경이 다양해질수록 "설정"의 중요성은 커집니다. Spring Boot는 애플리케이션을 동적으로 구성하고 상태를 점검할 수 있도록 다양한 기능을 제공합니다. 이번 글에서는 Spring Boot의 구성 옵션부터 Actuator를 활용한 점검 방법까지 하나씩 알아봅니다.애플리케이션 구성설정 소스 우선순위Spring Boot는 여러 소스에서 설정값을 읽을 수 있으며, 아래와 같은 우선순위로 처리됩니다 (하위일수록 우선순위가 높음):JAR 내부 application.propertiesJAR 외부 application.properties프로필별 속성 파일 (application-dev.properties)환경 변수명령줄 인수 등@Value ..
4. Spring Boot 애플리케이션에 데이터베이스 접근 기능 추가하기Spring Boot와 데이터베이스 연동애플리케이션은 대개 상태를 저장해야 하며, 이를 위해 데이터베이스가 필요합니다. 예를 들어, 온라인 쇼핑몰에서 상품 정보, 사용자 계정, 주문 내역 등을 데이터베이스에 저장하고 관리합니다. 이번 장에서는 Spring Boot 애플리케이션에 데이터베이스 접근 기능을 추가하는 방법을 설명합니다.자동 설정 준비하기Spring Boot는 개발자가 반복적으로 작성하는 코드를 단순화하며, 데이터베이스 접근을 위한 기본 설정을 제공합니다. 예를 들어, 데이터 소스 설정, 트랜잭션 관리, JPA 설정 등을 자동으로 처리하여 개발자가 비즈니스 로직에 집중할 수 있도록 돕습니다. 필요한 속성 값을 설정하거나 빈을..
3. 당신의 첫 Spring Boot REST API 만들기현대 애플리케이션 개발에서는 기능을 독립적인 마이크로서비스로 분리하는 추세이며, 이들 간의 통신에 API가 핵심적인 역할을 합니다.REST(Representational State Transfer) 는 HTTP 기반의 아키텍처 스타일로, 각 요청이 필요한 모든 정보를 담고 있어 서버가 클라이언트 상태를 저장할 필요가 없는 무상태(stateless) 통신을 지향합니다.REST API와 HTTP 동사REST API는 표준 HTTP 동사를 사용하여 리소스에 대한 작업을 표현합니다:GET: 조회 (Read)POST: 생성 (Create)PUT: 전체 수정 (Update) / 생성DELETE: 삭제 (Delete)Spring Boot 구현 요약1. 설정..