얼마전 ChatGPT에 새로운 기능이 업데이트 되었다. 바로 Sora라고 영상을 만드는 기능인데 유료 플랜에서만 사용이 가능하다. 그래서 겸사겸사 지금의 ChatGPT Plus 플랜은 얼마나 기능이 업데이트 되었는지도 확인해볼 겸 구독을 진행했다. ChatGPT에서 Plus 플랜을 구독하면 Sora가 위와 같이 활성화 된다. 그러면 해당 링크를 클릭해서 Sora를 사용 할 수 있는 페이지로 이동해 이미지나 영상을 만들 수 있다. 그런데 현재는 "Sora video generation is temporarily disabled for new accounts" 이런 문구가 뜨면서 영상은 만들 수가 없다.. 이럴거면 구독을 안했을텐데.. 지금은 신규 유저는 해당 기능이 임시로 사용 할 수 없다고 한다. 커뮤니..
Docker로 이미지를 사용해 CI(Continuous Integration) CD(Continuous Delivery)를 구축 할 때 사용하는 방법은 크게 두가지로 구분 할 수 있다. 1. 이미지 기반 배포 (Image-based Deployment)이미지 기반 배포 방법은 도커 이미지를 사용할 때 가장 일반적이고 많이 사용하는 방법이다. Docker 이미지를 빌드 후 레지스트리에 등록하고, 등록 된 이미지를 배포 서버에서 끌어와 사용하는 방식이다.이 방식의 장점은 등록된 이미지를 기반으로 일관되게 사용 할 수 있다는 점이다. 더불어 AWS와 같은 클라우드 서비스에서 관리하는 서비스는 수직 및 수평 확장, 축소에 매우 유리하다. 단점은 일반적인 배포 방식보다 번거롭게 느껴질 수 있는 과정들이 있다는 부..
implementation("com.querydsl:querydsl-jpa:5.0.0:jakarta") kapt("com.querydsl:querydsl-apt:5.0.0:jakarta") javax.* >> jakarta.* 이번에 스프링 부트 버전을 2.x.x 에서 3.x.x으로 업데이트하면서 JPA QueryDSL 관련 문제가 발생했습니다. 주요 빌드 에러 메시지는 다음과 같았습니다. error: cannot inherit from final XXX error: incompatible types: NonExistentClass cannot be converted to Annotation @error.NonExistentClass JPA와 연관된 도메인에서 위와 같은 에러메시지가 출렸되었는데, 이런..
유니티로 게임을 만들어서 배포하다 보니, 안드로이드에서 디버깅을 해야 하는 상황이 발생했는데요. 유니티에서 패키지 매니저를 사용해 Android Logcat을 설치하면 안드로이드의 로그를 확인할 수 있습니다. Android Logcat - Package Manager 유니티에서 안드로이드 로그를 확인하는 Logcat 설치하는 방법은 다음과 같습니다. 1. Window 메뉴에서 Package Manager 항목을 선택해 주세요. 2. 팝업으로 보이는 Package Manager 창에 "logcat"을 입력해서 아래와 같이 패키지를 선택 후 install 버튼을 눌러 설치해 주세요. 3. Android Logcat이 Install 되면, Window 메뉴에서 Analysis를 선택했을 때 Android Lo..
제이쿼리에서는 attr()과 같이 속성을 설정하는 함수는 제공하지만, hasAttr()과 같이 속성(attribute)의 유무를 판별하는 함수는 제공하지 않습니다. 그렇기 때문에 hasAttr()처럼 속성의 유무를 판별하려면 별도의 is()나 filter() 함수를 사용해야 하는데요. 오늘은 jQuery를 사용해서 속성 유무를 판별하는 방법을 알아보겠습니다. Javascript로 attribute 유무 판별하기 DOM에서 기본으로 제공하는 기능 중 Element의 hasAttribute()를 사용하면 속성을 판별할 수 있습니다. jQuery를 굳이 별다르게 조작할 필요 없이 말이죠. 아래의 방법은 jQuery 객체가 가진 참조값을 이용해 Element에 접근해서 속성 유무를 판별하는 방법입니다. $(th..
라이브러리를 만들다보면 코드를 난독화시켜야 하는 이슈가 발생합니다. 예를 들면 보안상의 이유라든지 아니면 소스 유출을 방지하기 위한 목적으로 말이죠. 오늘 글에서는 안드로이드 라이브러리(jar)에 ProGuard를 적용하는 방법을 알아보도록 하겠습니다. ProGurad 정의와 개념 안드로이드 라이브러리를 난독화하기 전에 코드를 난독화 시킬 때 사용할 ProGuard에 대해 설명하면, ProGuard는 JVM 기반 애플리케이션의 성능과 보안을 향상시키기 위해 사용하는 오픈 소스 도구입니다. 다시 말해 ProGuard를 사용하면 손쉽게 코드를 축소화, 최적화 및 난독화 할 수 있습니다. ProGuard가 지원하는 기능은 크게 3가지 입니다. 1. 축소화(Shrinking): 사용하지 않는 코드와 리소스를 제..
URL은 "Uniform Resource Locator"의 약자로, 인터넷상의 리소스 위치를 나타내는 주소입니다. 여기서 말하는 리소스는 웹 페이지뿐만 아니라 음악이나 이미지, 동영상 같은 자원(Resource)을 말합니다. URL은 인터넷에서 흔히 사용되면서, 기본적인 개념 중에 하나입니다. 네이버(https://www.naver.com)나 다음(https://www.daum.net)도 URL입니다. 아 구글(https://www.google.com)도요. URL이란? URL의 사전적인 설명은 Uniform Resource Locator 약자로 인터넷상의 리소스 위치를 말합니다. 현실에 빗대어 설명하면 인터넷에서 사용하는 주소입니다. 웹에서 주소를 사용하는 이유는 간단합니다. 물건을 살 때도 주소가..
안드로이드 앱 개발 과정에서 라이브러리를 추가하면서 생긴 이슈와 문제 해결 방법입니다. A problem occurred evaluating project ':app'. 에러 Build file 'AndroidStudio/project/mobile-app/build.gradle' line: 7 A problem occurred evaluating project ':app'. > Build was configured to prefer settings repositories over project repositories but repository 'maven' was added by build file 'app/build.gradle' * Try: > Run with --info or --debug opti..
로컬 환경에서 개발을 하다 보면 hosts 파일을 수정해서 도메인을 등록하고 사용해야 하는 경우가 있습니다. 예를 들면 localhost 대신 [사용자도메인].com 개발에서 정의된 도메인을 검증해야 하는 경우인데요. 이번엔 hosts 파일을 수정해서 자신이 사용하는 도메인을 local 환경에서 사용하는 방법에 대해 알아보겠습니다. Mac OS hosts 파일 위치 Mac OS의 hosts 파일 경로는 '/private/etc' 입니다. 터미널 창을 열어서 'cd /private/etc'를 입력하면 hosts 파일이 위치한 폴더로 이동할 수 있습니다. cd /private/etc Mac OS hosts 파일에 도메인을 등록하는 방법 Mac OS에서 도메인을 등록해서 사용하려면 hosts 파일을 수정해야 ..
CORS(Cross-Origin Resource Sharing)는 동일한 도메인에서는 자유롭게 리소스를 사용할 수 있게 하고, 다른 도메인의 리소스는 보안 상의 이유로 제한하는 정책입니다. 개발을 하다 보면 간혹 마주치는 문제이기도 한데요. 오늘은 CORS가 어떤 이슈이고 어떠한 방법으로 해결할 수 있는지 알아보겠습니다. CORS(Cross-Origin Resource Sharing) 이슈 CORS 정책은 같은 도메인에서는 자유롭게 리소스를 요청하고 사용할 수 있지만, 다른 도메인은 보안 상의 이유로 리소스 사용을 제한합니다. 앞서 이야기드린 것과 같이 CORS(Cross-Origin Resource Sharing)는 동일한 도메인의 자원은 자유롭게 사용하고, 다른 도메인 리소스 요청을 제한하는 정책입니..
AWS에서 운영하던 서비스를 내리게 되면서 EC2를 정리했습니다. EC2 인스턴스 종료 방법은 간단하지만 모르면 헤매게 설정이 되어있어 간략하게 EC2 인스턴스를 내리는 방법을 정리합니다. EC2 인스턴스를 삭제하는 방법 AWS에서 제공하는 EC2 기능은 애플리케이션 서버 혹은 OS(운영체제)의 인스턴스를 생성해서 쓰는 개념이기 때문에 삭제하는 기능이 존재하지 않습니다. 대신 사용 중에 멈출 수 있는 정지와 사용을 하지 않겠다는 종료 기능을 제공합니다. 따라서 사용하던 EC2 인스턴스를 삭제하려면 삭제가 아닌 종료 기능을 사용해 EC2 인스턴스를 정리하면 됩니다. EC2 인스턴스 종료가 안될 때 글을 시작하면서 이야기 한 부분인데요. EC2 인스턴스를 정지해도 종료 버튼이 활성화되지 않아 이 기능을 활성..
타입스크립트의 장점 중 하나가 자바스크립트와 달리 명시적으로 타입(Type)을 정의해서 활용할 수 있다는 부분입니다. 개인적으로는 Type을 타입이라고 부르기보다는 유형이라고 생각하는 게 개념적으로 이해하기에는 좋다고 생각하는데요. 이번 글에서는 타입 스크립트가 가지는 타입 주석과 타입 추론에 대해 알아보겠습니다. 타입 주석 - type annotation let n: number; let b: boolean; let s: string; 타입 주석은 변수에 할당되는 값의 유형을 정의하는 타입스크립트 문법입니다. 사용 방법은 변수를 선언하고 콜론(:)과 변수에 정의할 수 있는 값의 유형을 기입하면 됩니다. number는 숫자를 boolean은 true, false은 string은 문자를 받을 수 있다는 의..