본문 바로가기

sql

6/15[TIL] SQL 과 NoSQL 이란? 프로젝트를 하면서 백엔드 포지션에서 작업을 진행하게 되면 여러 가지 고민에 사로잡히게 되는데 SQL과 NoSQL을 정하는 것 또한 큰 고민 중 하나에 속하는 것 같다. MySQL 같은 MySQL 을 사용할 것인가? 아니면 MongoDB 와 같은 NoSQL을 사용할 것 인가... 필자는 아직 MongoDB 와 같은 NoSQL을 사용해 본 적이 없다. 프로젝트를 진행하면서 MySQL과 Postgresql을 사용해본 게 전부라 MongoDB 와 같은 NoSQL을 사용해본 다른 사람들에게 엄청 편하다는 이야기를 많이 들었다. 스키마에 대해 신경 쓰지 않아도 되고 1:N, M:N과 같은 관계를 지정할 필요 없다는 것까지... 듣고 나서 언젠가 사용해보아야 했다고 생각했는데 아직도 그러지 못하고 있다. 꼭 사용해보.. 더보기
6/7[TIL] SQL DB 설계에 있어 중요하게 생각하는 점은 무엇이 있을까? SQL DB 설계에 있어 중요하게 생각하는 점은 무엇이 있을까? 위의 주제의 질문에 대한 답을 필자는 "요구사항에 맞게 꼼꼼하게 검수 한 다음 DB를 설계하는 것"이라는 생각해본다. 한 프로젝트를 진행하게 되면 프로젝트 기획 단계에 정말 많은 시간을 쏟아부어 백엔드 전반의 전체적인 아웃라인을 잡게 되는데 이 부분이 정말 중요한 부분이지만 "이 정도면 됐겠지?"와 같은 안일함으로 기획 단계에 임했다가 프로젝트 도중에 몽땅 뒤엎거나 많은 수정 시간을 필요로 하여 예상 시간이 훨씬 많이 걸렸던 적이 부지기수이다. 이처럼 DB설계를 잘못하게 되면 향후에 유지보수 비용이 엄청나게 들어 갈 수 있고 그렇기에 초기에 설계를 잘해두어야 시간과 비용을 절약할 수 있다. SQL Query도 비슷한 맥락으로 Query 잘못.. 더보기
5/31[TIL] SQL Injection 이란 무엇이며 어떻게 막을 수 있을까요? 우선 SQL Injection이 무엇인지와 이로 인한 사례, 예시들을 보고 이를 어떻게 하면 막을 수 있는지 알아보기로 하자. SQL Injection이란? 응용 프로그램 보안 상의 허점을 의도적으로 이용해, 악의적인 SQL문을 실행되게 함으로써 데이터베이스를 비정상적으로 조작하는 Code Injection 공격 방법이다. 대부분 클라이언트가 입력한 데이터를 제대로 필터링하지 못하는 경우에 발생하며 공격의 난이도에 비해 피해가 상당하기 때문에 보안 위협 1순위로 불릴 만큼 중요한 기법이다. Injection 공격은 OWASP Top 10 중 제일 상위 1위에 속해 있어 간과할 수 없다. OWASP는 오픈소스 웹 애플리케이션 보안 프로젝트로 주로 웹에 관한 정보노출, 악성 파일 및 스크립트, 보안 취약점 .. 더보기