posted by 내.맘.대.로 2024. 11. 6. 10:10

내맘대로의 EPUBGUIDE.NET에서 편집자의 의도를 그대로 살려 전자책을 제작해 드립니다.

종이책의 편집 스타일을 최대한 유지하며, 팝업 주석 처리, 이미지 확대 축소 등 전자책의 장점을 반영하여 전자책을 제작합니다. 탬플릿을 사용하지 않고, 책 한권 한권 고유 스타일을 살리기 때문에 전자책에서도 종이책 디자인을 느낄 수 있습니다.

한국출판문화진흥원의 [텍스트형 전자책 제작 지원 사업] 선정 도서는 ‘제작 난이도별 제작비 산정 기준에 근거하여’ 제작 단가를 산정하고, 일정에 맞춰 제작을 해 드리니 많은 문의 바랍니다.

자세한 내용은 여기로: https://www.epubguide.net/notice/309

오래 전 작성된 글은 현재의 Sigil 버전과 차이가 날 수 있습니다. 등록 일자를 확인 하고 1년 이상 지난 글은 변경된 내용이 있는지 확인하시기 바랍니다.

저사양 PC에서 ollama Web UI를 이용해 AI를 돌려보고 있어요.

PC는 Firebat T8이라는 모델로, 인텔 N100 CPU를 쓰는 저사양 컴퓨터입니다.

손바닥 만한, 장난감 수준의 컴퓨터예요.

여기에 ollama Web UI를 설치하고, 공개 LLM 모델을 돌려보는 중입니다.

 

여러 모델을 돌려본 결과, 이 PC에서 그나마 잘 돌아가는 3개 모델을 선택했습니다.

선택 기준은 다음과 같아요.

 

1. 한국어를 잘 한다.

2. 속도가 너무 느려서는 안된다.(그렇다고 GPT나 Gemini 처럼 대화할 정도는 아님. 인내심 필요)

3. 답변 내용이 그럴 듯 해야한다.(환각 현상이 있더라도 내용의 일관성, 문장 구성 수준이 높아야 함)

 

이 정도 기준으로 고른 모델은 다음과 같습니다.

 

1. llama3.2 - 3.2b(1.9gb)

2. gemma2 9b(5.1gb)

3. mistral-nemo:latest 12.2b(6.6gb)

 

학습 데이터의 양( = 모델의 용량에 정비례, 응답 속도에 반비례)에 따라 성능 차이가 크기 때문에 저 세 모델 자체의 성능 비교를 하려는 것은 아닙니다. 그리고 영어 실력이 아닌 한국어 실력을 비교하기 위한 것입니다. 그렇기 때문에 영어로는 좋은 결과를 보여줘도 한국어 결과는 형편 없을 수 있지요.

 

세 모델을 비교하기 위해 아래 프롬프트를 입력했습니다.

 

노인과 바다 내용 1000자 이내로 요약해줘

 

모델의 규모 차이가 크기 때문에 응답 속도는 고려하지 않았어요.

결과는 아래와 같습니다.

 

1. llama3.2 - 3.2b

노인의 바다 내용은 한국의 전설적인 소설로, 1936년 author 공민주가 쓴 소설이다. 소설은 기원전 3천년 전에 عاش았던 노인과 그의 아들 간의 심오한 대화를 통해 인간의 삶과 죽음에 대한 깊은 생각을 담고 있다.

노인의 바다 내용은 노인의 아들이 죽었다는 것을 알게 된 후, 노인은 바다에서 자신의 죽음을 기대하고 있다. 그는 바다와 함께 일상적인 것처럼 보이는 일상생활을 살고 있으며, 그의 아들과의 대화를 통해 자신의 삶과 죽음에 대한 생각을 나열한다.

소설은 노인의 아들이 죽었다는 것을 알게 된 후, 노인은 바다에서 자신의 죽음을 기대하고 있다. 그는 바다와 함께 일상적인 것처럼 보이는 일상생활을 살고 있으며, 그의 아들과의 대화를 통해 자신의 삶과 죽음에 대한 생각을 나열한다.

노인의 바다는 인간의 삶과 죽음에 대한 깊은 생각을 담고 있다. 소설은 노인의 아들이 죽었다는 것을 알게 된 후, 노인은 바다에서 자신의 죽음을 기대하고 있다. 그는 바다와 함께 일상적인 것처럼 보이는 일상생활을 살고 있으며, 그의 아들과의 대화를 통해 자신의 삶과 죽음에 대한 생각을 나열한다.

노인의 바다는 인간의 삶과 죽음에 대한 깊은 생각을 담고 있다. 소설은 노인의 아들이 죽었다는 것을 알게 된 후, 노인은 바다에서 자신의 죽음을 기대하고 있다. 그는 바다와 함께 일상적인 것처럼 보이는 일상생활을 살고 있으며, 그의 아들과의 대화를 통해 자신의 삶과 죽음에 대한 생각을 나열한다.

