2026/03 7

2. 배포 이후 수행했던 것들

0. 패치노트더보기2026-03-29Added- RSS 뉴스 수신 기능 추가 및 Vercel KV 기반 Rate Limiting 도입 - DOMPurify 기반 HTML sanitize 적용 - index.html에 DOMPurify 스크립트 추가 Changed- 프롬프트 수정/정확도 개선 - AI 답변이 길어질 때 UI/CSS 표시 개선(긴 답변 대응) - Gemini 호출 5분 타임아웃(shutdown) 문제 수정 - `/api/news` CORS allowlist 동작 수정 - CORS 처리 리팩터링 및 에러 응답 개선- 프롬프트 요청 비동기 promise로 수정, 병렬 요청으로 요청응답 속도 개선Security- Gemini 출력 렌더링 시 XSS 위험 완화(DOMPurify sani..

1. 바닐라 JS로 지수 분석 페이지 만들다 생겼던 문제들

1. Yahoo Finance를 브라우저에서 직접 부를 수 없는 이유시장 데이터 대시보드를 만들며 가장 먼저 마주한 벽은 CORS(Cross-Origin Resource Sharing) 정책이었다. Yahoo Finance API를 브라우저에서 직접 호출하자마자 무심한 에러 메시지가 출력됐다.시장 데이터 대시보드를 만들면서 가장 먼저 부딪힌 문제였다.Yahoo Finance API를 브라우저에서 직접 호출하면 이런 에러가 난다.Access to fetch at 'https://query1.finance.yahoo.com/...' from origin 'https://...' has been blocked by CORS policy CORS는 보안을 위해 브라우저가 실행 중인 도메인과 다른 곳의 리소스를 ..

3. Signed in Triplicate

0. Intro '은하수를 여행하는 히치하이커를 위한 안내서'는 SF에 영국의 블랙코미디가 결합된 더글라스 애덤스의 명작이다.뭐니뭐니 해도 세상 만물에 대한 완벽한 답으로 42를 컴퓨터가 도출하는 장면으로도 유명하다. 오늘의 제목은 그 '은하수를 여행하는 히치하이커를 위한 안내서'에서 가져왔다. "They wouldn't even lift a finger to save their own grandmothers from the Ravenous Bugblatter Beast of Traal without orders—signed in triplicate, sent in, sent back, queried, lost, found, subjected to public inquiry, lost again, and..

2. It takes two to tango

0. Intro 요즈음 시대에 온라인 매칭도 지원 안되고, 정말 둘이 모여서 패드를 꽂거나 키보드를 서로 나눠 갖거나, 온라인 모드로라도 '만나서 플레이 해야 하는' 게임은 흔치 않다. 이 게임의 이름은 'It takes two' 영어에서 원래 속담마냥 쓰이던 문구에서 따온 건데, 원래 문장은 제목과 같다. It takes two to tango (탱고를 추려면 둘이 필요하다) 부부가 어느 날 자녀가 갖고 놀던 인형이 되어 난관을 헤쳐나간다... 라는 내용이고,저 문장은 '박수도 맞아야 소리가 난다'라는 느낌의 의미로도 쓰인다.탱고는 아니지만 스윙댄스 동호회를 종종 가는데, 가장 힘든 게 저 파트너 권하는 거다. (...) 게임 디자인적으로는 AstroBot 같은 느낌인데, 거기에 스토리도 잘 뽑아냈다...

1. ... First shalt thou take out the holy pin

0. Intro 파이썬에 집중했던 한 주였어서, '몬티파이썬과 성배'에서 나오는 구절을 인용했다.아무 것도 안한 건 아니니 0은 아니니 1로 봐도 되겠지! (부울대수적인 의미에서)1. Code in Place알고리즘에 좀 더 익숙해질 필요가 있기도 하고, 이번에 듣는 과목에 파이썬도 있어서 스탠퍼드에서 운영하는 공개강의인 Code in Place를 신청해서 듣고 있다. 정확히 말하자면 강의 들을 사람은 4월 초에 발표라는 모양이지만, 저번 포스트에서도 언급했듯 기본기를 다시 다진다는 느낌으로 해보고 있다. 2. 그래서 얼만큼 했을까 6개의 코스중 4개를 끝냈다.Welcome - Karel이라는 로봇을 활용한 명령문Stepwise Refinement - 분해(Decomposition).을 통한 문제해결..

0. I don't have a mouth but...

0. Intro'I don't have a mouth and I must scream' 이라는 단편이 있다.1967년에 나온 SF 단편이고 휴고상을 받았다, 또한, 이를 기반으로 1995년에 출시된 비디오 게임이다. 게임디자인 쪽에서는 I have no words & I must design이라는 그렉 코스티켄(Grag Costikyan)의 페이퍼에 영감을 준 작품이다. 게임기획 일을 하며 열심히 읽었던 아티클이었다. 한국에서는 말 없는 게임디자인으로 번역되었었다.(관심이 있으신 분은 이쪽으로. 영어 주의) 가장 주요한 요지는, '도대체 무엇이 '게임'을 게임답게 만드는가?'였다.당시 게임 산업은 기술적인 화려함에 꽤 치중하고 있었고, 코스티켄은 이 글을 통해 "그래픽이 아무리 좋아도 게임의 '구조(St..

problem_solving 2026.03.09

0. 이 일지는 0에서 최초로 시작되어...

0. Intro 스터디 회장님: 성장일지를 적을 거에요. 지금 하는 건 0화로 올려주세요나: (오, 역시 CS과야, 카운트도 0에서부터 시작하는군) 1. Previously on the...보통 이야기에서 초장부터 후킹이라는 걸 하려고 해도 상황 설명이라는 걸 필요로 하곤 한다.스타워즈 인트로에 글자뭉치 같은 걸 왜 집어넣겠나. 그걸 봐야 앞뒤 맥락이 이해가 더 잘되기 때문이다. 정보처리기사에서 고전중이라, 아무래도 마구잡이로 교재만 보는 것보단 기초부터 다지면서 이해해나가는 게 더 낫겠다는 생각이 들어 방송대 컴퓨터과학과에 편입했다. 편입하면서 뭔가 더 공부나 취업에 부스터 역할을 할 곳을 찾고 있었고, Growth_Log라는 스터디를 찾게 되었다. 2. Today's pick 오늘 써야 하는 내용은..