본문 바로가기
라이브러리 import 순서에 따른 에러 로컬에서는 문제없이 돌아가는 코드가 AWS 서버로 옮기니까 다음과 같은 에러가 발생했다. terminate called after throwing an instance of 'std::runtime_error' what(): random_device could not be read 난생 처음보는 에러이고 로컬에서는 돌아가니 난감했다. 그래도 다행히 하나만 추가했는데 에러가 발생해서 금방 원인을 찾을 수 있었다. 내가 추가한건 ultralytics이고, import torch를 포함하는 라이브러리이다. 결론부터 말하자면 라이브러리 import 순서에 따른 AWS에서만 발생하는 에러였다. torch와 tensorflow를 동시에 import를 하면 에러가 발생하는데, torch를 먼저 import하고, te.. 2023. 7. 10.
AWS EC2 디스크 용량 늘리기 설치해놓은 라이브러리가 있었는데, 설치된줄 알고 서버를 돌렸는데 에러가 발생했다. 그래서 다시 라이브러리를 설치하는데 용량이 부족하다는 에러메세지가 떴다. 그래서 EC2의 디스크 용량을 늘리려고 한다. 먼저 AWS의 인스턴스에 들어간다. 인스턴스에서 용량을 늘릴 Instance ID를 클릭하고, Storage에 Volume ID를 클릭하여 들어간다. Volume ID에서 우클릭하여 Modify volume을 누른다. Size를 사용할만큼 늘리고 Modify를 누른다. 용량을 늘린 인스턴스의 Volume state가 회색에서 In-use 초록으로 바뀌고 ec2를 재부팅해주면 된다. (재부팅 하지 않으면 용량을 늘린게 적용되지 않는다) 나는 라이브러리를 마저 깔다가 용량이 더 필요하단걸 알게 되었다. 그래서.. 2023. 7. 7.
[구름레벨] '3개의 숫자를 더하여 술래가 원하는 숫자를 만드세요' 파이썬 풀이 https://level.goorm.io/exam/43060/3%EA%B0%9C%EC%9D%98-%EC%88%AB%EC%9E%90%EB%A5%BC-%EB%8D%94%ED%95%98%EC%97%AC-%EC%88%A0%EB%9E%98%EA%B0%80-%EC%9B%90%ED%95%98%EB%8A%94-%EC%88%AB%EC%9E%90%EB%A5%BC-%EB%A7%8C%EB%93%9C%EC%84%B8%EC%9A%94/quiz/1 구름LEVEL 구름LEVEL 문제를 풀이하고 부족한 부분을 보완하며 실력을 키워보세요. 구름LEVEL은 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입 level.goorm.io card = sorted(map(int, input(.. 2023. 7. 7.
YOLO V8 detection 간단하게 사용하기 https://ultralytics.com/yolov8 Ultralytics | Revolutionizing the World of Vision AI Ultralytics' mission is to empower people and companies to unleash the positive potential of AI. Bring your models to life with our vision AI tools. ultralytics.com 그냥 이미지 간단하게 확인하여 검출된 내용을 확인하고 싶었다. 하지만 찾아보니까 웹캠에서만 사용하는걸 많이 포스팅하고 있어서 찾기 어려웠다. 그래서 간단하게 이미지 한장 확인하는걸 포스팅하게 되었다. !pip install ultralytics !pip install.. 2023. 7. 6.
예외처리 예전에는 '나는 틀리지 않을테니 예외처리를 할 필요가 없어'라는 생각을 가지고 있었다. 하지만 몇 달전부터 예외처리를 해주려 노력하고 있다. 내가 문제가 없더라도 다른 통신에 의해, 서버에 의해 오류가 생길 수도 있고, 코드가 방대해지니 로직이 꼬이기도 하고 데이터베이스의 이름이나 컬럼명이 달라지기도 했었다. 에러가 발생해도 다른 로직들은 문제없이 실행되어야하기 때문에 에러가 발생할수 있는 곳마다 에러처리를 해야했다. def chat_ever(chat_count, user): return chat_count / user 예를 들면 유저들의 평균 채팅수를 구하는 코드이다. user가 채팅을 쳤으니 user는 0이 될 수 없다고 생각했었다. 하지만 채팅을 친 유저가 탈퇴하여 유저수가 0이 되는 경우가 생긴다.. 2023. 6. 29.
[구름레벨] '인공지능 청소기' 파이썬 풀이 https://level.goorm.io/exam/43068/1a-%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5-%EC%B2%AD%EC%86%8C%EA%B8%B0/quiz/1 구름LEVEL 구름LEVEL 문제를 풀이하고 부족한 부분을 보완하며 실력을 키워보세요. 구름LEVEL은 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입 level.goorm.io for _ in range(int(input())): x, y, n = map(int, input().replace('-','').split()) print('NO' if (x+y)%2 != n%2 or x+y > n else 'YES') """ 뭔가 좌표의 절대값의 덧셈이 홀수면 .. 2023. 6. 29.
[구름레벨] '부분 팰린드롬 문자열' 파이썬 풀이 https://level.goorm.io/exam/47880/%EB%B6%80%EB%B6%84-%ED%8C%B0%EB%A6%B0%EB%93%9C%EB%A1%AC-%EB%AC%B8%EC%9E%90%EC%97%B4/quiz/1 구름LEVEL 구름LEVEL 문제를 풀이하고 부족한 부분을 보완하며 실력을 키워보세요. 구름LEVEL은 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입 level.goorm.io w, _max = input(), 1 e = len(w) for l in range(e): for r in range(l+_max, e+1): if w[l:r] == w[l:r][::-1]: _max = max(_max, r-l) print(_max) ".. 2023. 6. 28.
AWS pymysql [ 2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))] 에러 해결 AWS에서 백그라운드로 스케줄링코드를 돌렸는데, 2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer')) 에러가 발생했다. 이유를 찾는 도중에 연결을 해놓고 연결을 끊지 않아서 발생하는 에러였다. 한번씩만 실행할때는 연결을 끊지 않아도 코드가 종료되니 몰랐었다. 그래서 코드가 종료되면 연결을 끊고, 다시 코드를 돌리는 시간이 되면 연결하는 방식으로 바꾸었다. 2023. 6. 27.
EC2 파이썬 서버 항상 실행되게 하기 EC2 인스턴스도 새로 만들고, 파이썬 스케줄링도 다 했는데 AWS 우분투창을 끄면 파일도 같이 꺼져서 방법을 찾아야했다. 어떻게 해야할까 고민하다가 nohup이라는 명령어를 알게 되었다. nohup을 이용하면 백그라운드에서 실행시켜 창을 꺼도 유지가 된다. nohup은 "no hang up"(끊지마!)의 약자이다. 방법은 간단하다. 기존의 방법에서 앞 뒤에 nohup [기존 명령어] &이다. nohup python3 main.py & 이렇게 쓰고 엔터를 누르면 이 문구가 나오고 exit를 입력하고 엔터를 치고 다시 재접속을 해보면 된다. 다시 접속한다음 ps -ef | grep main # [실행시킨 파일 이름] 이라고 치고 실행하고 있으면 성공이다. 나는 처음에 main.py가 있는 폴더에 들어가서 .. 2023. 6. 27.
[구름레벨] '파손된 램' 파이썬 풀이 https://level.goorm.io/exam/49074/%ED%8C%8C%EC%86%90%EB%90%9C-%EB%9E%A8/quiz/1 구름LEVEL 구름LEVEL 문제를 풀이하고 부족한 부분을 보완하며 실력을 키워보세요. 구름LEVEL은 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입 level.goorm.io input() damaged_ram_indexs = [i+1 for i, v in enumerate(map(int, input().split())) if v&(v-1) != 0] print(len(damaged_ram_indexs)) print(*damaged_ram_indexs) """ 2의 제곱수가 아닌값들을 찾아야한다. 2의 제곱.. 2023. 6. 22.
[구름레벨] '버스 선택' (소희와 버스) 파이썬 풀이 https://level.goorm.io/exam/49107/%EC%86%8C%ED%9D%AC%EC%99%80-%EB%B2%84%EC%8A%A4/quiz/1 구름LEVEL 구름LEVEL 문제를 풀이하고 부족한 부분을 보완하며 실력을 키워보세요. 구름LEVEL은 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입 level.goorm.io def find_bus_num(n, t): buses = [] for bus_number in range(1, n+1): arrive, repeat = map(int, input().split()) while True: if arrive < t: arrive += repeat elif arrive == t: return.. 2023. 6. 22.
[구름레벨] 'T세포' 파이썬 풀이 https://level.goorm.io/exam/49085/t%EC%84%B8%ED%8F%AC/quiz/1 구름LEVEL 구름LEVEL 문제를 풀이하고 부족한 부분을 보완하며 실력을 키워보세요. 구름LEVEL은 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입 level.goorm.io n = int(input()) answer, i = [], 0 while True: if n == 2**i: answer.append(i) print(len(answer)) print(*answer[::-1]) break elif n < 2**i: n -= 2**(i-1) answer.append(i-1) i = 0 else: i += 1 """ n을 2의 i제곱으로.. 2023. 6. 21.
[구름레벨] '연속 점수' 파이썬 풀이 https://level.goorm.io/exam/174924/%EC%97%B0%EC%86%8D-%EC%A0%90%EC%88%98/quiz/1 구름LEVEL 구름LEVEL 문제를 풀이하고 부족한 부분을 보완하며 실력을 키워보세요. 구름LEVEL은 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입 level.goorm.io # -*- coding: utf-8 -*- # UTF-8 encoding when using korean input() scores = list(map(int, input().split())) prev, plus, _max = scores[0], scores[0], scores[0] for cur in scores[1:]: if cu.. 2023. 6. 21.
[구름레벨] '의좋은 형제' 파이썬 풀이 https://level.goorm.io/exam/49088/%EC%9D%98%EC%A2%8B%EC%9D%80-%ED%98%95%EC%A0%9C/quiz/1 구름LEVEL 구름LEVEL 문제를 풀이하고 부족한 부분을 보완하며 실력을 키워보세요. 구름LEVEL은 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입 level.goorm.io duo = list(map(int, input().split())) for i in range(int(input())): q, r = divmod(duo[i%2], 2) duo[i%2] = q duo[i%2 -1] += q + r print(*duo) """ 문제 지문에서 가지고 있는게 홀수라면 모두 준다고 하여 다주는.. 2023. 6. 20.
[구름레벨] '피보나치 수' 파이썬 풀이 https://level.goorm.io/exam/175018/%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98-%EC%88%98/quiz/1 구름LEVEL 구름LEVEL 문제를 풀이하고 부족한 부분을 보완하며 실력을 키워보세요. 구름LEVEL은 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입 level.goorm.io # -*- coding: utf-8 -*- # UTF-8 encoding when using korean a, b = 0, 1 k = int(input()) if k == 1: print(a) else: for i in range(2, k): a, b = b, a + b print(b % 1000000007) """ .. 2023. 6. 20.
[구름레벨] '폴더 폰 자판' 파이썬 풀이 https://level.goorm.io/exam/159544/%ED%8F%B4%EB%8D%94-%ED%8F%B0-%EC%9E%90%ED%8C%90/quiz/1 구름LEVEL 구름LEVEL 문제를 풀이하고 부족한 부분을 보완하며 실력을 키워보세요. 구름LEVEL은 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입 level.goorm.io # -*- coding: utf-8 -*- # UTF-8 encoding when using korean _, push = input(), input() p, c = push[0], 0 key = {'1':'1.,?!', '2':'2ABC', '3':'3DEF', '4':'4GHI', '5':'5JKL', '6':'.. 2023. 6. 13.
[구름레벨] '구름 숫자' 파이썬 풀이 https://level.goorm.io/exam/163678/%EA%B5%AC%EB%A6%84-%EC%88%AB%EC%9E%90/quiz/1 구름LEVEL 구름LEVEL 문제를 풀이하고 부족한 부분을 보완하며 실력을 키워보세요. 구름LEVEL은 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입 level.goorm.io # -*- coding: utf-8 -*- # UTF-8 encoding when using korean length = int(input()) text = input() num = {'qw':'1', 'as':'2', 'zx':'3', 'we':'4', 'sd':'5', 'xc':'6', 'er':'7', 'df':'8', 'cv'.. 2023. 6. 9.
[구름레벨] '뒤통수가 따가워' 파이썬 풀이 https://level.goorm.io/exam/167337/%EB%92%A4%ED%86%B5%EC%88%98%EA%B0%80-%EB%94%B0%EA%B0%80%EC%9B%8C/quiz/1 구름LEVEL 구름LEVEL 문제를 풀이하고 부족한 부분을 보완하며 실력을 키워보세요. 구름LEVEL은 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입 level.goorm.io # -*- coding: utf-8 -*- # UTF-8 encoding when using korean _ = input() peaks = list(map(int, input().split())) answer = [0] before = [peaks[0]] for i, v in enum.. 2023. 6. 9.
프로그래머스 '[1차] 프렌즈4블록' 파이썬 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 각 문자는 라이언(R), 무지(M), 어피치(A), 프로도(F), 네오(N), 튜브(T), 제이지(J), 콘(C)을 의미한다. 입력으로 블록의 첫 배치가 주어졌을 때, 지워지는 블록은 모두 몇 개인지 판단하는 프로그램을 제작하라. """ def solution(m, n, b): b = [[[0, b[y][x], 0] for y in range(m)] for x in range(n)] isp.. 2023. 5. 26.
프로그래머스 '[3차] 방금그곡' 파이썬 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, 라디오 등에서 나온 음악에 관해 제목 등의 정보를 제공하는 서비스이다. (하략) """ def solution(m, musicinfos): m = m.replace('A#','a').replace('C#','c'.. 2023. 5. 18.
프로그래머스 '요격 시스템' 파이썬 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ A 나라가 B 나라를 침공하였습니다. B 나라의 대부분의 전략 자원은 아이기스 군사 기지에 집중되어 있기 때문에 A 나라는 B 나라의 아이기스 군사 기지에 융단폭격을 가했습니다. A 나라의 공격에 대항하여 아이기스 군사 기지에서는 무수히 쏟아지는 폭격 미사일들을 요격하려고 합니다. 이곳에는 백발백중을 자랑하는 요격 시스템이 있지만 운용 비용이 상당하기 때문에 미사일을 최소로 사용해서 모든.. 2023. 5. 17.
TIPS 선정 후기 http://www.jointips.or.kr/ TIPS 프로그램 - Tech Incubator Program for startup Korea main-img-01 Created with Sketch. TIPS프로그램(민간투자주도형 기술창업지원, 이스라엘式)은 세계시장을 선도할 기술아이템을 보유한 창업팀을 민간주도로 선발하여 미래유망 창업기업을 집중 육성하 www.jointips.or.kr 팁스는 국가에서 투자사를 받아 우리같은 회사에 지원해주는 프로그램이다. 투자금은 약 7억+@정도 된다. 2023년 3월 초 TIPS를 지원할거라며 AI주제로 생각해보라고 하여 1월에 제안했던 2가지 주제에 대해 다시 한번 제안했다. 우리 회사의 투자사인 울산 창조경제에 보여주고 주제를 픽스해야해서 PPT로 발표자료를 .. 2023. 5. 16.
파이썬으로 간단하게 챗봇 만들기 우선 챗봇을 혼자 만들어보려고 만든 자료들과 논문을 읽어보았다. 하지만 컴퓨팅자원이 부족하고 일일히 대화자료를 만들어내기는 어려웠다. 그래서 찾아보았는데 비슷한 자료가 있어서 이걸 챗봇으로 구현해보았다. 보시기 전에 미리 말하지만 챗봇이라고 하기에는 다소 문제가 있긴 하지만, 간단하게 재미를 붙여볼 수는 있다. 우선 다 한 자료를 먼저 보고나서 끝까지 볼 사람은 봐도 된다. 이제 팁스 진행을 해야해서 조금더 고도화하지는 못했다. 토큰화, 딥러닝, 동사, 명사, 조사, 이런거 다 필요없다. 하지만 조금더 대화를 매끄럽게 하기위해서는 그정도는 해줘도 된다. 먼저 어렵게 찾은 API이다. 이건 무료이고 성능도 괜찮고, 한국에서 뛰어난 석,박사님들이 만든 것이다. https://aiopen.etri.re.kr/.. 2023. 5. 9.
프로그래머스 '월간 코드 챌린지 시즌2 괄호 회전하기' 파이썬 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr """ 다음 규칙을 지키는 문자열을 올바른 괄호 문자열이라고 정의합니다. (), [], {} 는 모두 올바른 괄호 문자열입니다. 만약 A가 올바른 괄호 문자열이라면, (A), [A], {A} 도 올바른 괄호 문자열입니다. 예를 들어, [] 가 올바른 괄호 문자열이므로, ([]) 도 올바른 괄호 문자열입니다. 만약 A, B가 올바른 괄호 문자열이라면, AB 도 올바른 괄호 문자열입니다. 예를 들어,.. 2023. 5. 8.