분류 전체보기 126

👉 [CS] 아이폰 시리를 chatGPT로 바꿔서 써보기 Feat.노코드

애플 제품은 다 써도, Siri 잘 안쓰는 편이다. 발화에 대한 인식률이 낮기 때문이다. 내 발음이 제대로 안되나... 영어는 잘 된다고 하는데 흠.. 스픽(Speak) 이라는 영어 회화 앱을 쓰는데 이건 한국식 영어 발음도 참 잘되는걸 보면 내가 보기엔 그냥 애플에서 한국인 발음 데이터를 제대로 관리 안하는 것 같다. (소수 민족의 슬픔) 아무튼 근데 chatGPT를 Siri에게 쓸 수 없을까? 라는 호기심이 생겼다. 바로 실행했다. 아이폰에 기본 탑재된 단축어 앱을 이용하면 되는데, 이게 스크래치 같은 노코드 툴이다. 로직만 잘 짜면 된다. 오 짜봐야지! 하다가 문득 혹시 깃허브에 누군가 만든게 있지 않을까... 궁금해졌다. 찾아보니 있었다. ChatGPT-siri 바로 써보기로 했따. 프로그래밍 제..

컴퓨터 공학 2023.04.02

👉 [Python] 같지만 다른 배열 초기화 방법

x = [[0] * n ] * n 종종 이런식으로 이차원 배열을 선언하는데 알 수 없는 오류가 발생했다. arr2 = [[0] * n ] * n arr2[0][0] = 1 print(arr2) # 출력: [[1, 0, 0], [1, 0, 0], [1, 0, 0]] 분명 첫 원소 (0,0)만 바꿨는데 (X,0) 애들이 전부 바뀌어 버린다... 😭 다른 방식과 비교해보았다. n = 3 # 리스트 내포로 2차원 리스트 초기화 arr1 = [[0] * n for _ in range(n)] arr1[0][0] = 1 print(arr1) # 출력: [[1, 0, 0], [0, 0, 0], [0, 0, 0]] # 반복문으로 2차원 리스트 초기화 arr2 = [[0] * n ] * n arr2[0][0] = 1 pr..

컴퓨터 공학 2022.12.22

👉 [알고리즘] 투포인터 알고리즘

투 포인터(Two Pointers) 알고리즘은 주로 배열이나 리스트와 같은 순차적인 자료구조에서 특정 범위를 탐색하거나 부분합, 부분 문자열 등을 찾을 때 유용한 알고리즘이다. 투 포인터 알고리즘은 이름 그대로, 두 개의 포인터를 이용하여 문제를 해결한다. 이 알고리즘은 보통 정렬된 배열에서 찾는 문제에서 유용하게 사용한다. 1. 배열이나 리스트에서 각각 왼쪽 포인터(left)와 오른쪽 포인터(right)를 정한다. 2. right를 체크 대상 추가를 위해 +1 씩한다. 3. left를 체크 대상 해제를 위해 +1 씩한다. 4. 반복해서 두 포인터의 위치를 조정하며 문제를 해결한다. 보통 이 알고리즘은 두 포인터의 위치를 이동시키는 규칙을 설정하여 사용한다. 예를 들어, 부분합을 구하는 문제에서는 왼쪽 ..

[책] 그래서 어쩔테냐.

"네가 이 땅에서 겪어야 할 고통에 대해 아무런 마음의 준비도 하지 못한 채 이곳에 오게 된 것은 알겠다. 네가 평안을 느낄 수 있는 유일한 땅에 돌아갈 수 없는 사정도, 그리고 너와 네 누나의 비극도 이해했다. 그래서 어쩔테냐. 저것을 먹고 우리와 함께 걸어갈 테냐? 이곳에 주저 앉아 네 모든 비극을 향해 저주를 퍼부을 테냐? 이도저도 싫다면 남쪽으로 돌아가 네 누난의 칼날에 목을 내어줄 테냐? 나는 선택이 쉬울거라고 본다. 륜 페이, 네 선택은 무엇이지?" 륜은 일어나 여우를 먹었다. 그리고 그날, 일행은 황야를 벗어나 산맥으로 접어들었다. - 눈물을 마시는 새 - 그래. 고통 속에 있는 것도, 있었던 것도, 힘겨운 것도 안다. 그래서 어쩔 것 인가? 계속 그렇게 후회만 할건가? 아니면 앞으로 나아갈..

일상/독서 2022.11.28

[영화] Everything Everywhere All at once

예고편 보고 이상한 B급 영화라고 생각해서 안볼 생각이었다. 그런데 이동진 평론가 5점 소식을 듣고 봐야겠다 생각했다. 두괄식으로 나도 5점 주고 싶다 예고편만 보면 무슨 아시아 = 쿵푸 = 세탁소 스테레오타입 짬뽕 섞은 느낌이었다. 물론 실제로 그런 모습으로 나오기도 하지만. 멀티버스는 또 뭐시당가. 영화가 표면적으로 그려내는 일은 가족애를 표상한다. 레즈비언 자녀를 둬서 내심 못마땅한 세탁소 세무조사를 받는 중국인 이민자 여성(가족)의 현실에 멀티버스를 끼얹는다. 갑자기 나타나서 네가 세상을 구할거야! 라고 하면 사실 이 무슨 황당한 일인가. 개연성 따위는 개나 주었다. 하지만 영화가 끝날 때 모두들 생각할 것이다. 개연성 따위가 무슨 상관이야? 영화가 이렇게 잘뽑혔는데! 사실 우리가 살아가는 곳에 ..

