22 6월 2025

[사회과학] [박진영의 사회심리학] “나는 우주에서 하찮은 존재”…너그러운 사회 만든다

[사회과학] [박진영의 사회심리학] “나는 우주에서 하찮은 존재”…너그러운 사회 만든다

[박진영의 사회심리학] “나는 우주에서 하찮은 존재”…너그러운 사회 만든다

입력
게티이미지뱅크 제공

게티이미지뱅크 제공

우주에 관한 강의를 듣다가 이렇게나 거대한 우주에서 이렇게나 작은 지구에, 같은 시간 같은 장소에 우리가 모여있다는 것은 기적(매우 작은 확률이라는 의미에서)이라는 이야기를 들은 적이 있다.

이야기를 들으면서 강의실을 한 번 둘러보고 또 옆에 앉아있는 친구를 바라보며 지나가는 그 찰나의 순간이 매우 소중하게 느껴졌던 기억이 난다. 우리가 속해 있는 시공간에 비해 우리가 너무나 작은 존재라는 사실이 우울하기보다 그래서 더 인생이 특별하다는 느낌을 받았다.

한편 너도 나도 다 결국에는 우주먼지에 불과한데 인간이 대단하면 얼마나 대단하고 못났으면 또 얼마나 못났겠냐고 결국 도토리 키재기에 불과한데 서로 비교하지 말고 사이좋게 지내면 좋겠다는 생각이 들었다.

결국 다 늙고 병들어 죽게 될 텐데 마지막에 차가운 사람으로 기억되기보다 따뜻한 사람이었다고 기억되면 좋지 않을까?

이렇게 우리 존재의 하찮음을 떠올리면 우울해지고 불안해지는 사람들도 있겠지만 그렇지 않은 사람들도 많아서 되려 어깨가 가벼워지고 자신과 타인을 향해 더 너그러운 시선을 가지게 된다는 연구들이 있었다.

거대한 자아보다 “작은 자아(small self)”을 갖는 것이 때로는 더 정신건강에 유익하다는 것이다.
예를 들어 사람들에게 웅장한 자연경관을 보여주거나 우주의 시작부터 인류의 출현과 현재까지를 달력으로 만들어서 우주가 1월에 태어났다면 인류는 12월 31일 마지막 몇 초에 불과한 짧은 시간을 살아가고 있다는 점을 강조한다.

그러면 사람들은 자신의 존재를 비교적 작게 느끼게 된다. 다시 말해 나라는 존재와 내가 가지고 있는 문제들이 별로 중요하지 않은 것 같다는 현상을 보인다.

매튜 혼시 퀸즐랜드대 연구팀에 의하면 이렇게 존재의 무게를 조금 덜어내는 과정을 거치면 불안이 줄어들고 특히 자기 자신의 존재를 있는 그대로 받아들일 의향과 타인의 잘못 또한 용서할 의향이 커지는 현상이 나타난다.

예전에 한 다큐에서 사람들은 일반적으로 사형수들에 대해 매우 부정적인 시각과 태도를 보이지만 사형 집행일이 되면 가장 좋아하는 음식을 주거나 마지막은 가급적 편하기를 바란다는 이야기를 들은 적이 있다.

‘죽음’이라는 생명체라면 다 무섭게 느껴지는 절대적인 마지막, 끝, 소멸에 대한 공포와 그 공포 앞에서 초라한 우리들의 모습을 모두가 본능적으로 알기 때문일지도 모르겠다.

내가 너보다 더 크거나 작다고 재기보다 때로는 우리 모두 하찮다는 사실을 지각하는 것이 보다 너그러운 사회를 만드는 데 보탬이 될지도 모르겠다.

Hornsey, M. J., Tyson, C., Ferris, L. J., Crimston, C. R., Faulkner, C. & Barlow, F. K. (2025). The cosmic calendar: Being reminded of the vastness of time can improve well-being. The Journal of Positive Psychology, 1-12. https://doi.org/ 10.1080/17439760.2025.2481039

※필자소개
박진영. 《나, 지금 이대로 괜찮은 사람》, 《나를 사랑하지 않는 나에게》를 썼다. 삶에 도움이 되는 심리학 연구를 알기 쉽고 공감 가도록 풀어낸 책을 통해 독자와 꾸준히 소통하고 있다. 온라인에서 ‘지뇽뇽’이라는 필명으로 활동하고 있다. 현재 미국 듀크대에서 사회심리학 박사 과정을 밟고 있다.

Loading

22 6월 2025

[사회과학] [박진영의 사회심리학] 인간관계를 망치는 ‘정치적 파벌주의’ 

[사회과학] [박진영의 사회심리학] 인간관계를 망치는 ‘정치적 파벌주의’ 

[박진영의 사회심리학] 인간관계를 망치는 ‘정치적 파벌주의’ 

입력
악수하는 미 민주·공화 부통령 후보. 연합뉴스 제공

악수하는 미 민주·공화 부통령 후보. 연합뉴스 제공

한국을 포함한 많은 나라들에서 특히 그 중에서도 미국에서 사람들의 정치적 입장 차이가 점점 더 심화되고 있다.

