저는 Python이 굉장히 매력적인 언어라고 생각합니다. 자료형도 비교적 자유롭고. 개발자 친화적이며, 러닝커브도 낮고, 가장 큰 매력은 언어가 직관적이라는 것입니다. 근데, 이 모든 장점을 갖고도 실무에서 잘 쓰이지 않는 이유가 있습니다. 바로 실행속도입니다. Python의 실행속도가 느린 이유는, 인터프리어 언어인 점, 자료형이 동적으로 할당되는 점, 메모리 액세스 문제 등 여러 이유가 있습니다. 그라나 역설적이게도, Python은 이러한 점 때문에 AI분야에서 널리 사용되고 있습니다. 방대한 데이터를 쉽게 처리할 수 있고, 다양한 라이브러리가 있기 때문이죠. Modular에서 기존 Python의 AI관련 장점을 모두 살리고 실행시간은 무려 35000배 빠른 Mojo라는 언어를 새로 공개했습니다. 소..
들어가며 이번에 SSAFY에서 프로젝트를 진행하면서 처음으로 웹 기반의 게임을 만들게 되었습니다. 게임을 만들다 보니 클라이언트에서 실시간으로 서버의 데이터 변경을 감지하는 로직을 구현해야 했는데 이 부분을 해결하기 위해 Websocket을 사용했습니다. 당연히 Websocket도 처음 써보았습니다. 뭔가 쉬우면서도 어려운 것 같은 느낌..? 개발하느라 이론을 충분히 공부하지 못한 채로 기술을 사용했던게 아쉬워서 기술에 대한 이해와 의문을 해결하고 실시간 데이터 통신과 그 방법인 Websocket에 대한 이런저런 내용들을 정리하기 위해 글을 씁니다. 가볍게 읽어주시면 좋을듯 합니다. 실시간 데이터 변경 감지 실시간으로 데이터를 통신한다는 것은 어쩌면 개발자에게 당연하게 느껴지는 기술입니다. 실제로 대부분..
서론 유튜브에서 굉장히 흥미로운 영상을 보게되었습니다. 바로 최근 가장 핫한 프로그램인 chatGPT로 책의 내용을 요약해서 유튜브 쇼츠 영상을 만드는 인공지능을 구현하는 영상입니다. 아래는 해당 영상 링크입니다. 요약하면 책의 내용을 AI가 인식하고 이 내용을 chatGPT가 요약한 후 이것을 AI가 만든 이미지와 캐릭터가 담긴 영상의 tts기술로 삽입하여 읽어주는 것입니다. 너무 신기하지 않나요? 본 게시글에선 셋팅만 진행하고 천천히 클론코딩을 진행해보도록 하겠습니다. (게시글 작성 허락해주신 원작자분께 너무나도 감사합니다.) 출처 : https://www.youtube.com/@bbanghyong 유튜브(빵형의 개발도상국) 빵형의 개발도상국 신기하고 재밌는 인공지능을 쉽게, 짧게, 내손으로 만들어 ..
서론 EC2 Ubuntu를 ubuntu@{public ip주소]로 접속하려는데 Server refused our key메시지와 아래의 에러를 반환했습니다. Disconnected : No supported authentication methods available (server sent :publickey) 해당 에러의 원인은 매우 다양하다고 합니다. 다양한 원인과 해결방법을 알아보겠습니다.. 원인 AWS 공식 문서를 참고하여 찾은 대표적인 원인들입니다. 1. You're using the incorrect user name for your AMI when connecting to your EC2 instance. The usual user names are ec2-user, ubuntu, centos,..
문제상황 위와 같은 아키텍쳐로 Jenkins에서 Pipeline을 통해 Django를 Dockerize 하는 상황에 발생한 문제입니다 . pipeline에서 정상적으로 Docker Container가 실행되는 것을 확인했고, ec2에서 docker ps 명령어를 통해 컨테이너가 정상적으로 실행되고 있는 것을 확인했습니다. docker ps //CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS //0bd7562d8edf image_name "python manage.py ru…" 2 hours ago Up 2 hours 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp 그러나 ec2의 퍼블릭ip에 8000번 port로 접근했을 때, 다음과 같은 ..
발생상황 python에서 INSERT INTO ---- 를 사용하여 mysql 에 값을 넣는 도중 발생한 에러입니다. 원인 해당 에러의 원인은 PK로 지정된 값이 유일성(중복이 없음)을 위배했기 때문입니다. 따라서 KEY를 유일하게 보장해줘야 합니다. 해결방법 1. Auto Increament 확인하기 mysql workbench에서 pk에 Auto Increament가 제대로 설정되어 있는지 확인한다. 2. Insert 쿼리문 다시 한 번 확인하기 Insert Into - 쿼리문에서 PK값을 같은 값으로 넣어주고 있지 않은지 확인한다.
기본적으로 Spring의 빈의 라이프 사이클은 컨테이너의 시작과 함께 생성되어 컨테이너가 종료될 때까지 유지된다. 이는 Spring에서 빈을 생성할 때 기본 스코프가 싱글톤 스코프이기 때문이다. 여기서 스코프란 빈이 존재할 수 있는 범위를 말한다. 이번 포스팅에서는 기본 스코프인 싱글톤과 스프링이 제공하는 다른 스코프에는 어떤 것이 있으며, 왜 사용하는지 알아보고자 한다. 스코프의 종류 기본적으로 스프링은 아래와 같이 다양한 스코프를 지원한다. 싱글톤: 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다. 프로토타입: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다. 웹 관련 스코프 request: 웹..
@Autowired를 사용하다 보면 NoUniqueBeanDefinitionException: No qualifying bean of type 에러를 심심치 않게 마주할 수 있다. 이번 포스팅에서는 NoUniqueBeanDefinitionException에러가 무엇이고 이를 해결하는 방법들에 대해서 알아보고자 한다. 에러 발생 원인 NoUniqueBeanDefinitionException 에러는 의존성을 자동 주입할 때, 주입하려는 빈이 하나가 아닌 2개 이상 존재하여 어떤 빈을 주입해야 하는지 알 수 업을 때 발생하는 에러이다. 예를 들어, 할인 정책의 기능을 수행하는 객체인 DiscountPolicy라는 인터페이스가 있고, 고정 금액 할인, 고정 비율 할인을 실제로 적용하는 FixDiscountPol..
스프링 컨테이너에서 IoC에 따라 빈을 생성하고 DI를 수행할 때 아래와 같이 설정파일인 ApplicationConfiguration.xml 또는 ApplicationConfiguraton.class 객체를 생성하여 직접 빈을 관리하곤 했다. (IoC와 DI가 뭔지 모른다면 여기로) (Spring) DI, IOC와 Spring Container란 ? 스프링을 공부하다 보면 IoC, DI 라는 용어를 자주 접하게 된다. 최근 면접에서도 IoC와 DI에 대해 설명해보라는 질문을 받았는데 개념이 확실하게 잡혀있지 않아서 버벅이면서 대답했던 기억이 난 recordofwonseok.tistory.com 아래는 그 예시이다. //스프링 컨테이너 생성 ApplicationContext applicationContex..