6 9월 2025

[python 데이터분석] [jupyter] 주피터 노트북에 이미지 삽입

[python 데이터분석] [jupyter] 주피터 노트북에 이미지 삽입

python ide로 많이 사용하는 jupyter notebook에 이미지를 삽입하는 방법입니다!

방법은 두가지가 있습니다

먼저 패키지를 설치하고

# !pip install IPython 
from IPython.display import Image  # 주피터 노트북에 이미지 삽입

1. 코드블럭 안에 삽입하는 법

Image(“파일경로/파일명.확장자명”)

ex) Image(“img/picture.png”)

2. markdown 안에 삽입하는 법

![이미지이름?](파일경로/파일명.확장자명)

ex) ![nn](img/99.01_01.png)

[출처] https://ssoondata.tistory.com/87

 

Loading

26 8월 2025

[一日30分 인생승리의 학습법] 유능한 리더들은 어떤 능력으로 불확실성을 헤쳐나가는가

[一日30分 인생승리의 학습법] 유능한 리더들은 어떤 능력으로 불확실성을 헤쳐나가는가

유능한 리더들은 어떤 능력으로 불확실성을 헤쳐나가는가

67.유능한-리더들이-불확실성을-어떻게-헤쳐나가는가.png

복잡하고 어려운 상황을 유연하게 헤쳐 나갈 줄 아는 리더들은 무엇을 알고, 어떻게 다르게 행동할까? 그런 능력이 있는 리더를 본다면 어떤 모습이 보일까?

이 질문은 Innovation Tactics 카드 덱의 저자 톰과 존이 최근 대화에서 던진 화두다. 보통 이런 역량들은 ‘소프트 스킬’이나 ‘문화 적합도’ 같은 포괄적인 개념으로 치부되곤 한다.

그런데 만약 이 능력들을 명확하게 정의한다면 어떨까?

우리는 먼저 “무엇이 보일까?”라는 질문으로 일반적인 행동들을 묘사했고, 이어서 ‘~할 수 있는 능력’(the ability to…)이라는 형식으로 정의를 작성했다. 설명은 되도록 전문 용어 없이 쉽게 풀어쓰려 노력했다.

또한, 이러한 능력을 가진 사람을 채용하거나, 회사에서 그런 능력을 요구하는 면접을 준비할 때 참고할 수 있도록 인터뷰용 샘플 질문도 포함했다.

참고로 여기서 ‘역량(capabilities)’이라는 단어를 쓴 이유는, 개인이 자신의 환경을 만드는 면도 있지만, 많은 능력은 단순 개인이 아니라 여러 사람의 집단에서 나타나는 특성이나 행동, 능력으로 이해해야 하기 때문이다.

우리가 문제의 일부임을 인정하기 (Accept We Are Part of the Problem)

자신이 현재 상황을 만들거나 악화시키는 데 어떤 역할을 했는지 인지하고 받아들이는 능력.

인터뷰 질문: 문제에 자신이 일조했다는 걸 깨달았던 구체적인 경험을 알려주세요. 그 깨달음에 도달한 과정과 그 후에 행동이 어떻게 달라졌는지 말씀해 주세요.

새로운 상호작용 방식을 장려하기 (Encourage New Interaction Patterns)

개인을 바꾸거나 제거하는 데만 집중하지 말고, 환경 속에서 새로운 소통과 협력의 방식을 촉진하는 능력. 사람들이 서로 관계를 맺고 새로운 정보와 경험에 접할 수 있도록 돕는 역할을 말한다.

인터뷰 질문: 사람들이 새로운 방식으로 소통하거나 정보를 공유하도록 이끈 경험이나, 사람들이 전에 접하지 못한 새로운 정보나 경험을 접하게 한 사례를 이야기해 주세요. 변화의 필요성을 느끼게 된 계기와 그 결과도 함께 알려주세요.

인내하며 다양성을 존중하기 (Patient Divergence)

해답이나 앞으로 나아갈 길을 서두르지 않고 생산적인 다양성을 장려하는 능력. 창의적 탐색을 위한 환경을 조성하고 여러 가지 ‘실마리’를 따라가면서도 강제로 일치시키지 않고 자연스럽게 조율이 일어나도록 하는 것이다.

인터뷰 질문: 복잡한 문제를 다루면서 팀이 서두르지 않고 해결책을 찾아갈 수 있도록 이끈 경험이 있나요? 그 과정을 어떻게 관리했고, 결국 어느 지점에서 방향을 정하게 되었나요?

가능한 요인 다각도로 파악하기 (Identify Plausible Contributors / Multiple “Causes”)

문제에 기여할 법한 여러 요인을 파악하고, 서로 상충하는 듯해도 모두 염두에 두는 능력. 단일 원인만을 찾으려는 충동을 억제하는 것도 포함된다.

인터뷰 질문: 여러 복합적인 원인이 얽힌 문제를 경험한 적 있나요? 그 문제를 어떻게 다루었고, 다음 행동을 어떻게 결정했나요?

현재의 힘 (Power of the Present)

이상적이고 미래지향적인 ‘목표 상태’나 ‘격차’를 개선의 유일한 길로 보기보다는, 지금 이 순간과 현재 상황 속에 잠재된 가능성을 활용하는 능력. 지금 여기에서 출발해, 현재 작동하고 있는 것들을 찾아내고 인접한 여러 선택지를 탐색하는 것에 초점을 맞춘다.  문제가 있거나 힘든 부분에만 집중하는 대신, 현재 잘 작동하는 점들을 찾아 배우고 증폭시켜 장애물을 극복한다.

인터뷰 질문: 리더로서 우리는 종종 두 극단 사이에서 고민한다. 한쪽은 우리가 도달하고자 하는 뚜렷한 비전을 향해 큰 도약을 추진하는 것이고, 다른 쪽은 바로 지금 있는 곳에서 시작해 잘 돌아가는 부분을 파악하고 작은 변화를 꾸준히 시도하는 것이다. 이런 긴장을 탐색해야 했던 상황이 있나요? 그때 어떻게 대처했는지 설명해 주세요.

다양한 관점 융합하기 (Blend Diverse Perspectives)

특히 자신의 신념이나 기본값에 도전하는 다양한 관점을 찾아내고 수용하는 능력. ‘가장 많이 아는 사람이 되는 것’을 추구하는 태도를 경계하며, 모든 상황에서 가장 틀린 사람은 자신이 가장 전체적인 시각을 가지고 있다고 믿는 사람임을 인지한다. 대신 여러 관점의 융합을 다수 가능성의 원천으로 보아, 다양한 경로가 나타날 수 있게 한다.