실제 정치 제도나 이득을 떠나 마치 ‘당파싸움’처럼 정치적 소속이 일종의 ‘정체성’이 되고 있다고 해서 정치적 파벌주의(Political Sectarianism)라고 불리는 현상이다. 학자들에 의하면 지금의 파벌주의는 거의 종교적 맹신의 양상을 보인다.

엘리 핀켈 미국 노스웨스턴대 심리학자 등에 의하면 정치적 파벌주의는 세 가지 요소로 구성된다.

① 타자화(othering): 다른 당을 지지하는 사람들을 자신과는 근본적으로 다른 종류의 사람으로 보는 것
② 거부/기피(aversion): 상대를 감정적으로 싫어하고 불신하는 경향
③ 도덕화(moralization): 상대를 사회적으로 자신과 멀리 존재하고 이념적으로 과격하며 과도하게 정치세력화되어 있고 혐오스러운, 함께 더 나은 세상을 만들기 위해 협의할 수 ‘없는’ 존재로 보는 것이 여기에 해당된다.

실제로 1970년부터 최근까지 미국에서 민주당과 공화당 지지자들이 자신과 같은 당을 지지하는 사람들과 또 다른 당을 지지하는 사람들에 대해 느끼는 온도를 살펴보면 최근에는 같은 당을 지지하는 사람들(공화당-공화당, 민주당-민주당)에 대해 느끼는 온기보다 다른 당을 지지하는 사람들(공화당-민주당, 민주당-공화당)에 대해 느끼는 차가움이 더 큰 것으로 나타났다.

같은 편에 대한 긍정적 인식보다 상대편에 대해 느끼는 거부감이 더 커졌고 이것이 사람들의 투표 같은 정치적 행동에 점점 더 큰 영향을 미치고 있는 경향이 확인되고 있다.

또한 서로를 점점 이해할 수 없는 외계인 또는 괴물 같은 존재로 인식하면서 실제 차이보다 상상한 차이가 훨씬 큰 현상이 나타나고 있다.

예를 들어 한 조사에서 공화당 사람들에게 민주당 사람들 중 몇 %가 성소수자일 것 같은지 물었을 때 약 32%일 것이라고 응답했지만 실제로는 6% 정도라는 결과가 있었다.

반대로 민주당 사람들에게 공화당 사람들 중 몇 %가 연 소득 3억 이상일지 물었을 때 평균적으로 약 38%가 부자일 것 같다는 응답이 나왔지만 실제로는 2%에 불과하다는 조사 결과도 있었다.

핸드폰만 열면 타인과 연결되는 시대에 점점 더 서로를 잘 알지 못하게 되었다는 아이러니한 결과다.

핀켈 등은 여기에 대해 ‘공정성’이나 팩트 체크보다 입맛에 맞는 미디어만 소비하는 현상과 여기에 편승해서 자극적이고 편향된 내용을 만들어내는 미디어, 자극적인 내용들이 더 많이 노출되도록 하는 소셜 미디어, 파벌주의를 적극 이용하는 정치인과 외부세력(예, 러시아의 선거개입), 여느 때보다 사회적 지위와 자산의 양극화가 심한 사회경제적 토양 등이 큰 영향을 미친다고 보았다.

그 결과 지금의 정치인들은 정책을 선전하기보다 상대편이 반칙을 사용하고 있는데 우리가 가만히 있으면 바보 되는 것이라는 식의 혐오와 파벌주의를 적극 활용하는 방식의 메시지를 보내고 있다는 것이 학자들의 분석이다.

일례로 신종 코로나바이러스 감염증(COVID-19·코로나19) 팬데믹이 닥쳤을 때 미국은 다른 어느 나라보다 팬데믹을 잘 헤쳐 나갈 자원들을 풍부하게 가지고 있었지만(예를 들어 빠른 백신 개발) 질병이 ‘정치화’되는 바람에 사회적 거리두기와 마스크 사용, 백신 접종 등의 행동이 파벌에 따라 크게 달라지고 말았다. 그 결과 100만명 사망이라는 믿기 어려운 수치를 경험하고 말았다.

파벌주의가 심화될수록 정치와 크게 상관 없었던 상식적인 행동들마저 파벌에 따라 크게 달라질 수 있다는 것이다. 여기에는 민주 사회를 지키기 위한 상식도 얼마든지 해당될 수 있다.

상대편이 싫어질수록 상대편과는 대화를 시도할 가치조차 없다고 단정지을수록 테러와도 같은 극단적이고 반민주적인 행동으로 얼마든지 국정을 마비시킬 수 있는 것이다. 공교롭게도 미국에서도, 한국에서도 국회의 기능을 마비시키기 위한 시도들이 행해진 걸 보면 아주 낯선 이야기는 아니다.

한창 팬데믹으로 인해서 거리두기 등의 정책들이 시행되고 있을 때 당연하다고만 생각했던 정책들에 반대하는 사람들이 적지 않은 것을 보고 이상하다는 생각을 했었다. 물론 이상한 이유로 반대하는 사람들도 있었지만 이후 가정 폭력이나 아동 학대가 크게 증가하고 워킹맘들의 경우 직장생활을 그만둘 수 밖에 없었던 사례들이 많았다는 이야기를 들었다.

