CS
Cross-Origin Resource Sharing : 교차 출처 리소스 공유
동일 출처 정책에 의해 다른 출처의 데이터와 소통할 수 없는 문제가 생긴다. 다만 우리는 항상 같은 출처의 데이터만 이용할 수는 없다. 내가 소통하는 실제 서버의 도메인 네임이 다를수도 있고, 혹은 아예 다른 서버와 소통하는 경우도 많을 것이다. 이때 필요한 것이 CORS이다. CORS는 출처가 다른 경우에도 데이터의 교환을 하게 해준다. 이는 HTTP헤더를 추가함으로써 동작한다. 아래는 HTTP헤더를 통해서 CORS 동작이 작동되는 한 예시이다. const xhr = new XMLHttpRequest(); const url = 'https://bar.other/resources/public-data/'; xhr.open('GET', url); xhr.onreadystatechange = someHand..
Same-Origin Policy : 동일 출처 정책
만약 내가 만든 서버에서 나가는 데이터를 아무 사람이나 받게된다면 큰 문제가 생길수 있다. 반대로 아무 사람이 내 서버에 데이터를 전송해도 큰 문제가 생길 것이다. 따라서 출처가 확실한, 믿을만한 사람과 데이터를 교환해야만 한다. 물론 서버에서도 이런 보안과정을 처리하지만, 브라우저단에서도 이를 처리하는 큰 원칙이 있다. 그것이 바로 동일 출처 정책이다. 동일 출처 정책은 스크립트 사이에서 데이터를 전달할 때 중요하게 작용하는 보안 방식인데, 말 그대로 출처가 동일한 사람끼리만 데이터를 전달하게 해준다. 여기서 말하는 출처는 도메인 네임이다. http://store.company.com/dir/page.html 을 기준으로 하여 출처의 동일 여부를 판단한 결과는 아래와 같다. URL 결과 이유 http:..
CSR과 SSR의 차이
현대 대부분의 프론트 프레임워크들은 SPA를 만드는데 초점이 맞춰져 있다. 그 이유야 SPA가 MPA에 비해 더 좋은 사용자 경험을 전달해주기 때문일 것이다. 결국 우리가 필요한 웹사이트는 HTML이 보여주는 것인데, 이런 HTML을 사용자 측에서 렌더링하느냐 서버에서 렌더링하느냐로 CSR, SSR이 나뉜다. 1. CSR SPA는 기본적으로 CSR로 이루어지는데, 이는 SPA의 작동원리 때문이다. 1. SPA는 처음에만 서버에서 CSS, HTML, JS를 받는다. 2. 이 파일들을 이용하여 렌더링을 진행한다. 3. 그 후에는 데이터만 가져온다. 이는 처음에 가져온 JS를 통해 받아온 데이터를 클라이언트에서 처리하기 때문이다. 따라서 처음 CSS, HTML, JS를 받아오는 과정은 오래 걸리지만, 그 후에..
프로그래머스 : 가장 먼 노드 - javascript
https://programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 문제 설명 더보기 문제 설명 n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하..
프로그래머스 : 신고 결과 받기 - javascript
https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 문제 설명 더보기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일..
git-reset : 되돌리기
git 을 사용하다 여러가지 이유로 뒤에서 작업하던 버전으로 돌아가야 할 때가 있다. 오류가 일어났을 수도 있고 이전 버전에서 분기를 해야할 수도 있고 혹은 새 버전을 어떤 이유로든 사용하지 않을 수도 있을 것이다. 그럴때 사용하는 것이 git reset이다. git reset은 이전에 만들어진 git log 로 이동하여 작업을 수행할 수 있게 해준다. 먼저 git log를 통해 commit 기록을 보면 다음과 같다. 가장 위 버전이 최신 commit이므로 바로 전 commit으로 이동하는 경우를 보겠다. git reset은 크게 보면 git reset {commit log} git reset --soft {commit log} git reset --hard {commit log} 의 3가지 버전이 있다..
프로그래머스 : 거리두기 확인하기-javascript
https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 문제 설명 더보기 문제 설명 개발자를 희망하는 죠르디가 카카오에 면접을 보러 왔습니다. 코..
네트워크 1.2 웹 서버의 IP주소를 DNS 서버에 조회한다.
* 성공과 실패를 결정하는 1%의 네트워크 원리를 정리한 글입니다. 1.2 웹 서버의 IP 주소를 DNS 서버에 조회한다. 1. IP 주소의 기본 브라우저는 URL을 해독, HTTP 메시지를 만들지만, 이를 네트워크에 송출하는 기능은 없다. 따라서 OS가 메시지를 웹 서버에 송출한다. 이때 메시지를 웹 서버에 보내기 위해 도메인을 IP로 변환한다. TCP/IP 서브넷이란 작은 네트워크를 라우터로 연결하여 자체 네트워크를 만드는 것 따라서 서브넷 주소 → 호스트 주소 로 주소가 이어지며 이 두 개를 합친 것을 IP 주소라 한다. 따라서 IP 주소를 찾을때도 클라이언트 → 수신 서브넷 → 수신 라우터 → 허브 → 송신 라우터 → 송신 서브넷 → 서버 로 움직임 넷마스크 IP 는 32비트로 구성되어 있지만(I..