노인의 바다는 인간의 삶과 죽음에 대한 깊은 생각을 담고 있다.

 

2. gemma2 9b

'노인과 바다'는 에르네스팅 헤밍웨이의 단편 소설로, 피어난 노년의 고독과 인간정신의 강함 을 그린 작품입니다.

84일 동안 물고기를 잡지 못한 노련한 어부 산티아고가 다시 한번 바다로 나선 이야기입니다. 그는 오래도록 찾던 대형 마라를 가슴에 안고 잠재적인 승리를 향해 용맹히 도전합니다.

물고리와의 인간과 동물 사이의 치열한 싸움은 단순한 생존을 위한 경쟁을 넘어, 노인이 자신의 존엄성과 정체성을 되찾기 위한 고군분투로 그려집니다. 마라를 잡으려는 의지와 끊임없는 노력은 노인의 신체적 약점을 강조하며 동시에 그의 영적인 강함을 드러냅니다.

그러나 산티아고는 오랫동안 만든 노력 끝에 큰 마라를 붙잡았지만, 자연과 인간의 관계 속에서 나타나는 운명적 고난 을 맞이합니다. 대형 곰과 해수범들이 공격하며 그의 노력은 무너지고 아쉬운 결말로 이어집니다.

결국 산티아고는 큰 마라를 얻지는 못했지만, 그 과정에서 사랑, 위대함, 그리고 인간의 불굴의 의지를 보여줍니다.

'노인과 바다'는 단순한 어부 이야기가 아닌, 고독, 갈등, 이겨내는 힘 등에 대한 심오한 성찰을 담고 있습니다. 작품은 그 단결된 스토리와 독창적인 문체로 전 세계 독자들에게 영감을 주었습니다.

 

3. mistral-nemo 12.2b

헤밍웨이가 쓴 "노인과 바다"는 한 늙은 ры잡이, 산티아고가 커다란 흰 물개와 대결하는 이야기를 그린 소설입니다.besar fish.그는 오랫동안 운이 없게 싸우고 있던 와중에 마침내 거대한 흰 고래를 낚싯대에 걸지만 고기는 너무 크고 강해서 산티아고를 바다로 끌고 갑니다.마침내 고기가 피로를 느끼고 포기한 순간, 고기는 해변으로 이끌려가 다른 사람들이 잡을 수 있게 됩니다.

그러나 산티아고는 이 경험으로 인해 마을 사람들의 존경과 경의를 받게 되고 그는 자신의 운이 돌아온 것이라고 믿습니다.그러나 그가 다시 바다로 나가기 위해 준비를 할 때 심장마비로 사망합니다.그의 죽음은 그의 용기와 인내, 그리고 그의 삶에서 가장 위대한 순간을 기록하는 데 일조했습니다.

이 작품은 헤밍웨이의 다른 작품과 마찬가지로 간결하고 세련된 문체로 쓰여 있으며 상징적 의미를 가지고 있습니다. 이 이야기는 인간의 투쟁심과 불굴의 정신, 운명적인 힘 등에 대한 탐구입니다.

 

이 결과에서 llama3.2가 엉뚱한 답변을 내놨으니 품질이 떨어진다는 결론을 내리면 안됩니다. llama3.2를 학습할 때 한국어 노인과 바다가 없을 가능성이 높을 뿐입니다.

각 AI가 만들어 낸 한국어 문장을 보고 어떤 모델의 문장이 매끄러운지를 보세요.

창작에 활용하는 모델이라면 환각현상이 있어도 사용할 수 있겠지만, 실무에 적용하고 싶다면 현실적인 데이터를 제공하는 모델이 필요할 거예요.

 

다음은 번역입니다.

 

이 내용을 한국어로 번역해줘. "He was an old man who fished alone in a skiff in the Gulf Stream and he had gone eighty-four days now without taking a fish. In the first forty days a boy had been with him. But after forty days without a fish the boy's parents had told him that the old man was now definitely and finally salao, which is the worst form of unlucky, and the boy had gone at their orders in another boat which caught three good fish the first week. It made the boy sad to see the old man come in each day with his skiff empty and he always went down to help him carry either the coiled lines or the gaff and harpoon and the sail that was furled around the mast. The sail was patched with flour sacks and, furled, it looked like the flag of permanent defeat."

 

1. llama3.2 - 3.2b (2579초)

