Web/DB 21

[db] 기본 개념 정리

DB 라는 것을 배운지가 어연 몇년이 지났는데, 정말 기초적인 부분에서 지적을 받은 뒤 많은 충격을 받았다 내가 이렇게 기초가 허술했나..? 당연한 것 처럼 익숙하게 썼던 것 중에 아주 기본적인 부분을 틀리게 썼다는 것에 너무 스트레스를 받았었다ㅜ 시간을 내서라도 기본적인 공부는 다시 해야겠다 싶어 다시 시작해본다!! 개념이나 기초 위주는 그냥 정리만 해보는 걸로 Database 특성 - 실시간 접근 및 응답 - 최신성(동적) - 동시공용 - 내용기반참조(키워드) 데이터모델 3요소 data model 이란 데이터를 명세하는 고유 표현 방식이자 data modeling 을 위한 도구 - 데이터 구조(data structure) - 연산(operation) - 제약조건(constraint) RDB - 테이블..

Web/DB 2023.10.17

[web security] XSS (Cross-Site Scripting)

더보기 https://youtu.be/bSGqBoZd8WM 널리 알려진 웹 보안 취약점 중 하나로 악의적인 사용자가 악성 스크립트를 삽입하여 공격하는 경우를 말한다. 이를 통해 C&C(좀비 PC 명령 또는 악성 코드 제어하는 서버)로 리다이렉트 하거나 사용자의 쿠키를 탈취하여 세션 하이재킹 공격을 할 수 있다. 대표적인 공격 방식 - Stored XSS : 공격자가 제공한 데이터가 서버에 저장되면서 지속적으로 다른 사용자에게 스크립트를 노출시킴 - Reflected XSS : 쿼리스트링을 URL에 담아 전송 시 서버가 필터링 없이 응답 페이지로 전송 시 발생 - DOM Based XSS : 방지방법 1. innerHTML 사용 자제, textContent, innerText를 사용한다 2. 받은 HTML..

Web/DB 2023.05.22

[mysql] Recursive

더보기 https://inpa.tistory.com/entry/MYSQL-%F0%9F%93%9A-RECURSIVE-%EC%9E%AC%EA%B7%80-%EC%BF%BC%EB%A6%AC [MYSQL] 📚 RECURSIVE (재귀 쿼리) WITH RECURSIVE 문 (재귀 쿼리) 프로그래밍에서 재귀 함수를 들어봤듯이, SQL에서도 재귀 쿼리 기법이 존재한다. 다만 문법이 굉장히 해괴한데 우선 WITH RECURSIVE 쿼리문을 작성하고 내부에 UNION을 통해 inpa.tistory.com WITH RECURSIVE 문 재귀 쿼리 프로그래밍 재귀함수 처럼 SQL에서 재귀 방식을 사용하는 방법임 WITH RECURSIVE cte_count AS ( -- Non-Recursive 문장( 첫번째 루프에서만 실행됨..

Web/DB 2023.05.02

[mysql] 멀티게시판 구현 설계

-- 게시판 종류를 저장하는 테이블 CREATE TABLE board_type ( type_id INT NOT NULL AUTO_INCREMENT, type_name VARCHAR(50) NOT NULL, PRIMARY KEY (type_id) ); -- 게시글 정보를 저장하는 테이블 CREATE TABLE board_post ( post_id INT NOT NULL AUTO_INCREMENT, board_type_id INT NOT NULL, title VARCHAR(100) NOT NULL, content TEXT, writer VARCHAR(50), created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_T..

Web/DB 2023.05.02

[mysql] with 절(가상테이블) 01

더보기 https://inpa.tistory.com/entry/MYSQL-%F0%9F%93%9A-WITH-%EC%9E%84%EC%8B%9C-%ED%85%8C%EC%9D%B4%EB%B8%94 [MYSQL] 📚 WITH (임시 테이블 생성) WITH (임시 테이블) SQL을 통해 빅데이터라 불리는 매우 크고 무거운 데이터를 다루는데, 새로운 결과를 원하고 저장할 때마다 table을 저장할 수 없다. 또한, 실무에서는 실제 실행 속도도 빠르게 inpa.tistory.com https://velog.io/@genieee/with%EC%A0%88-%EA%B0%80%EC%83%81%ED%85%8C%EC%9D%B4%EB%B8%94-%EA%B0%84%EB%8B%A8-%EC%A0%95%EB%A6%AC with절 (가상테..

Web/DB 2023.05.01

[mariaDB Mac] 설치 팁

https://mariadb.com/kb/en/installing-mariadb-on-macos-using-homebrew/ https://brew.sh/index_ko Homebrew The Missing Package Manager for macOS (or Linux). brew.sh 검색 $ brew search 패키지명 설치 $ brew install 패키지명 정보 $ brew info 패키지명 삭제 $ brew uninstall 패키지명 목록 $ brew list 업뎃 $ brew upgrade 패키지명 저장소 추가 $ brew tap homebrew/패키지명 저장소 삭제 $ brew untap homebrew/패키지명 링크 삭제 $ brew unlink 패키지명 mysql 이 설치되어 있는 경..

Web/DB 2023.04.13

MySQL 데이터베이스 스키마/테이블/컬럼 네이밍 설계 규칙

1. 소문자로 작성 MySQL에서는 대소문자를 구분하지 않습니다. 따라서 MySQL에서는 모든 스키마/테이블/컬럼 이름을 소문자로 작성하는 것이 일반적입니다. 2. 언더스코어(_)로 단어 구분 MySQL에서는 공백 대신 언더스코어(_)를 사용하여 단어를 구분하는 것이 일반적입니다. 예를 들어, "customer_order"와 같은 이름을 사용합니다. 3. 명사 사용 테이블 이름은 일반적으로 단수 명사를 사용합니다. 예를 들어, "customer"와 같은 이름을 사용합니다. 4. 접두사 사용 MySQL에서는 하나의 데이터베이스에서 여러 애플리케이션이 동작할 수 있기 때문에 테이블 이름 앞에 애플리케이션 접두사를 추가하는 것이 일반적입니다. 예를 들어, "app_customer"와 같은 이름을 사용합니다. ..

Web/DB 2023.03.19
728x90