ChatGPT Simple Tarot ( GPT로 타로점 보기 )

ChatGPT Explore 을 사용해 타로점을 볼 수 있는지 만들어봤습니다.  https://chat.openai.com/g/g-onek4lFk5-simple-tarot-gpt 현재 Explore 기능은 GPT 유료 사용자만 사용이 가능합니다. 질문을 입력하면 타로 카드를 세 장 뽑아서 해석해 줍니다. 미리 입력된 규칙을 사용해 질문에 답변하는 간단한 구성입니다.

안드로이드 Gmail 앱에서 Outlook 메일 연동시 삭제 안되는 문제 해결

이미지
 최근에 안드로이드 폰으로 바꾸면서 Gmail 앱을 사용하게 되었습니다.  제가 사용하는 메일에는 Outlook 메일도 있어서 외부 메일 계정으로 연동한 상태입니다.  Gmail 앱에서 Outlook 메일 확인은 잘 됩니다.  하지만, 메일을 삭제하고 목록을 새로고침하면 삭제된 메일들이 그대로 남아있는 문제가 있었습니다.  해당 문제를 확인해 보니 아래와 같은 글을 찾을 수 있었습니다.   https://support.google.com/mail/thread/3947624/my-hotmail-accound-on-my-gmail-app-will-not-delete-emails-very-annoying?hl=en  스크롤을 내려 마지막 댓글에 해결 방법이 있습니다.  Outlook 메일을 보면 "지운 편지함" 말고, "Trash" 라는 별도의 폴더가 있습니다.   이 폴더를 제거하면 됩니다.  저는 이미 지워서 "지운 편지함"에 들어가 있습니다.  이후에는 앱에서 삭제하면 잘 지워집니다.  아마도 Gmail에서 삭제를 했을 때 사용되는 휴지통인 trash 와 충돌이 나서 문제가 있었던 것 같습니다.

반올림된 금액의 총합이 증가하는 문제

 4원을 두 사람이 각각 62.5%, 37.5% 나누어 가지는 상황입니다.  받는 금액은 2.5원, 1.5원이 되는데, 이 금액을 표시하는 페이지가 있다고 했을 때, 시스템적으로 소수점을 표시하지 않는다고 하면 어떻게 해야 할까요?  버림을 하게 되면 2원, 1원 표기가 되고, 합계는 3원이 되어 이상하게 보입니다.  올림을 하게 되면 3원, 2원 표기가 되고, 합계는 4원이 되어 이 또한 이상합니다.  반올림을 하면? 둘 다 .5로 끝나기 때문에 올림을 한 것과 같은 결과가 나오게 됩니다.  이 문제를 어떻게 처리하나 찾아보니 '은행원의 반올림'이라는 것을 알게 되었습니다.  이 방식은 반올림을 할 때, 5의 경우 윗자리 가장 가까운 짝수로 처리한다는 것입니다.  즉, 5는 0, 15는 20, 25는 20, 35는 40, 이런 식으로 처리하는 것입니다.  이 방식을 사용위 위의 소수점을 처리한다면 2.5원, 1.5원은 2원, 2원으로 표기되며 총 금액이 4원으로 맞게 됩니다.  하지만 '은행원의 반올림'에도 문제가 있습니다.  일단 2.5원을 받을 사람이 자신의 금액에 2원이라고 되어 있으면 기분이 나쁘겠죠.  금액이 적어진 것도 그렇지만 누구는 버림을 하고 누구는 올림을 했으니 공평하지 않다고 생각할 겁니다.  그리고, 두 사람이 50%로 공평하게 나눈다고 하면 근본 문제가 해결되지 않습니다.  3원을 둘로 나누어 1.5원씩 나누어 가진다고 했을 때, 이 금액은 "은행원의 반올림'을 해도 2원씩 표시되어 총 금액이 원금인 3원보다 높은 4원이 표시됩니다.  결국에는 이런 부분에서는 시스템적으로 반올림 사용을 최소화 하는 게 답이 아닐까 생각하게 됩니다.

알파벳 순서 외우기 앱

이미지
 영어 단어 외우는 것과 별개로 알파벳 순서를 중간에서 바로 떠올리려고 하면 버벅댈 때가 있습니다.  특히 알파벳 오름차순이나 내림차순으로 되어있는 목록을 찾을 때(예를 들면 책으로 된 영어사전이라던가...) 바로 떠오르지 않아 답답한 경우가 있어서 앱을 하나 만들었습니다.  표시되는 알파벳을 보고 다음이나 이전 알파벳을 선택하는 단순한 게임입니다. https://play.google.com/store/apps/details?id=com.nextcharactergamenew1cm  ***아이폰 개발 환경은 갖추고 있지 않아서 안드로이드만 올라가 있습니다.***

자신을 제외한 최대 약수 구하기

 코딩테스트에서 자신을 제외한 최대 약수가 필요한 부분이 있어 구글 검색 후 만들어본 javascript 함수입니다. function getLastDivisor(num) { var divisor = 1; if (num > 1) { for (var i = 2; i <= Math.sqrt(num); i++) { if (num % i === 0) { divisor = num / i; break; } } } return divisor; }  구글 검색에서 나온 약수를 구하는 방식은 다음과 같습니다.  어떠한 수의 제곱근을 가지고 1차로 약수를 구합니다. 1차로 구한 약수로 입력한 수를 나누어 나머지 약수를 구합니다.  위 방법에서 자신을 제외한 최대 약수가 필요했기에 1차 약수에서 1을 제외하여 입력한 수 자신을 제외하고, 그 다음으로 큰 약수를 구하면 바로 반복문을 나오도록 했습니다.

띄어쓰기 간격, 영어의 자간이 크게 벌어지는 경우

이미지
 텍스트 에디터나 브라우저에서 글을 쓸 때 한글의 띄어쓰기 간격이 넓어졌거나 영어의 자간이 넓어졌다면, [ Alt ] + [ = ] 단축키를 눌러보자.

자바스크립트 초기화된 배열 만들기

 자바스크립트에서 특정한 값으로 초기화된 배열을 만드는 방법은 아래와 같습니다. const arr1 = new Array(10).fill(0); // [0,0,0,0,0,0,0,0,0,0] const arr = new Array(10).fill().map((value, index, array) => index + 1); // [1,2,3,4,5,6,7,8,9,10]  'new Array(10)'를 사용해 길이가 10인 비어있는 배열을 만들 수 있습니다.  '.fill()'을 사용하면 단일 값으로 배열 내부를 채울 수 있습니다. '.fill(0)'이나 '.fill(null)'처럼 원하는 값을 넣을 수 있습니다.  단일 값이 아니라 순차적으로 변하는 값으로 초기화를 하기 위해서는 이어서 '.map()'을 사용하면 됩니다. 인자값에 함수를 정의하면 함수의 반환 값으로 새로운 배열을 만들어 반환합니다.  주의할 점은 'new Array()'를 사용해 만들어진 빈 배열은 '.map()'이 돌아가지 않습니다. '.fill()'을 사용해 어떤 값이라도 먼저 초기화를 해야 '.map()'이 돌아갑니다.