그는 Gulf 스트림의 피크에서 가방을 실어 고기잡이로 solitary로 매일매일어렸고, 지금은 eighty-four일이 지났으며, 이에까지 그는 한 마리의 물고기를 잡지 못했다. 처음으로 40일은 소년과 함께 어들었다. 그러나 40일이 지났다면, 소년의 부모는 그들이 결코 바뀔 수 없는 불 уда를 받았을 것이라는 것이 명확하여, 소년은 그들의 지시로 다른 보트에 들어서고, 첫 주에 세 개의 좋은 물고기를 잡았다. 소년이 항상 그에게 어서오게 하는 것은 이가 아름답지 못할 것이라는 것을 알기 때문에, 소년은 그와 함께 가방을 실어 고기잡이에서만 일할 때는 항상 그의 피크가 비었습니다. 그는 매일이 보트를 내리며 그에게 도움을 드리고, 가방의 라인과 가비, harpoon을 들어주고, Mast에 부착된 비행기를 쑨고 있습니다. 비행기는 흰가방의 조각을 가로지르기 때문에, 비행기가 휘어질 때는 승리하지 못한 것처럼 보입니다.

 

2. gemma2 9b (13777초)

그는 골프 스트림에서 뗏배를 타고 홀로 어부 생활을 하던 노인이었습니다. 지금까지 84일 동안 단 한 마리의 물고기를 잡지 못했습니다. 처음에는 40일 동안 소년이 함께했지만, 어떤 물고기도 잡지 못한 후 소년의 부모님들은 노인이 이제 확실히 그리고 최후로 '살아오'라고 말하여 가장 나쁜 운을 당했다고 생각하셨습니다. 그래서 소년은 부모님의 명령에 따라 다른 배에서 출항했는데, 첫 주만에 3마리의 좋은 물고기를 잡았습니다. 소년에게는 매일 노인이 비어있는 뗏배로 돌아오는 모습을 보니 슬퍼했습니다. 그는 항상 노인의 도움을 위해 꼬인 줄이나, 창과 화살가락 그리고 돛대 주위에 말린 돛을 들어올리게 되었습니다. 그 돛은 박력 가루를 이용하여 수선했고, 말리는 모습이 보이면 영원한 패배의 상징처럼 보였습니다.

 

3. mistral-nemo 12.2b(537940초)

그는 만년고기잡이 노인이었다. 그는 단독으로 바랑카라는 작은 배로 메인 만에 출어하고 있었지만, 이젠 84일째 아무것도 잡지 못한 채였다. 처음 40일간은 소년과 함께 다녔지만, 사흘째 되는 날부터도 고기를 못 잡아 그 소년의 부모가 "이제 노인은 완전히 불운하다"고 판단해 그 아이더러 다른 배를 타고 나가게 했다. 소년의 배는 첫 주에 세 마리의 좋은 생선을 건졌다. 매일 빈 배로 돌아오시는 노인을 보는 것이 어린이에게는 슬픈 일이었지만, 그는 언제나 내려가 노인의 고기잡이 도구인 말린 밧줄이나 작살과 돛을 도울 준비가 되어 있었다. 돛은 밀가루 자루로补한 것이었다. 그리고 접어놓으니 마치 영구히 패배한 깃발 같았다.

 

번역용으로 사용하려면 mistral이 좋아보입니다. gemma2는 속도가 비교적 빠르고 초벌 번역 수준은 보여줍니다. llama3.2은 속도가 가장 빠르지만 번역 품질은 떨어집니다.

 

이 외에도 몇가지 더 테스트 해 봤습니다.

[탄소를 대신해 유기화합물 역할을 할 수 있는 원소는 뭐가 있어?] 같은 질문이요.

가장 사실에 근거한 답변을 내놓은 것은 gemma2였고 mistral-nemo은 시간이 오래 걸렸지만 엉뚱한 답변을 내놨습니다.

모두 한국어로 질문하고 답변을 받았기 때문에 영어로 질문을 했을 때는 다른 결과가 나올 수 있습니다.

 

결론.

속도는 llama3.2b가 가장 빠릅니다. 저사양 PC에서도 돌려볼 만 합니다. 하지만 전반적인 한국어 답변 수준은 떨어집니다.

gemma2는 한국어를 잘 구현하고 사실에 근거한 답변을 제시했습니다. mistral-nemo는 속도가 느려 저사양 PC에서 돌리려면 인내심이 필요합니다.

 

질문이 몇개로 한정되어 있기 때문에 다양한 분야의 질문을 던지면 다른 결과가 나올 수 있습니다.그리고 영어로 사용할 때의 결과도 크게 달라질 수 있습니다.

 

