728x90

Server Programming 55

대신증권 Python API 활용하기

대신증권에서 거래, 정보 등을 하기 위한 API를 제공해준다. 몇가지 코드의 예시가 있다. 순서 1. 대신증권 CYBOS 5 HTS 설치 2. 대신증권 CYBOS Plus 설치 대신증권은 Python 32비트를 지원하기에 64비트에서는 오류가 날 수 있다. CYBOS 5 연결 코드 requierments : pypiwin32 #CYBOS Plus connection 확인 import win32com.client objCpCybos = win32com.client.Dispatch("CpUtil.CpCybos") bConnect = objCpCybos.isConnect if(bConnect == 0): print("연결 실패") exit() 기본 현금 매수 및 매도 요청 코드 import win32com.c..

MLOps 정의

ML + Devops → ML 시스템에 Devops를 적용한 것이 MLOps라고 생각한다. MLOps는 ML의 전체 생명주기를 관리함 ML 모델을 학습하고 배포하는 단계 데이터를 수집하고 분석하는 단계 Data Collection, Ingestion, Analysis, Labeling, Validation, Preparation DevOps vs MLOps MLOps는 아래와 같은 점들에서 소프트웨어 시스템과 차이를 가진다. Testing 일반적인 단위, 통합 테스트 외에 데이터 검증, 학습된 모델 품질 평가, 모델 검증이 추가로 필요하다. Deployment 오프라인에서 학습된 ML모델을 배포하는 수준에 그치는 것이 아니라, 새 모델을 재 학습하고, 검증하는 과정을 자동화해야 한다. Production..

Apache Kafka 및 메세지 큐 종류와 차이점

메세지 큐의 사용 이유 Application request에 서버가 실시간으로 response 할때 사용 Application 과 서버가 강한 결합일 경우 DB와 백엔드에서 장애발생시 Application 역시 장애발생 MQ 사용시 장점 설계를 보다 느슨한 결합할 수 있음 Application Architecture가 DB성능에 덜 영향을 받음 여러 다른 API로 부터 비동기통신이 가능 다수의 프로세스로부터 Message 처리 가능 메세지큐 종류 Kafka RabbitMQ ActiveMq Kafka 확장성, 고성능 및 높은 처리량 대용량 데이터 특화 시스템으로 범용으론 적합하지 않다. 분산시스템을 설계 → 분산, 복제 구성이 쉽다. 이점 대용량 실시간 로그처리 특화 AMQP 프로토콜이나 JSM API를 ..

RabbitMQ core, exchange

RabbitMQ에서 중요한 개념으로는 Producer, Consumer, Queue, Exchange, Binding이 있습니다. 먼저 Producer는 이름에서 알 수 있듯이, 메세지를 생성하고 발송하는 주체입니다. 이 메세지는 Queue에 저장이 되는데, 주의할 점은 Producer는 Queue에 직접 접근하지 않고, 항상 Exchange를 통해 접근하게 됩니다. 다음으로는, Consumer가 있으며, 메세지를 수신하는 주체입니다. Consumer는 Queue에 직접 접근하여 메세지를 가져옵니다. Queue는 Producer들이 발송한 메세지들이 Consumer가 소비하기 전까지 보관되는 장소입니다. Queue는 이름으로 구분되는데, 같은 이름과 같은 설정으로 Queue를 생성하면 에러 없이 기존 Q..

RabbitMQ Python 예제

메세지 큐를 송신 및 수신하는 Request, Response.py 를 생성하고 하단과 같이 활용한다. Request.py import json import pika import sys cred = pika.PlainCredentials('user', 'pwd') connection = pika.BlockingConnection( pika.ConnectionParameters(host='host_ip',credentials=cred)) channel = connection.channel() channel.exchange_declare(exchange='queue_name')#, exchange_type='fanout') param = { '전달 내용' } message = json.dumps(param)..

Spring Boot - Entity, Repository

JPA를 쉽게 사용하기 위해 스프링에서 제공하는 프레임워크 Main Keyword : Repository 사용자는 인터페이스, 메소드만 정의하면 Spring data가 이름을 분석하여 JPQL 실행 JpaRepository -> CRUD 기능을 제공하는 인터페이스해당 인터페이스를 상속받아 Spring data jpa 사용 public interface productRepository extends JPARepository, productRepositorySupport{ //CRUD Method….} ref : https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#preface 쿼리 메소드 기능 Spring Data는 메소드 이름에 있는 ..

Spring Boot - IoC, Bean, AOP 예제

Inversion of Control (IoC) ioc - 객체의 의존성을 역전시켜, 객체 간의 결합도를 줄이고 유연한 코드를 작성하게 하여 가독성 및 코드의 중복, 유지보수를 편하게 할 수 있게한다. di - 객체를 직접 생성하는 것이 아니라, 외부에서 생성한 후 주입을 시켜주는 방식 일반적으로 의존성에 대한 제어권은 객체 자기 자신이 갖지만, 첫번째 코드는 Sample이라는 클래스에서 Apple 객체를 불러오는 예제이다. 의존관계는 간단히 말해서 new라는 키워드를 통해 생성 첫번째 코드는 Apple 객체의 제어권이 Sample에게 있다는 의미, 두번째 예시는 Sample에게 있는게 아니라 SampleTest에게 있다는 것 이처럼 의존성을 역전시켜 제어권을 직접 갖지 않는 것을 IoC라고 하며, 의존..

AOP ,Transaction

AOP (Aspect Oriented Programming) 관점지향 프로그래밍이라고 불린다. 어떤 로직을 기준으로 핵심관점, 부가관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화 하는 의미 여러 곳에서 사용되는 중복되는 코드를 떼어내서 분리한다. -> 중복되는 코드 = aspect aspect로 모듈화 하고 핵심적인 비즈니스 로직에서 분리하여 재사용하겠다는 취지로 사용 AOP 주요 개념 Aspect : 중복되는 코드(모듈화 한것), 주로 부가기능 Target : Aspect를 적용할 곳 (클래스, 메서드 etc..) Advice : 실직적인 부가기능을 담은 구현체 JoinPoint : Advice가 적용될 위치, 다양한 시점에 적용이 가능 PointCut : JoinPoint의 상세한 스펙을 정의..

Bean, DI, IoC 의 설명

Bean Spring IoC 컨테이너가 관리하는 자바 객체를 뜻한다. Spring Container에 의해 자바 객체가 만들어지게 되면 이 객체를 Spring은 Spring Bean이라 칭한다. 애플리케이션의 핵심을 이루는 객체들은 Beans라고 부른다. Bean은 스프링 Ioc 컨테이너에 의해서 인스턴스화되어 조립되거나 관리되는 객체다. 빈에 관한 설명이 이해가 안될 수 있다. 한줄로 요약 하자면 그냥 자바 객체라고 생각할 수도 있다. 하지만 더 쉽게 예를들어 설명하자면 다음과 같다. 간단하게 선풍기를 만든다고 예를들면 선풍기를 1대만 만드는게 아니라 100대를 만들어야 한다. 그러면 누군가는 프로펠러를 100개 만들고, 누군가는 프레임을 100개 만들고, 누군가는 모터를 100개를 만들어야한다. 그리..

728x90
반응형