인터뷰 질문: 다양한 관점, 특히 당신이 도전적으로 느꼈던 시각들까지 포용할 필요가 있었던 경험을 이야기해 주세요. 그 경험이 공동의 결정과 이후 행동에 어떤 영향을 미쳤나요?

인내심과 회복 탄력성 (Patience and Self-Repair)

반복적으로 개입하기보다, 특정 상황이 자연스럽게 진행되고 시간이 지나면서 스스로 해결되도록 인내하며 지켜보는 능력.

인터뷰 질문: 어떤 상황에서 개입하지 않고 스스로 해결되도록 둔 경험이 있나요? 그런 결정을 내리게 된 이유와 그 결과는 어땠는지 이야기해 주세요.

영향 예측 (Anticipate Effects)

새롭게 나타나는 행동이나 결과, 그리고 그로 인한 여러 차례의 예상치 못한 파급 효과들을 예견하는 능력(반드시 예측하는 것은 아님). 예상치 못한 결과가 예외가 아니라 규칙임을 받아들이고 끊임없이 상황 신호를 살피는 자세가 필요하다.

인터뷰 질문: 어려운 결정을 내릴 때 예상치 못한 부작용을 미리 점검해야 했던 경험이 있나요? 어떤 점을 특히 주의 깊게 봤나요?

호기심과 가벼운 접근 (Curiosity and Light Touch)

판단하거나 즉시 행동하려는 충동을 억제하고, 마음속에 떠오르는 생각과 감정을 여유롭게 탐색할 공간을 만드는 자세로, 호기심 어린 마음가짐으로 상황에 접근하는 능력.

인터뷰 질문: 즉각적인 판단을 내리려다 스스로 멈추고 호기심을 선택했던 순간을 이야기해 주세요. 그 마음가짐의 변화는 어떻게 일어났나요?

양쪽 모두 인정하기 (Both/And)

서로 반대되는 힘이나 생각들이 상호 의존적임을 인식하고 존중하는 능력. 많은 상황이 어느 하나를 선택하는 ‘양자택일’이 아니라, 겉으로는 모순되는 요소들이 공존하는 ‘양자 모두’를 잘 조율해 나가는 과정임을 이해하는 것이다. 복잡한 문제를 단순한 선택지로 줄여서 해결하려 하지 않는다.

인터뷰 질문: 표면적으로는 단순한 선택 문제처럼 보였던, 양자택일 상황에 직면했지만 실제로는 ‘둘 다’인 상황을 경험한 적 있나요? 그때 어떻게 상황을 해결했나요?

안전하게 개입하기 (Intervene Safely)

부작용이나 해를 최소화하면서 동시에 긍정적인 행동이나 신호, 패턴이 나타나도록 개입하는 능력. 부정적 영향이 나타나면 빠르게 완화하고, 긍정적 효과가 생기면 증폭하고 지속시키는 것이다. 이 기술을 갈고닦아도 항상 성공하거나 옳은 판단만 하는 것은 아니지만, 발전시키면 도움이 된다.

인터뷰 질문: 팀과 함께 새로운 일하는 방식이나 상호작용, 행동 방식을 시도해 본 적 있나요? 무엇을 시도할지 어떻게 결정했고, 계속 강화할지 아니면 바꿀지 어떻게 판단했나요?

직관과 추론의 균형 맞추기 (Abduction and Intuition)

한정된 데이터 안에서 논리적 추론과 직관적 추론(가설추론)을 조화롭게 활용하는 능력. 논리적이고 명확한 결론에만 갇히지 않고, 복잡하고 불명확한 패턴 속에서 직관적으로 도약하는 인간 고유의 능력을 발휘하는 것이다.

인터뷰 질문: 논리와 직관을 함께 활용해야 했던 경험을 이야기해 주세요. 과정과 결과는 어땠나요? 그 과정에서 다른 사람들은 어떻게 참여했나요? 그 과정에서 데이터는 어떻게 활용되었나요, 또는 활용되지 않았나요?

다양한 강점과 역량 수용하기 (Accept Diverse Strengths and Skills)

우리가 개인적으로 갖지 않았거나 중요하게 여기지 않는 강점과 관점을 인정하고 존중하는 능력. 스킬과 영향력을 인지하는 데 있어 전지전능하지 않다는 점을 이해하며, 무심코 개인이나 팀의 중요한 부분을 저평가할 위험이 있음을 인지하는 것이다.

인터뷰 질문: 잘 알지 못하는 강점이나 역량을 평가해야 했던 경험이 있나요? 그 역량이 당신의 가치관과 달라 평가절하될 위험이 있을 때 어떻게 접근했나요?

협력적으로 상황을 파악하고 환경을 만들어 가기 (Collaboratively Sense and Shape)

문제를 단순화하거나(“그냥 ~하면 된다”) 상황 해석을 독점하거나 통제하려는 충동을 억제하며, 다른 사람들과 함께 문제를 이해하고 상황을 개선할 방향을 만들기 위해 협력하는 능력.

인터뷰 질문: 다른 사람들과 함께 문제의 의미를 파악하고, 그들과 협력해 환경을 조성하여 실제 변화를 이끌어낸 경험에 대해 이야기해 주세요.

일치가 아닌 일관성 추구하기 (Coherence vs. Alignment)

모든 세부 사항의 완전한 일치를 강요하기보다는, 경계를 설정하고 ‘넘지 말아야 할 선’은 지키면서도 그 안에서 사람들 스스로 다양한 방향을 폭넓게 탐색하도록 권장하는 능력. 강요된 일치는 취약하다는 점을 인정하고, 일반적으로 일관성 있는 행동이 더 탄탄하고 지속 가능함을 이해한다.

인터뷰 질문: 사람들을 행동하게 해야 하는 상황에서 모두가 세세한 부분까지 완벽히 일치하도록 강요하지 않고도 일을 진행한 경험이 있나요? 이상적인 최종 상태를 정의하지 않고 대략적인 일관된 방향을 어떻게 정했나요?

씨앗을 심고 성장시키기 (Plant Seeds—Help Them Grow)

산출물을 미리 계획하고 완성하는 구조적인 결과물이 아니라, 심고 자라며 진화하는 유기체처럼 바라보는 능력. 범위를 엄격하게 잡기보다는 가볍게 두고, 시간을 엄격한 제한조건이 아닌 가능성을 열어주는 제약으로 활용한다.