나의 짧은 생각과 달리 집보다 밖으로 나가는 것이, ‘학교’에 가는 것이 안전한 사람들이 많이 존재했고 생계활동에 보다 많은 제약이 있는 사람들이 다수 존재했다. 삶은 복잡하고 모두에게 좋은 정책이란 존재하기 어렵다는 사실을 잊지 않으려 노력하고 있다.

또한 인간의 나약함을 이해하고 나면 인간의 악함 또한 이해하기 어렵지는 않은 것 같다. 물론 이해하는 것과 받아들이고 수용하는 것은 또 다른 문제여서 이해는 되더라도 싸우기로 마음 먹을 수 있다.

그래도 최소한 ‘같은 인간’이라고 보는 자세는 지켜야 할 것 같다는 생각이다. 그래야 상대를 같은 인간으로 보지 않을 때 저지를 수 있는 많은 실수를 피해갈 수 있지 않을까?

Finkel, E. J., Bail, C. A., Cikara, M., Ditto, P. H., Iyengar, S., Klar, S., … & Druckman, J. N. (2020). Political sectarianism in America. Science, 370(6516), 533-536.

※필자소개
박진영. 《나, 지금 이대로 괜찮은 사람》, 《나를 사랑하지 않는 나에게》를 썼다. 삶에 도움이 되는 심리학 연구를 알기 쉽고 공감 가도록 풀어낸 책을 통해 독자와 꾸준히 소통하고 있다. 온라인에서 ‘지뇽뇽’이라는 필명으로 활동하고 있다. 현재 미국 듀크대에서 사회심리학 박사 과정을 밟고 있다.

Loading

9 6월 2025

[자유게시판] ???? ChatGPT로 그림 그리기 & Stable Diffusion 활용법

[자유게시판] ???? ChatGPT로 그림 그리기 & Stable Diffusion 활용법

d7b6ea12-6678-452b-9249-85d7ffb6502f.png

???? ChatGPT로 그림 그리기 & Stable Diffusion 활용법

AI가 텍스트를 이해하고, 심지어 이미지를 직접 그려주는 시대가 되었습니다. 이 글에서는 ChatGPT를 활용해 그림을 그리는 방법과 Stable Diffusion과 함께 사용하는 그림 생성 방법을 소개합니다.


???? 1. ChatGPT만으로 그림을 그리는 방법

ChatGPT는 기본적으로 텍스트 기반이지만, **OpenAI의 이미지 생성 도구(DALL·E API)**를 연동하거나 ChatGPT Pro 사용자라면 이미지 생성 기능을 직접 사용할 수 있습니다.

✅ 사용 예시 (ChatGPT에 프롬프트 입력)

“노을지는 바다를 바라보는 고양이 일러스트를 그려줘”

ChatGPT는 내부적으로 이미지 생성 모델을 호출하여 그림을 만들어 줍니다.
그림의 스타일도 변경할 수 있습니다.

예:

“고흐 풍의 해바라기 그림을 그려줘”
“픽사 스타일의 우주 비행사 캐릭터를 그려줘”

???? 장점

  • 별도의 설치 없이 사용 가능 (Pro 사용자)

  • 직관적인 대화형 인터페이스

  • 반복적으로 스타일 수정 가능


????️ 2. Stable Diffusion으로 그림 그리는 방법

Stable Diffusion은 오픈소스 텍스트-투-이미지 모델로, 보다 세밀한 설정과 고퀄리티 이미지 생성이 가능합니다. ChatGPT를 활용하면 프롬프트 생성 도우미로 사용하면 아주 유용합니다.

???? 사용 도구 예시

???? ChatGPT + Stable Diffusion 활용 순서

  1. ChatGPT에게 프롬프트를 만들어 달라고 요청

    “중세 판타지 스타일의 성과 용을 배경으로 한 전사 일러스트 프롬프트 생성해줘”

  2. Stable Diffusion 웹 UI나 Colab에 프롬프트 입력

  3. 이미지 생성

  4. 필요시 ChatGPT에게 프롬프트 개선 요청

✨ 예시 프롬프트

 
css
A futuristic samurai standing under neon lights, cyberpunk city, detailed, 4K, dramatic lighting, artstation

???? 활용 팁

상황 프롬프트 예시
캐릭터 디자인 “anime girl with fox ears in traditional Japanese kimono, forest background”
배경 일러스트 “medieval castle surrounded by mountains, early morning mist, high detail”
로고 스타일 “minimalist owl logo, geometric, flat design, black and white”

Loading

5 6월 2025

[알아봅시다] [ETC.] “윈도우 배경 속 푸른언덕은 어디로”…네티즌들 탄식한 현재 모습

[알아봅시다] [ETC.] “윈도우 배경 속 푸른언덕은 어디로”…네티즌들 탄식한 현재 모습

“윈도우 배경 속 푸른언덕은 어디로”…네티즌들 탄식한 현재 모습

