URL을 웹 브라우저의 주소창에 입력한다. 웹 브라우저가 URL을 해석 후 문법에 맞지 않는다면 검색엔진을 이용해 검색한다. 문법에 맞으면 URL의 호스트 부분을 인코딩한다. HSTS(HTTP Strict Transport Security) 목록을 확인하고 있으면 HTTPS로, 없다면 HTTP로 요청한다. DNS(Domain Name Server) 조회 브라우저/로컬 캐시를 확인해서 도메인에 해당하는 IP가 있는지 확인한다. 없다면 OS에게 DNS 서버에 요청을 지시 DNS 서버는 해당 도메인에 해당하는 IP를 돌려준다 (HTTP 요청) TCP 3-way handshake과정을 통해 연결을 설정한다. 클라이언트가 서버에게 연결 요청 (SYN 패킷) 서버가 클라이언트에게 요청을 수락하고 연결을 설정한다는 ..
분류 전체보기
이벤트 버블링과 캡처링 이벤트 위임에 대해 알려면 이벤트 버블링과 이벤트 캡처링의 동작 방식을 선수지식으로 알고있어야 한다. 이벤트 버블링 이란? 하위 엘리먼트에 이벤트가 발생할 때 그 엘리먼트부터 상위요소 까지 이벤트가 전달되는 방식이다. 이벤트 캡처링 이란? 하위 엘리먼트에 이벤트 핸들러가 있을 때 상위 엘리먼트부터 이벤트가 발생하기 시작해서 하위 엘리먼트까지 이벤트가 전달되는 방식이다. 예시를 보자 예시 document.querySelector('li').addEventListener('click', () => console.log('li 클릭')); document.querySelector('ul').addEventListener('click', () => console.log('ul 클릭'));..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/154538?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 처음 문제를 보고 dfs나 bfs를 이용해 문제를 풀이할까 생각했지만, 제한 사항을 보면 x와 y의 크기가 최대 1,000,000까지인걸 보면 시간복잡도를 생각해 시간초과 오류를 고려해 이전 계산 결과를 이용하는 DP를 이용해 풀기로 했다. 동작 시간을 줄이기 위해 for문에서 해당 칸이 -1인 곳은 건너 뛰고 다음 동작을 하게 해준..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 이 문제의 제한사항을 보면 매개변수로 주어지는 topping의 길이가 1,000,000까지 인걸 볼 수 있다. 이는 slice() 메서드나 중첩 for문을 이용할 경우 시간복잡도 O(n)으로 인해 시간초과 에러가 날 수있다. 종합하자면, 이 문제는 시간복잡도 O(n) 최적화 문제인 것이다. 그렇다면 이 문제는 Set()과 slice를 함께 이용해 풀이한는 방식은 안된다..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 정규식 사용이 활약하는 문제이다. (\D+)는 숫자가 아닌 것 => 문제에서는 -와 같은 특수문자까지 포함해야 한다. (\d+)는 숫자인 것 => 중간에 숫자로 구성된 부분 뒤에 파일 형식(TAIL)은 파일명으로만 정렬해야되므로 고려안해도 된다. match메서드를 이용해 ['img12', 'img', '12', index: 0, input: 'img12.png', gro..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/42584# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 stack을 이용해 풀이를 진행했다. 문제는 각 가격이 언제까지 떨어지지 않는가를 측정하는 문제인데, 떨어지는 기준은 해당 가격보다 아래로 내려가는 것이다. 스택에 떨어지지 않는 가격의 인덱스를 담고, 이후에 떨어지게 되면 stack의 마지막 요소부터 빼줘서 기간을 계산한다. 위의 과정을 거치고도 stack에 남아있는 수들은 한번도 떨어지지 않은 가격이므로 가격 배열의..