전체 글 165

개발방법의 변화

네트워크타임지 기고문 2020.12.03 우리는 무엇이 문제인가? 현업의 빠른 요구사항 구현, 기술변화 대응을 위하여 Agile 이 정착되고 있으며, IT 개발환경은 Cloud, CI/CD, DevOps 로 급속히 변화되고 있다. S/W개발의 환경적인 요인은 기술 요인, 기업 내부 요인, 외부 요인으로 나눌 수 있다. 우선 기술 요인을 살펴보면, 개발 참여 인력의 skill을 사전에 검증하기 어려우며, 구현 기술에 대한 검증 프로세스가 미흡하다. 기업 내부 요인으로는 유지보수 시 사후관리 미흡, S/W 품질관리 인력과 품질 솔루션 체계화 부족, 소스코드 품질점검 부재, 외부업체 아웃소싱 의존도가 증가되고 있다. 외부 요인 또한 IT기술 인력 수급 부족, 주 52시간제 도입, 언택트 상황으로 프로젝트 비용..

IT세미나자료 2022.09.18

SDevToolKit 시작하며

2019년 부터 오픈소스를 분석연구했다... https://www.datanet.co.kr/news/articleView.html?idxno=156955 오픈소스 적용 통해 발전하는 소프트웨어 개발방법론 - 데이터넷 [데이터넷] 기업의 다양한 내·외부 환경 요인으로 인해 소프트웨어 개발에 필요한 요건이 점차 중가하고 있다. 그렇기에 지금까지의 정성적인 개발방법이 아닌 정량적이고 체계적이면서 자동 www.datanet.co.kr 그러다가 소프트웨어 개발수명주기(SDLC) 동안 필요한 오픈소스기반의 개발지원도구를 생각했다 docker기반 지원시스템, front back end 프레임워크, 개발툴(IDE) 지원하는 솔루션을 생각해 현재까지 하고있다...이름하여 신한개발지원도구란 이름으로... 내년이면 50인데..

ShinhanDevToolKit 2022.09.16

#10 TTS 정보 조회 및 MP3 듣기, 다운로드 - AWS 음성지원 서비스를 활용한 신문 읽어주는 프로젝트

드디어 AWS Polly를 활용한 TTS 관련 내용도 마지막이 되었다. 이번에는 DynamoDB에 저장된 TTS 관련 정보 조회와 S3에 저장된 MP3를 다운로드를 하도록 하겠다. 이전 장에서 살펴봤던 DynamoDB 조회 함수 중에서 scan함수를 활용하여 DynamoDB를 조회하도록 하겠다. getNewInfo 함수는 아래와 같이 작성을 한다. import json import os import boto3 from boto3.dynamodb.conditions import Key, Attr def lambda_handler(event, context): # TODO implement client = boto3.client('dynamodb') # Table에 있는 전체 내역을 조회할 수 있음. res..

#9 번외편 : DynamoDB 조회 - AWS 음성지원 서비스를 활용한 신문 읽어주는 프로젝트

1편부터 8편까지 해서 TTS변환 mp3를 S3에 저장을 하였다. 또한 클라이언트(웹 브라우저)와 Lambda사이에 Cognito을 활용하여 연결하였다. 이제는 DynamoDB에 있는 TTS 정보를 조회하고 mp3 다운로드, 실시간 스트리밍을 지원하면 이번 프로젝트는 종료가 된다. Lambda를 통한 DynamoDB 조회를 진행하기 전에 번외 편으로 DynamoDB의 조회 함수를 정리할 필요성을 느꼈다. 따라서 이번에는 DynamoDB 조회 함수에 대해서 정리하겠다. DynamoDB에서 테이블의 데이터를 조회할 수 있는 방법은 대표적으로 4가지가 존재한다. get_item batch_get_item query scan 대표적인 4개의 조회 함수를 사용하기 전에 한가지 전제조건을 확인하자. REG_DT :..

#8 Client to Lambda - AWS 음성지원 서비스를 활용한 신문 읽어주는 프로젝트

지난번까지 해서 DynamoDB로 들어오는 데이터를 Lambda Trigger로 수신받은 후 Polly로 mp3 변환을 하고 S3에는 mp3를 보관하였다. 그리고 DynamoDB에는 mp3가 보관된 경로를 저장하도록 하였다. 이번에는 사용자가 웹페이지를 통해서 mp3 파일을 다운로드 받고 mp3 내용을 실시간으로 들을 수 있도록 만들 예정이다. 이전과 다르게 아키텍처 구조를 변경하였다. 기존에는 S3와 Lambda사이에 API Gateway를 두고 사용을 하였다. 그러나 굳이 API Gateway가 필요 없어서 제거를 하였다. 그리고 Cognito를 넣었다. 위 아키텍처의 흐름은 다음과 같이 진행 한다. S3에는 사용자가 접근 가능한 웹페이지를 업로드시킨다. Lambda에서는 DynamoDB에 접속하여 ..