1-828db683.png
 
윈도우XP 배경화면으로 사용된 사진 ‘블리스’와 실제 촬영지의 현재 모습. /인스타그램

윈도우XP의 대표적인 배경화면으로 유명한 ‘푸른 언덕’의 실제 촬영지의 현재 모습이 소셜미디어상에서 크게 화제가 됐다.

6일 영국 데일리메일은 “윈도우XP 배경화면으로 사용된 사진 ‘블리스’가 촬영된 실제 장소의 변화한 모습이 네티즌들을 실망하게 했다”고 전했다.

흰 구름이 떠있는 파란 하늘 아래 푸르른 언덕이 펼쳐진 장면이 담긴 이 사진은 ‘세계에서 가장 많이 본 사진’이라고 불릴 만큼 유명하다. 이 사진은 사진작가 찰스 오리어가 1998년 미국 나파밸리를 지나다 촬영한 것이다. 매체는 “당시 그는 깨끗한 포도밭을 보고 차를 멈춰 세워 이 사진을 찍었다. 포도밭이 깔끔하게 정리돼 있었던 건, 이전 해 해충 피해로 들판을 벌채한 상태였기 때문”이라고 설명했다. 이후 2001년 마이크로소프트가 이를 윈도우 XP 운영체제의 기본 배경화면으로 채택했다.

최근 한 네티즌이 세월에 따른 실제 촬영지의 변화 과정을 인스타그램에 공개해 크게 화제가 됐는데, 이를 본 네티즌들이 “사진과 너무 달라졌다”며 실망감을 감추지 못했다고 매체는 전했다.

매체는 “소셜미디어 이용자들은 사진이 촬영된 지 27년이 지난 현재 이 전설적인 장소가 ‘파괴’되었다고 주장한다”며 “사진에서 알 수 있듯, 많은 사람의 컴퓨터 배경이 되었던 푸른 구릉은 오래전에 사라지고 포도원으로 대체됐다”고 전했다.

이 게시물을 접한 네티즌들은 “블리스 사진을 몇 분 동안 쳐다보면서 나도 그곳에 가고 싶다고 생각했었는데, 너무 슬프다” “우울하다” “10년 후면 주차장이 되지 않을까” “생생하고 다채로웠던 세상이 칙칙한 회색빛으로 물들었다” 등 아쉬움 가득한 반응을 보였다.

반면 이외에도 “그곳에 갔었는데 오늘도 정말 아름다웠다” “여전히 아름다운 포도원” “모두가 마치 저곳이 회색 벽돌 아파트가 된 것처럼 반응한다” “그냥 계절에 따른 변화일 수도 있다” 등 의견도 나왔다.

김가연 기자

[출처] “윈도우 배경 속 푸른언덕은 어디로”…네티즌들 탄식한 현재 모습

Loading

31 5월 2025

[사회과학] [박진영의 사회심리학] 외롭다고 느낄수록 수명 짧아진다

[사회과학] [박진영의 사회심리학] 외롭다고 느낄수록 수명 짧아진다

[박진영의 사회심리학] 외롭다고 느낄수록 수명 짧아진다

입력
게티이미지뱅크 제공

게티이미지뱅크 제공

마음과 몸이 하나라는 것을 가장 잘 보여주는 예라고 하면 아마 ‘외로움’일 것이다. 기존 건강상태, 교육수준, 소득, 성별, 나이, 우울증 여부 등과 상관 없이 외로운 사람들은 그렇지 않은 사람들에 비해 더 빨리 노화하고 각종 심혈관 질환, 고혈압, 면역 반응 이상, 기억력 및 인지능력 감퇴에도 더 취약하다는 연구 결과들이 있다.

외로운 사람들은 그렇지 않은 사람들에 비해 응급하지 않은 수술을 받았을 때에도 사망 확률이 더 높았다는 연구 결과도 있었다. 이렇게 외로움이 직접적으로 건강과 수명에 영향을 미칠 수 있음을 시사하는 연구 결과들이 다수 보고되고 있다. 따라서 의료 현장에서도 또 공공 보건 차원에서도 외로움의 악영향을 줄일 수 있는 방안들에 대한 논의가 활발하게 이어지고 있다.

최근 설신 유 콜롬비아대 어빙 메디컬 센터 소속 연구자 등의 연구에 의하면 외로움의 악영향은 ‘누적’ 되는 듯 보인다. 1996년부터 2004년까지 약 9000명의 사람들을 대상으로 외로움을 측정하고 이후 2019년도에 외로움과 사망률간의 상관관계가 있었는지 살펴본 결과 우선 십여 년 전에 단 한 번도 외롭다고 응답하지 않은 사람들에 비해 한 번 외로웠다고 응답한 사람들이 더 중, 장년, 노년층에 이르렀을 때 사망률이 높았던 것으로 나타났다.

또한 한 번 외로웠다고 응답한 사람보다 두 번 외로움을 보고했던 사람들이 더, 두 번 외로웠던 사람들보다 세 번, 그러니까 더 긴 시간에 걸쳐 외로웠던 사람들이 더 사망률이 높은 편이었다.

