전체 글

조금씩 지식을 쌓는 중입니다.
· 개발/Cloud
학부 클라우드 컴퓨팅 수업에서 AWS Academy로 실습한 내용을 정리하였습니다. 지난 포스팅에서 S3 버킷을 생성하고, 정적 웹 호스팅 설정하는 부분을 다루었다. [Cloud] AWS S3로 정적 웹 사이트 호스팅하기학부 클라우드 컴퓨팅 수업에서 AWS Academy로 실습한 내용을 정리하였습니다. 정적 웹 사이트는 백엔드 없이 정적 콘텐츠(HTML, 이미지, CSS 등)로 구성된다. 쉽게말해, 웹 페이지에 해당하는 데이터kmicety1.tistory.com 이번 포스팅에서는 S3를 사용한 정적 웹 호스팅에 정책을 설정하고, 재해 복구(DR) 전략을 구현하는 내용을 다루려고 한다. 그 전에 먼저, AWS Well-Architected Framework에 대해 잠깐 알아보자.AWS Well-Archit..
· 개발/Cloud
학부 클라우드 컴퓨팅 수업에서 AWS Academy로 실습한 내용을 정리하였습니다. 정적 웹 사이트는 백엔드 없이 정적 콘텐츠(HTML, 이미지, CSS 등)로 구성된다. 쉽게말해, 웹 페이지에 해당하는 데이터가 변경되지 않는 한 고정된 웹 페이지를 보게 된다.AWS S3를 이용하면 백엔드 서버를 구축하지 않아도 정적 웹 사이트를 손쉽게 호스팅할 수 있다. JS를 추가해서 사용자 브라우저에서 상호작용 기능을 구현할 수도 있다. AWS S3를 활용해서 정적 웹 사이트를 호스팅하는 방법을 알아보자.1. 버킷 만들기S3 > 버킷 만들기 선택버킷 이름은 글로벌하게 고유해야 한다. 즉, 모든 리전에 거쳐서 중복되는 이름으로 설정할 수 없음.정적 웹 사이트를 호스팅하고 인터넷에 배포할 것이기 때문에 인터넷 상의 퍼..
· 개발
개발에 있어서 반복적인 작업을 자동화하는 것은 생산성을 극대화하는 중요한 기술이다. 특히, 프로젝트 설정이나 자주 반복되는 작업을 스크립트로 작성해 실행 한 번에 완료하면 굉장히 편할 것이다. Linux 환경에서는 쉘 스크립트(Shell Script, .sh), Windows 환경에서는 배치 파일(Batch File, .bat)을 사용하여 이러한 작업을 간편하게 자동화할 수 있다. 이번 글에서는 Linux와 Windows 환경에서 각각 쉘 스크립트와 배치 파일을 활용해 프로젝트 설치 및 실행하는 방법을 다루려고 한다. Github에서 프로젝트를 클론하고, 가상 환경을 설정하고, 필요한 라이브러리를 설치하는 스크립트와 최종 세팅된 프로젝트를 실행하는 스크립트를 작성해 보자.
Pyside6로 GUI 프로그래밍을 하고 있는데, 모드 ON/OFF일 때 상태를 나타내는 인디케이터를 구현해보았다. 제스처 모드는 초록색 인디케이터로, 음성 인식은 주황색 인디케이터로 지정해 모드가 켜져 있는지 확인을 쉽게 할 수 있다. 하지만, 음성 인식은 실행과 동시에 바로 시작되는게 아니라, 모델을 불러오기까지 시간이 걸리기 때문에 이를 위해 로딩 애니메이션을 넣으면 좋을 것 같았다. 1. 먼저 맘에 드는 로딩 애니메이션 GIF를 찾자. Loading GIF | TenorClick to view the GIFtenor.com나는 해당 링크에서 쉽게 필요한 GIF를 찾을 수 있었다. 2. 다운로드하고, 필요한 경우 Resize 한다.PyQt, PySide 자체적으로 setFixedSize() 를 가지..
Mediapipe을 이용해 손인식은 어느 정도 구현했고, 이제 음성 인식을 구현할 차례다. 음성 인식 기능 요구사항은 다음과 같다.- 실시간으로 동작할 것- 인터넷 연결 없이도 작동해야 할 것 실시간으로 동작하는 것은 그렇다 쳐도, 인터넷 연결 없이 온디바이스에서 음성 인식을 구현하는 것이 쉬워 보이진 않았다. 일단 음성 인식 라이브러리부터 찾아보았다.Speech Recognition여러 온오프라인 엔진과 API를 지원하는 음성 인식 라이브러리 Python으로 음성 인식을 구현할 때 가장 많이 접하게 되는 라이브러리 중 하나다. 소스코드는 여기로.  다음과 같은 엔진/API를 지원한다.- CMU Sphinx (오프라인 동작)- Google Speech Recognition- Google Cloud Spe..
현재 산학연계 현장실습을 진행하면서 맡은 과제가 되게 재미있다. 현재 기업의 비디오월 컨트롤 프로그램에 멀티모달 인터페이스를 추가하는 것이다. 즉, 마우스 또는 키보드 외에 비디오, 오디오 입력을 인식해 시스템을 제어하는 프로그램을 만드는 것이 목표! 그중 첫 번째 단계로, 웹캠을 이용해 손가락 제스처를 인식하여 마우스를 조작하는 기능을 개발하고 있다. MediaPipeMediaPipe는 실시간 멀티미디어 애플리케이션을 위한 머신 러닝 파이프라인을 구축할 수 있는 구글의 오픈소스 프레임워크이다. MediaPipe 솔루션 가이드  |  Google AI Edge  |  Google for Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 의견 보내기 MediaPi..
현장실습에서 맡은 업무로 멀티모달 인터페이스 애플리케이션 제작이 있는데, 손을 인식하는 과정에서 mediapipe이 사용된다.  GUI로 동작하는 .exe 파일이 최종 결과물이기 때문에 작성한 코드를 pyinstaller로 빌드했는데, 계속해서 다음과 같은 에러가 표시되었다.  Unhandled exception in scriptFailed to execute script 'pyi_rth_mplconfig' due to unhandled exception: DLL load failed while importing _ctypes: 지정된 모듈을 찾을 수 없습니다. 구글링을 해보니 흔히 있는 에러는 아니고, 유독 mediapipe 라이브러리를 사용한 애플리케이션을 빌드할 때 많이 발생하는 것 같았다. 이거 ..
· 개발/Cloud
학교에서 진행하는 프로젝트에서 비디오를 조회하는 기능을 넣다 보니 자연스레 썸네일을 어떻게 다룰지에 대해 생각해 보게 되었다.먼저 개발 중인 환경은 다음과 같다. - Google Cloud Platform 사용- Java 17, Spring Boot 3.2.4- next.js 14.2.3 현재 비디오는 Google Cloud Storage(AWS S3에 해당)에 저장되어 공개 URI 형태로 DB에 저장된다.Youtube처럼 비디오 검색을 했을때 각 비디오 정보와 함께 비디오 재생 전에 썸네일을 표시하고 싶었다.썸네일은 사용자 지정 썸네일이라기보다는, 특정 타임스탬프의 프레임을 쓰기로 했다. 총 세가지 경우를 생각했다.1. Spring 애플리케이션에서 처리- 백엔드 인스턴스 사양이 그리 좋지 못하고, ff..
1편에서 이어집니다. [Spring] Spring Boot에서 Google Cloud Storage(GCS)에 파일 업로드하기 - 1프로젝트를 하다 보면 항상 파일을 다룰 때가 발생한다. 이미지 등 파일을 다룰 때에는 주로 RDBMS가 아닌 S3와 같은 오브젝트 스토리지에 저장을 하게 되는데 그 이유는 다음과 같다. 1. 오브젝트kmicety1.tistory.com 이번 게시글에서는 REST API로 Multipartfile 이미지를 입력받아 GCS에 업로드하고, Image 엔티티를 생성해 DB에 저장하는 방법을 다루려고 한다. 이전 글에서 이어서 회원 정보의 프로필 사진을 업로드하는 것을 구현해 보자. Member.java@Entity@Getterpublic class Member { @I..
프로젝트를 하다 보면 항상 파일을 다룰 때가 발생한다. 이미지 등 파일을 다룰 때에는 주로 RDBMS가 아닌 S3와 같은 오브젝트 스토리지에 저장을 하게 되는데 그 이유는 다음과 같다. 1. 오브젝트 스토리지가 훨씬 저렴함2. 이미지 등 파일 접근 방식이 간단함3. 대용량 파일 입출력에 최적화 따라서 파일을 다룰 때에는 주로 클라우드 오브젝트 스토리지에 업로드를 하고, 해당 객체의 URI를 DB에 저장하는 방식을 주로 사용한다. Spring JPA에서 엔티티로 관리하면서 동시에 오브젝트 스토리지에 업로드된 객체를 조회할 수 있기 때문. 이번 게시글에서는 Spring Boot에서 GCP의 S3에 해당하는 GCS(Google Cloud Storage)에 파일을 업로드하는 방법에 대해 다루고자 한다.  먼저 ..
kmicety1
켜켜이 쌓이다