llama 3.1 8b vs gemma2 9b 등 비슷한 크기의 모델일 때 역시 다른 결과가 나올 수 있습니다. 같은 사이즈의 모델로 비교해야 할 수도 있지만, 이건 논문이 아닙니다. 그냥 재미로 한 비교일 뿐입니다. 하지만 gemma2 2b, 9b, 27b 처럼 같은 모델의 크기별 결과, 다른 모델의 유사한 크기 별 결과도 비교해 보고 싶긴 하네요.

 

phi3.5는 한국어를 잘 구현하지 못해 제외했습니다. 다른 모델과 비교하면 한국어용으로 사용할 만한 수준은 아닙니다.

반응형
posted by 내.맘.대.로 2024. 3. 22. 10:23

내맘대로의 EPUBGUIDE.NET에서 편집자의 의도를 그대로 살려 전자책을 제작해 드립니다.

종이책의 편집 스타일을 최대한 유지하며, 팝업 주석 처리, 이미지 확대 축소 등 전자책의 장점을 반영하여 전자책을 제작합니다. 탬플릿을 사용하지 않고, 책 한권 한권 고유 스타일을 살리기 때문에 전자책에서도 종이책 디자인을 느낄 수 있습니다.

한국출판문화진흥원의 [텍스트형 전자책 제작 지원 사업] 선정 도서는 ‘제작 난이도별 제작비 산정 기준에 근거하여’ 제작 단가를 산정하고, 일정에 맞춰 제작을 해 드리니 많은 문의 바랍니다.

자세한 내용은 여기로: https://www.epubguide.net/notice/309

오래 전 작성된 글은 현재의 Sigil 버전과 차이가 날 수 있습니다. 등록 일자를 확인 하고 1년 이상 지난 글은 변경된 내용이 있는지 확인하시기 바랍니다.

DesktopEarth.zip
0.00MB

 

구름사진 스크립트와 서버가 변경되었습니다.

 

구름사진 서버입니다. 

http://jikji.duckdns.org:8085/cloud/clouds.jpg

http://jikji.duckdns.org:8085/cloud/clouds_contrast.jpg

 

자세한 설명은 이 글을 참고하세요.

https://www.epubguide.net/466

 

실시간 구름사진 지구 바탕화면

윈도우 배경화면을 MS 디자이너 취향으로 보고 계신가요? 아니면 여행사진 사진 한장 올려놓고 365일 바라보고 있을지도 모르겠네요. 조금 신경을 쓰는 분이라면 인터넷에 떠도는 유명 작가의 멋

www.epubguide.net

 

반응형
posted by 내.맘.대.로 2024. 2. 19. 14:33

내맘대로의 EPUBGUIDE.NET에서 편집자의 의도를 그대로 살려 전자책을 제작해 드립니다.

종이책의 편집 스타일을 최대한 유지하며, 팝업 주석 처리, 이미지 확대 축소 등 전자책의 장점을 반영하여 전자책을 제작합니다. 탬플릿을 사용하지 않고, 책 한권 한권 고유 스타일을 살리기 때문에 전자책에서도 종이책 디자인을 느낄 수 있습니다.

한국출판문화진흥원의 [텍스트형 전자책 제작 지원 사업] 선정 도서는 ‘제작 난이도별 제작비 산정 기준에 근거하여’ 제작 단가를 산정하고, 일정에 맞춰 제작을 해 드리니 많은 문의 바랍니다.

자세한 내용은 여기로: https://www.epubguide.net/notice/309

오래 전 작성된 글은 현재의 Sigil 버전과 차이가 날 수 있습니다. 등록 일자를 확인 하고 1년 이상 지난 글은 변경된 내용이 있는지 확인하시기 바랍니다.

해외 판매 안드로이드 폰은 카메라 촬영음을 무음으로 만들 수 있습니다.

그런데 국내 판매용은 일정 수준 이상 셔터음이 들리도록 강제로 설정되어 있지요.

이 셔터음을 간단히 끄는 방법이 있습니다.

유튜브 같은데 찾아 보면 adb 설치하고 커맨드 창에서 복잡한 명령 입력하는 방법도 나오는데,

그렇게 복잡하게 할 필요 없어요. 

컴알못 초보자도 쉽게 따라 할 수 있습니다.

 

1. SetEdit 앱을 다운로드 받으세요.

https://play.google.com/store/apps/details?id=by4a.setedit22&hl=ko&gl=US

 

SetEdit SettingsDatabaseEditor - Google Play 앱

안드로이드 설정 데이터베이스에 직접 액세스 할

play.google.com

무료 앱입니다. 

시스템 설정 창에 없지만 수정할 수 있는 안드로이드 기본 설정을 바꿀 수 있게 해 줘요.

설치하면 이렇게 톱니 바퀴 아이콘이 보일 거예요.

 

 

2. 앱을 실행시킵니다.

앱을 실행하면 이런 화면이 보여요.

