반응형
반응형

정체된 삶에 대한 걱정과
불안으로 잠을 이루지 못한다면
변화를 시도할 때다. 하지만 잠자리에
누웠을 때 하루를 최대한으로 살아내느라
피곤하다면, 더 나은 미래를 만들어가고
있다는 뜻이다. 하루하루 똑똑해지고,
나아지고, 강해지고 있다는
증거다.


- 다리우스 포루의《세네카의 오늘 수업》중에서 -


* 잠을 쉽게 이루지 못한다면
반드시 그럴 만한 이유가 있습니다.  
육체와 정신의 운동량이 적어서 아직도 남아있는
에너지가 많아서 일 수 있고, 반대로 너무 지나치게
에너지를 쓰거나 긴장하여 교감신경이 항진되어
있는 경우입니다. 답은 분명합니다. 운동량을
더 늘리거나 이완할 수 있는 조치를 취하는
것입니다. 잠자리에 누웠을 때 편안하면
그날 하루 잘 살았다는 뜻입니다.

반응형

'아침편지' 카테고리의 다른 글

물은 바다로 흐른다  (0) 2025.05.12
퇴수(退修)라는 단어  (1) 2025.05.09
영혼을 울리는 노래  (0) 2025.05.07
급발진을 경계하라  (0) 2025.05.07
'사슴 같은 눈'으로 바뀌었다  (0) 2025.05.07
반응형

https://www.museum.go.kr/MUSEUM/contents/M0701010000.do?schM=view&catCustomType=united&catId=128&arcId=22711

 

Home

국립중앙박물관에 오신 것을 환영합니다

www.museum.go.kr

정의 달 5어린이에 관한 정다운 이야기정담情談에 귀기울여보세요!

어린이의 교육·심리·건강·미래 전문가들의 박물관 인터뷰 -

 

우리는 모두 과거에 어린이였거나 현재 어린이입니다어린이에 관한 이야기는 우리 모두의 이야기입니다.

국립중앙박물관에서는 가정의 달을 맞아 아주 특별한 어린이에 관한 정다운 이야기를 준비했습니다.

어린이의 교육심리건강미래 총 네 분야 전문가가 들려주는

어린이에 관한 전문분야개인적 가족 이야기 그리고 그들이 바라보는 박물관의 역할과 가능성에 대한 의견까지 알차게 모았습니다.

 

2005년 용산에서 문을 열고 20주년을 맞이하는 어린이박물관이,

가정의 달 5매주 수요일 저녁 8국립중앙박물관 유투브네이버TV 채널에서 여러분을 기다립니다.

 

