본문 바로가기

분류 전체보기

(11)
Oracle cloud: ERROR 2003 (HY000): Can't connect to MySQL server on (61) OCI에 mysql 올려서 외부에서 접속하려는데 아무리 해도 외부 접속을 거부했다.. 1. OCI Ingress Rule 에서 3306 허용2. OCI 내부 방화벽에서 3306 허용3. mysql 에 외부 접속 가능한 유저 생성4. /etc/mysql/mysql.conf.d/mysqld.cnf 에서 bind-address = 0.0.0.0 위의 내용을 전부 시도했는데도 접속을 거부했다..  해결sudo iptables -L INPUT -v -n --line-numbersChain INPUT (policy DROP 0 packets, 0 bytes)num pkts bytes target prot opt in out source destination ..
ubuntu 22 - 맥북 M1 ARM64에서 32비트 어셈블리어로 분석하는 법 학교 과제로 시스템해킹 실습을 해야하는데, 맥북이라서 문제가 많았다...1. ARM64 M1칩은 비교적 최신 우분투만 지원한다는 것 (학교에서 제공해주는 구버전이 CPU호환 문제로 설치가 되지 않는다..) 2. 최신 우분투에는 보호기법이 많다는 것모든 과제가 윈도우 기준으로 제공되어서 맥북에 맞추어 커스텀하여 진행했다. 이 글을 읽는 맥 유저들이 학교 과제를 수월히 진행 할 수 있길 바란다.  맥북에서 32비트 어셈블리어로 보려면 다음이 필요하다.1. 우분투 - 설치되어있다고 가정2. 크로스 컴파일러 - i686-linux-gnu-gcc3. 파일 실행 - qemu-i386 / qemu-system-i3864. gdb-multiarch 1. 크로스 컴파일러 설치하기sudo apt install gcc-i6..
Google STT(Speech-to-Text) streaming socket 통신 프론트엔드에서  음성 스트림 데이터를 실시간으로 Google STT API로 보내 인식된 문자열을 프론트앤드에 뿌려주려고 한다.이 작업을 하면서 동작을 안하는 문제가 발생했는데, 이를 정리해보려고 한다.  STT 사용 예시는 구글 독스에서 살펴볼 수 있다: https://cloud.google.com/speech-to-text/docs/transcribe-streaming-audio?hl=ko 스트리밍 입력에서 오디오를 텍스트로 변환  |  Cloud Speech-to-Text Documentation  |  Google CloudVertex AI의 최신 멀티모달 모델인 Gemini 1.5 모델을 사용해 보고 최대 2백만 개의 토큰 컨텍스트 윈도우를 사용해 무엇을 빌드할 수 있는지 확인해 보세요. Ver..
BERT 이해하기 BERT 이용에 필요한 기본적인 지식들을 정리해보려고 한다. 정리 내용은 https://wikidocs.net/book/2155 를 기반으로한다. 한번씩은 읽어보는거 강력추천!     𝐻(𝑥)에서 𝐻는 가설(Hypothesis)을 의미하며, 𝑥와 𝑦의 관계를 𝑤와 𝑏를 이용하여 식을 세우는 일을 가설이라고한다.머신 러닝은 𝑤와 𝑏를 찾기 위해서 실제값과 가설(H(x))로부터 얻은 예측값의 오차를 계산하는 식을 세우고, 이 식의 값을 최소화하는 최적의 𝑤와 𝑏를 찾아낸다.목적 함수(Objective function): 실제값과 예측값에 대한 오차 값을 최소화하거나, 최대화하거나 하는 목적을 가진 함수비용 함수(Cost function) 또는 손실 함수(Loss function) : 실제..
FFT(Fast Fourier Transformer) 를 이용해 주파수 추출하기 음성 스트림으로부터 주파수를 추출하는 방법을 알아보자. FastFourierTransformer 라이브러리를 이용하려면 몇가지 기본 개념이 필요하다. 이해하기 어려운 용어나 수학적인 부분은 설명하지않는다. PCM (Pulse Code Modulation)은 아날로그 오디오 신호를 디지털 형태로 변환하는 가장 일반적인 방법 중 하나다. 샘플링 방법에는 여러 가지 유형이 있지만 사실상 PCM 이 표준이며, 오디오 CD, DVD, 그리고 대부분의 디지털 오디오 시스템에서 사용된다.PCM 은 샘플링(Sampling) - 양자화(Quantization) - 인코딩(Coding) 순서로 진행된다. 1. Sample Rate이는 오디오 스트림을 사용해 개발하려고 할때 자주보게 되는 값이다. 오디오를 처리하기 위해 오..
MacOs Arm64 maven build 오류 해결 Java 에서 VAD (Voice Activity Detector)을 사용하려고 하는데 자바에는 VAD를 사용할 마땅한 라이브러리가 없다. 때문에 WebRTC의 VAD를 래핑해서 사용해야하며,  https://github.com/jitsi/jitsi-webrtc-vad-wrapper 에 좋은 라이브러리가 존재한다.위의 라이브러리는 맥OS에서 빌드를 한게 아니라서 따로 클론을 받아 빌드를 해 사용하려고한다.   1.Library/Caches/JNA/temp/jna7333904895487054757.tmp' (fat file, but missing compatible architecture (have 'i386,x86_64', need 'arm64e' or 'arm64')즉, 사용하는 라이브러리 어딘가에서 ..
Golang 안전성 패턴 *클라우드 네이티브 go 교재를 바탕으로 한다. 참고 깃허브 : https://github.com/cloud-native-go/examples Cloud Native Go (O'Reilly Media) Companion code repository to Cloud Native Go by Matthew Titmus (O'Reilly Media) - Cloud Native Go (O'Reilly Media) github.com 백엔드 단에서 예기치 않은 오류 발생 시, 어떻게 이를 처리하고 클라이언트에게 전달해 줄 것인지에 대한 처리 기술을 설명한다. 1. Circuit Breaker 예기치 않은 오류가 지속적으로 발생하는 상황에서 오류를 멈추고 합리적인 오류응답을 제공하여 연쇄적인 오류 발생을 방지한다. ..
Tour of Computer System 각 컴퓨터 시스템에 대한 자세한 내용은 추후 다를 예정이며, 본 글에서는 전체적인 구조 정리를 목표로 한다. Hardware Organiztion of a System Bues - Collection of electrical conduits 버스는 컴포넌트 사이에 정보 바이트를 왔다갔다 하며 운반한다. 보통 word 사이즈의 고정 크기를 전송하며, 4bytes(32-bit) 혹은 8bytes(64-bit)다. I/O Devices - The system's connection to the external world 유저 인풋을 위한 디바이스(마우스, 키보드)와 유저 아웃 풋을 위한 디바이스(디스플레이), 디스크. I/O 디바이스는 컨트롤러(controller)나 어댑터(adapter) 에 의해 I/O 버..