겁먹지 말고, 상단 오른쪽에 있는 드롭 목록이 System Table로 되어 있는지 확인하세요.

System Table이 기본 값이지만, 다른 항목이면 System Table로 바꾸세요.

 

그리고 목록을 아래로 내려보세요.

ABC 순으로 되어 있습니다. C 항목을 잘 찾아 보면

csc_pref_canera_forced_shuttersound_key 라는 항목이 있어요.

이 항목의 값이 1로 되어 있습니다. 이렇게요.

"csc_pref_canera_forced_shuttersound_key" "1"

이 항목의 값을 "1"에서 "0"으로 바꿔 주면 됩니다.

 

"csc_pref_canera_forced_shuttersound_key" "1"

이 항목을 누르면 아래 처럼 대화창이 뜰거에요.

대화창 중간에 있는 Edit Value를 누릅니다.

그럼 값을 편집할 수 있어요. 1을 0으로 변경 후 저장을 합니다.

 

이제 스마트폰 볼륨을 조절한 후 카메라를 촬영해 보세요.

값이 1일때는 스마트폰 볼륨과 상관 없이 커다란 셔터 음이 들립니다.

0으로 바꿔 주면 스마트폰 볼륨에 맞춰 셔터 음이 조절되요.

셔터음을 완전히 끄고 싶다면, 스마트폰을 무음으로 바꿔보세요.

그럼 셔터 음도 들리지 않습니다.

반응형
posted by 내.맘.대.로 2024. 2. 19. 08:52

내맘대로의 EPUBGUIDE.NET에서 편집자의 의도를 그대로 살려 전자책을 제작해 드립니다.

종이책의 편집 스타일을 최대한 유지하며, 팝업 주석 처리, 이미지 확대 축소 등 전자책의 장점을 반영하여 전자책을 제작합니다. 탬플릿을 사용하지 않고, 책 한권 한권 고유 스타일을 살리기 때문에 전자책에서도 종이책 디자인을 느낄 수 있습니다.

한국출판문화진흥원의 [텍스트형 전자책 제작 지원 사업] 선정 도서는 ‘제작 난이도별 제작비 산정 기준에 근거하여’ 제작 단가를 산정하고, 일정에 맞춰 제작을 해 드리니 많은 문의 바랍니다.

자세한 내용은 여기로: https://www.epubguide.net/notice/309

오래 전 작성된 글은 현재의 Sigil 버전과 차이가 날 수 있습니다. 등록 일자를 확인 하고 1년 이상 지난 글은 변경된 내용이 있는지 확인하시기 바랍니다.

1월부터 3월까지 전자책 제작자는 비수기에요.

그래서 한달에 3주 정도 노는것 같네요.

어제도 일이 없어 그동안 머리로 구상만 하던 것을 만들어 봤습니다.

저처럼 외주 작업을 하며 작업 일정을 관리하는 분들에게 도움이 될 것 같아 전체 과정을 공개합니다.

AI가 없었다면 포기했을 일인데 AI의 도움을 받으니 처음 써 보는 Appscript도 만들 수 있네요.

몇십줄 짜리 간단한 코드를 하루 종일 만들었으니 쉬운 작업은 아닙니다.

처음엔 셀에 있는 날짜와 책제목만 넣으면 되니 코드 몇줄이면 되겠지 했는데,

만들다 보니 추가할 내용들이 계속 생기더라구요.

이 작업을 전부 AI의 도움을 받아 만들어 봤습니다. AI한테 과장 좀 섞어 1000번 쯤 질문을 한 것 같아요.

1. 기본 작업 - 내가 원하는 것을 내가 제대로 이해하기

제가 올린 게시글에 가장 많이 쓴 내용이, [질문을 하려면, 뭘 질문하려는지 이해해야 한다]입니다. 질문자가 원하는걸 모르면 알려주고 싶어도 알려줄 수 없지요.

내가 원하는걸 내가 모르면 AI도 알려줄 수 없습니다.

내가 원하는건, 아래 스프레드 시트를 구글 캘린더 일정에 넣는거예요.

-처음인 이런거라고 생각을 했지요. 조금 지나, 내가 원하는 게 뭔지 모르고 있었구나 하고 깨달았지만...

어째든 첫 단계는 구글 캘린더와 연동할 스프레드 시트를 만드는 것입니다.

제 작업 일정은 이렇게 되어 있습니다.

이제 질문을 던질 AI를 정해야 하는데, 구글 스프레드와 캘린더를 사용하다 보니 구글 Bard를 쓰기로 했습니다.

ChatGPT와 비교를 해 봤는데 Bard가 더 잘 설명해 줬어요.

연동할 시트 만들고, AI를 정했으니 준비는 끝났습니다.

2. AI에게 내가 알고싶어 하는 것 질문하기