① 5월 07신종호(서울대 교육학과잘 놀면서도 똑똑한 어린이로 키울 수 있나요? (바로가기)


② 5월 14김경일(아주대 심리학과) - 어떻게 하면 어린이와 잘 소통할 수 있나요?

③ 5월 21천근아(세브란스병원 소아정신과다양한 어린이를 어떻게 공감하며 키울 수 있나요?

④ 5월 28조영태(서울대 인구정책연구센터저출산 시대에 어린이의 미래는 어떻게 변화하나요?


* 시청방법: 국립중앙박물관 유투브(https://youtu.be/o-KjIc9MqfY), 네이버TV(https://tv.naver.com/museumofkorea) 접속

 

 

 

 
최초 공개일: 2025. 5. 7.
 

명사들이 전하는 어린이에 관한 정다운 이야기!

 

일정 : 2025년 5월 매주 수요일 20시(총 4회) 채널 : 국립중앙박물관 유튜브, 네이버TV 공개 가정의 달을 맞아 국립중앙박물관 어린이박물관이 특별한 이야기를 준비했습니다. 총 4명의 명사들이 어린이의 교육, 심리, 건강, 미래에 대한 전문적인 이야기, 개인과 가족에 대한 이야기 그리고 그들이 바라보는 어린이박물관의 역할과 가능성에 대한 이야기까지 꾹꾹 눌러 담았습니다. 5월 매주 수요일 저녁 8시, 국립중앙박물관 유튜브와 네이버TV에서 최초 공개될 예정이니 많은 기대 부탁드립니다.

 

📍어린이에 관한 교육 '25.5.7.(수) 20시 신종호 교수(서울대학교 교육학과) 잘 놀면서도 똑똑한 어린이로 키울 수 있나요?

📍어린이에 관한 심리 '25.5.14.(수) 20시 김경일 교수(아주대학교 심리학과) 어떻게 하면 어린이와 잘 소통할 수 있나요?

📍어린이에 관한 건강 '25.5.21.(수) 20시 천근아 교수(세브란스병원 소아정신과) 다양한 어린이를 어떻게 공감하며 키울 수 있나요?

📍어린이에 관한 미래 '25.5.28.(수) 20시 조영태(서울대학교 인구정책연구센터) 저출산 시대에 어린이의 미래는 어떻게 변화하나요?

반응형
반응형


AI 코딩의 숨겨진 비용

 

 

The Hidden Cost of AI Coding

AI coding tools boost productivity but may sacrifice the flow state and deep satisfaction developers experience when writing code by hand. What are we losing?

terriblesoftware.org

 

 

 

  • AI 코딩 도구 사용이 생산성은 높이지만, 개발자들이 느끼던 몰입과 창조의 기쁨은 줄어드는 현상에 대한 우려를 제기함
  • 과거 ‘몰입(flow)’ 상태에서의 코딩 경험이 개발자들에게 큰 만족감을 주었음
  • 현재는 AI가 코드 생성을 대신하며, 개발자는 설명하고 평가하는 ‘큐레이터’ 역할에 머무는 경우가 많음
  • 이러한 변화로 인해 장기적인 행복감과 직업 만족도 하락 가능성이 제기됨
  • 해결책으로는 의도적으로 ‘직접 코딩’의 공간을 남겨두는 노력 새로운 형태의 만족감 찾기가 필요함

코딩의 즐거움은 어디로 갔을까

  • 작성자는 AI 기술의 발전과 긍정적인 측면을 인정하면서도, 개발자로서의 즐거움이 사라지고 있음을 고백함
  • 과거에는 헤드폰을 끼고 네오빔을 켜고, 시간 가는 줄 모르고 몰입하던 코딩의 순간들이 있었음
  • 단순한 효율이나 보상이 아니라, 문제를 해결하며 무언가를 만들어내는 경험 자체가 본질적인 동기였음

심리학에서 말하는 ‘몰입(flow)’의 가치

  • 심리학자 Mihaly Csikszentmihalyi의 이론에 따르면, 몰입 상태는 도전과 기술이 적절히 균형 잡힌 순간에 발생
  • 개발자에게 이 몰입은 코드와 하나 되는 순간, 문제가 퍼즐처럼 느껴지고, 시간 감각이 사라지는 경험으로 나타남
  • 이런 순간들은 단순한 작업이 아니라, 창조성과 직업적 행복감의 핵심

AI 도구가 바꾼 개발자의 역할

  • 현재는 AI 기반 코딩 도구(Copilot, Cursor 등) 덕분에 직접 작성하지 않아도 많은 코드가 생성 가능
  • 개발자는 이제 프롬프트 작성, AI 결과 검토, 약간의 수정에 집중하게 됨
  • 이로 인해, 과거의 몰입 경험과 창작의 기쁨이 줄어들고 있음
  • AI 사용은 생산성은 향상되지만, 그 과정은 더 수동적이고 감정적으로 거리감 있는 경험이 될 수 있음

진짜 걱정: 몰입이 사라진다면?

  • 생산성은 향상되지만, 기쁨은 감소하는 이중적 현상은 장기적으로 개발자 만족도에 영향을 줄 수 있음
  • 코딩 과정에서의 도전, 창의적 해결, 직접 작성의 성취감이 사라지면, 일 자체의 의미도 흐려질 수 있음
  • "프롬프트 엔지니어링"이 새로운 몰입의 대상이 될 수 있을까? 에 대한 의문도 제기됨

새로운 몰입의 방식 찾기

  • 미래에는 직접 코딩보다 시스템 설계, 제품 아이디어 구상 등에서 만족감을 찾게 될 수도 있음
  • 또는, 의도적으로 비효율적인 ‘손코딩’의 시간을 확보함으로써 몰입 공간을 유지할 수도 있음
  • 중요한 것은, AI 시대에도 개발자로서의 행복과 몰입을 지키기 위한 의식적인 선택이 필요하다는 것

 

https://terriblesoftware.org/2025/04/23/the-hidden-cost-of-ai-coding/


The Hidden Cost of AI Coding

“The best moments in our lives are not the passive, receptive, relaxing times… The best moments usually occur if a person’s body or mind is stretched to its limits in a voluntary effort to accomplish something difficult and worthwhile.” — Mihaly Csikszentmihalyi

I know I’ve posted some upbeat content about AI before, celebrating its potential and encouraging teams to embrace these tools. And honestly, I still believe in that future. But today I want to share something more personal, more nuanced — the one thing that currently worries me most about using AI for software development: lack of joy.

It’s easy to talk about productivity gains, competitive advantages, and how AI will reshape our industry. We’ve had those conversations. What’s harder to discuss is what might be lost along the way – something intangible but vital to many of us who chose this profession not just for the paycheck, but because we genuinely love the craft of programming.


It’s 8:47 AM, fresh coffee steams on the table, and my headphones cocoon me in the perfect playlist. I go to Asana, where I know exactly what I need to do that day. I open Neovim and code starts flowing through me. I’ve lost the sense of time; I’m completely present in the moment.

That, my friends, is what I used to describe as a happy work day. I’m sure that some of you will resonate.

Those days I’d emerge tired but fulfilled. Something about the direct connection between thought and creation — where my fingers were simply the conduit for translating ideas into working software — felt almost transcendent. The struggle to solve problems, the small victories along the way, and the satisfaction of building something from nothing… these weren’t just aspects of the job; they were the reason I fell in love with programming in the first place.

This experience I’m describing is what psychologists call “flow” — a mental state where you’re fully immersed in an activity, energized by deep focus and complete involvement. First described by Mihaly Csikszentmihalyi (the psychologist I quoted at the beginning), flow is that sweet spot where challenge meets skill, where the task at hand is neither too easy (causing boredom) nor too difficult (causing anxiety). It’s a state strongly associated with creativity, productivity, and most importantly — happiness. For software developers, it’s that magical zone where problems become puzzles rather than obstacles, where hours pass like minutes, and where the boundary between you and your code seems to dissolve.

Fast forward to today, and that joy of coding is decreasing rapidly. Well, I’m a manager these days, so there’s that… But even when I do get technical, I usually just open Cursor and prompt my way out of 90% of it. It’s way more productive, but more passive as well.

Instead of that deep immersion where I’d craft each function, I’m now more like a curator? I describe what I want, evaluate what the AI gives me, tweak the prompts, and iterate. It’s efficient, yes. Revolutionary, even. But something essential feels missing — that state of flow where time vanishes and you’re completely absorbed in creation. If this becomes the dominant workflow across teams, do we risk an industry full of highly productive yet strangely detached developers?


So that’s what I’m worried about, and honestly, I have no idea what to think of it. On one hand, it’s clear to me that people using AI tools are more productive. On the other hand, I worry about long-term happiness and joy in their craft when they’re simply hitting tab to generate code rather than writing it themselves.

When we outsource the parts of programming that used to demand our complete focus and creativity, do we also outsource the opportunity for satisfaction? Can we find the same fulfillment in prompt engineering that we once found in problem-solving through code?

Perhaps what we need is a new understanding of where happiness can exist in this AI-augmented world. Maybe the joy doesn’t have to disappear completely — it just shifts. Instead of finding delight in writing the perfect algorithm, perhaps we’ll discover satisfaction in the higher-level thinking about system design, in the creative process of describing exactly what we want to build, or in the human aspects of software development that AI can’t touch.

I don’t have all the answers. But maybe, just maybe, we need to be intentional about preserving (some) spaces in our work where flow can still happen — where we still code by hand sometimes, not because it’s efficient, but because it make us happy.

After all, if we lose the joy in our craft, what exactly are we optimizing for?

반응형
반응형

소프트웨어를 무료로 배포하는 방법

https://simonwillison.net/2025/Apr/28/give-it-away-for-free/

 

Giving software away for free

If you want to create completely <strong>free software</strong> for other people to use, the absolute best delivery mechanism right now is static HTML and JavaScript served from a free web …

simonwillison.net

 

 

https://pyodide.org/en/stable/

 

 

 

  • 다른 사람을 위한 무료 소프트웨어를 만들고 싶다면:
    • 정적 HTML + JavaScript로 제공
    • 무료이면서 신뢰할 수 있는 웹호스팅 이용
  • WebAssembly Pyodide 덕분에:
    • 클라이언트 측 Python 애플리케이션 제공 가능
  • 서버 기반 서비스는 추천하지 않음:
    • 서버는 업그레이드와 비용 관리가 필요해 시간이 지나면 부담이 됨
  • 2025년 추천 플랫폼:
    • GitHub Pages (공개 저장소용, 17년 넘게 안정적)
  • 과거 추천했지만 이제는 비추천:
    • Heroku (2022년 Salesforce 인수 후 신뢰도 하락)
  • 추가 권장 사항:
    • 오픈 소스 라이선스로 배포
    • 바로 실행 가능한 링크 제공

 

 

Getting started

Try it online

Try Pyodide in a REPL directly in your browser (no installation needed).

Setup

There is a complete example that you can copy & paste into an html file below. To include Pyodide in your project you can use the following CDN URL:

https://cdn.jsdelivr.net/pyodide/v0.27.5/full/pyodide.js

You can also download a release from GitHub releases or build Pyodide yourself. See Downloading and deploying Pyodide for more details.

The pyodide.js file defines a single async function called loadPyodide() which sets up the Python environment and returns the Pyodide top level namespace.

async function main() {
  let pyodide = await loadPyodide();
  // Pyodide is now ready to use...
  console.log(pyodide.runPython(`
    import sys
    sys.version
  `));
};
main();

Running Python code

Python code is run using the pyodide.runPython() function. It takes as input a string of Python code. If the code ends in an expression, it returns the result of the expression, translated to JavaScript objects (see Type translations). For example the following code will return the version string as a JavaScript string:

pyodide.runPython(`
  import sys
  sys.version
`);

After importing Pyodide, only packages from the standard library are available. See Loading packages for information about loading additional packages.

Complete example

Create and save a test index.html page with the following contents:

<!doctype html>
<html>
  <head>
      <script src="https://cdn.jsdelivr.net/pyodide/v0.27.5/full/pyodide.js"></script>
  </head>
  <body>
    Pyodide test page <br>
    Open your browser console to see Pyodide output
    <script type="text/javascript">
      async function main(){
        let pyodide = await loadPyodide();
        console.log(pyodide.runPython(`
            import sys
            sys.version
        `));
        pyodide.runPython("print(1 + 2)");
      }
      main();
    </script>
  </body>
</html>

Alternative Example

<!doctype html>
<html>
  <head>
    <script src="https://cdn.jsdelivr.net/pyodide/v0.27.5/full/pyodide.js"></script>
  </head>

  <body>
    <p>
      You can execute any Python code. Just enter something in the box below and
      click the button.
    </p>
    <input id="code" value="sum([1, 2, 3, 4, 5])" />
    <button onclick="evaluatePython()">Run</button>
    <br />
    <br />
    <div>Output:</div>
    <textarea id="output" style="width: 100%;" rows="6" disabled></textarea>

    <script>
      const output = document.getElementById("output");
      const code = document.getElementById("code");

      function addToOutput(s) {
        output.value += ">>>" + code.value + "\n" + s + "\n";
      }

      output.value = "Initializing...\n";
      // init Pyodide
      async function main() {
        let pyodide = await loadPyodide();
        output.value += "Ready!\n";
        return pyodide;
      }
      let pyodideReadyPromise = main();

      async function evaluatePython() {
        let pyodide = await pyodideReadyPromise;
        try {
          let output = pyodide.runPython(code.value);
          addToOutput(output);
        } catch (err) {
          addToOutput(err);
        }
      }
    </script>
  </body>
</html>

Accessing Python scope from JavaScript

All functions and variables defined in the Python global scope are accessible via the pyodide.globals object.

For example, if you run the code x = [3, 4] in Python global scope, you can access the global variable x from JavaScript in your browser’s developer console with pyodide.globals.get("x"). The same goes for functions and imports. See Type translations for more details.

You can try it yourself in the browser console. Go to the Pyodide REPL URL and type the following into the browser console:

pyodide.runPython(`
  x = [3, 4]
`);
pyodide.globals.get('x').toJs();
// >>> [ 3, 4 ]

You can assign new values to Python global variables or create new ones from Javascript.

// re-assign a new value to an existing variable
pyodide.globals.set("x", 'x will be now string');

// add the js "alert" function to the Python global scope
// this will show a browser alert if called from Python
pyodide.globals.set("alert", alert);

// add a "square" function to Python global scope
pyodide.globals.set("square", x => x*x);

// Test the new "square" Python function
pyodide.runPython("square(3)");

Accessing JavaScript scope from Python

The JavaScript scope can be accessed from Python using the js module (see Importing JavaScript objects into Python). We can use it to access global variables and functions from Python. For instance, we can directly manipulate the DOM:

import js

div = js.document.createElement("div")
div.innerHTML = "<h1>This element was created from Python</h1>"
js.document.body.prepend(div)

 

반응형
반응형

'음악교육을
받아 본 적이 없는 친구들이 어떻게
저런 영혼을 울리는 노래를 할 수 있을까?'
게다가 몹시 가난한 마을이어서 아이들이 학교엔
다니지 못하지만, 음악으로 자연스럽게 공동체가
하나를 이루면서 교육이 이루어지고 있었다.
그 미션트립은 내 인생에 큰 영향을 주었다.
그러면서 가슴 뛰는 꿈을 품게 했다.
'어려운 환경의 어린이들을 위한
음악학교를 세우고 싶다.'


- 임다미의 《더 히어로》 중에서 -


* 음악은 태초의 언어입니다.
아기들은 배운 적 없지만 엄마와 눈 맞추며
옹알이로 노래를 합니다. 그 멜로디와 표정을 보면
천사와도 같습니다. 말을 하기 전 노래로 의사소통을
합니다. 자연의 소리를 들어보세요. 모두 노래입니다.
새소리, 바람 소리, 물소리, 저마다 자기만의
아름다운 소리로 영혼을 울립니다.

반응형

'아침편지' 카테고리의 다른 글

퇴수(退修)라는 단어  (1) 2025.05.09
잠자리에 누웠을 때  (0) 2025.05.08
급발진을 경계하라  (0) 2025.05.07
'사슴 같은 눈'으로 바뀌었다  (0) 2025.05.07
숨 넘어간다  (0) 2025.05.07
반응형

너무 열심히 하려고 하면
오히려 방해가 될 때가 많습니다.
지나치게 서두르면 불안하고 혼란스러워지지요.
그런 태도는 마음을 열어줄 수 없기 때문입니다.
오히려 깊은 이해를 가로막을 뿐이지요.
자연스럽게 자라나야 하는 생각이 있고,
또 시간을 들여야 떠오르는 생각도
있습니다. 매번 작은 발걸음을
내디뎌야 진정한 배움에
이를 수 있습니다.


- 맨프레드 케츠 드 브리스의 《잘 살았다고 말할 수 있기를》 중에서 -


* 과유불급(過猶不及).
지나친 것을 경계하는 말입니다.
엉뚱한 방향으로 너무 열심히 하다 보면
돌이킬 수 없는 상황에 부딪쳐 후회하게 됩니다.
너무 서두르는 것도, 급발진도 조심해야 합니다.
뜻하지 않는 결과에 큰 화를 겪게 됩니다.
깊이 호흡하며 잠시 숨 고르기를 할 때
오히려 길이 보입니다.

반응형

'아침편지' 카테고리의 다른 글

잠자리에 누웠을 때  (0) 2025.05.08
영혼을 울리는 노래  (0) 2025.05.07
'사슴 같은 눈'으로 바뀌었다  (0) 2025.05.07
숨 넘어간다  (0) 2025.05.07
위대한 작가들의 운동법  (0) 2025.05.02

+ Recent posts