인터뷰 질문: 요구사항의 확실성과 타임박스 및 일정 활용을 적절히 조화시키고, 예상치 못한 새로운 가치가 등장할 가능성을 열어 두는 당신의 방식을 보여주는 사례가 있나요?

업무 방식 맞춤 조정하기 (Tailor Ways of Working)

과제의 성격과 상황에 맞게 업무 방식을 조정하는 능력. 상황에 따라 다음 방식을 조합해 활용한다:

  • 단순하게 바로 실행하기
  • 체계적이고 큰 계획 세우기
  • 특정 결과를 목표로 실험하기
  • 비교적 느슨하고 다양한 실험으로 새로운 가능성 관찰하기

 …인간이 관여할 때는 후자의 방법을 선호하는 경향이 있다는 점을 이해한다.

인터뷰 질문: 과제의 특성에 따라 본인과 팀의 업무 방식을 어떻게 달리 적용했는지 대비되는 사례를 공유해 주세요. 계획 수립과 실행 접근 방식을 어떻게 바꾸었나요?

불확실성에 맞서기 (Facing Uncertainty)

A) 상황에서 가장 불확실한 부분으로 적극 다가가되, B) 익숙하고 잘 알고 있는 부분에서 ‘빠른 성과(quick win)’를 얻는 것 사이에서 균형을 맞추는 능력. 불확실성을 난관이 아니라 기회의 신호로 보고, 복잡한 도전을 환영하는 문화를 만드는 것이다 (단순화하려 하지 않고).

인터뷰 질문: 빠른 성과와 주요 불확실성 영역 해결 사이에서 균형을 맞춰야 했던 경험을 이야기해 주세요. 어떤 방식으로 접근했고, 팀에 어떤 지원을 했으며 학습과 성장을 어떻게 이끌었나요?

참고 사항

  1. 실제 면접에서 이 질문들을 사용하기 전에는 반드시 내부적으로 이 역량들에 대해 논의하고 스스로 답변을 준비해 보시길 권합니다. 회사에서 이 역량들이 얼마나 중요하게 여겨지고 있는지, 이 역량을 가진 사람들이 잘 성장하는지 아니면 어려움을 겪는지, 회사 문화가 이런 역량이 발현되는 방식을 어떻게 형성하는지, 그리고 이 역량들을 어떤 단어로 표현하는지 등을 점검해 보십시오.
  2. 이 글에는 아마도 너무 많은 전문 용어와 이론을 사용했을 겁니다. 죄송합니다. 이해하기 쉬운 언어와 현장에서 실제로 적용할 수 있도록 이 역량들을 효과적으로 전달하는 능력을 키우기 위해 계속 노력하고 있습니다!
  3. 명확한 역량을 정의하는 일은복잡성을 고려할 때는 다소 단순화한 측면이 있을 수 있습니다. 이 역량들은 개인 고유의 것이 아니라 환경과 관계에 깊이 얽혀 있습니다. 커뮤니티 내 깊이 있는 분들이 이에 대해 지적하실 수 있음을 알고 있으며, 피드백을 환영합니다.
  4. 모든 일에 이런 접근법을 다 적용할 수 있는 경우는 매우 드뭅니다. 그렇게 하면 팀이 지칠 수 있기 때문입니다. ‘업무 방식 맞춤 조정하기’ 역량 설명에서도 이 점을 언급했습니다. 본 글에서는 복잡한 문제와 환경에 초점을 맞췄지만, 결과는 항상 다양하게 나타난다는 점을 기억하세요.
  5. 많은 조직들은 복잡성을 직접적으로 언급하거나 전문 용어를 사용하지 않더라도, 복잡성을 효과적으로 다루는 방식을 발전시켜 왔습니다. 위에 나열된 역량들이 여러분이나 회사 내 다른 사람들에게는 익숙하지 않거나 낯설게 들릴 수 있다는 점을 인지하며 이 글을 살펴보시기 바랍니다. “우리 회사는 이런 걸 안 한다”고 결론 내리기 전에, 여러분만의 방식과 맥락 속에서 어떻게 이런 역량을 실현하고 있는지 자문해 보시길 바랍니다.

원문: How Capable Leaders Navigate Uncertainty and Ambiguity

[출처] https://blogbyash.com/translation/how-capable-leaders-navigate/

Loading

16 8월 2025

[chatGPT] “박사급이라더니 대통령 이름도 몰라”… 조롱 쏟아진 GPT-5 답변

[chatGPT] “박사급이라더니 대통령 이름도 몰라”… 조롱 쏟아진 GPT-5 답변

01 ZTG4CG4HDVL2RJJTL2UJSMTGEI.png
 
오픈AI 챗GPT 로고. /로이터 연합뉴스

생성형 인공지능(AI) 챗GPT가 야심 차게 내놓은 최신 모델 ‘GPT-5’가 기본적인 오류 연발로 일부 이용자들에게 조롱받고 있다.

미국 CNN 등 외신은 오픈AI가 선보인 GPT-5가 기대에 크게 못 미치는 성능을 보여 조롱거리로 전락하고 있다고 14일(현지 시각) 보도했다. 앞서 GPT-5는 지난 7일 첫 공개 당시에만 해도 AI 업계와 이용자들의 큰 기대를 한 몸에 받고 있었다. 샘 올트먼 오픈AI 최고경영자(CEO)가 “박사급 전문가 수준의 모델”이라며 극찬을 아끼지 않았기 때문이다.

그러나 막상 뚜껑을 열어본 GPT-5는 달랐다. 오류가 연이어 발생하고 명백히 잘못된 답변이 반복된 것이다. 그 예로 미국 건국 초기 대통령 12명의 사진과 이름을 넣어 표를 만들어달라고 하자 조지 워싱턴을 ‘기어지 워싱지언’(Gearge Washingion)으로, 토머스 제퍼슨을 ‘토머슨 제퍼슨’(Thomason Jefferson)으로 적는 등 조금씩 이가 빠진 결과물을 내뱉었다.

뿐만 아니라 미국 지도를 그리고 주(州) 이름을 표시하라는 명령에 캘리포니아를 ‘칼포히아’(CALFORHIA)로, 아이다호를 ‘1오아호’(1OAHO)로 표기하기도 했다. 이에 일부 이용자는 GPT-5를 조롱하며 비웃는 이미지를 만들어 소셜미디어에 올렸다. 이전 버전인 GPT-4o보다 성능이 부족하다며 기존 모델을 되살리라는 온라인 청원 운동도 벌어졌다.

02 YQBK45NOVFAP5CKLAU7S3PSD3M.png
 
일부 이용자가 GPT-5의 성능을 조롱하며 만든 이미지. /X(옛 트위터)

