[Spring] DynamoDB Enhanced Client 사용 기 (feat. AWS SDK V2)
DataBase 2021. 12. 23. 21:57

저번 글에서는 Spring data를 사용하여 DynamoDB에 대한 CRUD를 구현 했다. Spring data프로젝트에서 DynamoDb에 대한 지원은 하지 않고 있고 안정적인 방식은 AWS에서 제공하는 SDK를 사용하는 것이다. V1의 DynamoDBMapper를 사용한 예제는 많으나 V2의 Enhance Client를 사용하여 구현한 가이드를 찾기 힘들어 정리하려고 한다. Maven 설저 com.amazonaws aws-java-sdk-bom 1.11.1000 pom import com.amazonaws aws-java-sdk-dynamodb AWS SDK에서 dependency를 관리해주는 aws-java-sdk-bom를 추가해 주고 밑 부분에 DynamoDB에 대한 의존성을 추가 해준다. Co..

[python] Docker 기반으로 Batch성 업무를 간소화 하자
Python 2021. 12. 22. 22:47

업무를 하다보면 batch성 작업을 여러 서버에서 해야 하는 일이 생긴다. 이 글에서는 python을 이용한 환경변수 읽어오기 기능으로 batch성 작업을 Docker image로 만들어서 여러 서버에서 쉽게 변수만 수정하는 방법을 설명 하려고 한다. Dockerfile 작성 본 글은 python 3.7 기반의 이미지를 사용하여 작성되었다. FROM python:3.7 COPY ./script /app/script WORKDIR /app/script RUN pip3 install -r requirements.txt ENTRYPOINT ["python", "main.py"] script 폴더에는 실행되여햐 할 파일과 lib를 설치 할 수 있는 requirements.txt가 들어 있다. requiremen..

[Tools] MobaXterm ssh 원격 프로그램
이모저모 2021. 12. 22. 20:08

Windows용 ssh 프로그램 중에서 단언컨데 기능적으로 최고인 것은 MobaXterm일것이다. 다년간 이 프로그램을 사용하면서 그 편리함에 적응되여 Mac OS을 사용하면 비슷한 프로그램을 찾게 되는데 지금까지는 발견 못했다. 단순한 ssh를 넘어서 편리한 기능들을 많이 제공해 준다. 편리한점 ssh 원격에 대한 프로파일을 관리해 준디. 여러 세션을 열어서 한눈에 볼 수 있게 만들어 준다. sftp를 이용하여 파일을 바로바로 host와 교환이 가능하다. 설치 https://mobaxterm.mobatek.net/ 위의 사이트를 방문하에 Home Edition을 다운 받은 후 사용하면 된다. 설정 ssh원격 프로그램처럼 아이디 비번을 넣고 실행하면 된다. 특이한 점은 user와 암호를 관리해 준다. m..

[Python] Multiprocessing pool를 이용하여 batch job 처리
Python 2021. 12. 21. 21:59

업무적 수요로 batch성 업무를 처리하는 일은 다반사다. Python에는 제대로 된 thread 가 없어 process로 풀을 구성하여 구현하는 법을 정리한다. 프로세스 pool로 돌리기 import multiprocessing def put_data(a,b): #업무 코드 if __name__=="__main__": #풀에서 가용한 CPU 개수 설정 # pool = mp.pool(mp.cpu_count()) pool = multiprocessing.Pool(processes=6) step = 10000 idx =100000 forList =[] while(idx< 5000000): forList.append((idx, idx+step)) idx =idx + step # forList.append() ..

[Python] DynamoDB 및 Mysql 접근법
DataBase 2021. 12. 21. 21:44

Python으로 좀 더 쉽고 간편하게 업무적인 요구 사항을 만족하는 스트립트를 만들 수 있다. 이번글의 Mysql 접속 방법과 AWS DynamoDB를 접근하는 방법에 대해 정리하겠다. 설치 pip3 install boto3 pip3 install pymysql 기본적으로 python3.7를 사용하여 구성 하였다. MySQL def selectData(IdFrom,IdTo): #Mysql 연결 conn = pymysql.connect(host='localhost', user='root', password='test', db='test', charset='utf8', port=3306) cur = conn.cursor() sql = "select * from book where book_id>%s AND ..

[DynamoDB] Partition Key 설계
DataBase 2021. 12. 21. 09:08

DynamoDB는 여타 다른 key-value DB와 다르게 설계되여 있다. 이글 에서 언급했다 싶이 Data는 partition key로 분리되여 저장되고 하나의 partition의 최대 크기는 10GB이다. Partition 키 설계 DynamoDB에는 두가지 방식의 Partition key를 가질 수 있다. 단일 partition key 방식 데이터를 patition key에 의존하는 방식으로 저장된다. 내부에 hash 함수가 있어 partition key로 저장된 item은 hash 함수의 결과에 의하여 지정된 위치에 저장된다. 이 방식을 채용하면 partition내의 데이터는 순서에 관계 없이 저장되고 읽기 동작이 느리다. 최대 장점은 쓰기 동작에 있어 최대한 많이 분산 할 수 있다는 점이다. ..

[Tools]WSL2에서 X410 사용
이모저모 2021. 12. 19. 22:02

앞글에서 X2Go을 이용한 WSL2을 이용한 개발 환경 설정한 내용을 포스팅 했다. 오늘은 좀 더 간편한 방법인 X410(유료)를 사용함에 있어 설정과 사용 소감을 적어 보려고 한다. (이글은 WSL2 기반으로 작성 되었다.) 설치 MS app store에서 바로 구매 하여 설치가 가능하다. https://x410.dev/ 이 사이트를 방문하여 구매 해도 된다. Display 환경 설정 WSL2에서 아래와 같이 환경 설정을 추가해 준다. echo '[ -z $DISPLAY ] && export DISPLAY=127.0.0.1:0.0' >> ~/.bashrc X410 설정 작업표시중에서 해당 앱을 클릭하고 'Allow Public Access'를 체.(참고) InteliJ 설치 아래 명령어를 이용하여 설치..

[Spring] Eureka
Spring 2021. 12. 19. 21:39

MSA 아키텍쳐에서 각 서비스의 IP와 Port 정보를 저장하고 제공하는 Service Discovery 이다. 주요 동작 MSA는 구동 시 Eureka Server에 자신의 IP와 Port를 API 방식으로 등록합니다. 등록된 서비스는 주기적인 Health check를 통해 서비스 상태를 체크합니다.(기본 30초 주기, 3번 체크 후 서비스 불가능 하면 삭제) Eureka Client는 30초에 한번씩 서버로 부터 모든 서비스 정보를 가져와 자신의 가지고 있는 정보를 업데이트 합니다. Server 설정 및 Client 사용 https://www.tutorialspoint.com/spring_boot/spring_boot_eureka_server.htm