일상/독서 2022.11.20

👉 [DB] Migration

마이그레이션(migration)은 일반적으로 데이터베이스에서 스키마를 변경하거나 업데이트할 때 사용하는 작업이다. 이 과정에서 데이터 무결성을 보장하기 위해 여러 가지 방법을 사용할 수 있다. 기존에 마이그레이션 툴을 이용하지 않고, 수작업으로 계속해서 버전을 관리한 경험이 있는데 덕분에 오류를 만나게 되었다. 무엇이든지 자동화하는 것은 큰 메리트가 있는 것 같다. 데이터베이스 마이그레이션은 (1)데이터의 무결성을 보장하고, (2)데이터 유실을 방지하며, (3)데이터베이스 구조를 유지 보수하는 데에 매우 중요하다. Python에서는 Flask-Migrate, Alembic 등의 마이그레이션 도구가 있고, Java 에서는 Flyway 가 있다! 데이터베이스 스키마를 변경하는 경우, 스키마 변경에 따른 데이..

컴퓨터 공학 2022.11.12

👉 [CS] 우선순위 큐

우선순위 큐 우선순위 큐(Priority Queue)는 데이터를 저장하고, 꺼내올 때 우선순위에 따라 처리하는 자료구조이다. 일반적으로는 힙(Heap)이라는 자료구조를 이용하여 구현된다. (우선순위 큐 != 힙) 우선순위 큐는 일반 큐와 달리, 데이터가 들어올 때마다 우선순위를 비교하여 적절한 위치에 삽입하거나, 이미 삽입된 데이터 중 가장 우선순위가 높은 데이터를 먼저 꺼내오는 동작을 수행한다. 우선순위 큐는 다양한 분야에서 사용됩니다. 예를 들어, 다익스트라 알고리즘과 같은 최단 경로 알고리즘에서는 우선순위 큐를 이용하여 다음으로 방문할 노드를 선택한다. 또한, 운영 체제에서는 프로세스 스케줄링을 위해 우선순위 큐를 사용한다. 우선순위 큐는 일반적으로 삽입과 삭제 연산의 시간복잡도가 O(log n)입..

[생각] 목적과 목표가 다르다

https://youtu.be/TLaosTurPnc?t=12759 영상 썸네일이 왜 이래(...) "목적은 무엇이고, 목표는 무엇일까요? 목적이라는 것은 이것을 내가 왜 해야하는지에 대한 좀 더 심도 높은 질문이에요. 목표를 이뤘어. 그러면 목적은 이루어졌나요? ...(중략)... 목적과 목표의 구분이 필요해요. 두 개를 동일시 하면 허망해집니다. 게임으로 예시를 두면, 목표는 엔딩을 보는 것. 게임의 목적은 즐거움이에요 목표만 이루기 위해 게임을 한다면 Beginner-mode로 하면 되잖아? 그런데 사람들은 왜 Hard-mode는 왜 하나? 목표만 이루면 되잖아요." 우리의 삶을 지탱하는 다양한 요소가 있다. 누군가는 그것이 명예일지도, 누군가는 금전적 성취일지도 모른다. 대체로 그것들은 목표이다. ..

일상/생각 2022.10.23

[생각] 축구에 대한 비유

축구는 단순히 개인 플레이어가 잘해야만 이길 수 있는 게임이 아니다. 메시가 4-5명 드리블로 돌파하는 재능을 갖고 있어도 아르헨티나가 월드컵 우승하지 못한 것처럼 말이다. (Edit. 이 글을 쓰고 시간이 지나 아르헨티나가 2022 월드컵 우승을 했다...) 일도 마찬가지이다. 원 맨 파워로 승부할 수 없다. 이는 축구에서 감독의 역할로 볼 수 있다. 흔히 말하는 퍼거슨과 같은 명장의 존재는, 곧 리그 우승 같은 큰 성공으로 이어지기 때문이다. 감독의 역할은 무엇인가? 감독은 팀의 조직력을 매우 유기적으로 연결 시키고 경기의 판을 짜는 역할을 한다. 리더는 팀의 업무 효율을 극대화하고, 방향성을 결정한다는 차원에서 둘은 매우 유사하다. 공격수는 마케터이다. 그들은 가장 앞선에서 유효 슈팅으로 팀에게 성..

일상/생각 2022.10.20

👉 [GIT] 잘못된 파일 및 커밋 히스토리 완전 삭제

불이나도 해야하는 것은 저장이다. 그리고 개발자들이 제일 많이 써야하는 저장은 Git Commit + Push 아닐까. 그러나 문제는 원격 저장소인 Github에 잘못 파일이 올라가는 일이 발생한다는 것이다. 보통은 .gitignore 를 활용하면, 특정 폴더 혹은 파일에 대해서 예외처리가 가능하다. 허나 나의 경우, 실수로 ignore 처리가 되지 않아 API KEY 값이 업로드된 경험이 있다. 특히 AWS Key 같은 경우, 조심해야 하는게 나쁜녀석들이 키를 크롤링해가서 채굴기로 쓴다고 한다. 그렇게 몇천만원 나온 경우를 검색하면 심심치 않게 볼 수 있다. 물론 가져다 쓰는 녀석들이 잘못된 것이지만, 애초에 Key 값 같은 중요한 데이터들은 확실하게 관리하지 않은 컨트리뷰터의 잘못도 있다. 나 같은 ..

컴퓨터 공학 2022.10.14