결국 올트먼 CEO는 지난 9일 X(옛 트위터)에 글을 써 “(모델의) 자동 전환 장치가 고장 나 사용 불가 상태였기에 GPT-5가 실제보다 더 멍청해 보였다”며 “오늘부터는 더 똑똑해 보일 것”이라고 해명했다. GPT-5에는 이용자 질문에 따라 여러 성능의 모델 중 가장 적합한 하나가 답변을 생성하는 자동 전환 장치가 있는데, 이 부분에서 문제가 생겼다는 것이다.

그러나 CNN은 올트먼 CEO의 해명 이후 똑같이 미국 지도를 그리라는 명령을 내려봤지만 결과물은 여전히 형편없는 수준이었다고 지적했다. AI 비판 인사로 유명한 게리 마커스 뉴욕대 명예교수는 “오픈AI가 이렇게 어중간한 수준의 모델에 브랜드 이름을 내걸 줄 몰랐다”며 “합리적인 세상이었다면 그들의 기업 가치가 타격을 입었을 것”이라고 했다.

 

[출처] https://www.chosun.com/economy/int_economy/2025/08/17/MUM67WIRPZDBVFV5FKY5BHZVC4/

Loading

6 8월 2025

[알아봅시다] [리버스 프롬프트 엔지니어링] Reverse Prompt Engineering

[알아봅시다] [리버스 프롬프트 엔지니어링] Reverse Prompt Engineering

Reverse Prompt Engineering

 
 
 
 

????리버스 프롬프트 엔제니어링 패턴(In English)

1.Can we talk about Reverse Prompt Engineering? By Reverse Prompt Engineering I mean creating a prompt from a given text.

2.Nice. Can you give me a simple example of Reverse Prompt Engineering?

3.Good. Write a short expaination on how dog training works, and Reverse Prompt Engineer the explaination.

4.Great. Can you create a very technical reverse prompt engineering template?

5-1.Reverse Prompt Engineeing the following {text}, capture the TONE and WRITING STYLE of the {text} to include in the prompt:
text = “이 부분에다가 실제 텍스트 내용(오바마 연설, 세익스피어 문구 등의 스타일로)을 넣는다.”

 

5-2-1.Can you reverse engineer the following {product describtion}, capture the writing style an dthe length fo the text:

product describtion= “이 부분에다가 실제 제품 내용(아이폰 제원 등)을 넣는다.”

5-2-2.Rewrite the reverse prompt into a prompt that can be used for any product describtion with a user input feature in the prompt that uses {}:

 

5-3. Reverse engineer the following {html-code} in to a prompt:

html-code=“이 부분에다가 코드(html코드) 넣는다.”

 
 

????방법(In Korean)

 

1.리버스 프롬프터 엔지니어링에 대해 얘기할 수 있을까요? Reverse Prompt Engineering은 주어진 텍스트에서 프롬프트를 생성하는 것을 의미합니다. 

 
 
 
 

2.좋아요. 리버스 프롬프트 엔지니어링의 간단한 예를 들어주시겠어요? 

 
 
 
 

3.좋아요. 강아지 훈련이 어떻게 작동하는지에 대한 간단한 설명을 쓰고, 설명을 리버스 프롬프트 엔지니어인 나에게 작성해주세요. 

 
 
 
 

4.내가 ‘강아지 훈련은, 강아지가 원하는 행동을 보이면 보상을 주어서 그 행동을 강화하고, 원치 않는 행동을 보이면 그 행동에 대해 무시하거나, 보상을 주지 않음으로써 그 행동을 감소시키는 방법입니다. 예를 들어, 강아지가 기본적인 훈련인 “앉아”를 배우기 위해서는, 강아지가 앉아앉은 행동을 보이면 간식이나 칭찬 등의 보상을 주어서 그 행동을 강화하게 됩니다.’와 같은 답을 듣기 위해서는 어떤 프롬프트를 작성해야 되요? 

 
 
 
 

5.내가 당신에게 사용할 수 있는 리버스 프롬프트 엔지니어링 탬플릿을 프롬프트 형태로 제공해 줄 수 있나요? 

 
 
 
 

6.연설문이나 시를 작성하기 위한 리버스 엔지니어링 템플릿을 프롬프트 형태로 제공해 줄 수 있나요? 

 
 
 
 

7.한국어로는 없나요?

 
 
 
 

8.혹시, {text}를 변수로 사용하는 리버스 엔지니어링 프롬프트 템플릿을 제공해 줄 수 있나요? 

 
 
 
 

9.한국어로 제공 부탁해요.

 
 
 
 

10.{text}의 시를 작성하기 위한 프롬프트를 제공해주세요.

text=죽는 날까지 하늘을 우러러

한 점 부끄럼이 없기를,

잎새에 이는 바람에도 

나는 괴로워했다.

별을 노래하는 마음으로 

모든 죽어가는 것을 사랑해야지

그리고 나한테 주어진 길을 

걸어가야겠다.

오늘 밤에도 별이 바람에 스치운다. 

 
 
 
 

11.{text}의 시는 윤동주님의 ‘서시’라는 제목의 시에요. 알고 있나요? 

 
 
 
 

12.{text}와 같은 운율, 어조, 억양을 고려하여 ‘청소년들이 겪는 아픔’에 대한 시로 재창작 부탁해요. 

 
 
 
 

13.{text}와 같은 운율, 어조, 억양을 고려하여 ‘청소년들이 겪는 아픔‘에 대한 시 작성하기

text=죽는 날까지 하늘을 우러러

한 점 부끄럼이 없기를,

잎새에 이는 바람에도 

나는 괴로워했다.

별을 노래하는 마음으로 

모든 죽어가는 것을 사랑해야지

그리고 나한테 주어진 길을 

걸어가야겠다.

오늘 밤에도 별이 바람에 스치운다. 

 
 
 
 

14.재창작하여 작성해주세요. 

 
 
 
 

여기 까지가 리버스 프롬프트 엔지니어링(Reverse Prompt Engineering) 한국어 루틴입니다. 리버스 프롬프트 엔지니어링은 프롬프트 엔지니어가 원하는 답을 하기 위한 질문을 찾는 과정이라 생각하면 됩니다. 아래는 리버스 프롬프트 엔지니어링을 GPT에게 이해시키고 시를 다작한 사례입니다. 

 
 

[출처] https://www.learnmore.co.kr/education/ai-literacy/open-ai/prompt-example/reverse-prompt-engineering

Loading

12 7월 2025

