기본적으로 mariaDB는 mySQL과 비슷한 문법이기 때문에 기존에 mySQL을 써봤다면 무리없이 사용할 수 있지만 oracleDB랑은 약간의 차이가 있다. 기본적인 mariaDB 문법을 알아보고자 한다. 데이터베이스 생성 CREATE DATABASE mydatabase; CREATE DATABASE 데이터베이스명; 데이터베이스 목록 조회 중복되는 데이터 베이스명이 있는지 확인해보기 위해서는 아래 명령문을 검색하면 된다. SHOW DATABASES; 데이터베이스 선택 USE mydatabase; USE 데이터베이스명; 테이블 생성 (CREATE TABLE) CREATE TABLE employees ( id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(50)..
인터넷 사용이 증가함에 따라 웹 보안은 나날이 중요해지고 있다. 그 중에서도 XSS와 CSRF는 웹 개발자와 사용자 모두 주의해야 할 중요한 문제이다. 이 둘에 대해서 자세히 알아보고자 한다. XSS 란 공격 목적 XSS는 "Cross-Site Scripting"의 약자이며, 악의적인 스크립트를 웹 페이지에 삽입하여 사용자 브라우저에서 실행시켜 공격하는 것이다. 이로써 공격자는 다른 사용자의 세션 쿠키나 민감한 정보를 탈취 또는 조작할 수 있다. 공격 대상 주로 사용자의 브라우저와 해당 웹 페이지를 공격한다. 공격 방식 악의적인 스크립트가 웹 페이지에 삽입되어 사용자의 브라우저에서 실행된다. XSS 공격자는 사용자의 브라우저에서 실행되는 스크립트를 통해 사용자의 쿠키, 세션 정보 등을 탈취한다. 이를 통..
CORS란 CORS 웹개발에서 중요한 보안 관련 주제 중 하나로, "Cross-Origin Resource Sharing" (교차 출처 리소스 공유) 의 약어이다. 서로 다른 도메인 간에 데이터 요청과 응답을 허용하는 웹 보안 메커니즘으로 출처가 다른 자원들을 공유한다는 의미이다. 쉽게 말해, 한 출처에 있는 자원에서 다른 출처에 있는 자원에 접근하도록 하는 개념이다. 웹 브라우저에서 실행되는 스크립트가 다른 출처(도메인)에서 리소스를 요청할 때, 동일 출처 정책 (Same-origin policy)에 따라 요청을 차단하는데, 이를 허용하기 위해 필요한 것이 CORS이다. CORS에 대해 자세히 알기 전에 출처 와 동일 출처 정책 이 무엇인지 먼저 알아보자. 출처란? 여기서 출처가 무엇인지, 어디서부터 ..
로드밸런싱 (Load Balancing) 이란 로드 밸런싱이란, 로드 + 밸런스 -ing 를 합친 말이다. 로드 : 서버가 받는 부하 (트래픽) 로드밸런싱 (Load Balancing) 은 이런 트래픽들을 잘 밸런싱하여 서버에게 골고루 분산시켜 주는 모듈이다. 로드밸런서 (Load Balancer) 는 클라이언트와 Server pool(서버 그룹) 사이에 위치해, 서버의 부하를 분산시키는 하드웨어 또는 소프트웨어를 말한다. 그렇다면 로드밸런서가 왜 필요할까? 예를 들어서비스를 런칭했다고 치자. 유저에게 오는 쿼리 개수가 1000개 이상 늘어난다고 하면 어떻게든 서버가 잘 유지가 될 수도 있겠지만 앱이 커지고 수천만명, 수억 명의 유저가 몰린다면 한 대의 애플리케이션 서버로 감당 가능하기 힘들다. 이처럼,..
서블릿(Servlet) 이란? 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. - 위키백과 : 자바 서블릿 서블릿이란, 동적 웹 페이지를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술이다. 서블릿은 웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해준다. 서버에서 실행되다가 웹 브라우저에서 서버에 요청(Request)을 하면 요청에 맞는 동작을 수행하고 웹 브라우저에 HTTP 형식으로 응답(Response) 한다. 예를들어, 사용자가 로그인을 하려 ID, PW를 입력하고 로그인 버튼을 누른다면 서버는 클라이언트의 ID,PW를 확인한 후 다음 페이지를 띄워주어야하는데 이러한 역할을 수행하는 것이 바로 서블릿이다. ..
WS (Web Server) 와 WAS (Web Application Server) 는 웹 개발에서 서로 다른 역할을 수행하는 두 가지 서버 유형이다. 각각의 특징을 알아보자. WS란? WS (Web Server) 란, 웹 브라우저(클라이언트)로 부터 HTTP 요청을 받아 HTML 문서와 같은 정적 컨텐츠를 제공하는 프로그램이다. 클라이언트가 요청을 하면 웹서버는 요청을 해석하고 해당 파일을 찾아 응답한다. 정적 컨텐츠란, 요청 인자값에 상관없이 달라지지 않는 컨텐츠. 즉, 어느 사용자에게든 동일한 컨텐츠를 보여준다. (HTML, CSS, Image 등) APACHE, Microsoft IIS, Nginx 등이 있다. WAS란? WAS의 등장 배경 1990년대 후반, 인터넷이 보급되며 웹 브라우저를 사용..
세션에서 요청을 진행할 때마다 세션 저장소에서 세션ID를 조회하는 작업을 통해 DB접근을 해야 하는 번거로움과 저장하는 세션ID가 많아질수록 서버에 과부하가 걸린다는 단점을 보완한 것이 JWT(JSON Web Token) 이다. 그럼 JWT에 대해서 알아보고자 한다. ✒️쿠키와 세션에 대해 자세히 알아보기 JWT란?선택적 서명 및 선택적 암호화를 사용하여 데이터를 만들기 위한 인터넷 표준 인증 방식 인증에 필요한 정보들을 토큰에 담아 암호화시켜 사용하는 서명된 토큰이다. 정보를 비밀리에 전달하거나 인증할 때 주로 사용하는 토큰으로 Json객체를 이용한다. 일반적으로 클라이언트와 서버 사이에서 통신할 때 권한을 위해 사용하는 토큰이며, 웹 상에서 정보를 JSON 형태로 주고받기 위해 표준 규약에 따라 생성..
쿠키와 세션의 필요성 쿠키와 세션일 왜 필요할까? 에 대해 묻는다면 아마 HTTP의 특징 때문일 것이다. HTTP에는 서버가 응답을 완료하면 연결이 끊어버리는 성질이 있는 비연결성(Connetionless) 요청에 답하는 동시에 연결을 끊고 통신을 종료하기 때문에 상태를 저장하지 않는다는 무상태성(Stateless) 이라는 큰 특징이 있는데 자주 사용하는 웹사이트에 들어갈 때마다 매번 로그인해야 한다던가 똑같은 팝업창이 매번 나온다던가 하는 등의 번거로움을 줄이기 위해 쿠키(Cookie) 와 세션(Session)이 등장했다. HTTP 특징 자세히 알아보기 쿠키(Cookie) 란? 크롬, 사파리 같은 브라우저에 저장되는 키와 값이 들어있는 작은 데이터 파일이다. 쿠키는 클라이언트의 상태 정보를 로컬(브라우..