전체 글

전체 글

    [MySQL] 뷰(view) 정리

    데이터베이스 뷰(View)란? DB에서 뷰는 하나 또는 그 이상의 테이블을 조인하여 만든 새로운 가상 테이블을 의미한다. 실제로 테이블을 생성한 건 아니지만, 사용자에게는 실존 테이블과 동일하게 사용된다. (뷰를 가지고 새로운 뷰를 만들 수도 있다.) 이는 주로 특정 정보만 제공하고 싶은 경우나 복잡한 쿼리를 가상 테이블로 만들어 간편하게 활용할 수 있어 업무에서도 자주 이용하는 기능이다. 예를 들어 자세히 설명하자면, 두 개의 테이블이 있다고 가정하자. memberInfo, PaymentHist. 개발자가 회원 별 결제 이력을 조회하고 싶은데, DBA가 회사 규정상 민감한 개인정보는 제공하고 싶지 않은 경우 뷰를 만들어서 제공하면 된다. 테이블 memberInfo에 있는 민감한 개인정보가 담긴 컬럼을 ..

    [MySQL] 내장함수 종류 정리

    집계 함수 COUNT(필드명) --NULL 값이 아닌 레코드 수를 구한다. SUM(필드명) - 필드명의 합계를 구한다. AVG(필드명) - 각각의 그룹 안에서 필드명의 평균값을 구한다. MAX(필드명) - 최대값을 구한다. MIN(필드명) - 최소값을 구한다. select userId, sum(amount) as 'SUM' # as안쓰면 sum(amount)이 컬럼 이름이 되니까 깔끔하게 별칭 사용 from buyTbl group by userid; #그룹핑을 안해주면 sum이 전체를 더해버린다. 그룹을 해줘야 그룹된 id에 맞게 sum을 해준다 select name, height from userTbl where height = (select max(height) from usertbl) or heig..

    DNS 개념 & 동작

    ​DNS (Domain Name System) 란? 도메인 네임 시스템 (Domain Name System, DNS) 은 호스트의 도메인네임 (www.example.com)을 네트워크주소(192.168.1.0)로 변환하거나, 그 반대의 역할을 수행하는 시스템이다. 예를 들면 우리가 자주 접하는 naver.com , google.com 모두 DNS을 가진 DN(Domain Name)이라고 할 수 있다. 이들은 사실 사람이 파악하기 쉽도록 문자열로 변환된 IP이다. 서비스 도메인 주소 IP 주소 다음(Daum) daum.net 203.133.167.81 네이버(Naver) naver.com 223.130.200.104 구글(Google) google.com 142.250.207.14 cmd에서 naver의 ..

    Server Sent Events 정리

    SSE - Server Sent Events 란? SSE는 서버의 데이터를 실시간으로, 지속적으로 Streaming 하는 기술 이다. SSE는 웹 표준으로써 IE를 제외한 모든 브라우저에서 지원되며, IE역시 polyfill을 통해 지원이 가능하다. 기존에는 서버의 변경된 데이터를 가져오기 위해서 페이지 새로고침, 지속적으로 request를 보내는 ajax 폴링, 외부 플러그인 이용 등을 사용해야만 했다. 이외에도 websocket을 사용할 수 있지만 HTTP 통신을 이용하는 것이 아닌 웹소켓만을 위한 별도의 서버와 프로토콜로 통신하기 때문에 구현하는 비용이 많이 든다는 단점이 있다. 하지만 SSE는 기존 HTTP 웹 서버에서 HTTP API 만으로 동작되며 구현도 간단하기 때문에 서버와 프론트엔드 양측..

    Polling / Long Polling / WebSocket / Server Sent Event정리

    서버의 event를 클라이언트로 보내는 4가지 방법 polling 클라이언트가 평범한 http request를 서버로 계속 날려서 이벤트 내용을 전달받는 방식이다. 가장 쉬운 방법이지만 클라이언트가 계속적으로 request를 날리기 때문에 클라이언가 많아지면 서버의 부담이 급증하게 된다. 또한 http request connection을 맺고 끊는것 자체가 부담이 많은 방식이다. 그리고 클라이언트에서 실시간정도의 빠른 응답을 기대하기도 어렵다. polling은 http 오버헤드가 발생한다는 단점이 있다. 하지만 일정하게 갱신되는 서버 데이터의 경우 유용하게 사용할 수 있는 방식이다. (ex. 대시보드 갱신) ※ 참고 Http Overhead 란? 정보의 신뢰성 판단을 위해, 보내지는 헤더 같은 정보 때문..

    Cross Origin Resource Sharing, CORS란?

    문제의 시작 Access to fetch at 'http://서버IP:8080/signup' from origin 'API호출한IP' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled 프론트와의 협업을 위해 AWS에 Spring boot..

    HTTP Overhead 란?

    오버헤드 란? 오버헤드(overhead)가 됐다라는 말은, 처리 시간 및 메모리 등이 추가적으로 사용되는 현상을 말한다. 처리 시간이 추가된다는 것을 예로 들면, A라는 처리를 실행한다면 3초 걸린다고 했는데, 안전성을 고려하여 추가로 B라는 처리를 요청한 결과 처리시간이 10초가 걸렸다고 하자. 그러면, 이 때 오버헤드는 7초 이게 된다. 반대로 7초가 걸리는 B를 개선해 A+B 처리를 한 결과 처리시간이 총 5초가 되었다면, 오버헤드가 5초 단축되었다고 말할 수 있다. HTTP(Protocol) 오버헤드 HTTP(프로토콜) 오버헤드란, 네트워크를 통해 대상으로 라우팅되는 데이터와 함께 전송되어야하는 정보를 말하며, 올바른 대상에 도달하기 위해 전송중인 데이터에 추가로 보내지는 정보라 보면 된다. 이게..

    Access Token & Refresh Token 원리

    Access Token & Refresh Token 이번 포스팅에서는 기본 JWT 방식의 인증(보안) 강화 방식인 Access Token & Refresh Token 인증 방식에 대해 알아보겠다. JWT(Json Web Token)에 대한 내용은 아래 포스팅 참고. JWT 토큰 인증 이란? (쿠키 vs 세션 vs 토큰) Cookie / Session / Token 인증 방식 종류 보통 서버가 클라이언트 인증을 확인하는 방식은 대표적으로 쿠키, 세션, 토큰 3가지 방식이 있다. JWT를 배우기 앞서 우선 쿠키와 세션의 통신 방식을 살펴보 s-y-130.tistory.com Access Token의 문제점과 Refresh token은 왜 필요한가? Access Token 만을 통한 인증 방식의 문제는 만일 ..

    Authentication vs Authorization 차이

    Authentication / Authorization 차이점 보통 우리가 '권한' 이라고 불리우는 것엔 인증(Authentication)과 인가/승인(Authorization) 두가지 단어가 존재하는데, 인증(Authentication) 과 인가/승인(Authorization)은 비슷해 보이지만 엄연한 차이가 존재한다. 인증(Authentication) : 본인이 누구인지 확인 (로그인) 인가/승인(Authorization) : 특정 리소스에 권한이 있는지 확인 (등급 권한) 인증 (Authentication) 인가 (Authorization) 기능 자격 증명 확인 권한 허가/거부 진행 방식 비밀번호, 생체인식, 일회용 핀 또는 앱 보안 팀에서 관리하는 설정 사용 사용자가 볼 수 있는가? 예 아니오 사..

    JWT 토큰 인증 이란? (쿠키 vs 세션 vs 토큰)

    Cookie / Session / Token 인증 방식 종류 보통 서버가 클라이언트 인증을 확인하는 방식은 대표적으로 쿠키, 세션, 토큰 3가지 방식이 있다. JWT를 배우기 앞서 우선 쿠키와 세션의 통신 방식을 살펴보고 이들의 각각 특징과 장단점 그리고 왜 토큰 인증 방식을 사용하지는에 대해 알아보자. Cookie 인증 쿠키는 Key-Value 형식의 문자열 덩어리이다. 클라이언트가 어떠한 웹사이트를 방문할 경우, 그 사이트가 사용하고 있는 서버를 통해 클라이언트의 브라우저에 설치되는 작은 기록 정보 파일이다. 각 사용자마다의 브라우저에 정보를 저장하니 고유 정보 식별이 가능한 것이다. Cookie 인증 방식 브라우저(클라이언트)가 서버에 요청(접속)을 보낸다. 서버는 클라이언트의 요청에 대한 응답을 ..