[인공지능 기술] 예상치 못한 AI의 굴욕

[인공지능 기술] 예상치 못한 AI의 굴욕

예상치 못한 AI의 굴욕

[아무튼, 주말]
[아무튼, 레터]

EZDVHUI2FJASRJ5P3UOXNTKD74.png
 
AI 대전환은 거스를 수 없는 흐름이다. AI 기술을 인간의 판단과 어떻게 균형 있게 조화시킬 것인지에 대한 고민이 필요하다.

영국에서 윔블던 테니스 대회가 열리고 있습니다. 148년 역사의 이 대회는 보수적 운영 방식으로 유명합니다. 선수들은 운동복은 물론 모자, 양말, 팔목 밴드, 라켓 손잡이까지 흰색으로 통일해야 합니다. 다만, 2년 전 여성 선수에 한해 어두운 색 속바지를 허용했습니다. ‘바지 혹은 치마보다 길지 않아야 한다’는 조건이 달렸고요. ‘윔블던다운 미미한 변화’라는 말이 나왔습니다.

그런데 올해 대회는 정말 큰 변화가 생겼습니다. 선심을 없애고 ‘인공지능(AI) 심판’을 도입한 것입니다. 코트 주변 카메라들이 공 궤적을 추적해 ‘아웃’ 여부를 판독합니다. 다른 대회도 AI를 많이 활용하지만 ‘전통’을 중시해온 윔블던이기에 놀라운 결정이라는 반응이 많았습니다.

판정의 정확성을 높이기 위한 것인데, 뜻밖의 논란을 불러일으켰습니다. 6일(현지시각) 러시아와 영국 선수가 맞붙은 여자 단식 16강전. 중계 화면상으론 분명히 영국 선수가 친 공이 라인을 벗어났는데도 ‘아웃’ 판정이 나오지 않았습니다. 판독 시스템이 순간 작동을 멈춘 것입니다. 결국 이 포인트는 무효 처리됐습니다. 러시아 선수가 “점수를 도둑맞았다”고 항의했지만 소용없었습니다. 그는 한번 흔들리자 끌려가기 시작했습니다. 이 경기는 러시아 선수가 간신히 이기기는 했지만 승패가 바뀔 뻔했습니다. AI 심판의 말썽은 이게 끝이 아니었습니다. 8일 열린 남자 단식 8강전에서 유형이 다른 오작동을 일으켰습니다.

이쯤 되면 “AI가 윔블던에서 씻기 힘든 굴욕을 당했다”는 말이 나오는 것도 무리가 아니겠네요. 이번 소동은 스포츠의 경계를 넘어 AI의 존재론적 가치를 둘러싸고 다양한 질문이 쏟아지는 계기가 됐습니다. AI 의존도는 어느 정도의 선이 적절한 것일까. AI의 오류로 생기는 피해는 누가 책임지고 어떻게 구제해야 하는가. AI가 특정 개인이나 집단에 대한 불공정하고 차별적인 결과물을 도출할 우려는 없는 걸까.

AI 대전환은 거스를 수 없는 흐름입니다. AI 주도권을 놓고 글로벌 경쟁이 한창입니다. 하지만 AI의 장밋빛 미래에 매몰된 나머지 AI 기술을 인간의 판단과 어떻게 균형 있게 조화시킬 것인지에 대한 인류의 고민이 부족하지는 않은지 걱정되는 것도 사실입니다. 즐거운 주말 보내십시오.

 
 

[출처] https://www.chosun.com/national/weekend/2025/07/12/QZCAYJPLHZH4FMWVBN36XH5EWY/

Loading

8 7월 2025

[python 인공지능] Deploy ML models with FastAPI, Docker, and Heroku | Tutorial

[python 인공지능] Deploy ML models with FastAPI, Docker, and Heroku | Tutorial

 

🔧 머신러닝 모델 배포 전반

  • (00:00) FastAPI + Docker + Heroku 조합으로 머신러닝 모델을 프로덕션 수준으로 배포하는 전체 과정을 설명.

  • 다양한 프레임워크(Scikit-learn, TensorFlow, PyTorch)에서도 동일한 접근 방식으로 활용 가능.


🧠 모델 개발 및 저장

  • (01:03~03:53)

    • Google Colab에서 언어 감지 모델 개발 (Scikit-learn 기반 Naive Bayes + CountVectorizer).

    • 모델은 Pipeline으로 결합하여 추론을 단일 객체로 수행.

    • pickle로 모델 저장, 버전 관리(major.minor.patch) 권장.

    • 텐서플로나 파이토치 사용 시 zip 압축하여 다운로드하는 팁 소개.


🏗️ FastAPI 애플리케이션 구성

  • (05:10~08:11)

    • app/main.py에서 FastAPI 엔드포인트 구현 (헬스 체크 및 /predict POST API).

    • model.py에서 저장된 모델 로드 및 전처리/예측 로직 구현.

    • pydantic.BaseModel 기반 입력/출력 유효성 검사 적용 (타입 안전성 보장).


🐳 Docker 컨테이너화

  • (08:46~11:27)

    • FastAPI 컨테이너화를 위한 Dockerfile, .dockerignore, requirements.txt 생성.

    • 공식 FastAPI + Gunicorn 기반 Docker 이미지 활용.

    • 의존성은 scikit-learn만 추가 설치 (==1.0.2 등 버전 고정 권장).

    • docker build, docker run 명령어로 로컬 실행 및 포트 매핑 확인.


📋 FastAPI 자동 문서화

  • (12:50~13:34)

    • /docs 경로에서 Swagger 기반 API 문서 자동 생성.

    • 입력 텍스트에 따른 언어 예측 테스트 가능 (Postman 없이도 가능).


☁️ Heroku 배포

  • (14:17~17:51)

    • heroku login, heroku create, git push heroku main으로 CLI 기반 배포 진행.

    • heroku.yaml 파일 작성 필수 (Heroku Dev Center 문서 참고).

    • heroku stack:set container로 Docker 기반 스택 설정.

    • 배포 후 Heroku URL에서 API 접근 가능.


배포 후 테스트

  • (17:51~18:38)

    • Postman으로 GET /Health Check OK, POST /predict"language": "german", "language": "italian" 확인.

    • 실시간 언어 감지 API 배포 완료!


필요 시 각 섹션별로 관련 코드/구성요소를 다시 정리해드릴 수 있습니다.

 

나의 말:
섹션별로 관련 코드/구성요소를 다시 정리
 
ChatGPT의 말:

아래는 영상에서 설명한 FastAPI + Docker + Heroku를 활용한 머신러닝 모델 배포 과정을 섹션별로 코드 및 구성요소 중심으로 재정리한 내용입니다:


1️⃣ 모델 개발 및 저장 (Colab)

✅ 사용 기술:

  • scikit-learn, pandas, re, pickle

📄 주요 코드:

python
from sklearn.pipeline import Pipeline
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
import pickle

# 데이터 준비 및 전처리
label_encoder = LabelEncoder()
y_encoded = label_encoder.fit_transform(df['language'])

# 모델 파이프라인 정의
pipeline = Pipeline([
('vectorizer', CountVectorizer()),
('classifier', MultinomialNB())
])

# 훈련
pipeline.fit(df['text'], y_encoded)

# 저장
with open('model_v0.1.0.pkl', 'wb') as f:
pickle.dump(pipeline, f)

# 레이블 저장 (선택)
label_classes = label_encoder.classes_


2️⃣ FastAPI 앱 구성

📁 디렉터리 구조:

bash
app/
├── main.py # FastAPI 엔트리포인트
├── model/
│ ├── model.py # 모델 로딩 및 예측 함수
│ └── model_v0.1.0.pkl # 저장된 모델 파일

📄 model/model.py (모델 로딩 및 예측)

python
import pickle
import os
import re

BASE_DIR = os.path.dirname(__file__)
MODEL_PATH = os.path.join(BASE_DIR, "model_v0.1.0.pkl")

with open(MODEL_PATH, "rb") as f:
model = pickle.load(f)

label_classes = ["english", "german", "italian", ...] # 실제 label list

def predict_pipeline(text: str) -> str:
text = re.sub(r"[^\w\s]", "", text)
pred = model.predict([text])[0]
return label_classes[pred]

📄 main.py (FastAPI 엔드포인트)

python
from fastapi import FastAPI
from pydantic import BaseModel
from app.model.model import predict_pipeline

app = FastAPI()

class TextIn(BaseModel):
text: str

class PredictionOut(BaseModel):
language: str

@app.get("/")
def health_check():
return {"status": "ok", "model_version": "0.1.0"}

@app.post("/predict", response_model=PredictionOut)
def predict(payload: TextIn):
language = predict_pipeline(payload.text)
return {"language": language}


3️⃣ Docker 구성

📄 Dockerfile

dockerfile
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8

WORKDIR /app
COPY ./app /app/app
COPY requirements.txt /app

RUN pip install --no-cache-dir -r /app/requirements.txt

📄 requirements.txt

txt
scikit-learn==1.0.2

📄 .dockerignore

txt
__pycache__/
*.pyc
*.pkl
*.zip
.venv

4️⃣ 로컬 Docker 테스트 명령어

bash
# 빌드
docker build -t language-detection-app .

# 실행 (포트 매핑)
docker run -p 8080:80 language-detection-app


5️⃣ FastAPI 자동 문서화

접속:

bash
http://localhost:8080/docs

자동 생성된 Swagger UI에서 /predict POST API 테스트 가능


6️⃣ Heroku 배포 구성

📄 heroku.yml

yaml
build:
docker:
web: Dockerfile
run:
web: uvicorn app.main:app --host=0.0.0.0 --port=${PORT:-5000}

🧪 Heroku CLI 명령어:

bash
heroku login
heroku create language-detection-app123
heroku stack:set container
git add .
git commit -m "Deploy to Heroku"
git push heroku main

7️⃣ 배포 확인

  • 배포 URL 예시: https://language-detection-app123.herokuapp.com

  • GET / → 헬스체크

  • POST /predict → 언어 예측

Loading

1 7월 2025

[Next.js 개발] pm2 로 Next.js 실행하기

[Next.js 개발] pm2 로 Next.js 실행하기

상황

pm2 로 React+Next.js 로 구성된 어플리케이션를 무중단 배포 하고자 함.

방법

  1. build

    먼저, 어플리케이션 build를 실행 함.

    npm run build 

    또는 package.json의 scripts에 prestart를 다음과 같이 추가 해주면 npm start 를 실행 할 때 자동으로 prestart가 먼저 실행되고, prestart의 명령대로 build가 이루어져 npm run build를 따로 실행 안 해도 됨.

    package.json

    "scripts": {
        "dev": "next -p 3000",
        "build": "next build",
        "prestart": "npm run build",
        "start": "next start -p 80"
      },
  2. pm2 등록

    package.json

    "scripts": {
    ...
        "start": "next start -p 80"
    ...
      },

    cmd

    pm2 --name 어플리케이션이름 start npm -- start

    위의 명령어 실행 후 사이트 접속 했을 경우, 페이지가 나타나지 않으면 제대로 실행이 되지 않은 것이다.

    ( pm2 목록은 생성 되었으나, 사이트를 실제로 접속 했을 경우, 페이지가 뜨지 않았다.)

    필자는 그러하였고, pm2 목록을 지우고 다음과 같은 명령어로 새로 실행하였다.

    pm2 start "npm run start" --name 어플리케이션이름

참고 문헌

[출처] https://velog.io/@mangojang/pm2-%EB%A1%9C-Next.js-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0

Loading

28 6월 2025

[사회과학] 정신을 갉아 먹는 ‘가스라이팅’, 가스라이팅 가해자의 5가지 수법

[사회과학] 정신을 갉아 먹는 ‘가스라이팅’, 가스라이팅 가해자의 5가지 수법

정신을 갉아 먹는 ‘가스라이팅’, 가스라이팅 가해자의 5가지 수법

  •  성진규 하이닥 건강의학기자
  •  승인 2021.07.06 10:59

가스라이팅은 피해자가 자신의 감정, 생각을 부인하게 만드는 감정적인 학대이다. 가스라이팅 가해자는 피해자에 대한 통제력과 권력을 얻기 위해 ‘피해자의 기억이 부정확하다’, ‘너무 과민 반응하는 거 아니야?’, ‘모든 건 다 너의 상상일 뿐이야’라고 말하며 피해자의 판단력을 흐리게 만들고, 피해자가 가해자의 말에 의존하게 만든다. 결국, 가스라이팅 피해자는 현실을 부정, 불신하게 된다.

25086_60054_0159.jpg
가스 라이팅

가스라이팅과 같은 감정적 학대의 시작은 알아차리지 못할 정도로 미묘하다. 예를 들어, 가스라이팅 가해자는 이야기나 기억의 작은 부분을 바꾸기 시작할 것이다. 가스라이팅은 피해자가 알아차리지 못하게 매우 교묘하게 시작되기 때문에, 결국 피해자는 자신이 가스라이팅을 당한다는 사실을 인지하지 못한 채 자기 불신에 빠지기 시작한다. 시간이 지나면 지날수록 가스라이팅 가해자는 피해자의 자기 신뢰를 무너트리고 피해자가 가해자에게 정서적으로 완벽하게 의지하게 만들고 관계를 지배하려고 한다.

