ORM 원리SQL 인젝션이란?// 위험한 코드 — SQL 직접 조합const userId = req.params.id; // 사용자 입력: "1 OR 1=1"const query = `SELECT * FROM users WHERE id = ${userId}`;// 실제 실행: SELECT * FROM users WHERE id = 1 OR 1=1// → 모든 유저 데이터 반환!SQL 인젝션: 사용자 입력이 SQL 쿼리의 일부로 해석되어 의도치 않은 쿼리가 실행되는 취약점.Prisma가 자동으로 방어하는 원리 (Parameterized Query)// Prisma — 안전const user = await prisma.user.findUnique({ where: { id: Number(userId) },}..
Node.js를 처음 제대로 공부하면서 정리해두려고 한다.2달 안에 풀스택 개인 프로젝트를 시작하는 게 목표다. Node.js → Express → NestJS 순서로 밟아가기로 했는데, 그 첫 걸음을 이 시리즈로 시작하려고 한다.브라우저 밖의 JavaScript프론트엔드만 해오다가 Node.js를 처음 공부하려니 가장 먼저 드는 생각이 하나 있었다. "JavaScript는 원래 브라우저에서 작동하는 거 아닌가?"맞는 것 같다. 그런데 Node.js가 그 제약을 없앴다. Chrome이 쓰는 V8 엔진을 가져와서 서버에서도 작동하도록 만든 것이 Node.js다. JavaScript를 브라우저 밖, 즉 서버에서도 실행할 수 있게 된 것이다.그래서 Node.js를 배우면서 가장 먼저 짚어야 하는 것이 이벤트 ..
이전 글https://the-snack-over-flow.tistory.com/7 [MUSINSA ROOKIE AI NATIVE ENGINEER] 1차 알고리즘 테스트 회고 - 합격들어가며무신사에서 MUSINSA ROOKIE AI NATIVE ENGINEER (6개월 전환형) 포지션 공고를 봤다.솔직히 말하면, 지원 동기가 거창하지 않았다. "어...? 이 정도면 나도 지원해볼 수 있겠는데?" 싶었다.큰 기대the-snack-over-flow.tistory.com 들어가며이번 글은 1차 통과 이후 이어지는 글이다.2차 코딩 테스트는 GitHub와 AI Agent를 활용하여 진행됩니다. AI Agent와 통합 개발환경(IDE) 등을 자유롭게 활용하실 수 있으니, 익숙한 개발환경을 최대한 활용하여 본인의 ..