전체 글(207)
-
OAuth
OAuth란 OAuth는 다양한 플랫폼 환경에서 권한 부여를 위한 산업 표준 프로토콜입니다. 간단하게 인증(Authentication)과 권한(Authorization)을 획득하는 것으로 볼 수 있습니다. 여기서 인증은 시스템 접근을 확인하는 것이고 권한은 행위의 권리를 검증하는 것입니다. OAuth 1.0 third party Application에 아이디와 비밀번호를 제공하고 싶지 않은 요구로 인해 OAuth가 탄생했습니다. 개인 정보를 여러 곳에 입력하면서 피싱에 둔감해지고 무엇보다 Application이 안전하다는 보장이 없기 때문에 보안에 취약했습니다. OAuth 2.0 OAuth 1.0과 달라진 점 기능의 단순화, 기능과 규모의 확장성 등을 지원하기 위해 만들어졌습니다. https가 필수이기 ..
2020.10.08 -
Nginx
Nginx란 Nginx는 동시 접속 처리에 특화된 웹 서버입니다. Apache보다 동작이 단순하고, 전달자 역할만 하기 때문에 동시접속 처리에 특화되어 있습니다. Nginx는 Apache의 스레드/프로세스 구조와는 다르게 비동기 처리(Event-Drive)방식을 채택하고 있습니다. Nginx의 역할 HTTP 서버 웹 서버의 역할은 HTTP 프로토콜을 기반으로 HTML, CSS, JavaScript와 같은 정적인 데이터를 웹 브라우저에 전송하는 역할을 합니다. 리버스 프록시 클라이언트가 가짜 서버에 요청을 하면, 프록시 서버가 배후 서버로부터 데이터를 가져오는 역할을 합니다. 여기서 프록시 서버가 Nginx, 리버스 서버가 응용프로그램 서버를 의미합니다. 응용프로그램 서버에 리버스 프록시를 두는 이유는 요..
2020.10.08 -
WebSocket
WebSocket WebSocket이란 웹 서버와 브라우저간 실시간 양방향 통신환경을 제공해주는 통신 기술입니다. 클라이언트와 서버간 양방향으로 원할 때 요청을 보낼 수 있으며 stateless한 HTTP 방식에 비해 오버헤드가 적기 때문에 유용하게 사용할 수 있습니다. WebSocket은 다른 HTTP 요청과 마찬가지로 80번 포트를 통해 웹 서버에 연결합니다. HTTP 프로토콜의 버전은 1.1이지만 다음 헤더의 예에서 볼 수 있듯이, Upgrade 헤더를 사용하여 웹 서버에 요청합니다. GET /... HTTP/1.1 Upgrade: WebSocket Connection: Upgrade이후, 여러 TCP 커넥션을 생성하지 않고 하나의 80번 포트 TCP 커넥션을 이용하여 별도의 헤더 등으로 논리적인 ..
2020.10.07 -
Event Loop
Event Loop란 Event Loop는 지속적으로 Call Stack이 비어있는지를 체크합니다. 만약 Call Stack이 비어있다면 Event Queue를 확인합니다. 만약 Event Queue에 Call Stack으로 옮겨져야 하는 데이터가 있다면 옮기고 그렇지 않다면 특별한 일이 발생하지 않습니다. 이처럼 Event Loop는 Call Stack이 비워져 있게 된다면 Event Queue의 데이터를 Call Stack으로 보내는 역할을 합니다. Call Stack Call Stack은 어떤 함수가 현재 실행중이고 다음에는 어떤 함수가 실행될지에 대한 정보를 담고 있는 Stack입니다. 만약 어떠한 함수가 실행된다면, 그 함수는 Call Stack에 추가됩니다. 그리고 만약 그 함수가 또 다른 함..
2020.09.27 -
Local Storage와 Session storage
Local Storage란 Local Storage는 cookie와 같이 클라이언트에 데이터를 저장하는 방법의 하나입니다. Local Storage는 모든 Http 요청에서 데이터를 주고받을 필요가 없습니다. 모든 HTTP 요청에서 데이터를 주고 받지 않기 때문에 클라이언트와 서버간의 전체 트래픽과 낭비되는 대역폭의 양을 줄일 수 있습니다. 그리고 최대 5MB의 정보를 저장할 수 있습니다. Local Storage의 만료는 Javascript 코드를 통해 삭제하지 않으면 자동으로 삭제되지 않습니다. 이 방식은 더 오랜 시간동안 저장해야하는 큰 데이터에 유용합니다. Local Storgae는 문자열 뿐만 아니라 javascript의 primitives와 object도 저장할 수 있습니다. Session S..
2020.09.19 -
MySQL Stored Procedure의 장단점
장점 DB의 보안이 향상됩니다. Stored Procedure는 자체적인 보안 설정 기능을 가지고 있으며, Stored program 단위로 실행 권한을 부여할 수 있습니다. 권한 제어가 가능하며, SQL 인젝션과 같은 기본적인 보안 사고를 피할 수 있습니다. 절차적 기능을 구현할 수 있습니다. SQL 문장에 IF/WHILE과 같은 제어 문장을 사용할 수 있습니다. 어떠한 어플리케이션을 사용하더라도 Stored Procedure를 이용한다면 값을 추출하는데 용이합니다. 개발 업무를 구분하여 진행할 수 있습니다. 순수하게 어플리케이션을 개발하는 조직과 DMBS 관련 코드를 개발하는 조직을 구분해 진행할 수 있습니다. DBMS 코드를 개발하는 조직은 트랜잭션 단위로 데이터베이스 관련 처리를 하는 Stored..
2020.09.17