한가지 중요한 사실은 외로움은 ‘주관적’ 지표라는 점이다. 그러니까 겉으로 보이기에 친구가 별로 없고 사회적 활동을 잘 하지 않는다고 해서 외로운 것도 아니고 항상 수 많은 사람들에 둘러 쌓여 있는 소위 ‘인싸’라고 해서 외롭지 않은 것도 아니다.

달리 말하면 사람들마다 인간관계에서 원하는 것이 다르고 어떤 이유로 이게 충족되지 않으면 언제 어디서든 우리는 외로움을 느낄 수 있다.

예를 들어 나의 경우 친구들과 자주 보지 않아도 이따금씩 연락하고 또 마음이 잘 통한다고 여겨지는 친구 몇 명만 있으면 외로움을 느끼지 않지만 기본적으로 원하는 인간관계량이 많고 원하는 친밀도 또한 매우 높은 사람의 경우 사람을 아무리 많이 만나도 사회적 허기인 외로움이 충족되지 않을 수 있다.

이 외에도 인간은 어차피 타인과 100% 마음을 통할 수 없다거나 노화와 죽음에 이르는 과정에서 많은 사람들이 혼자가 된다는 존재론적인 이유로 고질적인 외로움을 느끼는 사람도 있을 수 있겠다.

이 경우 그냥 그게 사는 것이라고 받아들이기 때문에 삶의 다양한 시점에서 이따금씩 존재하는 좋은 인연들이 실은 전혀 당연하지 않고 고마운 기적이었음을 깨달으면 어느 정도 편해질 수 있겠다. 하지만 안타깝게도 모두가 그렇게 할 수 있는 것은 아니다.

이렇게 외로움은 마음이 결정하는 주관적인 것이어서 이 연구에서도 객관적 사회적 고립 지수(objective social isolation index), 예를 들어 같은 가구 내 구성원 수, 거주지 인근의 친한 친구 수, 거주지 인근의 친척 수, 종교적 또는 기타 자선 단체 자원봉사 빈도, 그리고 이웃과의 만남 빈도 등을 통제했음에도 불구하고 외로움은 여전히 미래 사망률을 예측했다.

외로움은 결국 마음에 달린 것이지만 그렇다고 여기에 사회적 요인이 전혀 없는 것은 아니다. 예를 들어 극심한 경쟁으로 인해 마음을 터놓고 이야기할 사람을 찾는 것 조차 힘겨운 사회와 비교적 그렇지 않은 사회가 있을 것이다.

여러가지 이유로 사람들의 등급을 나누고 다름을 틀림으로 치부하며 차별해서 인간의 가장 근본적인 욕구인 소속 욕구를 충족하는 데 어려움이 많은 사회와 비교적 그렇지 않은 사회가 있을 것이다. 외로움에 보다 취약한 사회가 있다는 얘기다.

한국 사회의 개개인의 행복 지수가 최하위에 속하는 것 또한 혹시 외로움에 취약한 사회인 게 한 몫 하는 것은 아닌지 생각해본다. 그런 주제에 또 함께 살기를 추구하기 보다 조금이라도 더 남들 위에 올라가서 차별을 ‘하는’ 쪽에 붙는 게 목표이고 속은 곪았어도 겉만 멀쩡히 꾸며서 ‘과시’하는 것이 사회 규범인 것 또한 상당히 큰 문제라는 생각이 든다.

우리 사회에서 외로움을 해소하기 위한 솔루션이 가능할까. 이제부터라도 논의해봐야 하지 않을까.

Yu, X., Cho, T. C., Westrick, A. C., Chen, C., Langa, K. M., & Kobayashi, L. C. (2023). Association of cumulative loneliness with all-cause mortality among middle-aged and older adults in the United States, 1996 to 2019. Proceedings of the National Academy of Sciences, 120(51), e2306819120.

※필자소개
박진영. 《나, 지금 이대로 괜찮은 사람》, 《나를 사랑하지 않는 나에게》를 썼다. 삶에 도움이 되는 심리학 연구를 알기 쉽고 공감 가도록 풀어낸 책을 통해 독자와 꾸준히 소통하고 있다. 온라인에서 ‘지뇽뇽’이라는 필명으로 활동하고 있다. 현재 미국 듀크대에서 사회심리학 박사 과정을 밟고 있다.

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

25 5월 2025

[chatgpt] [ChatGPT] Function calling

 

 

Function Calling이란?

Chatgpt Chat Completions API를 사용하면, 질문을 하고 답변을 얻을 수 있다.
Function Calling을 사용하면, 질문에 적합한 애플리케이션 함수와 매개변수를 추천받을 수 있다. 

즉, 애플리케이션에서 어떤 함수를 호출하는게 좋을지 gpt에게 물어볼 수 있는 기능이라고 볼 수 있다.

예제코드

open ai에서 가져온 파이썬 예제 코드이다. 한줄한줄 읽어보면, 어떤 방식으로 사용하는 건지 쉽게 감이 온다. 

import openai
import json