첫 번째 질문은 아래와 같습니다.

[구글 docs 스프레드에 있는 내용을 구글 캘린더와 연동하고 싶어.]

이렇게 질문을 던지니 코드를 알려줍니다.

하지만 이 코드를 보고, 내가 질문을 잘못했구나 하고 깨달았어요.

Bard는 이런 상황에서 작동하는 코드를 만들어 주더라고요.

제목: [일정 제목]

시작일: [시작일]

종료일: [종료일]

시간: [시간]

설명: [설명]

물론, 스프레드와 캘린더를 연동하는 기본적인 방법을 잘 알려줬습니다.

AppScript를 어떻게 여는지, 캘린더에 넣기 위해 캘린더가 필요하고 캘린더 ID를 가져와야 한다는 등...

2. AI에게 보다 구체적으로 요구사항 말하기.

그래서 구체적으로 원하는 것을 정리했습니다. 이런 작업을 프롬프트 엔지니어링이라고 해요.

[구글 스프레드에 있는 여러 행과 열로 된 목록 일정을 캘린더에 자동으로 추가하는 appscript 만들고 싶어. 각 열에는 타이틀, 날짜가 들어가고 종일 일정으로 추가할거야]

이번엔 잘 넣었다고 생각했는데,

내용
A
일정 제목
B
날짜

이런 행열로 된 코드를 알려줍니다.

그래서 더 구체적으로...

[구글 스프레드에 있는 여러 행과 열로 된 목록 일정을 캘린더에 자동으로 추가하는 appscript 만들고 싶어. A열에는 타이틀, B열에는 날짜가 들어가고 종일 일정으로 추가할거야]

이렇게 질문을 하니 원하는게 나왔습니다.

이번엔 2개를 알려줬어요. 하나는 질문에 딱 맞는 내용으로.

A
B
일정1
2023-08-01
일정2
2023-08-02
일정3
2023-08-03

다른 하나는 AI가 알아서 업그레이드 한 내용으로

제목
시작일
종료일
일정1
2023-08-01
2023-08-01
일정2
2023-08-02
2023-08-02
일정3
2023-08-03
2023-08-03

이 질문으로 얻은 코드를 내 작업 일정표에 맞게 수정을 해서 실행하니 스프레드 시트의 내용이 캘린더에 들어가는 마법같은 일이 벌어지더라구요.

여기서 끝~~~

이었으면 하루 종일 걸리지 않았겠지요 ㅜ.ㅜ

이번에도 내가 원하는 게 뭔지 몰라 생긴 일입니다.

3. 내가 진짜로 원하는 건 나도 몰랐지만 더 복잡한 것이었다.

저렇게 하고 일정을 추가해 보니 잘 되었습니다.

그런데, 일정 추가할 때 마다 범위를 다시 지정할 수는 없잖아요.

그래서 범위를 수정했어요.

내용이 들어있는 A1: B10을 지정했을 때 잘 되던게

내용이 없는, 앞으로 들아갈 가능성이 있는 범위까지 확대를 했지요.

A1:B30

이렇게 했더니 무슨 오류가 생기네요.

오류 내용을 잘 읽어봤습니다. B열에는 날짜가 들어가야 하는데, 날짜가 아닌 다른 내용이라는 거예요.

아무 것도 없으니 문제가 안된다 생각했는데, 다시 생각해 보니 아무 것도 없는 데이터도 데이터더라구요.

그래서 내가 원하는 것을 다시 정리해 봤습니다.

1. 스프레드 시트의 내용을 구글 캘린더에 자동으로 추가

2. A열은 이벤트 제목, B열은 날짜

3. 열의 길이는 최대 100개 (A1:B100)

4. B열은 순차적으로 들어가고, 중간에 빈 열은 존재하지 않음

5. A1:B100 범위에서 B열이 비어있는 부분 전까지 자동으로 범위 설정

이렇게 정리하고 나니, 앞에서 얻은 코드에 5번이 빠져있네요.

그래서 이렇게 질문을 했습니다.

[이 코드에서 var sheetDate = spreadsheet.getRange("A5:G100").getValues(); 이 부분을 실제 값이 있는 영역으로 자동 설정되도록 수정하고 싶어]

[이 코드]는 Bard가 알려준 내용을 바탕으로 제가 만든 시트에 작동하도록 수정한거예요.

이걸 먼저 Bard에게 알려준 후 이렇게 질문을 했지요.

그러니 역시 답을 줍니다.

받은 코드를 그대로 넣으니, 이게 잘 작동하네요.

여기서 끝~~

난줄 알았는데, 아직도 내가 '진짜로' 원하는 것을을 다 알아내지 못했습니다.

4. 빠진 부분을 추가로 질문하기

