개발자로서 흔히 겪는 문제 중 하나는 "내 컴퓨터에서는 잘 작동했는데..."라는 말을 하게 되는 상황입니다. 이러한 문제는 개발 환경과 실제 서비스가 운영되는 서버 환경 간의 차이에서 비롯됩니다. 이 글에서는 개발 환경과 서버 환경의 아키텍처를 일치시켜야 하는 중요성을 스프링 부트 프로젝트를 중심으로 살펴보겠습니다.1. 환경 불일치가 야기하는 문제점1.1 버그 발견의 지연개발 환경과 서버 환경이 다르면, 개발 단계에서 발견되지 않은 버그가 배포 후에야 드러날 수 있습니다. 예를 들어, 개발자의 로컬 환경에서는 H2 인메모리 데이터베이스를 사용하지만 프로덕션에서는 MySQL을 사용한다면, SQL 방언 차이로 인한 문제가 발생할 수 있습니다.// 개발 환경(H2)에서는 작동하지만 프로덕션(MySQL)에서는 ..
난 맥이라 AWS 인스턴스도 arm64로 설정했는데..로컬 개발 환경이 mac 이기에 아키텍처 환경 통일을 위해 aws ec2 인스턴스도 arm64로 설정했다.. 그런데..github action이 돌아가는 머신 -> amd64amd64 에서 생성하는 이미지 -> x86 아키텍처x86 이미지는 -> arm64에서 실행되지 않는 이슈에 봉착했다!위와 같은 문제 트러블 슈팅 과정을 공유하고자 한다!CI/CD 파이프라인 개요우리가 구축할 CI/CD 파이프라인은 크게 세 가지 단계로 구성된다:Build & Test: 코드를 빌드하고 테스트Docker Image Build & Push: ARM64 아키텍처용 Docker 이미지를 빌드하고 Docker Hub에 푸시Deploy: 빌드된 이미지를 실제 서버에 배포파이..
생성형 AI를 저렴하게 활용하는 방법: API 활용 가이드최근 생성형 AI가 급격히 발전하면서 많은 기업과 개인이 이를 활용하려 하고 있다. 하지만 직접 AI 모델을 학습시키거나 클라우드 서비스를 활용하면 비용이 상당히 발생할 수 있다. 그렇다면 어떻게 하면 저렴하게 AI를 활용할 수 있을까? 이번 글에서는 생성형 AI를 API를 활용하여 저렴하게 활용하는 방법을 소개하고자 한다.1. AI API란 무엇인가?AI API(Application Programming Interface)는 사용자가 직접 모델을 학습하거나 구축할 필요 없이 AI 서비스를 활용할 수 있도록 해주는 인터페이스다. 대표적인 생성형 AI API 서비스로는 OpenAI, Google Cloud AI, Microsoft Azure AI, ..
이전에 작성한 글 https://jspark33.tistory.com/114 컴파일러 VS 인터프리터컴파일러란?컴파일러는 프로그래밍 언어로 작성된 코드를 기계어로 변환하는 프로그램이다. 컴파일 과정은 소스 코드를 한 번에 전체적으로 분석하고, 이를 실행 파일로 변환하여 이후 실행할jspark33.tistory.com 에서 인터프리터에 대하여 알아보며 인터프리터 언어 중에 하나인 파이썬의 인터프리터는 어떻게 구성되어있을지 매우 궁금하였다.파이썬 인터프리터에 대해 알아보려면파이썬의 기본 구현체인 cPython을 살펴보아야 한다.https://github.com/python/cpython GitHub - python/cpython: The Python programming languageThe Python p..
데스크 테리어를 하면서 모니터 암을 설치하고 모니터 2대를 장착했다. 윈도우 데스크탑은 문제 없이 모니터 2대가 가능하지만 내가 사용하는 맥북 에어 m1은 외장 모니터를 1대만 사용할 수 있다.. 모니터 2대를 사용하는 방법이 있을까 고민하던 중.. 방법을 찾아냈다. 준비물hdmi포트가 있는 C타입 허브usb hdmi 컨버터두 가지만 있으면 가능하다. 내가 사용한 제품들은 벨킨 USB C타입 노트북 멀티미디어 허브 F4U092btSGYhttps://link.coupang.com/a/b33PXe 벨킨 USB C타입 노트북 멀티미디어 허브 F4U092btSGY - USB허브 | 쿠팡현재 별점 4.7점, 리뷰 1667개를 가진 벨킨 USB C타입 노트북 멀티미디어 허브 F4U092btSGY! 지금 쿠팡에서 더..
3 메모리조합 칩 - 시간과 무관한 칩순차 칩 - 시간에 무관한 조합 칩과 달리, 현재 시점의 입력 뿐만 아니라 이전에 처리했던 입력 및 출력에도 영향을 받음클록틱 톡 이라는 2진 신호를 연속적으로 생성하는 것 => 클록틱의 시작과 톡의 종료 사이의 시간 => 주기DFF(데이터 플립 플롭)DFF란 out(t) = in(t-1) 이라는 식을 만족하는 칩순차 칩의 가장 기본적인 형태DFF는 이전의 입력을 기억하고, 현재 입력을 다음 클록 신호에 전달즉, 현재 출력은 이전 클록 신호의 입력과 같음ALU에 x + y를 계산하는 명령을 내렸다고 가정할 때, x는 근처 레지스터의 값이고 y는 멀리 위치한 RAM 레지스터의 값이라고 가정x,y의 전기신호가 ALU에 도착하는 시점이 서를 다를 가능성이 높음=> 컴퓨터 ..