# 항상 같은 날씨를 리턴하는 예시용 더미 함수이다. 
# 실제 개발환경에서는 상황에 맞는 코드를 구현해야한다.
def get_current_weather(location, unit="fahrenheit"):
    """Get the current weather in a given location"""
    weather_info = {
        "location": location,
        "temperature": "72",
        "unit": unit,
        "forecast": ["sunny", "windy"],
    }
    return json.dumps(weather_info)


def run_conversation():
    # Step 1: chatgpt에게 질문과 이용할 수 있는 함수 목록을 전달한다. 
    messages = [{"role": "사용자", "content": "서울 날씨는 어때? "}]
    functions = [
        {
            "name": "get_current_weather",
            "description": "위치를 전달하면, 현재 날씨를 알려준다",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "구군시  전달한다. ex. 서울특별시",
                    },
                    "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]},
                },
                "required": ["location"],
            },
        }
    ]
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo-0613",
        messages=messages,
        functions=functions, # 이 곳에서 함수 정보를 전달한다.
        function_call="auto",  
    )
    response_message = response["choices"][0]["message"]

    # Step 2: GPT에서 함수 호출을 하라고 했는지 확인하기 
    if response_message.get("function_call"):
        # Step 3: GPT에서 호출하라고 한 함수를 실제로 호출하기 
        available_functions = {
            "get_current_weather": get_current_weather,
        }  # 이 예제에서는 호출할 수 있는 함수를 1개만 두었지만, 실제로는 여러개를 추가할 수 있다. 
        function_name = response_message["function_call"]["name"] // GPT가 제안한 함수 이름 확인하기 
        fuction_to_call = available_functions[function_name] // GPT가 제안한 함수 할당하기  
        function_args = json.loads(response_message["function_call"]["arguments"])
        function_response = fuction_to_call(
            location=function_args.get("location"),
            unit=function_args.get("unit"),
        ) # GPT가 제안한 함수를 GPT에서 찾은 매개변수로 전달하기 

        # Step 4: 함수 호출로 얻은 결과를 gpt에게 다시 보내주기 send the info on the function call and function response to GPT
        messages.append(response_message)  # API으로 호출받은 값을 확장하기 
        messages.append(
            {
                "role": "function",
                "name": function_name,
                "content": function_response,
            }
        ) 
        second_response = openai.ChatCompletion.create(
            model="gpt-3.5-turbo-0613",
            messages=messages,
        )  # gpt에게 응답 결과 다시 전달하기 
        return second_response


print(run_conversation())

참고

https://platform.openai.com/docs/guides/gpt/function-calling
https://github.com/joshlong/chatgpt-spring-boot-starter
https://github.com/openai/openai-cookbook/blob/main/examples/How_to_call_functions_with_chat_models.ipynb

출처: https://americanopeople.tistory.com/427 [복세편살:티스토리]

Loading

24 5월 2025

[사회과학] [박진영의 사회심리학] ‘내가 싫은 것’ 아는 것도 중요하다

[사회과학] [박진영의 사회심리학] ‘내가 싫은 것’ 아는 것도 중요하다

[박진영의 사회심리학] ‘내가 싫은 것’ 아는 것도 중요하다

입력
게티이미지뱅크 제공

게티이미지뱅크 제공

내가 어떤 사람인지 자신의 다양한 특성을 분명하고 일관적이게 정의할 수 있고 시간과 장소가 바뀌어도 자신이 어떤 사람이라는 느낌을 확실히 가지고 있는 상태를 심리학적 용어로 자기 개념 명확성(self-concept clarity)이 높다고 표현한다.

반대로 자기 개념 명확도가 낮은 사람들은 흔히 자신이 어떤 사람인지 잘 정의하지 못하고 자신의 다양한 모습에 대해 잘 이해하고 받아들이기보다 혼란스러워하는 모습을 보인다. 긍정적인 자기지각인 자존감이 때로는 좋고 때로는 나쁜 결과물들과 관련을 보이는데 어쩌면 자기 개념 명확성이 이를 설명할 수 있다고 보는 학자들이 있다.

예를 들어 자기 자신에 대해 대체로 긍정적으로 생각하고 있지만 자기 개념 명확성이 낮은 사람들의 경우 자존감이 외부의 영향에 의해 크게 좌우되는 반면 자신에 대해 긍정적으로 인식하는 정도는 그다지 높지 않지만 스스로를 잘 알고 있는 사람들의 경우 외부의 영향에 의해 자존감이 흔들리는 정도가 비교적 덜 했다는 연구들이 있다.

필자의 경우 역시 어렸을 때 자연스러운 실제 나의 모습을 잘 파악하고 받아들이기보다 외부에서 좋다고 하는 모습들을 최대한 따라하고 거기에서 오는 보상이나 긍정적인 반응들을 기반으로 자존감을 높이 쌓았던 적이 있다.

예를 들어 매우 내향적인 편이지만 사람들로부터 좋은 반응을 얻기 위해 열심히 외향적인 척을 하고 주변 사람들의 반응이 좋은 편이라면 거기에 기대어 기뻐하고, 반응이 좋지 않다면 위기감을 느끼는 위태로운 시간을 상당히 오래 보낸 것 같다.