앱스크립트를 1번, 2번, 3번 반복해서 실행했을 때 문제가 되는거예요.

여기까지 얻은걸 한번에 정리하려고 하면, A4 한장도 넘게 나올거예요. 그래서 단계별로 작업하기로 했습니다.

다시 원하는 내용을 목록으로 작성을 합니다.

1. 스프레드 시트의 내용을 구글 캘린더에 자동으로 추가

2. A열은 이벤트 제목, B열은 날짜

3. 열의 길이는 최대 100개 (A1:B100)

4. B열은 순차적으로 들어가고, 중간에 빈 열은 존재하지 않음

5. A1:B100 범위에서 B열이 비어있는 부분 전까지 자동으로 범위 설정

6. 캘린더에 추가한 일정은 다시 등록되지 않아야 한다.

6-1 이를 위해 B열에 지정한 날짜의 일정을 알아야 한다.

6-2 종일 일정으로 등록하니, 종일 일정 목록만 알면 된다.

6-3 일정 제목은 출판사+책제목이기 때문에 똑같은 일정 제목은 없다.

6-4 일정을 추가하기 전에 A열의 출판사+책제목이 6-1에서 얻은 출판사+책제목과 비교해 같으면 추가에서 제외한다.

6-5 6-2에서 같은 일정이 발견되지 않으면 캘린더에 추가한다.

6-6 종일 일정이 없는 날이면 6-1~6-5 과정 없이 바로 추가한다.

** 남은 작업이 6번이라 6번만 구체적으로 정리했을 뿐, 1~5도 6번처럼 구체적으로 정리하면 각 항목 별로 여러 줄이 나오게 됩니다. 이걸 잘 정리해야 Bard가 진짜 잘 작동하는 코드를 알려줘요.

이렇게 정리한 후 하나씩 추가를 했습니다.

요구사항이 복잡해지면 논리적인 오류가 발생합니다. 논리적 오류가 발생하면 제대로 된 결과물을 얻을 수 없지요.

그래서 요구 사항을 하나씩 추가하기로 했습니다.

이 과정은 1~5번 코드를 짠 곳이 아닌, 새로운 파일을 만들어서 작업했어요.

만들어 놓은거 망가지면... 다시 복구할 능력이 안되니까 ㅜ.ㅜ

먼저 캘린더에서 종일 일정 제목을 불러오는 코드를 알려달라고 하고,

캘린더 일정 제목과 A열 제목을 비교하는 코드를 추가해 달라고 합니다.

제목이 같으면 캘린더에 일정을 등록하지 않도록 코드를 수정해 달라고 합니다.

이렇게 해서 만든 결과물을 1-5 코드와 합쳐달라고 합니다.

물론, 질문이 한번에 완성된건 아니에요.

질문을 어떻게 하느냐에 따라 결과물이 달라지고,

1~5 코드와 연동할 수 없는 결과물이 많이 나옵니다.

1~5 코드와 연동할 수 있는 결과물이 나오도록 질문을 잘 해야돼요.

이 부분을 추가하기 위해 질문을 과장 없이 100번쯤 다시 한 것 같아요.

최종 결과물을 얻어낸 후, 처음 던진 질문을 보니 내가 참 한심하다는 생각이 들더라구요.

내가 원하는 것이 스프레드의 데이터를 바탕으로 캘린더에 일정을 추가하는 것이라 생각했는데

사실은

1. 스프레드의 데이터를 바탕으로 캘린더에 일정을 추가하는데

2. 스프레드 시트의 특정 열은 일정 제목, 다른 열은 일정 날짜로 되어 있고

3. 데이터 범위는 앞으로 데이터를 넣을 곳 까지 지정해야 하지만

4. 데이터가 들어간 부분까지 자동으로 다시 범위가 지정되야 하며

5. 스프레드에 있는 내용 중 캘린더에 추가한 내용은 다시 추가하면 안된다.

라는 길고 복잡한 것이었지요.

그래서 AI에게 질문을 던지는 단순해 보이는 작업이 [프롬프트 엔지니어링]이라는 분야로 탄생한게 아닐까 싶어요.

아직 끝난게 아니에요.

5. 메뉴로 추가하기

일정 추가할 때 마다 앱스크립트로 들어갈 수는 없잖아요.

그래서 메뉴를 추가해야 합니다.

Bard에게 앱스크립트를 메뉴에 추가하고 싶다고 하니 코드를 알려주네요.

이건 좀 간단했어요.

이게 어제 하루 종일 한 일입니다.

개발자에게는 아주 간단한 일이겠지만, 개발을 해 보지 않은 왕초보에게는 하루 종일 걸리는 일.

