의료, 금융 서비스, 공공 부문 및 기타 업계의 AWS 고객은 수십억 개의 문서를 이미지 또는 PDF로 저장합니다. 아마존 단순 스토리지 서비스 (아마존 S3). 그러나 텍스트, 양식, 표 및 기타 구조화된 데이터를 추출할 때까지 LLM(대형 언어 모델)용 문서에 잠겨 있는 정보를 사용하거나 검색하는 등의 통찰력을 얻을 수 없습니다. 다음과 같은 AI 서비스를 사용하는 AWS 지능형 문서 처리(IDP)를 통해 아마존 텍사스을 사용하면 업계 최고의 기계 학습(ML) 기술을 활용하여 PDF 또는 문서 이미지(TIFF, JPEG, PNG)의 데이터를 빠르고 정확하게 처리할 수 있습니다. 문서에서 텍스트를 추출한 후 이를 사용하여 기초 모델을 미세 조정할 수 있습니다. 기초 모델을 사용하여 데이터 요약, 또는 데이터베이스로 보냅니다.
이 게시물에서는 대규모 문서 모음을 원시 텍스트 파일로 처리하고 Amazon S3에 저장하는 데 중점을 둡니다. 우리는 이 사용 사례에 대해 두 가지 솔루션을 제공합니다. 첫 번째를 사용하면 Jupyter 노트북을 포함한 모든 서버 또는 인스턴스에서 Python 스크립트를 실행할 수 있습니다. 이것이 시작하는 가장 빠른 방법입니다. 두 번째 접근 방식은 다음을 사용하여 다양한 인프라 구성 요소를 턴키 방식으로 배포하는 것입니다. AWS 클라우드 개발 키트 (AWS 씨디케이) 구성. AWS CDK 구성은 문서를 처리하고 엔드 투 엔드 IDP 파이프라인을 구축할 수 있는 탄력적이고 유연한 프레임워크를 제공합니다. AWS CDK를 사용하면 수정을 포함하도록 기능을 확장할 수 있습니다. Amazon OpenSearch에 출력 저장또는 맞춤설정을 추가하세요. AWS 람다 자신만의 비즈니스 로직으로 작동하세요.
이 두 가지 솔루션을 모두 사용하면 수백만 페이지를 빠르게 처리할 수 있습니다. 이러한 솔루션 중 하나를 대규모로 실행하기 전에 문서의 하위 집합을 테스트하여 결과가 기대에 부합하는지 확인하는 것이 좋습니다. 다음 섹션에서는 먼저 스크립트 솔루션을 설명한 다음 AWS CDK 구성 솔루션을 설명합니다.
해결 방법 1: Python 스크립트 사용
이 솔루션은 Amazon Textract를 통해 원시 텍스트에 대한 문서를 서비스가 허용하는 한 빨리 처리하며, 스크립트에 오류가 있을 경우 프로세스가 중단된 부분부터 다시 시작될 것이라는 기대를 갖고 있습니다. 이 솔루션은 Amazon S3, 아마존 DynamoDB및 Amazon Textract.
다음 다이어그램은 스크립트 내의 이벤트 순서를 보여줍니다. 스크립트가 종료되면 소요 시간과 함께 완료 상태가 SageMaker 스튜디오 콘솔에 반환됩니다.
우리는 이 솔루션을 .ipynb 스크립트 및 .py 스크립트. 요구 사항에 따라 배포 가능한 솔루션을 사용할 수 있습니다.
사전 조건
Jupyter 노트북에서 이 스크립트를 실행하려면 AWS 자격 증명 및 액세스 관리 (IAM) 노트북에 할당된 역할에는 DynamoDB, Amazon S3 및 Amazon Textract와 상호 작용할 수 있는 권한이 있어야 합니다. 일반적인 지침은 이러한 각 서비스에 대한 최소 권한 권한을 귀하에게 제공하는 것입니다. AmazonSageMaker-ExecutionRole
역할. 자세한 내용은 다음을 참조하세요. AWS 관리형 정책을 시작하고 최소 권한 권한으로 전환하세요..
또는 다음과 같은 다른 환경에서 이 스크립트를 실행할 수 있습니다. 아마존 엘라스틱 컴퓨트 클라우드 (Amazon EC2) Python, Pip3 및 Python 용 AWS SDK (Boto3) 설치되어 있습니다. 이번에도 스크립트가 다양한 관리형 서비스와 상호 작용할 수 있도록 동일한 IAM 정책을 적용해야 합니다.
연습
이 솔루션을 구현하려면 먼저 저장소를 복제해야 합니다. GitHub의.
스크립트를 실행하려면 먼저 스크립트에서 다음 변수를 설정해야 합니다.
- 추적 테이블 – 생성될 DynamoDB 테이블의 이름입니다.
- 입력_버킷 – 이는 텍스트 감지를 위해 Amazon Textract로 보내려는 문서가 포함된 Amazon S3의 소스 위치입니다. 이 변수에는 다음과 같은 버킷 이름을 제공합니다.
mybucket
. - 출력_버킷 – Amazon Textract가 결과를 기록할 위치를 저장하기 위한 것입니다. 이 변수에는 다음과 같은 버킷 이름을 제공합니다.
myoutputbucket
. - _input_prefix(선택사항) – S3 버킷의 폴더 내에서 특정 파일을 선택하려는 경우 이 폴더 이름을 입력 접두사로 지정할 수 있습니다. 그렇지 않으면 모두 선택하려면 기본값을 비워 두세요.
스크립트는 다음과 같습니다.
스크립트가 실행되면 다음 DynamoDB 테이블 스키마가 생성됩니다.
스크립트가 처음 실행되면 DynamoDB 테이블이 있는지 확인하고 필요한 경우 자동으로 생성됩니다. 테이블이 생성된 후에는 처리하려는 Amazon S3의 문서 객체 참조 목록으로 테이블을 채워야 합니다. 설계에 따른 스크립트는 지정된 개체에 대해 열거됩니다. input_bucket
실행될 때 자동으로 테이블에 이름을 채웁니다. 10개가 넘는 문서를 열거하고 해당 이름을 스크립트에서 DynamoDB 테이블에 채우는 데 약 100,000분이 걸립니다. 버킷에 수백만 개의 객체가 있는 경우 이름의 CSV 파일을 생성하는 Amazon S3의 인벤토리 기능을 대신 사용할 수 있습니다. 그런 다음 이 목록의 DynamoDB 테이블을 자체 스크립트로 미리 채우고 fetchAllObjectsInBucketandStoreName
그것을 주석 처리함으로써. 자세한 내용은 다음을 참조하세요. Amazon S3 인벤토리 구성.
앞서 언급했듯이 노트북 버전과 Python 스크립트 버전이 모두 있습니다. 노트북은 시작하는 가장 간단한 방법입니다. 각 셀을 처음부터 끝까지 실행하기만 하면 됩니다.
CLI에서 Python 스크립트를 실행하기로 결정한 경우 tmux와 같은 터미널 멀티플렉서를 사용하는 것이 좋습니다. 이는 SSH 세션이 종료될 때 스크립트가 중지되는 것을 방지하기 위한 것입니다. 예를 들어: tmux new -d ‘python3 textractFeeder.py’
.
다음은 스크립트의 진입점; 여기에서 필요하지 않은 메서드를 주석 처리할 수 있습니다.
스크립트가 DynamoDB 테이블을 채울 때 다음 필드가 설정됩니다.
- 개체 이름 – Amazon Textract로 전송될 Amazon S3에 있는 문서의 이름
- 버킷 이름 – 문서 객체가 저장되는 버킷
S3 인벤토리 보고서의 CSV 파일을 사용하기로 결정하고 스크립트 내에서 발생하는 자동 채우기를 건너뛰려면 이 두 필드를 채워야 합니다.
이제 테이블이 생성되고 문서 객체 참조로 채워졌으므로 스크립트는 Amazon Textract 호출을 시작할 준비가 되었습니다. StartDocumentTextDetection
API. 다른 관리형 서비스와 마찬가지로 Amazon Textract에는 기본 한도 초당 트랜잭션(TPS)이라는 API에서. 필요한 경우 Amazon Textract 콘솔에서 할당량 증가를 요청할 수 있습니다. 이 코드는 Amazon Textract를 호출할 때 여러 스레드를 동시에 사용하여 서비스 처리량을 극대화하도록 설계되었습니다. 코드 내에서 이를 수정하여 변경할 수 있습니다. threadCountforTextractAPICall
변하기 쉬운. 기본적으로 이는 20개 스레드로 설정됩니다. 스크립트는 처음에 DynamoDB 테이블에서 200개의 행을 읽고 이를 스레드 안전을 위해 클래스로 래핑된 인 메모리 목록에 저장합니다. 그러면 각 호출자 스레드가 시작되어 자체 수영 레인 내에서 실행됩니다. 기본적으로 Amazon Textract 호출자 스레드는 객체 참조가 포함된 메모리 내 목록에서 항목을 검색합니다. 그런 다음 비동기식을 호출합니다. start_document_text_detection
API를 사용하고 작업 ID에 대한 승인을 기다립니다. 그러면 작업 ID가 해당 객체에 대한 DynamoDB 행으로 다시 업데이트되고 스레드는 목록에서 다음 항목을 검색하여 반복됩니다.
다음은 주요 오케스트레이션 코드입니다. 스크립트:
호출자 스레드는 목록에 더 이상 항목이 없을 때까지 계속 반복되며, 이 시점에서 스레드는 각각 중지됩니다. 해당 스윔 레인 내에서 작동하는 모든 스레드가 중지되면 DynamoDB에서 다음 200개의 행이 검색되고 20개의 스레드로 구성된 새로운 세트가 시작됩니다. 전체 프로세스는 작업 ID가 포함되지 않은 모든 행이 DynamoDB에서 검색될 때까지 반복됩니다. 업데이트되었습니다. 예상치 못한 문제로 인해 스크립트가 충돌하는 경우 다음 위치에서 스크립트를 다시 실행할 수 있습니다. orchestrate()
방법. 이렇게 하면 스레드가 빈 작업 ID가 포함된 행을 계속 처리하게 됩니다. 다시 실행할 때 참고하세요. orchestrate()
스크립트가 중지된 후 메서드를 사용하면 일부 문서가 Amazon Textract로 다시 전송될 가능성이 있습니다. 이 숫자는 충돌 당시 실행 중이던 스레드 수와 같거나 작습니다.
DynamoDB 테이블에 빈 작업 ID가 포함된 행이 더 이상 없으면 스크립트가 중지됩니다. 모든 객체에 대한 Amazon Textract의 모든 JSON 출력은 다음에서 찾을 수 있습니다. output_bucket
기본적으로 textract_output
폴더. 내의 각 하위 폴더 textract_output
해당 객체에 대해 DynamoDB 테이블에 저장된 작업 ID에 해당하는 작업 ID로 이름이 지정됩니다. 작업 ID 폴더 내에서 JSON을 찾을 수 있습니다. 이 JSON은 1부터 시작하여 숫자로 이름이 지정되며 잠재적으로 2, 3 등으로 레이블이 지정되는 추가 JSON 파일에 걸쳐 있을 수 있습니다. JSON 파일 확장은 추출된 콘텐츠의 양이 Amazon Textract 기본 JSON 크기인 1,000블록을 초과하는 조밀하거나 여러 페이지로 구성된 문서의 결과입니다. 인용하다 블록 블록에 대한 자세한 내용은 이러한 JSON 파일에는 문서 내에서 추출된 텍스트를 포함하여 모든 Amazon Textract 메타데이터가 포함됩니다.
이 솔루션에 대한 Python 코드 노트북 버전과 스크립트는 다음에서 찾을 수 있습니다. GitHub의.
정리
Python 스크립트가 완료되면 Python 스크립트를 종료하거나 중지하여 비용을 절약할 수 있습니다. 아마존 세이지 메이커 스튜디오 당신이 뽑아낸 노트북이나 용기.
이제 대규모 문서를 위한 두 번째 솔루션을 살펴보겠습니다.
솔루션 2: 서버리스 AWS CDK 구성 사용
이 솔루션은 AWS 단계 함수 IDP 파이프라인을 조율하는 Lambda 함수입니다. 우리는 IDP AWS CDK 구성, 규모에 맞게 Amazon Textract를 사용하여 작업하는 것이 간단해졌습니다. 추가적으로, 우리는 Step Functions 분산 맵 S3 버킷의 모든 파일을 반복하고 처리를 시작합니다. 첫 번째 Lambda 함수는 문서에 포함된 페이지 수를 결정합니다. 이를 통해 파이프라인은 동기(단일 페이지 문서의 경우) 또는 비동기(여러 페이지 문서의 경우) API를 자동으로 사용할 수 있습니다. 비동기식 API를 사용하는 경우 Amazon Textract가 모든 페이지에 대해 생성하는 모든 JSON 파일에 대해 추가 Lambda 함수가 호출되어 다운스트림 애플리케이션이 해당 정보를 쉽게 사용할 수 있도록 합니다.
이 솔루션에는 두 개의 추가 Lambda 함수도 포함되어 있습니다. 첫 번째 함수는 JSON의 텍스트를 구문 분석하여 Amazon S3에 텍스트 파일로 저장합니다. 두 번째 함수는 JSON을 분석하고 이를 워크로드의 지표에 저장합니다.
다음 다이어그램은 Step Functions 워크플로를 보여줍니다.
사전 조건
이 코드 베이스는 AWS CDK를 사용하며 Docker가 필요합니다. 이것을 배포할 수 있습니다. AWS 클라우드9 AWS CDK 및 Docker가 이미 설정된 인스턴스입니다.
연습
이 솔루션을 구현하려면 먼저 저장소.
저장소를 복제한 후 종속 항목을 설치합니다.
그런 다음 다음 코드를 사용하여 AWS CDK 스택을 배포합니다.
이 솔루션에 대해 소스 버킷과 소스 접두사(처리하려는 파일의 위치)를 모두 제공해야 합니다.
배포가 완료되면 Step Functions 콘솔로 이동하여 상태 머신을 확인하세요. ServerlessIDPArchivePipeline
.
상태 머신 세부정보 페이지를 열고 사형 집행 탭에서 실행 시작.
왼쪽 메뉴에서 실행 시작 다시 상태 머신을 실행합니다.
상태 머신을 시작한 후 맵 실행을 확인하여 파이프라인을 모니터링할 수 있습니다. 당신은 볼 것이다 아이템 처리상태 다음 스크린샷과 같은 섹션을 선택하세요. 보시다시피 이는 성공한 것과 실패한 것을 실행하고 추적하도록 구축되었습니다. 이 프로세스는 모든 문서를 읽을 때까지 계속 실행됩니다.
이 솔루션을 사용하면 어떤 파일을 어떤 API로 보낼지 올바르게 결정하는 방법이나 파이프라인에 실패한 손상된 파일을 걱정할 필요 없이 AWS 계정에 있는 수백만 개의 파일을 처리할 수 있습니다. Step Functions 콘솔을 통해 실시간으로 파일을 보고 모니터링할 수 있습니다.
정리
파이프라인 실행이 완료된 후 정리하려면 프로젝트로 돌아가서 다음 명령을 입력하면 됩니다.
이 프로젝트에 배포된 모든 서비스가 삭제됩니다.
결론
이 게시물에서는 문서 이미지와 PDF를 텍스트 파일로 간단하게 변환할 수 있는 솔루션을 제시했습니다. 이는 생성 AI 및 검색에 문서를 사용하기 위한 핵심 전제 조건입니다. 텍스트를 사용하여 기초 모델을 학습하거나 세부 조정하는 방법에 대해 자세히 알아보려면 다음을 참조하세요. Amazon SageMaker JumpStart에서 텍스트 생성을 위해 Llama 2 미세 조정. 검색과 함께 사용하려면 다음을 참조하세요. Amazon Textract 및 Amazon OpenSearch를 사용하여 스마트 문서 검색 인덱스 구현. AWS AI 서비스가 제공하는 고급 문서 처리 기능에 대해 자세히 알아보려면 다음을 참조하십시오. AWS의 지능형 문서 처리에 대한 지침.
저자에 관하여
팀 콘델로 Amazon Web Services(AWS)의 수석 인공 지능(AI) 및 기계 학습(ML) 전문 솔루션 설계자입니다. 그의 초점은 자연어 처리와 컴퓨터 비전입니다. Tim은 고객의 아이디어를 확장 가능한 솔루션으로 바꾸는 것을 좋아합니다.
데이비드 걸링 엔터프라이즈 시스템 설계, 선도 및 개발 분야에서 20년 이상의 경험을 보유한 수석 AI/ML 솔루션 설계자입니다. David는 고객이 사용 사례에 맞게 데이터와 함께 이러한 고성능 서비스를 배우고, 혁신하고, 활용할 수 있도록 돕는 데 중점을 둔 전문가 팀의 일원입니다.
- SEO 기반 콘텐츠 및 PR 배포. 오늘 증폭하십시오.
- PlatoData.Network 수직 생성 Ai. 자신에게 권한을 부여하십시오. 여기에서 액세스하십시오.
- PlatoAiStream. 웹3 인텔리전스. 지식 증폭. 여기에서 액세스하십시오.
- 플라톤ESG. 탄소, 클린테크, 에너지, 환경, 태양광, 폐기물 관리. 여기에서 액세스하십시오.
- PlatoHealth. 생명 공학 및 임상 시험 인텔리전스. 여기에서 액세스하십시오.
- 출처: https://aws.amazon.com/blogs/machine-learning/create-a-document-lake-using-large-scale-text-extraction-from-documents-with-amazon-textract/
- :있다
- :이다
- :아니
- :어디
- $UP
- 000
- 1
- 10
- 100
- 12
- 20
- 200
- 7
- 710
- 8
- a
- 할 수 있는
- 소개
- ACCESS
- 계정
- 정확히
- 더하다
- 추가
- 또한
- 전진
- 많은
- 이점
- 후
- 다시
- AI
- AI 서비스
- AI / ML
- All
- 수
- 수
- 따라
- 이미
- 또한
- 아마존
- Amazon EC2
- 아마존 세이지 메이커
- 아마존 텍사스
- Amazon Web Services
- Amazon Web Services (AWS)
- 양
- an
- 복수
- 및
- 어떤
- API를
- API
- 어플리케이션
- 적용된
- 접근
- 대략
- 있군요
- 인조의
- 인공 지능
- 인공 지능(AI)
- AS
- 할당 된
- At
- 자동
- 자동적으로
- AWS
- 뒤로
- 기지
- 원래
- BE
- 된
- 전에
- 수십억
- 블록
- 부트 스트랩
- 두
- 빌드
- 내장
- 사업
- by
- 전화
- 라는
- 방문객
- 부름
- CAN
- 기능
- 수
- 케이스
- 가지 경우
- 세포
- 어떤
- 이전 단계로 돌아가기
- 검사
- 왼쪽 메뉴에서
- 수업
- 황어 무리
- 클라우드
- 암호
- 코드베이스
- 수집
- 본문
- 댓글
- 완전한
- 완성
- 구성 요소들
- 계산
- 컴퓨터
- 컴퓨터 비전
- 콘솔에서
- 구축
- 포함하는
- 컨테이너
- 이 포함되어 있습니다
- 함유량
- 계속
- 변하게 하다
- 대응
- 비용
- 수
- 크래시
- 만들
- 만든
- 관습
- 고객
- 고객
- 데이터
- 데이터베이스
- 데이비드
- 결정하다
- 태만
- 의존성
- 배포
- 배포
- 전개
- 설명
- 디자인
- 설계
- 설계
- 세부설명
- Detection System
- 결정
- 결정하다
- 개발
- 개발
- 다른
- 분산
- 도커
- 문서
- 서류
- 하지 않습니다
- 아래 (down)
- 두
- 마다
- 이전
- 중
- 수
- 끝으로 종료
- 종료
- 엔터 버튼
- Enterprise
- 항목
- 환경
- 같은
- 이벤트
- 모든
- 예
- 초과
- 실행
- 존재
- 기대
- 기대
- 경험
- 확장
- 추출물
- 추출
- 실패한
- 실패
- 고장
- 특색
- 를
- Fields
- 입양 부모로서의 귀하의 적합성을 결정하기 위해 미국 이민국에
- 파일
- 금융
- 금융 서비스
- Find
- 마무리
- 먼저,
- 처음으로
- 융통성있는
- 초점
- 집중
- 다음에
- 수행원
- 다음
- 럭셔리
- 양식
- 발견
- Foundation
- 뼈대
- 에
- 기능
- 기능
- 기능
- 이득
- 일반
- 생성
- 세대
- 생성적인
- 제너레이티브 AI
- 얻을
- Go
- 지도
- 발생
- 있다
- 건강 관리
- 도움이
- 여기에서 지금 확인해 보세요.
- 고도로
- 그의
- 방법
- How To
- 그러나
- HTML
- HTTP
- HTTPS
- i
- ID
- 아이디어
- 통합 인증
- 식별자
- if
- 설명하다
- 형상
- 구현
- in
- 포함
- 포함
- 증가
- 색인
- 산업
- 업계 최고의
- 정보
- 인프라
- 처음에는
- 시작
- 받아 들여 쓰다
- 입력
- 통찰력
- 설치
- 설치
- 예
- 인텔리전스
- 지능형
- 지능형 문서 처리
- 상호 작용하는
- 으로
- 목록
- IT
- 항목
- 그
- 일
- JPG
- JSON
- 키
- 소금물
- 레인
- 언어
- 넓은
- 대규모
- 지도
- 배우다
- 배우기
- 휴가
- 왼쪽 (left)
- 적게
- 처럼
- 명부
- 야마
- 위치한
- 위치
- 고정
- 논리
- 이상
- 찾고
- 기계
- 기계 학습
- 본관
- 확인
- 제작
- 관리
- 관리
- .
- 지도
- 극대화하다
- 소개
- 말하는
- 메타 데이터
- 방법
- 방법
- 통계
- 수백만
- 회의록
- ML
- 모델
- 모델
- 모니터
- 배우기
- 가장
- 움직임
- 여러
- 절대로 필요한 것
- name
- 이름
- 이름
- 자연의
- 자연 언어 처리
- 이동
- 필요
- 필요
- 신제품
- 다음 것
- 아니
- 주의
- 수첩
- 지금
- 번호
- 대상
- 사물
- of
- 오프
- 제공
- on
- ONE
- 운영
- or
- 오케스트레이션
- 기타
- 그렇지 않으면
- 우리의
- 아웃
- 출력
- 위에
- 자신의
- 포장하는
- 페이지
- 페이지
- 부품
- 용
- 권한
- 선택
- 관로
- 플라톤
- 플라톤 데이터 인텔리전스
- 플라토데이터
- 포인트 적립
- 정책
- 인구가 많은
- 게시하다
- 가능성
- 잠재적으로
- 제시
- 예방
- 문제
- 방법
- 프로세스
- 처리
- 생산
- 프로젝트
- 정확히
- 제공
- 제공
- 제공
- 공개
- 놓다
- Python
- 가장 빠른
- 빨리
- 살갗이 벗어 진
- 읽기
- 준비
- 현실
- 실시간
- 권하다
- 추천
- 기록
- 기록
- 참조
- 참고
- 참조
- 반복
- 신고
- 저장소
- 의뢰
- 필수
- 요구조건 니즈
- 필요
- 탄력
- 결과
- 결과
- 직위별
- 열
- 달리기
- 달리는
- 실행
- 가장 안전한 따뜻함
- 안전
- 현자
- 같은
- 찜하기
- 확장성
- 규모
- 스크립트
- SDK
- 검색
- 둘째
- 섹션
- 섹션
- 부문
- 참조
- 고르다
- 보내다
- 연장자
- 전송
- 순서
- 섬기는 사람
- 서버리스
- 서비스
- 서비스
- 세션
- 세트
- 영상을
- 종료
- 비슷한
- 단순, 간단, 편리
- 간단히
- 크기
- 스마트 한
- So
- 해결책
- 솔루션
- 일부
- 출처
- 기간
- 스패닝
- 전문가
- 지정
- 잡아 늘인
- 스택
- 스타트
- 시작
- 시작 중
- 주 정부
- Status
- 단계
- 중지
- 정지
- 멎는
- 저장
- 저장
- 저장
- 상점
- 저장
- 똑 바른
- 끈
- 구조화
- 스튜디오
- 성공한
- 이러한
- 확인
- 시스템은
- 테이블
- 받아
- 촬영
- 소요
- 복용
- 팀
- Technology
- 단말기
- 지원
- 본문
- 보다
- 그
- XNUMXD덴탈의
- 정보
- 소스
- 국가
- 그들의
- 그들
- 그때
- 그곳에.
- Bowman의
- 그들
- 이
- 그
- 세
- 을 통하여
- 처리량
- 팀
- 시간
- 에
- 방향
- TPS
- 선로
- Train
- 거래 내역
- 선회
- 턴키
- 두
- 할 수 없는
- 아래에
- 예기치 않은
- 까지
- 업데이트
- 사용
- 유스 케이스
- 사용
- 사용
- 활용
- 이용하다
- 변수
- 여러
- 버전
- 시력
- 기다리다
- 필요
- 였다
- 손목 시계
- 방법..
- we
- 웹
- 웹 서비스
- 했다
- 뭐
- 언제
- 어느
- 모든
- 의지
- 과
- 이내
- 없이
- 작업
- 워크플로우
- 걱정
- 겠지
- 포장
- 쓰다
- 년
- 자신의
- 너의
- 제퍼 넷