본문 바로가기
반응형

전체 글148

[개발일기] TA4J 이동평균 교차 전략이 뭐지? 지금 하고있는 프로젝트에서 TA4J라이브러리를 사용하고있는데 이 라이브러리에서 이동평균교차 전략 분석 이라는 기능을 제공하고 있다. 이 "이동평균 교차" 에 대해서 알아보자!이동평균 교차 전략이동평균선(Moving Average)은 일정 기간 동안의 가격 평균을 계산한 값으로, 주식 가격의 변동성을 부드럽게 표현해 추세를 파악하는데 사용된다.이동평균 교차 전략은 두 가지 이동평균선(단기와 장기)을 비교해 매매를 결정한다.매수 신호: 단기 이동평균선이 장기 이동평균선을 위로 교차할 때 (상향 돌파, Crossed Up).매도 신호: 단기 이동평균선이 장기 이동평균선을 아래로 교차할 때(하향 돌파, Crossed Down).이 전략은 주식 가격이 상승 추세로 전환될 때 매수하고, 하락 추세로 전환될 때 매도.. 2025. 3. 24.
[개발일기] Elasticsearch 클러스터 구성 해보기 기존: Elasticsearch1, Elasticsearch2, Elasticsearch3 서버를 띄우고 Elasticsearch1에만 접근하여 클러스터로 구성하였다.변경: nginx를 사용하여 health check도 하고 LB로 떠있는 서버에 알아서 통신하게 만들어 주었다.nginx.confevents {}http { upstream elasticsearch { server elasticsearch1:9200; server elasticsearch2:9200; server elasticsearch3:9200; } server { listen 9200; location / { proxy_pass http:.. 2025. 3. 8.
[Troubleshooting] #5 Docker로 띄운 Fluent-bit 에러 문제: fluent-bit 에서 elasticsearch 로 보낼때 나오는 time 값 관련 에러[2025/02/26 08:31:22] [error] [output:es:es.0] error: Output 2025-02-26T08:31:22.255077650Z {"errors":true,"took":4,"items":[{"create":{"_index":"chat_message","_id":"L8VhQZUBlJUutjxyyMyK","status":400,"error":{"type":"strict_dynamic_mapping_exception","reason":"[1:15] mapping set to strict, dynamic introduction of [@timestamp] within [_doc] .. 2025. 3. 7.
[토비의스프링] 9장-스프링 프로젝트 시작하기 1. 스프링의 기본 특징플랫폼 호환성: 스프링은 다양한 플랫폼에서 사용 가능하지만, **자바 엔터프라이즈 플랫폼(Java EE)**에 최적화되어 있습니다.주요 사용 사례:웹 클라이언트: HTTP를 통해 접근하는 웹 애플리케이션.백엔드 DB 연동: 데이터베이스와 상호작용하는 애플리케이션에 적합.핵심 목표: 의존성 주입(Dependency Injection)과 제어의 역전(Inversion of Control, IoC)을 통해 유연하고 확장 가능한 애플리케이션 개발 지원.2. 스프링 개발 생산성과 품질 향상을 위한 도구필요성: 스프링 개발의 생산성과 품질을 높이기 위해서는 적절한 도구가 필수적.권장 도구:SpringIDE 플러그인: Eclipse 같은 IDE에 통합 가능한 플러그인으로 스프링 설정 및 빈(B.. 2025. 2. 28.
[토비의스프링] 8장-스프링이란 무엇인가? 🌸 스프링의 철학과 목표 깊이 파헤치기✨ 스프링의 본질 한눈에 보기철학: 자바의 객체지향 원리를 살려 복잡성을 단순화.목표: POJO 기반으로 엔터프라이즈 개발을 쉽게.특징: 오픈소스, 모든 개발 영역을 아우르는 프레임워크.해결: 비즈니스와 기술적 요구의 충돌을 해소.🛠️ 스프링을 이해하는 핵심 포인트1️⃣ 스프링이란?정의:오픈소스 소프트웨어: 전 세계 개발자가 기여하며 발전.애플리케이션 프레임워크: 웹, DB, 배치 등 모든 기술을 통합 지원.상세 설명:단순한 라이브러리가 아니라, 애플리케이션 전체를 설계하고 실행할 수 있는 기반 제공.예: 스프링 부트는 설정을 최소화해 개발 속도를 높임.역할: 자바 개발자가 엔터프라이즈 시스템을 만들 때 필수적인 도구와 구조 제공.2️⃣ 엔터프라이즈 개발의 복잡성.. 2025. 2. 28.
[토비의스프링] 7장-스프링 핵심 기술의 응용 🌟 DI와 스프링으로 더 나은 코드 설계하기✨ 핵심 개념 한눈에 보기DI의 힘: 객체 연결을 유연하게, 코드 설계를 깔끔하게.스프링의 도구: 반복 작업 줄이고 생산성 높임.목표: 변경에 강하고 유지보수 쉬운 코드 만들기.철학: 객체지향 설계를 실현하는 기반 제공.🛠️ 설계 단계별 상세 정리1️⃣ 변경 가능한 데이터 외부화왜 필요한가?:SQL, 설정값 같은 텍스트 데이터가 코드에 섞이면 수정할 때마다 컴파일 필요 → 비효율적.어떻게 하나?:외부 리소스 사용: .sql 파일, .properties, DB 테이블에 저장.가져오기: 런타임에 동적으로 로드.구체적 예시:SQL 쿼리를 queries.sql 파일에 저장 → SqlLoader 클래스로 읽기.@Value("${db.query}")로 .properti.. 2025. 2. 28.
[토비의스프링] 6장-AOP 트랜잭션과 DI/AOP로 깔끔한 코드 만들기핵심 개념 한눈에 보기트랜잭션 분리: 비즈니스 로직과 환경 의존 코드를 분리해 책임을 명확히 한다.DI(의존성 주입): 객체 간 유연한 연결로 코드 변경을 최소화한다.AOP: 트랜잭션 같은 공통 기능을 모듈화해 관리한다.프록시: 비즈니스 로직에 부가 기능을 추가하는 중개자 역할.테스트: 로직과 환경이 분리되어 단위 테스트가 쉬워진다.트랜잭션 설계 단계별 정리트랜잭션 코드 분리왜?: 비즈니스 로직과 트랜잭션 처리(시작, 커밋, 롤백)를 분리하면 책임이 명확해진다.어떻게?:트랜잭션 처리를 전담하는 별도 클래스를 만든다.비즈니스 로직과 동일한 인터페이스를 구현한다.DI를 통해 클라이언트 코드 수정 없이 트랜잭션 기능을 추가한다.분리의 장점비즈니스 로직이 외부 리소스(.. 2025. 2. 26.
[토비의스프링] 5장-서비스 추상화 DAO와 트랜잭션 관리: 결합도 낮추고 단일 책임 원칙 지키기1. DAO와 서비스 계층의 결합도 낮추기DAO(Data Access Object)는 데이터베이스와의 상호작용을 담당하지만, 기술 변화(예: JDBC → Hibernate)가 생기면 서비스 계층 코드에도 영향을 줄 수 있습니다. 이를 방지하려면:인터페이스 활용: DAO에 인터페이스를 정의해 구현체를 분리.DI(의존성 주입): Spring 같은 DI 프레임워크를 사용해 DAO 구현체를 동적으로 주입.결과: 서비스 계층은 DAO의 구체적인 기술에 의존하지 않게 되어 결합도가 낮아짐.2. 트랜잭션과 비즈니스 로직트랜잭션 필요성: DAO를 사용하는 비즈니스 로직은 데이터 무결성을 보장하기 위해 단위 작업(트랜잭션)이 필요.트랜잭션 경계설정: 트랜잭션의.. 2025. 2. 21.
[토비의스프링] 3장-템플릿 3장에 나오는 개념을 가볍게 정리하였다.  템플릿 패턴코드에서 변경이 거의 일어나지 않으며 일정한 패턴을 유지하는 부분(고정적인 부분) 을 자유롭게 변경되는 부분(가변적인 부분) 으로부터 독립시켜 효과적으로 활용하는 방법이다.템플릿 패턴을 활용하면 공통 로직을 재사용할 수 있으며, 중복 코드를 줄이고 유지보수성을 높일 수 있다.템플릿 패턴과 관련된 개념로컬 클래스 (Local Class)특정 메서드 내부에서만 사용되는 중첩 클래스.외부 클래스의 변수를 접근할 수 있다.중첩 클래스 (Nested Class)클래스 내부에 정의된 클래스로, 외부 클래스와 논리적으로 강한 관계를 가지는 경우 사용된다.정적 중첩 클래스(Static Nested Class)와 인스턴스 중첩 클래스(Inner Class)로 나뉜다... 2025. 2. 21.
반응형