이렇게 자기 개념 명확성이 낮으면 외부 자극에 쉽게 흔들리고 영향을 받는 모습을 보인다. 자기 개념 명확성이 낮은 사람들이 자극적인 광고에 더 쉽게 영향을 받고 자신을 과시하기 위한 소비를 한다는 연구 결과도 있었다. 어쩌면 자기 자신을 잘 모르는 사람들이 많은 사회일수록 명품 소비나 유행이 쉽게 번져나가는 것일지도 모르겠다.

최근 연구들에 의하면 자기 개념 명확성이 낮은 것이 ‘자기 통제’에도 부적 영향을 준다고 한다. 통린 장 북경대 심리학자 연구팀에 의하면 자기 개념 명확성이 낮은 사람들의 경우 ‘미래의 자신’을 현재 자신의 연장선으로 보기보다 자신과는 다른 새로운 사람, 마치 타인처럼 바라보는 경향이 높았다.

이런 특성이 자기 개념 명확성이 낮은 사람들이 원하는 목표를 이루기 위해 끈기있게 노력하지 못하는 현상을 일부 설명했다.

내가 어떤 사람인지 아는 것은 장기적으로 내가 원하는 것이나 나에게 바람직한 것이 무엇인지 파악하는 능력, ‘장기적인 비전’을 갖는 것과 관련이 있고 장기적인 비전을 갖지 못하면 끈기있게 노력하는 행동이 저하된다는 것이다.

뭐 하나에 정착하지 못하고 서로 다른 것들을 이것저것 손대기만 하며 오랜 시간 갈아타기만 하는 경우 어쩌면 자기통제력 자체가 낮기보다 자신이 어떤 사람인지 잘 모르는 것이 더 중요한 원인일지도 모르겠다.

물론 다양한 일을 하다 보면 자신이 좋아하는 것과 싫어하는 것을 알게 되고 그 과정에서 자기 개념을 좀 더 명확하게 알게 되기도 한다. 사실 대부분의 사람들이 삶에 걸쳐 다양한 도전과 실패를 통해 자신에 대해 알아간다. 이런 점에서 아무 것도 하지 않기보다는 뭐라도 하는 것이 훨씬 나을 수 있다.

자신이 좋아하는 것을 아는 것 못지 않게 ‘싫어하는 것’을 아는 것 또한 올바른 길을 찾아가는 데 있어 매우 중요하므로 기분 나쁜 경험이나 실패 역시 아무 것도 하지 않는 것 보다는 훨씬 낫다.

살아간다는 것에 대해 내가 좋아하는 것들과 싫어하는 것들에 대한 리스트를 만들어 나가는 과정이라고 한다면 그 어떤 경험도 무의미하지 않을 것이다.

Jiang, T., Wang, T., Poon, K. T., Gaer, W., & Wang, X. (2023). Low self-concept clarity inhibits self-control: The mediating effect of global self-continuity. Personality and Social Psychology Bulletin, 49(11), 1587-1600.

※필자소개
박진영. 《나, 지금 이대로 괜찮은 사람》, 《나를 사랑하지 않는 나에게》를 썼다. 삶에 도움이 되는 심리학 연구를 알기 쉽고 공감 가도록 풀어낸 책을 통해 독자와 꾸준히 소통하고 있다. 온라인에서 ‘지뇽뇽’이라는 필명으로 활동하고 있다. 현재 미국 듀크대에서 사회심리학 박사 과정을 밟고 있다.

Loading

18 5월 2025

[사회과학] [박진영의 사회심리학] 때론 ‘불확실성이’ 삶에 도움이 된다

[사회과학] [박진영의 사회심리학] 때론 ‘불확실성이’ 삶에 도움이 된다

[박진영의 사회심리학] 때론 ‘불확실성이’ 삶에 도움이 된다

입력
게티이미지뱅크 제공

게티이미지뱅크 제공

요즘은 간단한 것도 점점 더 잘 모르겠다는 생각이 든다. 예를 들어 ‘스트레스’라고 하면 무조건 나쁜 것 같지만 스트레스가 하나도 없는 환경인 경우 그만한 자극과 보상 또한 없는 환경이어서 금방 ‘지루함’을 느낄 가능성이 높다. 배움의 과정 또한 항상 익숙한 것에서 벗어나 새로움을 찾는 틀을 깨는 불편한 과정을 통해 일어난다.

물론 그렇다고 스트레스가 항상 좋아서 매일매일 24시간 스트레스를 받고 살아야 한다는 것은 아니다. 다만 우리가 쉽게 긍정적 또는 부정적 경험이라고 이름 붙이고 단정짓는 삶의 많은 경험들이 실제로도 그렇게 간단하게 완전히 좋거나 나쁜 경험인 경우는 많지 않다는 것이다. 그 사이의 어딘가 또는 전혀 다른 무엇인 경우가 의외로 많다.

