분류 전체보기 117

[인터넷] 브라우저와 그 작동 원리

브라우저란? 브라우저는 사람들이 가장 많이 사용되는 소프트웨어입니다. 인터넷 익스플로러, 크롬, 파이어폭스, 사파리 등 브러우저를 통해 우리는 주소창에 서버 도메인을 입력하여 손쉽게 인터넷 서비스를 이용합니다. 브라우저의 주요 기능은 사용자가 선택한 자원을 서버에 요청하고 이를 화면에 표시해주는 것 입니다. 여기서 자원은 보통 HTML 문서를 뜻하지만 PDF나 이미지 등의 다른 형태일 수도 있습니다. 사용자는 URI(Uniform Resource Identifier)에 의해 정해진 자원의 주소를 이용해서 요청할 수 있습니다. 브라우저의 기본 구조 우리가 사용하는 브라우저는 다음과 같은 요소들로 구성되어 있습니다. 사용자 인터페이스 - 사용자가 접근할 수 있는 영역으로, URI를 입력하는 주소 표시줄, 이..

[인터넷] HTTP란?

HTTP (HyperText Transfer Protocol) 서버와 클라이언트가 인터넷에서 데이터를 주고 받기 위한 프로토콜입니다. HTTP 동작 방식 HTTP는 서버 / 클라이언트 모델을 따릅니다. 클라이언트가 서버에 요청을 보내면 서버는 요청에 맞는 응답을 클라이언트에게 보냅니다. connect: 클라이언트가 원하는 서버에 접속 request: 클라이언트가 서버에게 원하는 요청을 보냄 response: 서버가 요청에 대한 결과를 클라이언트에게 보내고 응답 close: 응답이 끝나면 서버와 클라이언트 연결 종료 (Stateless) HTTP 특징 TCP/IP를 이용하는 응용 프로토콜이다. 비연결성 프로토콜이다. 따라서 클라이언트의 이전 상태를 서버가 알 수 없다는 단점이 있다. (이를 해결하기 위해 ..

[인터넷] - 인터넷의 작동 원리

인터넷이 무엇인지는 다들 알고 있을거라 생각합니다. 그렇다면 우리가 사용하는 인터넷이 어떻게 구성되어 있으며 어떻게 동작하는지에 대해서 알아보도록 하겠습니다. TCP/IP TCP/IP는 컴퓨터와 컴퓨터간의 통신을 위한 규약으로 정의할 수 있습니다. 2개의 프로토콜로 이루어져있으며 IP 프로토콜 위에 TCP 프로토콜이 놓여있습니다. IP 네트워크상 컴퓨터의 고유 주소입니다. 192.168.2.1 같은 형식의 총 4바이트로 이루어져 있습니다. TCP 클라이언트와 서버간 데이터를 신뢰성있게 전달하기 위해 만들어진 프로토콜입니다. 데이터 교환을 안정적으로 순서대로 처리할 수 있게하여 에러를 방지합니다. 인터넷이란, 각 컴퓨터들간 TCP/IP 통신 프로토콜을 이용하여 서로 데이터를 주고 받도록 구성된 네트워크입니..

Django REST API 서버 만들기

Restful API 란? Representational State Transfer의 약자 Rest로 소프트웨어 프로그램 아키텍처의 한 형식을 의미합니다. 자원을 이름으로 구분하여 자원의 상태(정보)를 주고 받는 모든 것을 의미합니다. HTTP 프로토콜을 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 입니다. REST 구성 1. 자원 (Resource) - URL - HTTP url을 활용한 고유한 ID로 구분합니다. 2. 행위 (Verb) - HTTP Method - HTTP 프로토콜의 GET, POST, PUT, DELETE 3. 표현 (Representations) - Client가 자원의 정보에 대한 조작을 요청하면 Server는 이에 대응하는 Representation을 보냅니다...

머신러닝 기본

데이터 준비 모델을 학습시키기 위해선 좋은 데이터 셋이 필요합니다. 좋은 데이터 셋을 확보한 뒤 여러 feature engineering을 거쳐 최종 데이터 셋 준비가 됬다면 이제 데이터 셋을 학습 / 검증 / 평가 3 그룹으로 나누어야 합니다. 여기서 학습 세트 (Training Set)이 모델이 직접 학습하는데 사용될 데이터이며 검증 세트 (Validation Set)은 모델의 학습 과정에서 하이퍼 파라미터 등 모델의 성능 향상 및 최적화를 위해 검증용으로 사용됩니다. 마지막으로 평가 세트 (Test Set)은 학습이 완료된 모델의 최종 성능을 평가하는데 사용됩니다. 총 데이터 셋의 양에 의해서 3 그룹의 비율을 정하게 되는데 보통 아래의 기준으로 나누어 사용되고 있습니다. 작은 데이터 셋 (몇 만개..

AI / 머신러닝 / 딥러닝

Artificial Intelligence 인간의 학습능력, 추론능력, 지각능력을에 인공적으로 구현하려는 컴퓨터과학의 세부분야 - 위키백과 A program that can think like human or act rationally - Russell & Norvig 가장 먼저 연구가 시작된 분야로 머신러닝과 딥러닝을 포함하는 가장 폭 넓은 분야라고 할 수 있습니다. Russell 교수님은 다음 4가지 관점으로 AI를 정의하였고 각 관점에서의 AI를 해석하면 다음과 같습니다. Acting Humanly Turing Test: 테스터는 컴퓨터와 사람에게 동일한 질문에 대한 답을 듣고 컴퓨터와 사람을 구분할 수 있는가? 즉, 사람같이 행동(대답)함으로 이를 인공지능이라고 정의할 수 있습니다. Thinkin..

github issue solve

"please use a personal access token instead." 로컬에서 코딩을 한참 하다가 내 깃헙 레포에 연결하려고 하니 실패.. 아래와 같은 오류가 발생했습니다. 확인해보니 password가 아닌 personal access token을 사용하라고 하는데 최근에는 개인 github은 거의 사용을 안하고 회사에서 bitbucket만을 사용하다 보니.. 당황해서 비밀번호 바꿔보고 하다가 해당 글을 참조해서 token 발급 받은 뒤 문제 해결. "error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8)" 그리고 나서 작업한 코드를 push 하려다가 또 아래와 같은 오류 발생 ㅠ stackoverfl..

[카카오] 2020 신입 개발자 블라인드 채용 1차 코딩 - 가사 검색

정확성과 효율성 테스트를 모두 통과해야 합니다. 정확성 테스트는 쉽게 통과할 수 있지만 효율성은 끝내 통과하지 못하고 다른 코드들을 참조했습니다. 결론적으로 Trie 자료 구조에 대해서 알고 있어야 수월하게 풀이가 가능한 문제입니다. Trie 자료 구조에 대해선 따로 정리하도록 하겠습니다. 아래 코드는 유튜브 풀이를 참조한 코드 입니다. 설명을 차근차근 해주셔서 참조하시면 많은 도움이 될 듯 합니다. class Trie: def __init__(self): self.node = dict() self.count = 0 def insert(self, char): curr = self for s in char: curr.count += 1 if s not in curr.node: curr.node[s] = T..

카테고리 없음 2021.08.30

[카카오] 2020 신입 개발자 블라인드 채용 1차 코딩 - 괄호 변환

올바른 괄호 / 균형잡힌 괄호 2가지를 체크하는 함수를 각각 구현한 뒤 문제에서 설명하는 변환 과정 1 ~ 4를 구현 하면 됩니다. 이때 재귀 부분만 신경쓰면 큰 어려움은 없을 듯 합니다. def isbalanced(s): flag = 0 for c in s: if c == '(': flag += 1 elif c == ')': flag -= 1 if flag == 0: return True else: return False def iscorrect(s): stack = [] for c in s: if len(stack) == 0: stack.append(c) else: if c == '(': stack.append(c) elif c == ')': if len(stack) == 0 or stack.pop(..