그래도 AI가 있으니 하루 종일이지 AI의 도움이 없었다면 불가능했을 일이지요.

그런데...

다시 생각해 보니 내가 원하는건 종일 일정이 아니었네요 ㅜ.ㅜ

다 만들어 놓고 보니 진짜 원하는 게 뭔지 보이네요.

할 일로 등록을 해야하고(날짜가 지나도 안한건 표시되야 하니),

제작을 완료하면 '한 일'로 바뀌어야 하고,

[일정 추가] 버튼을 누르지 않아도 셀에 값이 들어가면 즉시 일정에 추가되야 하고.....

셀 구조가 바뀌어도-A열에 있던 책제목을 C열로 옮긴다던지...- 스크립트는 바꿀 필요가 없어야 하고

생각을 하다 보니 끝이 없겠다 싶어서,

진짜로

여기서 끝~~

ps. 저처럼 엑셀로 일정 관리하며 캘린더와 연동시키고 싶은 분이 있을까 싶어 코드 공개합니다.

내가(아닌 AI가) 만들었지만, 다시 봐도 뭔 내용인지 모르겠네요 ㅡ.ㅡ;;

첨부파일
sheetTOcalendar.txt
null파일 다운로드

등록한 일정을 보지 않으면 아무 소용 없잖아요.

안쓰는 구닥다리 스마트폰을 구글 캘린더와 연동해 모니터 앞에 뒀어요.

이렇게 하면 놓칠 일이 없겠지요?

반응형
posted by 내.맘.대.로 2023. 4. 14. 13:08

내맘대로의 EPUBGUIDE.NET에서 편집자의 의도를 그대로 살려 전자책을 제작해 드립니다.

종이책의 편집 스타일을 최대한 유지하며, 팝업 주석 처리, 이미지 확대 축소 등 전자책의 장점을 반영하여 전자책을 제작합니다. 탬플릿을 사용하지 않고, 책 한권 한권 고유 스타일을 살리기 때문에 전자책에서도 종이책 디자인을 느낄 수 있습니다.

한국출판문화진흥원의 [텍스트형 전자책 제작 지원 사업] 선정 도서는 ‘제작 난이도별 제작비 산정 기준에 근거하여’ 제작 단가를 산정하고, 일정에 맞춰 제작을 해 드리니 많은 문의 바랍니다.

자세한 내용은 여기로: https://www.epubguide.net/notice/309

오래 전 작성된 글은 현재의 Sigil 버전과 차이가 날 수 있습니다. 등록 일자를 확인 하고 1년 이상 지난 글은 변경된 내용이 있는지 확인하시기 바랍니다.

Gimp-Stable diffusion으로 그린 그림입니다.

Gimp-stable-diffusion 사용법은 아래 글을 참고하세요.

https://www.epubguide.net/477

 

설정

Init Strength : .3

Prompt Strength : 8

Step : 50

Prompt :

A woman reading a book. Sitting in a bookstore. She sits on a chair, unfolding the book with both hands. cloud monet

모딜리아니
모네
고흐
무하

반응형
posted by 내.맘.대.로 2023. 4. 12. 16:48

내맘대로의 EPUBGUIDE.NET에서 편집자의 의도를 그대로 살려 전자책을 제작해 드립니다.

종이책의 편집 스타일을 최대한 유지하며, 팝업 주석 처리, 이미지 확대 축소 등 전자책의 장점을 반영하여 전자책을 제작합니다. 탬플릿을 사용하지 않고, 책 한권 한권 고유 스타일을 살리기 때문에 전자책에서도 종이책 디자인을 느낄 수 있습니다.

한국출판문화진흥원의 [텍스트형 전자책 제작 지원 사업] 선정 도서는 ‘제작 난이도별 제작비 산정 기준에 근거하여’ 제작 단가를 산정하고, 일정에 맞춰 제작을 해 드리니 많은 문의 바랍니다.

자세한 내용은 여기로: https://www.epubguide.net/notice/309

오래 전 작성된 글은 현재의 Sigil 버전과 차이가 날 수 있습니다. 등록 일자를 확인 하고 1년 이상 지난 글은 변경된 내용이 있는지 확인하시기 바랍니다.

Gimp-Stable diffusion으로 그린 그림입니다.

Gimp-stable-diffusion 사용법은 아래 글을 참고하세요.

https://www.epubguide.net/477

 

설정

Init Strength : .3

Prompt Strength : 8

Step : 50

Prompt :

Oriental painting style. A pine tree stretches towards the sky at the end of a cliff overlooking the sea. A sailing ship floating on the distant horizon. without signature. without frame.

 

반응형

'생활코딩 > Stable diffusion prompt' 카테고리의 다른 글

AI-Stable diffusion-책 읽는 여인  (0) 2023.04.14