일례로 ‘사랑’은 좋기만 한 경험인가. 사랑을 몰랐더라면 겪지 않았을지도 모르는 복잡한 감정과 외로움에 대한 노래들만 수천 곡은 되는 것 같다. 결혼도 아이를 갖는 것도 ‘좋은’ 일인가. 사람마다 삶의 시기마다 다른 답이 나오겠지만 삶의 경험이 아주 많은 사람들이라면 그 때 그 때 다르다거나 복잡하다는 답을 내놓을 것 같다.

제시카 알퀴스트 텍사스공대 심리학자에 의하면 ‘불확실성’ 또한 그렇다. 많은 이들이 불확실성을 줄이고 싶어하고 불확실성이 높은 상황을 곧 나쁜 상황이라고 생각하지만 꼭 그렇지만은 않다는 것이다.

예를 들어 불확실성은 주의를 집중시킨다. 사람들의 시선을 기록하는 아이트래킹(eye tracking) 실험들에 의하면 사람들은 같은 자극이라고 하더라도 확실하게 불쾌하거나 확실하게 아무렇지 않은 자극보다 불확실하게 불쾌한(예를 들어 언제 튀어나올지 모르는 무엇) 자극에 가장 많이 시선을 쏟는 경향을 보인다.

공포 영화를 예로 들어보면 무서운 자극이 항상 정해진 법칙에 의해 나타나는 경우 무서운 것을 떠나 일단 ‘재미가 없다’고 느낄 것 같다. 연구들에 의하면 기분이 좋은 것 또한 마찬가지다. 갑자기 확실하게 나타나는 것보다 불확실하게 나타나는 것(예를 들어 한번에 짠 나타나기보다 서서히 모습을 드러내는 기프트 카드)이 더 주의를 집중시키고 기분을 좋게 만들어 주는 것으로 나타났다.

아무래도 앞으로 하게 될 경험이 무엇인지 그 정체를 알 수 없을 때에는 긴장이 서서히 고조되다가 정체가 드러날 때 긴장감이 해소되는 클라이막스를 경험하게 되지만 처음부터 결말을 전부 알고 있다면 긴장감이나 기대감이 전혀 생기지 않고 궁금하지도 않을 것 같다.

그러고 보면 두근거리는 긴장감이나 과연 무엇일까 기대하고 설레어하는 것 정체를 알게 되었을 때의 기쁨 및 실망 모두 아직 알 수 없다고 하는 ‘불확실성’의 산물인 셈이다.

불확실성이 없다면 그로 인한 고통 또한 없겠지만 두근거림 설레임, 그만큼 조고된 기쁨과 실망 모두 없을지도 모르겠다. 불확실성이 없다면 인간으로서 겪는 감정의 풍부함과 깊이가 지금과는 많이 다를 것 같다.

물론 존재하는 불확실성을 앞에 두고도 불확실성을 느끼지 못하면 생존에도 큰 문제가 생긴다. 내 미래가 위태위태한데 나만 그걸 전혀 모르고 있다거나 일의 진행 방향에 다양한 가능성이 존재하는데 그것도 하나도 모르고 있다면 미리 준비하는 행동이나 다양한 선택지를 따져보는 행동이 불가능해질 것이다. 물론 불편하지만 불확실성은 꼭 느껴야 하는 불편함 중 하나다.

물론 불확실성이 불편한 정도에도 개인차가 있어서 불확실성을 무조건 안 좋게만 바라보는 사람들에 비해 불확실성에도 좋은 면이 있음을 아는 사람들이 더 적응적인 행동을 보인다는 연구들이 있었다.

예를 들어 불확실성을 보다 긍정적으로 바라보는 사람들은 확실하지만 가치가 낮은 보상을 선택하기보다 좀 더 불확실해도 가치가 높은 보상을 선택하는 경향을 보였다. 불확실성을 삶의 일부분으로 끌어안을 줄 아는 사람들은 가짜 뉴스나 만병통치약 같은 허황된 무엇에 빠지는 일 또한 적은 편이었다.

불론 그렇다고 불확실성이 항상 좋으며 불확실성이 높은 삶을 살아야 한다는 이야기는 아니다. 삶에서 늘 좋거나 나쁜 건 생각보다 별로 없고 불확실성 또한 그렇다는 이야기다. 어쩌면 이 또한 한쪽으로 치우치지 않고 기울어지지 않으며 지나침도 미치지 못함도 없는 ‘중용’의 아름다움에 대한 이야기일지도 모르겠다.

Alquist, J.L., & Baumeister, R.F. (2024). Learning to love uncertainty. Current Directions in Psychological Science, 33(6), 355-360. http://doi.org/10.1177/09637214241279539

※필자소개
박진영. 《나, 지금 이대로 괜찮은 사람》, 《나를 사랑하지 않는 나에게》를 썼다. 삶에 도움이 되는 심리학 연구를 알기 쉽고 공감 가도록 풀어낸 책을 통해 독자와 꾸준히 소통하고 있다. 온라인에서 ‘지뇽뇽’이라는 필명으로 활동하고 있다. 현재 미국 듀크대에서 사회심리학 박사 과정을 밟고 있다.

[출처] https://n.news.naver.com/article/584/0000032395?sid=110

Loading