그렇다면 교묘하고, 치밀하게 시작되는 가스라이팅, 어떻게 알아차릴 수 있을까? 불안 장애, 우울증, 외상 후 스트레스 장애로 이어질 수 있는 가스라이팅 수법은 크게 다섯 가지로 나눌 수 있다.
1. 거짓말을 한다
가스라이팅 가해자는 정보를 숨기고 왜곡함으로써 피해자에 대한 통제력을 얻거나, 행동에 대한 책임을 피하려 한다. 이를 위해 가스라이팅 가해자는 노골적이거나 교묘한 거짓말을 할지도 모른다. 심지어 가해자는 자신의 주장과 상반되는 구체적이고 명백한 사실을 제시했을 때에도 거짓말을 계속 반복할 수 있다. 예를 들어, 바람을 피우고 있는 배우자에게 명백한 증거나 문자를 제시해도 자신이 바람을 피우고 있다는 사실을 계속 부인할 수 있다. 또한, 가스라이팅 가해자는 피해자가 알고 있거나, 직접 목격한 사실을 부정하거나 “기억이 나지 않는다”라고 주장할 수도 있다.

2. 가스라이팅 가해자는 자신의 잘못을 피해자에게 투영한다
가스라이팅 가해자는 ‘투사’라는 방어기제를 사용한다. ‘투사’란 자기 자신이 가지고 있는 공격성, 불안, 죄책감, 성적 본능 등 자신이 싫어하는 자신의 모습을 다른 사람에게 투영함으로써 현실을 부정하는 것을 의미한다.

가스라이팅 가해자는 자신들이 피해자이고 오히려 피해자가 가해자라고 주장한다. 가해자는 피해자와의 친밀한 관계를 이용해 모욕, 무관심, 무고 등으로 피해자가 분노하게 만들고, 피해자가 화를 내면 “우리 관계를 망치는 건 내가 아니고 너야”라는 식으로 말한다.

3. 피해자에게 미쳤다거나, 너무 예민하다고 말한다
가스라이팅 가해자는 자신은 아무 문제가 없다고 계속 주장한다. 가해자는 관계를 망치고 있는 것은 피해자라고 주장한다. 예를 들어, 가스라이팅 가해자는 피해자가 너무 예민하고 작은 것에 과민 반응한다고 비난함으로써 피해자의 정신 건강을 비난한다. 가해자는 때론 피해자의 가족과 친구에게도 피해자가 정신적으로 불안하다고 말하며 피해자가 외부에서 도움을 받지 못하도록 만든다.

4. 피해자를 깎아내린다
가스라이팅 가해자는 피해자의 약점을 집중적으로 비난함으로써 피해자를 통제하려 한다. 만약 피해자가 자신의 약점을 드러낸다면, 가해자는 곧바로 그 약점을 자신의 무기로 삼을 것이다. 그리고, 피해자를 돕는다는 미명 아래 계속해서 피해자의 약점을 쥐고 흔들 것이다.

가스라이팅 가해자는 농담이라는 핑계로 사람들 앞에서 피해자를 성과나 능력에 대해 모욕하거나 비꼬는 칭찬을 한다. 예를 들어 피해자에게 사치품을 사도록 설득하고, 가족들 앞에서 피해자가 사치스럽다고 비난하거나, 피해자가 재정 관리에 무능하다고 느끼게 해서 피해자의 재정이나 계획을 통제한다.

5. 피해자의 주의를 분산시킨다
가스라이팅 가해자는 피해자가 가해자의 행동을 정확하게 판단하지 못하도록 한다. 가해자는 감정적인 학대를 당하고 있는 피해자에게 관계 안에서 일어나고 있는 모든 일들이 피해자의 잘못이며 이건 모두 피해자의 문제라고 말한다.

가스라이팅 가해자는 피해자의 걱정이나 고민을 공감해 주거나 해결해 주지 않고, 오히려 대화의 초점을 피해자의 단점에 맞춘다. 가스라이팅 가해자는 피해자가 말하는 모든 것을 부인하고, 자신의 의견을 피해자에게 관철시키고 피해자의 판단력을 흐리기 위해 사실을 왜곡한다. 가스라이팅 가해자는 현재 눈앞에 벌어진 상황이나 사실관계보다 피해자의 목소리 톤, 사용하는 단어에 집중함으로 피해자에게 ‘부정적이다’, ‘화를 낸다’ 등 대화의 본질을 흐리는 비난을 한다.

[출처] https://news.hidoc.co.kr/news/articleView.html?idxno=25086

Loading

29 5월 2025

[인공지능 기술] [알아봅시다] 개발자의 chatGPT 활용법

[인공지능 기술] [알아봅시다] 개발자의 chatGPT 활용법

25931365-b065-467e-bd43-44127efdf182.png

서론

현대 소프트웨어 개발 환경에서 AI 비서로 자리 잡은 ChatGPT는 단순한 문답을 넘어 다양한 개발 단계에서 생산성을 크게 향상시켜 줍니다. 이 포스트에서는 코드 작성부터 테스트, 문서화, CI/CD 파이프라인 통합까지 개발자가 ChatGPT를 활용할 수 있는 대표적인 방법들을 살펴봅니다.


1. 코드 스캐폴딩(Scaffolding) 및 초기 구조 생성

  • 프로젝트 템플릿 생성

    • “새로운 Django 프로젝트 기본 설정 코드를 생성해줘”

  • CRUD 엔드포인트 초안

    • “Express.js로 users CRUD API 라우터 코드를 짜줘”

  • 디렉터리 구조 제안

    • “React + TypeScript 프로젝트 구조를 어떻게 잡는 게 좋을까?”

 
javascript
// 예시: Express.js CRUD 스캐폴딩 const express = require('express'); const router = express.Router(); // GET all users router.get('/users'async (req, res) => { // ChatGPT가 제안한 기본 로직 }); // POST create user router.post('/users'async (req, res) => { // ... }); module.exports = router;

2. 디버깅 및 오류 해결

  • 에러 메시지 분석

    • “이 Node.js 에러 스택을 보고 원인과 해결 방법을 알려줘”

  • 코드 리뷰를 통한 버그 찾기

    • “다음 함수에서 잠재적인 null 참조 버그가 있을까?”

  • 리팩터링 제안

    • “이 파이썬 함수의 가독성을 높이도록 리팩터링해줘”


