전체 글118 [SQL] Prepared Statements 뭐라고 읽어야할까 미리 준비된 구문? Prepared Statements를 사용하면 입력 값을 파라미터로 전달해서 SQL문을 동적으로 생성하는 대신, 미리 정의된 SQL 쿼리에 값을 채워넣을 수 있는데, 사용자 입력이 SQL코드로 해석되는 것을 방지할 수 있다고 한다.왜 사용자의 입력이 SQL코드로 해석되는 것을 방지해야할까?SQL 인젝션(Injection)이라는 보안 취약점 때문이라고 하는 데, SQL 인젝션은 공격자가 사용자의 입력을 악의적으로 조작해, 데이터베이스에 임의의 SQL 쿼리를 실행시킬 수 있게 만드는 공격 기법이라고 한다.이로 인해 공격자는 데이터베이스를 조작하거나 민감한 데이터에 접근할 수 있고, 시스템에 손상을 입힐 수 있다.1. 데이터 유출 - 공격자는 SQL 인젝션을 통해 데이터베.. 2024. 9. 4. [Poke api] 나도 이제 오픈소스 컨트리뷰터 포케허브 프로젝트를 하면서 한국어 데이터가 누락된 부분이 너무 불편해서 누락된 부분은 구글링해서 박박 긁어모아서 상수 데이터로 만들어서 썼는데, 프로젝트가 끝나면 기여하겠다는게 이때까지 질질 끌다가 새벽에 pr을 날려 오늘 merge가 되었다.데이터를 추가하는거 뿐이었지만 Poke api readme에 적혀있는 내용대로 도커 환경에서 db를 빌드해서 테스트를 하고 일본어 데이터가 한국어에 있는 부분도 수정하고, 여러 포켓몬의 누락된 종족 정보에 대해서나 새롭게 추가된 포켓몬의 한국어 데이터를 추가하여 로컬 환경과 기존 환경의 비교 스크린샷을 찍고 상세 내용을 적어서 pr을 날렸더니 하루만에 merge를 시켜줬다.기존 이슈에서는 데이터 변경에 대해서는 veekun이라는 개발자의 관련 레포지토리를 포크해서 .. 2024. 8. 31. [express + mysql + RDS] 테스트 중 2024. 8. 30. [emotional] 예기치 못 한 에러 API Gateway에서 Lambda 엔드포인트를 설정할 때 메서드로 get, any를 처음 설정해뒀길래 any를 삭제했다.그런데 나는 함수를 any에 연결을 해뒀던 것..플리 추천 받으려고 사용했더니 에러가 발생하고 있었다.혼비백산하여 일단 먼저 Lambda에서 테스트를 해주니 상태코드 200으로 잘되었다.그리고 postman으로 되는지 확인했는데 404..네트워크 탭으로도 확인해봤지만 404...급하게 API Gateway에서 확인했는데 엔드포인트에 get으로 분명되어있는데 하고 통합연결을 확인해보니아, 연결이 안되어있다. Lambda와 연결 했던 any를 지워서 발생했던 웃지 못 할 이슈..해결 2024. 8. 25. [emotional] 배포 환경 변경 및 그에 따른 변화 기존 emotional은 OpeanAI와 YouTube API가 클라이언트 단에서 두 API를 호출 하였을 때 네트워크 탭을 확인하면 누구든 손쉽게 API 키값을 확인할 수 있었다.클라이언트 단에서의 API 키 노출 이슈를 방지하기 위해 서버 측에서 API를 실행시켜 클라이언트에 필요한 데이터만 반환하게 하였어야했는데, 나는 딱히 백엔드의 지식이 없었기 때문에 당시에는 Node.js랑 express를 사용해야하나 라고 생각을 하게 되었다.하지만 Next.js에서 next server를 사용하여 서버리스 함수를 만들 수가 있었는데 그게 route handler를 이용한 방법이었다.import { NextRequest } from 'next/server';import OpenAI from 'openai';c.. 2024. 8. 24. [면접 복기] 24.08.14 일단 결과 나옴, 탈락.진행 : 비대면 면접//회사에서 진행할 프로젝트에 대한 설명 및 관련 스택에 대한 이야기//진행했던 프로젝트들에 대해서 설명협업 시 사용했던 소통 툴에 대해서자신이 사용하는 기술 스택에 대해서리액트의 장단점리액트 쿼리의 기능scss의 장단점zustand의 장단점성능 최적화에 대해서useMemo, useCallback에 대한 견해js기술적인 질문들이나 cs관련 질문은 없었다.회사에서 사용하게 될 스택과 내가 사용하는 스택이랑 어떤 장단점이 있고 왜 사용하는지에 대한 고찰을 묻는 위주의 질문이었다.면접관님이 말하길, 사용하는 기술에 대한 장단점을 아는게 중요하다고 생각해서 물어보는거다. 라고 하였다.이거랑 이거랑 비교해서 어떤 상황에서 이게 뭐가 좋아서 쓰고, 저게 뭐가 안좋아서 안쓰.. 2024. 8. 15. [면접 복기] 24.08.13 면접 방식 : 비대면진행 : 면접 전에 30분 필기 테스트, 이후에 면접관 세 분과 면접 진행필기 테스트의 직접적인 내용은 쓰지 않겠습니다.프로그래머스 0레벨 정도 풀이 문제 1개제공한 코드를 보고 실행 결과를 적는 문제 1개제공한 코드를 보고 실행 결과와 실행 과정을 적는 문제 3개기술적인 질문? 4개필기 테스트는 30분이었는데총 9문제에서 사실상 실행 결과와 과정을 적는 문제 문항 내용이 누락되어 8문제라고 생각한다.그 중에 6문제를 풀었는데 문제 중 하나에 블록 레벨 스코프 관련해서 예제 코드를 적게 되었는데 마지막 문제와 겹치는 부분이 있어서 좀 정상참작을 안해주려나 생각을 한다.. (var, let, const 차이에 대해 설명하면서 함수 레벨 스코프와 블록 레벨 스코프에 대해서 언급을 하면서 .. 2024. 8. 14. [BROWSER] CORS (Cross-Origin Resource Sharing) 먼저, CORS는 웹 애플리케이션이 다른 도메인에서 리소스를 요청할 수 있도록 허용하는 보안 기능이다.기본적으르, 브라우저는 보안상의 이유로 스크립트가 다른 출처(도메인, 프로토콜, 포트)에서 리소스를 요청하는 것을 제한한다. 이를 Smae-Origin-Policy라고 한다.하지만 CORS는 이를 우회하는 방법을 제공한다.1. URL의 구성https://codingbear-boza.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F#1234https는 프로토콜(protocol)codingbear-boza.tistory.com는 호스트(host)현재 포트(port)는 생략되어있으나 https의 경우 기본 포트는 443이다./manage.. 2024. 8. 2. 이전 1 2 3 4 5 6 ··· 15 다음