분류 전체보기
C++ 알고리즘 총 정리
C++ 에서는 iostream 의 cin, cout 을 사용하여 입출력 합니다. TIP 1C의 표준 입출력 stdio 와 동기화 되어있어서 속도가 느린편. 다음 두 줄을 통해 scanf 보다 빨라질 수 있음ios_base::sync_with_stdio(false);cin.tie(NULL); TIP 2매번 #include, #include 등을 따로 쓰기 귀찮다면 모든 표준 라이브러리 포함하는#include 헤더를 사용TIP 3endl 은 단순히 줄바꿈 뿐만아니라 출력 버퍼 비우기(flush) 작업까지 수행하므로 매우 느림따라서 습관적으로 \n 을 사용하도록 함.#include // 코딩테스트의 치트키!using namespace std;int main() { // 입출력 가속화 ios_bas..
[독후감] 나의 돈 많은 고등학교 친구 (송희구 작가)
[오랜만에 만난 친구가 알고보니 시그니엘 집주인] 올해 나이 마흔에 대기업 과장인 영철은 아들인 영현을 데리고 롯데월드에 갔다가 고등학교 시절 골동품 운영하며 반지하에 살던 친구 광수와 그의 아들 광현을 만나게 됩니다. 광수는 20초 만에 기구를 탈 수 있는 프리미엄 매직패스 티켓을 가지고 있었고영철의 티켓은 1시간을 기다려야 기구를 탈 수 있는 일반 티켓이었기에 1시간 이후에 만나기로 합니다. 광수는 조그만 사업을 한다는 영철이 허름한 차림에 차를 가지고 오지 않은 것으로 보아, 분명 저 멀리 외곽에서 놀러온 것으로 생각했습니다.영철은 사옥을 짓는 현장에서 광수를 만나게 되는데 알고보니 광수가 건설 회사 대표였네요.알고보니 광수가 저~위에 살고 있다는 것이 경기 북부가 아니라 진짜로 저 위인 시그니엘 ..
[시니어 FE] CSRF GET 공격 시나리오와 방어법
"쿠키(Cookie)를 인증 수단으로 사용할 때, SameSite 속성을 Lax나 Strict로 설정하는 것만으로 CSRF 공격을 완벽히 막을 수 있을까요? 추가적으로 'CSRF 토큰'이나 'Custom Header'가 필요한 이유는 무엇이라고 생각하시나요?" "사용자가 우리 서비스에 로그인한 상태로, 해커가 만든 악성 사이트에 접속했습니다. 그 사이트에는 우리 서비스의 '비밀번호 변경' API를 자동으로 호출하는 폼(Form)이 숨겨져 있습니다. 사용자가 모르는 사이에 비밀번호가 바뀌는 이 공격을 프론트엔드와 백엔드에서 어떻게 협업하여 막으시겠습니까?"CSRF(Cross-Site Request Forgery) 공격의 목적사용자의 권한을 도용해 비밀번호 변경, 결제, 게시글 삭제 등 서버의 상태를 변조하..
[AI] 완전 자율 소프트웨어 구축 시스템 개발 경험과 과정에 대한 글
open AI 에서 공개한 글에 대해 요약하고 제 생각을 추가한 글입니다. 지난 5개월 동안 수동으로 작성한 코드가 단 한 줄도 없이 소프트웨어 제품의 내부 베타 버전을 개발하고 배포했습니다.이 제품은 어플리케이션 로직,테스트,CI 구성, 문서화, 관찰 가능성 및 내부 도구 등 모든 코드를 Codex 가 작성을 했습니다.사람이 코딩하는 것 보다 10배 빠른 효과를 낸 것으로 추정합니다. 에이전트에 맞춘 환경 구축에이전트가 유용한 작업을 수행할 수 있도록 큰 목표를 설계, 코딩, 검토, 테스트 등으로 분해하고각 구성요소를 구축하도록 유도한 다음에 이를 통해 더 큰 작업을 수행하게 했습니다. 에이전트가 실패 했을때 "더 열심히 해보세요" 가 아니라"어떤 기능이 부족하고, 에이전트가 이를 명확하게 이해하고 실..
[AI] PLAN.md 몇 시간이 걸리는 복잡한 계획을 수행하는 프롬프트 (번역)
Codex 실행 계획(ExecPlans) 가이드라인이 문서는 코딩 에이전트가 작동 가능한 기능이나 시스템 변경 사항을 전달하기 위해 따를 수 있는 설계 문서인 실행 계획(ExecPlan)의 요구 사항을 설명합니다. 독자를 이 저장소에 대한 완전한 초보자로 취급하십시오. 독자에게는 현재의 작업 트리(working tree)와 귀하가 제공하는 단일 ExecPlan 파일만 주어집니다. 이전 계획에 대한 기억이나 외부 컨텍스트는 존재하지 않는다고 가정합니다.ExecPlan 및 PLANS.md 사용법실행 가능한 명세서(ExecPlan)를 작성할 때는 PLANS.md의 내용을 문자 그대로 엄격히 준수하십시오. 만약 컨텍스트에 해당 파일이 없다면, PLANS.md 파일 전체를 읽어 기억을 되살리십시오. 정확한 명세를..
[시니어 FE] 동시성(Concurrency) 에 대해 알아보자
시니어 FE 시리즈시니어 프론트엔드 개발자가 되기위해 해보지 않았던 경험의 틈을 채우거나 기술적으로 딥다이브 해보고자 준비한 시리즈입니다. 동시성(Concurrency)은 단순히 async/await를 쓰는 수준을 넘어,"사용자 경험을 해치지 않으면서 여러 작업을 어떻게 조율(Orchestration)하는가"에 대한 능력을 검증하는 아주 중요한 키워드입니다.가장 대표적인 두 가지 구체적인 상황을 통해 심도 있게 파헤쳐 보겠습니다.1. 사용자 입력과 무거운 렌더링의 충돌 (React 18 Transition)[상황]사용자가 검색창에 타이핑을 할 때마다, 하단에 수천 개의 데이터 리스트가 실시간으로 필터링되어 그려져야 합니다. 이때 리스트를 그리는 작업(무거운 작업) 때문에 사용자가 입력하는 글자가 버벅이..
[시니어 FE] Web Worker 에 대해 알아보자 (Comlink)
시니어 FE 시리즈시니어 프론트엔드 개발자가 되기위해 해보지 않았던 경험의 틈을 채우거나 기술적으로 딥다이브 해보고자 준비한 시리즈입니다. 그 동안 Web Worker를 막연하게 알고만 있었지 실제로 써볼 기회가 없었습니다.엄청나게 무거운 정보를 실시간으로 화면에 보여줘야하는 서비스를 만들어본 적이 없었기 때문이죠.그치만 내가 안해봤다고 모른다고 앞으로도 그런 상황이 주어졌을때 Web Worker 생각을 못한다면 안되겠죠? 1. Web Worker의 기본 구조 (Concept)Web Worker는 브라우저의 메인 스레드와 별개로 배경(Background)에서 돌아가는 별도의 스레드입니다.메인 스레드: UI 렌더링, 사용자 클릭 이벤트 처리 (DOM 접근 가능)Web Worker: 복잡한 연산, 데이터 가..
[개발자 이야기] Cursor 를 혼자가 아닌 팀원들과 함께 활용해보는 시도중 (rules 와 skill 의 차이는?)
오늘은 제가 최근에 회사에서 시도중인 내용을 작성해보려고 합니다. 기존에 Cursor 를 사용하던 방식저희 팀은 작년에 vscode + copilot 에서 cursor.ai 를 기본 IDE 로 전환했습니다.단순히 질문, 코드생성, 자동완성에서 나름 만족하면서 쓰고 있었습니다. 그러나 팀 규칙이라거나 그런 것들을 사용하고 있지 않았기 때문에분명 팀에서 cursor 를 사용하고 있기는 하지만, 제대로 활용하고 있다는 느낌을 받지 못했습니다. 그래서 개인적으로 Claude Code 를 사용하면서 경험했던 memory, skill 에 대한 개념과 지식을 가지고cursor 를 팀 단위로 활용할 방법에 대해서 고민해보았습니다. 팀 전체에서 활용해보기우선은 AGENTS.md 파일 부터 만들었습니다.프로젝트의 기본이..
[개발자 이야기] 프론트 개발자의 AI로 인해 잠 못드는 나날
AI 기술 부채AI로 인해 흥분되어 잠 못드는 날, AI로 불안해서 잠 못드는 날이 반복됩니다.자고 일어나면 또 새로운 AI 기사가 쏟아지면서 AI 기술 부채가 나날이 쌓이고 있습니다. 열심히 따라가기 위해 노력 중입니다.퇴근하고, 주말에도 쉬지를 못하고 AI를 배우고 공부하고 실습하고 고민하고 있습니다. "껍데기만 만드는 개발자"가 될 것인가?하지만 프론트엔드 개발자는 AI 를 커리어와 직접 연결시키질 못하니 그게 참 답답합니다.회사에서 팀 단위로 AI를 활용하고 있지 않고, 각자 개인적으로 쓸 뿐이고.AI와 접목한 서비스를 만들고 있지도 않아서 내가 이러다간 AI 시대에 뒤떨어지고 경쟁력에서 밀리는 것이 아닐까 두려움이 듭니다.특히 제가 프론트엔드 개발자라서 더욱 더 스트레스가 큰 것 같습니다. 설령..
Anthropic Courses - 무료 온라인 강의 공개
Anthropic CoursesBrowse all Anthropic coursesanthropic.skilljar.com 개발자 대상 과정Claude Code in Action: Claude Code를 개발 워크플로에 통합하는 실습 과정Building with the Claude API: Anthropic 모델을 Claude API로 활용하는 전 과정을 포괄적으로 다루는 과정Introduction to Model Context Protocol: Python으로 MCP 서버와 클라이언트를 처음부터 구축하는 방법 학습MCP의 세 가지 핵심 프리미티브인 tools, resources, prompts를 다룸Claude를 외부 서비스에 연결하는 방법 포함Model Context Protocol: Advanced ..