본문 바로가기

개발 일지20

PDF 파일 번역 프로그램 - 회고 회고 오랜만에 문제해결을 위해 머리 싸매고 고민했던 것 같다. 내가 가진 능력으로 누군가가 겪는 어려움을 해결해준다는 것은 참 보람찬 일인것 같다. 결국 프로그래밍이란 것은 어떤 문제를 해결하기 위해 생겨났다 라는 것을 보면 난 어느새 프로그래머가 되어 있는것 같다. AI 의 발전 속도가 너무 빨라져서 앞으로 어떤 개발을 하게 될지, 얼마나 이 일을 할 수 있을지 모든게 불명확한것 같다. 특히 23~24년도는 개발자 취업난이 많이 심해 걱정이 많다. 주위에 취업을 못하는 있는 사람들도 여럿 되어 몸으로 체감하는 것 같다. 다행히 난 사회복무요원으로 복무를 시작해 25년도 11월까진 시간을 벌었다. 최대한 많은 것을 배우고 노력해보려고 한다. 이 시간을 그냥 허송세월로 보내버리기보단 알차게 살아보겠다. 이.. 2024. 4. 19.
PDF 파일 번역 프로그램 - PDF 파일 번역 (대량) 아버지의 논문 자료들을 번역하기 위해 프로젝트를 시작한지도 벌써 3주가 넘었다.매일 낮에는 출근해야 해서 시간을 많이 투자하진 못했지만, 틈틈히 개발했고 실질적으로 4~5일만에 완성했다.번역 퀄리티는 아래 나온 예시를 참고하면 되며 구글 번역기에서 지원하는 언어들은 모두 지원한다. <h2 style="background-color:.. 2024. 4. 19.
PDF 파일 번역 프로그램 - PDF파일 병합 및 다운로드 파일 병합 및 다운로드 기능 개발 시작! Firebase Storage 에서 번역이 완료된 파일들을 다운 받고 병합을 한 뒤 다운받는다. const downloadPDF = async (pageCount, storage) => { try { const mergedPDFDocument = await PDFDocument.create(); for (let i = 0; i < pageCount / 20; i += 1) { var storageRef = ref(storage, `gs://버킷명/번역완료된파일명`; storageRef = ref(storage, storageRef); const url = await getDownloadURL(storageRef); const arrayBuffer = await f.. 2024. 4. 19.
PDF 파일 번역 프로그램 - Cloud Translation API Cloud Translation API 개발 시작!기존에 테스트 했을 때는 터미널에서 cURL 이나 Powershell 을 통해서 요청을 보냈는데자바스크립트에서 같은 내용으로 요청을 보내면 Oath2 인증오류가 발생했다.api key 나 oath2 사용자 계정을 만들어서 같이 .. 2024. 4. 18.
PDF 파일 번역 프로그램 - Firebase 파일 업로드 Firebase 업로드 기능 개발 시작! 분할한 파일을 Cloud Storage 에 업로드 해야 Cloud Translation API 를 사용할 수 있다. Cloud Storage 에 직접 업로드를 시도해봤는데 보안 문제 때문에 안되는 것이 많았다. 그래서 버킷만 Cloud Storage에 만들어두고 업로드와 다운로드는 Firebase 통해서 하기로 결정했다. Firebase 에서 Cloud Storage의 버킷에 엑세스 할 수 있었다. 업로드가 모두 완료되고 나서 다음 작업을 할 수 있도록 Promise 도 걸어놨다. const uploadPDF = async (splitPDFs, storage) => { try { // 분할된 PDF 업로드 const uploadPromises = splitPDFs.. 2024. 4. 18.
PDF 파일 번역 프로그램 - PDF 파일 분할(javascript) 파일 분할 기능 개발 시작! 일단 여러 블로그와 스택 오버플로우를 검색해봐도 자세한 내용은 찾기 어려웠다. 그래서 나의 오랜만에 나의 가장 친한 친구 ChatGPT 를 켰다. 자바스크립트로 PDF 파일 분할 코드를 알려달라고 해도 정확한 코드가 한번에 안 나와 예시 코드와 여러가지 질문들을 이어가며 수정에 수정을 거쳐 마침내 분할 코드를 완성할 수 있었다. 아래에 예시 코드는 PDF 파일을 20페이지 단위로 분할하는 코드이다. import { PDFDocument } from 'pdf-lib'; const splitPDFs = []; const pdfBytes = await file.arrayBuffer(); // file은 브라우저 상에 업로드 한것을 가져왔다 const pdfDoc = await PD.. 2024. 4. 18.
PDF 파일 번역 프로그램 - 브라우저 파일 업로드 브라우저에 파일 업로드 기능 개발 시작! 사용자가 편하게 파일을 번역할 수 있으려면 접근성이 좋아야 한다고 생각했다 그래서 가장 접근성이 좋은건 웹이라고 판단했다. 이참에 한번도 안해본 React 와 Node.js 를 다뤄보기로 결정했다. 하지만 단기간에 프로젝트를 완성해 30개가 넘는 책을 번역해야 했기에 차근차근 React 공부를 할 여유는 없었다. 그래서 직접 붙딫혀보면서 배우기로 했다. (Flutter 처음 배울때도 이런식으로 했었다. 처음엔 힘들어도 한번 해보고 공부하면 이해가 더 쏙쏙 되는 장점이 있다.) 먼저 파일업로드 예시 코드를 검색했다. 여러 블로그들을 돌며 내가 원하는 기능이 구현된 코드들을 둘러봤고 내가 원하는 기능에 가장 가깝게 구현한 코드를 CTRL + C 했다 ㅎㅎㅎ 거기서 내.. 2024. 4. 18.
PDF 파일 번역 프로그램 - 계획 수립 개발 해야 할 것들 - PDF 파일 분할 기능 - 분할한 파일들 Cloud Storage에 업로드 - 업로드 한 파일들 번역 API 호출 - 번역 완료된 파일들 Cloud Storage에서 다운 - 다운 받은 파일들 하나의 파일로 합치기 - 위의 기능들을 넣은 웹사이트 제작 고려해야 할 것들 - 웹사이트로 기능을 제공할 생각이니 javascript 로 개발 고려 - 오남용 방지 (아직 계획 X) - 예상 비용 책정 Flow Chart 1차 목표 웹사이트 개발이 필요하니 Node.js 간단하게 학습 2024. 4. 1.
PDF 파일 번역 프로그램 - 자료 조사 및 API 테스트 자료 조사 직접 만들기로 결정했으니 어떻게 만들지를 조사했다. 예전에 GCP 를 한참 많이 사용할 때 회사의 요청으로 번역 api 도 조사했었다. 그 때 봐두었던 문서 번역 API 가 생각이 났다. 그래서 문서 번역 API를 우선으로 조사했다. 조사 결과 PDF나 DOC 파일을 번역해주는 API를 GCP가 이미 제공하고 있었다. https://cloud.google.com/translate/docs/advanced/translate-documents?hl=ko 문서 번역 | Cloud Translation | Google Cloud 의견 보내기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 문서 번역 Cloud Translation - Advanced는 PDF 및 DOC.. 2024. 4. 1.
PDF 파일 번역 프로그램 - 개발 계기 개발하게 된 계기 아버지께서 최근 석사 과정을 밟고 계신데 아랍어로 된 책을 해석해야 해서 번역기를 알아보고 계셨다 번역기를 쿠팡에서 구매하시는 모습을 보며 전에도 번역기 관련해서 물어보셨던것이 생각나 왜 필요로 하시는지 여쭤봤다. 아랍어로 된 글을 번역하기 위해 구글 번역기의 스캔번역 기능을 사용하셨는데 200페이지가 넘는 책을 일일이 핸드폰으로 스캔하는 것과 구글 번역의 퀄리티가 문제라고 하셨다. 그래서 인터넷을 검색해보니 이미 해당 기능을 제공하는 사이트가 몇 있었다 그래서 테스트해보니 파일 크기 제한이 10mb로 걸려있었다. 번역하려는 책들은 기본으로 N십 mb 정도 되기 때문에 한번에 번역할 수 없었다. PDF 파일을 분할해서 번역해보려고 했지만 1~2mb 정도의 파일은 번역이 잘 되었지만 9m.. 2024. 3. 23.
4. dialogue system 구축 한동안 알바와 캠프 문제 푸느라 방학 프로젝트를 놨었다... 그리고 요 며칠동안 npc랑 대화하는 기능을 구현하려고 했는데 아무리 유튜브를 찾아 봐도 볼트로 대화 시스템을 구축하는 방법은 나와있지 않았다. 내가 직접 만드는 건 너무 어렵고 오래 걸리는 방법이기에 이미 만들어진 에셋을 사용하기로 했다. 여러 에셋들을 사용해보면서 어느것이 작동되는지 그리고 어느것이 볼트랑 연동이 되는지 테스트 해보았다. 그리고 오늘 오전내내 dialogue system만 붙잡으면서 어느정도 에셋 사용에 성공했다. 이런 식으로 그래프를 사용해서 대화를 만들어두면 실제 게임에서 이런 대사들을 엔피시를 클릭하거나 말을 걸었을때 출력하도록 할 수 있다. 이런식으로 출력이 된다. 대화창 같은 경우엔 커스터마이징이 가능한 것으로 보인.. 2021. 7. 21.
코딩으로 알바하기 마지막 드뎌 오늘 모든 일을 다 끝냈다 이제 캠프와 프로젝트에 집중할 수 있을것 같다. 짧은 소감으로는 항상 몸으로 때우는 일만 하다가 머리로 하는 일을 하니 확실히 몸이 편했다 근데 이게 문제는 몸이 편하다 보니까 좀 늘어지는 감이 없잖아 있었던 것 같다. 내가 배우고 공부한 것들이 나에게 돈을 벌어다 준다는 것이 생각보다 큰 의미로 남을 것 같다. 이 돈으로 부모님 뭐라도 사드리고 제주도에 캠프 갔다 올 때 경비로 써야겠다. 뭔가 열심히 글 올리던거에 비하면 마지막이 좀 내용이 없는것 같지만 기분 탓입니다. ㅎㅎㅎ 2021. 7. 15.