목록분류 전체보기 (184)
이숭간 공부기록
https://programmers.co.kr/learn/courses/30/lessons/42885# 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 문제유형 : 그리디, 투포인터 문제풀이 : 가능한 최대한 많이 담아서 보내야하므로 그리디 나는 큐를 이용해서 풀었다. ( 투포인터 느낌 ) 내림차순 정렬한 큐에서 왼쪽, 즉 가장 큰값부터 (popleft) 보트에 태우고, 더이상 큰값을 태울수 없을때 큐의 오른쪽, 즉 가장 작은값부터(pop) 보트에 태워서 한번 보낼때 가장큰애들과 가..
https://programmers.co.kr/learn/courses/30/lessons/64062 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 문제유형 : 이분탐색 문제풀이 : 이 문제를 보고 이분탐색이라고 판단해야 하는이유 우선 범위가 2억이므로 매우크다 -> 이분탐색을 떠올린다! 어떤 조건을 만족하는 인원수의 최대값을 구해야한다 -> 최적화문제 -> 파라메트릭서치를 이용한다. (어떤 조건에 부합하는 가능한 최대, 혹은 최소 등과같은 문제) 여기서는 k가 주어질때 이 k의 조건을 만족하는 인원수의 최대이므로 인원수를 기준으로 이분탐색을 진행한다. mid명이 징검다리를 건넌다고 할때 가능한가? 에 대한 가설을 검증 ..
둘다 HTTP프로토콜상에서 무언가를 요청할때 사용하는 방식이다. 하지만 둘의 특성과 생겨난 배경은 엄연히 다르므로 제대로 이해하고 기술목적에 맞게 적재적소에 사용해야 한다. GET 언제 사용하는가? 단순히 서버의 데이터를 조회하는 경우 서버의 값이나 상태를 변경하지 않는다. SELECT적 특성 요청 데이터를 어떻게 보내는가? uri에 포함해서 보낸다. (?을 통한 PathVariable) 노출이 쉬워 보안이 필요한 데이터의 요청에선 사용하지 않는게 좋다. 멱등 서버에게 여러번 요청을 하더라도 동일한 응답이 돌아와야 한다는 개념 (안전하다) Ex) 여러번 요청해도 안전하다! 요청이 제대로 수행되지 않았다 하더라도 멱등한 요청은 여러번 그냥 보내서 해결할수있음, 계좌송금(post)과같은경우 안전하지 않으므로..
DNS DNS(Domain Name System)은 사람이 읽을 수 있는 도메인이름을 머신이 읽을 수 있는 IP주소로 변환하는 역할을 한다. 컴퓨터가 서로를 찾을 수 있는 주소가 IP주소인데, 이를 기억하기엔 사람에게 너무 어려움 따라서 사람이 읽기쉬운 문자로 이루어진 주소를 도메인이름이라고 한다. DNS서버가 이름에 대한 요청을 IP주소로 변환하여 어떤 서버에 연결할것인지를 제어한다. 이때 이 요청을 쿼리라고 부른다. DNS를 언제 사용하는가? 브라우저에 URL을 입력하면, 브라우저가 HTTP Request메세지를 만들고 이를 웹서버로 전송하기위해서 OS에게 송신을 의뢰해야하는데 이때 도메인명이아니라 IP주소로 상대를 지정해야한다. 이 과정에서 DNS서버를 통해 도메인명을 IP주소로 바꿔야 상대를 특정..
쿠키와 세션을 알기 이전에 왜 쿠키와 세션이 나왔는지에 대해 이해해야한다. 이를 위해선 HTTP프로토콜의 특징부터 이해해야한다. HTTP프로토콜의 특징 비 연결성 (Connectless) 클라이언트가 request를 서버에 보내고, 서버의 response를 보내면 연결이 끊긴다. 상태유지 X (Stateless) 연결을 끊는순간 서버는 클라이언트의 상태정보를 유지하지 않는다. 쿠키와 세션은 왜 필요한가? HTTP프로토콜의 위와같은 특성으로 인해, 클라이언트와 서버간 상태정보를 저장할 필요가 있는경우 (로그인유지 등) 에 사용한다. 현재 접속한 사용자가 이전에 접속한 사용자와 같은 사용자인지 아닌지를 알 수 있는 방법이 없다. HTTP프로토콜에서 상태를 유지하기위한 기술로 쿠키와 세션을 사용한다. 쿠키와세..

CORS CORS란 Cross Origin Resoucre Sharing으로 Origin(출처)를 교차하여 자원을 공유한다는 뜻이다. 즉 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제입니다. 일반적으로 자바스크립트에서는 Same origin policy (동일출처정책) 보안정책을 가지고 잇어 다른 origin에 접근시 No Access-Control-Allow-Origin Header라는 오류를 노출하게 되어 있다. CORS의 배경 처음 전송되는 리소스의 도메인과 다른 도메인으로부터 리소스가 요청될 경우 해당 리소스는 cross-origin HTTP요청에 의해 요청된다. XMLHttpRequest는 same-origin 정책..