#7 Lambda를 활용한 Polly 호출 - AWS 음성지원 서비스를 활용한 신문 읽어주는 프로젝트

이제부터 이 프로젝트의 최종 목표인 Polly Service를 호출해서 TTS 변환을 하고 mp3파일을 S3에 적재하는 진행 하려고 한다. 빨간 네모칸 중 Lambda에서 Polly로 넘어가고 다시 Polly에서 Lambda로 돌아오는 구간을 진행하려고 한다. 먼저 Polly를 호출하기 전에 Lambda에 S3 접근 권한이 존재해야 한다. 우선 서비스 검색에서 S3라고 검색을 한다. 그리고는 아래의 화면이 나타나게 된다. 좌측 상단의 [버킷 만들기] 버튼을 클릭해서 Bucket를 새로 만든다. S3는 Simple Storage Service의 약자로서 Web Storage이다. S3에 파일을 업로드하면은 해당 파일에 접근할 수 있는 URL을 제공하게 된다. Public권한으로 Object가 S3에 업로드..

#6 Lambda Function 작성 - AWS 음성지원 서비스를 활용한 신문 읽어주는 프로젝트

이제까지 DynamoDB와 Lambda를 Trigger 연결하였다. 이제 Trigger 연결된 Lambda에 DyanamoDB Insert 데이터가 잘 들어오는지 확인을 하고 Polly로 원하는 데이터를 보낼 수 있도록 데이터 정제 작업을 진행하도록 하겠다. 빨간색 네모칸 영역 중 Lambda 영역이다. 처음에 Lambda를 생성해 보면 아래와 같이 기본적으로 함수가 생성된다. Lambda 소스 작성방법은 여러 가지가 있다. 로컬에서 작성 후 .zip파일로 올릴 수도 있고 S3에 적재해서 Trigger로 가지고 와도 된다. 나 같은 경우는 그냥 Web화면에서 바로 작업을 하였다. 참고로 Lambda도 로컬에 환경을 만들 수 있다고 한다. 나도 아직 해보지는 않다. import json def lambda..

#5 DynamoDB, Lambda Trigger 연결 - AWS 음성지원 서비스를 활용한 신문 읽어주는 프로젝트

저번까지는 Python으로 crawling 프로그램을 만들고 crawling 된 내용을 AWS Lambda에 Insert 시키는 것 까지 하였다. 이번에는 DynamoDB에 데이터가 Insert가 되면은 Lambda에서 Insert 된 데이터를 불러올 수 있도록 Trigger 연결을 하도록 하겠다. 위의 사진 중 빨간색으로 네모칸 처리한 부분을 진행 할 예정이다. 우선 AWS 콘솔창에 로그인을 한다. 그리고 Lambda를 검색 후 해당 섹션에 들어온다. 좌측에 보면은 [함수]라는 메시지가 존재한다. 함수 메뉴를 누르면 우측에 [Create Funtion]라는 버튼이 나온다. [Create Funtion]이라는 버튼을 클릭하게 되면 아래와 같은 화면이 나오게 된다. 나의 경우 [새로작성]을 선택한다. 그리..

[CI/CD] 사내저장소 Nexus repository

개요 프로젝트 진행 시 외부 리포지토리를 접속하기 어렵습니다. 그러므로 사내망에 프로젝트 진행 시 필요한 라이브러리를 다운받을수 있게 하는 것이 꼭 필요하다. 개발자들은 필요한 라이브러리를 동일하게 제공 받고 회사에서는 당사 중요 라이브러리를 자체적으로 관리할수 있기 때문에 필수 요소라고 할수있다. - 회사/단체의 화이트 리스트로 인해 외부 리포지토리에 접속하기 어려운 경우 프록시 역활. - 특히나 비상시 외부 인터넷이 느리거나 리포지토리가 다운되는등 여러 상황에서도 빠르게 받을 수 있다. - 현재 메이븐에 올라와 있지 않은 자료들은 효율적으로 관리하기 위하여. - 한번 다운로드 받은 디펜던시는 로컬에 저장되지만 컴퓨터를 포멧하거나 동료가 시작할때 설정을 해야한다. - 서버에도 동일한 설정들을 해줘야함으..