3. 코드 문서화 및 주석 작성

  • 함수/클래스 설명 자동 생성

    • “이 함수의 역할을 한 문장으로 요약해줘”

  • README.md 작성 보조

    • “이 프로젝트의 README 템플릿을 작성해줘”

  • 주석 일관성 유지

    • “이 자바스크립트 코드에 JSDoc 스타일 주석을 추가해줘”

 
markdown
/** * @function addTwoNumbers * @param {number} a - 첫 번째 숫자 * @param {number} b - 두 번째 숫자 * @returns {number} 두 수의 합 */ function addTwoNumbers(a, b) { return a + b; }

4. 테스트 케이스 및 자동화 스크립트 생성

  • 유닛 테스트 템플릿

    • “Jest를 이용한 add 함수 테스트 코드를 작성해줘”

  • 통합 테스트 시나리오

    • “API 엔드포인트 /login에 대한 통합 테스트 계획을 제안해줘”

  • 테스트 커버리지 개선 아이디어

    • “이 모듈의 경로 커버리지를 높이려면 어떤 테스트가 필요할까?”


5. 코드 리뷰 및 최적화 제안

  • 성능 병목 분석

    • “이 SQL 쿼리가 느린 원인과 인덱스 최적화 방안을 알려줘”

  • 비효율적 로직 리팩터링

    • “이 루프를 더 효율적인 함수형 스타일로 바꿔줄래?”

  • 보안 취약점 점검

    • “이 PHP 코드에서 SQL 인젝션 취약점이 있나?”


6. 새로운 기술 학습 및 예제 생성

  • 라이브러리 사용 예제

    • “Pandas에서 groupby와 pivot 테이블을 사용하는 예제를 보여줘”

  • 비교 분석

    • “Django와 Flask 중 어느 것을 선택해야 할까?”

  • 공식 문서 요약

    • “React 공식 문서에서 useEffect 훅 사용법을 요약해줘”


7. CI/CD 파이프라인 및 DevOps 자동화

  • GitHub Actions 워크플로우 생성

    • “Node.js 프로젝트용 GitHub Actions 워크플로우 YAML을 생성해줘”

  • Dockerfile 최적화

    • “이 Dockerfile을 멀티스테이지 빌드로 최적화해줘”

  • 배포 스크립트 작성

    • “AWS EC2에 배포하는 Bash 스크립트를 작성해줘”


8. 커밋 메시지 작성 및 이슈 템플릿

  • 의미 있는 커밋 메시지

    • “다음 변경 내용을 설명하는 커밋 메시지를 작성해줘: 사용자 로그인 로직 수정, JWT 토큰 방식으로 변경”

  • 이슈 템플릿 자동 생성

    • “버그 리포트용 GitHub 이슈 템플릿을 만들어줘”


결론

ChatGPT는 단순히 대화형 AI를 넘어, 개발 생산성을 높여주는 올인원 도구로 발전했습니다.
코드 스캐폴딩에서부터 디버깅, 테스트, 문서화, DevOps 자동화에 이르기까지 일련의 개발 과정을 ChatGPT와 협업함으로써 더 빠르고, 더 안정적이며, 더 효율적인 소프트웨어를 구현할 수 있습니다.
오늘 바로 ChatGPT를 개발 워크플로우에 통합해 보세요!


이 글이 도움이 되었다면, 댓글과 공유 부탁드립니다!

Loading

28 5월 2025

[인공지능 기술] Gradio 설치 및 실행 방법

[인공지능 기술] Gradio 설치 및 실행 방법

1. Gradio란 무엇인가?


Gradio는 Python으로 개발된 오픈 소스 패키지이다.
Gradio를 사용하면 몇 줄의 코드로 ML 모델, API 또는 임의의 Python 함수에 대해 사용하기 쉽고 커스터마이징할 수 있는 UI 구성 요소를 빠르게 생성할 수 있다.
Gradio GUI를 Jupyter 노트북에 직접 통합하거나 링크로 다른 사람과 공유할 수도 있다.

00 image.png 

2. Gradio 설치


Gradio를 설치하는 방법은 다음과 같다.
터미널에서 다음 명령을 실행하거나 Google Colab에서 실행할 수 있다.

pip install gradio

 Jupyter Notebook을 사용하는 경우에는 다음과 같이 입력한다.

!pip install gradio

 

3. Gradio 애플리케이션을 실행하는 방법


Gradio 애플리케이션을 실행하는 방법을 알아보자.
다음은 사용자의 이름을 입력받아 인사 메시지를 생성하는 간단한 Python 애플리케이션이다.

#!pip install gradio
import gradio as gr

def user_greeting(name):
    return "안녕하세요! " + name + "님, 첫 번째 Gradio 애플리케이션에 오신 것을 환영합니다!????"

app = gr.Interface(fn=user_greeting, inputs="text", outputs="text")
app.launch()

???? 에러 메시지 발생 (ModuleNotFoundError: No module named 'tqdm')

  • 내가 코드를 실행 했을 때는 위와 같은 에러 메시지가 발생 했는데, 에러 메시지에 따르면 gradio 모듈을 찾을 수 없고, gradio 모듈의 일부 파일에서 tqdm 모듈을 찾을 수 없다고 한다.

???? 해결 방법

  • gradio와 tqdm 모듈의 호환성 문제가 있을 수 있기 때문에 gradio와 tqdm 모듈을 최신 버전으로 업데이트 하였다.
    pip install -U gradio
    pip install -U tqdm
    • Gradio 애플리케이션이 실행되었다.

 

명령 프롬프트에서 Gradio 응용 프로그램 실행

Gradio 애플리케이션을 명령 프롬프트에서 실행할 수 있다.
명령 프롬프트에서 다음과 같이 입력한다.

python app.py


애플리케이션을 실행하면 다음의 URL을 열어서 결과를 확인할 수 있다: http://127.0.0.1:7862

  • 이 URL은 각자의 환경에 따라 다를 수 있다.

 

Jupyter Notebook에서 Gradio 애플리케이션 실행

Jupyter Notebook에서 코드를 실행할 수도 있다.
인터페이스를 생성한 후 app.launch()를 사용하여 애플리케이션을 실행할 수 있다.

app = gr.Interface(fn=user_greeting, inputs="text", outputs="text")
app.launch()
  • 이렇게 하면 새로운 위젯이 생성된다.

[출처] Gradio 설치 및 실행 방법

Loading