본문 바로가기

분류 전체보기

(351)
HTTP/0.9, 1.0, HTTP/1.1, HTTP/2, 그리고 QUIC 0. 들어가며 HTTP는 OSI 7계층에서 응용 계층에 속해있다. 그렇기 때문에 아래 단계인 전송 계층에 대해서 이해가 필요하다. 전송 계층은 클라이언트가 서버에 신뢰할 수 있는 데이터를 전송하기 위해 필요하다. 전송 계층 아래 단계 물리, 데이터링크, 네트워크 계층만으로 목적지에 데이터를 보낼 수 있디만, 중간에 데이터가 손사오디거나 유실되더라도 이들 계층에서는 아무것도 해주지 않는다. 즉, 데이터가 제대로 전달 되었는지의 역할은 전송 계층에서 해주는 것이다. 1. HTTP/0.9 : GET 메서드 HTTP의 초기 버전은 따로 없었다. 차후에 다른 버전과 구별을 하기 위해 버전 번호를 붙이기 시작할 때가 HTTP/0.9버전 부터이다. 0.9의 요청은 단일 라인으로 구성되며 리소스에 대한 경로로 가능한 ..
HTTP 0. 들어가며 네트워크에 대한 개념과 지식, 동작 원리에 대해서 부족하다는 것을 느끼고 처음부터 공부한다는 생각으로 글을 작성하려고 한다. 1. 프로토콜 프로토콜이란 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙이다. 간단히 예를 들면 '1'과 '2'라는 데이터를 보낼 때도 이진법(컴퓨터는 당연히 이진법)으로 16bit를 사용해서 데이터를 주고 받자라고 미리 약속을 합니다. 그러고 나서 약속한대로 0000 0000 0000 0001 / 0000 0000 0000 0010 를 보내면 이를 받는 쪽에서도 당연히 16bit로 왔다는걸 알고 '1'과 '2'라고 인식하는 것입니다. 2. HTTP (HTTP 프로토콜) HTTP는 Hypertext Transfer Protocol의 약자로..
요기요 위대한 Rookies 5기 온라인 코딩테스트 후기 알고리즘 공부한지 한달하고도 1주일이 지난 기념으로 요기요 루키 히어로 5기 온라인 코딩테스트를 봤습니다! 뭐 당연히 기대는 안하고 경험을 쌓기 위해서 시험을 치루었는데 지문이 전부 영어로 되어있...엥? 아니 무슨 해석하는데 시간을 너무 잡아먹어버린 것 같아요,, 뭐 아무튼 요기요 난이도는 본인 기준에서는 중하 정도? 아무튼 알고리즘 한달차도 나름 원만하게 풀었습니다. 1번 문제에서는 단순 구현 문제였던 거 같은데,,, 아무튼 쉬웠다. 해석하는데 시간이 더 오래걸린 문제였습니다. 프로그래머스 Lv.1 ~ 2 정도 느낌? 2번 문제는 python spacy 라이브러리를 사용한 자연어 처리 관련 문제였습니다. 이 문제의 의도는 새로운 기술 또는 라이브러리를 공식문서를 이용해서 얼마나 빠르게 이해하고 적용해..
[2020 KAKAO BLIND RECRUITMENT] 자물쇠와 열쇠 https://school.programmers.co.kr/learn/courses/30/lessons/60059# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 고고학자인 "튜브"는 고대 유적지에서 보물과 유적이 가득할 것으로 추정되는 비밀의 문을 발견하였습니다. 그런데 문을 열려고 살펴보니 특이한 형태의 자물쇠로 잠겨 있었고 문 앞에는 특이한 형태의 열쇠와 함께 자물쇠를 푸는 방법에 대해 다음과 같이 설명해 주는 종이가 발견되었습니다. 잠겨있는 자물쇠는 격자 한 칸의 크기가 1 x 1인 N x N 크기의 정사각 격자 형태이고 특이한 모양의 ..
[2020 KAKAO BLIND RECRUITMENT] 문자열 압축 https://school.programmers.co.kr/learn/courses/30/lessons/60057?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 "aab..
도메인과 DNS - 이론 1. Domain (도메인) 이란? 도메인은 웹 브라우저를 통해 특정 사이트에 진입을 할 때, IP 주소를 대신하여 사용하는 주소이다. 정확히는 해당 도메인에 매핑되어있는 IP주소를 가져오는 것이라고 보면 된다. 도메인을 사용하면 복잡한 IP주소보다 한눈에 파악하기 쉽다 예를 들면 IP주소가 지번 또는 도로명 주소라면, 도메인 네임은 해당 주소에 위치한 상호 또는 건물명을 의미한다. 2. DNS (Domain Name System) 이란? 네트워크 상에 존재하는 모든 PC는 IP주소를 가지고 있다. 그러나 모든 IP가 도메인 네임을 가지고 있는 것은 아니다. 로컬 PC의 127.0.0.1 IP 주소는 localhost 라는 도메인 네임을 사용할 수 있지만, 그 외의 모든 도메인 네임은 일정 기간동안 대여..
[이코테] 게임 개발 문제 현민이는 게임 캐릭터가 맵 안에서 움직이는 시스템을 개발 중이다. 캐릭터가 있는 장소는 1 X 1 크기의 정사각형으로 이뤄진 N X M 크기의 직사각형으로, 각각의 칸은 육지 또는 바다이다. 캐릭터는 동서남북 중 한 곳을 바라본다. 맵의 각 칸은 (A, B)로 나타낼 수 있고, A는 북쪽으로부터 떨어진 칸의 개수, B는 서쪽으로부터 떨어진 칸의 개수이다. 캐릭터는 상하좌우로 움직일 수 있고, 바다로 되어 있는 공간에는 갈 수 없다. 캐릭터의 움직임을 설정하기 위해 정해 놓은 매뉴얼은 이러하다. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향(반시계 방향으로 90도 회전한 방향)부터 차례대로 갈 곳을 정한다. 캐릭터의 바로 왼쪽 방향에 아직 가보지 않은 칸이 존재한다면, 왼쪽 방향으로 횐전한 다음 왼쪽..
[2019 KAKAO BLIND RECRUITMENT] Lv.1 무지의 먹방 라이브 https://school.programmers.co.kr/learn/courses/30/lessons/42891?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 기본적으로 위와 같은 로직으로 흘러가는데, 본인은 크게 while 문으로 돌려서 종료 지점과 food_times의 인덱스 값이 0인 경우의 if 문 + while 문을 돌려서 네트워크 에러 발생 시 인덱스 위치 값을 반환하도록 하였다. 아마 2중 반복문을 사용해서 시간복잡도가 O(N^2)이기에 효율성 부분에서 문제가 있다고 생각한다. ..