본문 바로가기

728x90

전체 글

(103)
[네트워크] 음성채팅이 진행되는 과정 [UDP][엄탱] 음성 채팅은 어떻게 진행되는 것일까요? 음성통신에 대해서 알아보겠지만, 원리는 문자 채팅이든 화상 채팅이든 다 같습니다. 단지, 어떻게 입력을 받고 어떻게 출력하는지에 대한 차이일 뿐이라고 생각합니다. 채팅은 데이터의 통신이고 이것은 네트워크 통신이기 때문에 네트워크 지식도 알아두면 좋습니다. 결론만 먼저 말하자면, 문자 채팅이든 음성 채팅이든 화상 채팅이든 A라는 유저가 채팅을 하면, 데이터가 전기신호로 변경되고 전기 신호는 데이터로 변경되어 서버로 전송되고 서버는 유저 A와 같은 채팅방에 있는 유저 B, 유저 C… 에게 데이터를 보내주게 됩니다. 순서대로 한눈에 보기 쉽게 정리를 해보겠습니다. 유저 A가 채팅을 입력한다. 입력한 데이터는 전기신호로 변경되어 서버로 보내지고 서버에서 다시 데이터로 변경..
[TypeScript] 타입스크립트를 왜 사용할까? [엄탱] 언제부턴가 많은 기업에서 자바스크립트 대신 타입스크립트를 사용하고 있습니다. 도대체 왜 그런 걸까요? 타입스크립트가 나온 배경을 알아보기 위해선 자바스크립트가 어떤 불편함이 있었는지를 알 수 있으면 쉽게 알 수 있을 것이라고 생각합니다. 아무래도 자바스크립트의 문제점을 해결하기 위해 나온 게 타입스크립트이기 때문입니다. 그렇다면, 자바스크립트가 어떤 불편함이 있었길래 상위집합인 정적 타입을 제공하는 타입스크립트를 사용하는 걸까요? 인터프리터 언어 vs 컴파일 언어 자바스크립트는 동적 타입 언어이며, 인터프리터 언어이고 타입스크립트는 정적 타입 언어이며, 컴파일 언어입니다. 여기서 잠깐! 인터프리터 언어와 컴파일 언어를 간단히 알아보고 갑시다. 인터프리터와 컴파일러는 한마디로 번역가라고 생각하면 좋습니다...
[컴퓨터 과학] 컴파일러와 인터프리터 - 고급 언어 번역기 (용어 설명) 컴파일러와 인터프리터 컴파일러와 인터프리터 누구냐 너네들은?? 우리가 프로그래밍 언어를 작성할 때는 보통 가독성이 좋은 고급 언어로 작성을 합니다. 이러한 고급 언어를 기계어로 번역시켜 주는 역할을 하는 것이 바로 컴파일러와 인터프리터입니다. 고급 언어: 사람의 언어와 가까운 언어 - C, C++, C#, Java, JavaScript 등등 (좋고 나쁘고의 의미 아님) 저급 언어: 기계의 언어(기계어)와 가까운 언어 - 어셈블리어 (역시나 좋고 나쁘고의 의미 아님) 기계어: 1과 0으로 이루어진 CPU가 해석할 수 있는 유일한 언어 어셈블리어: 기계어를 가독성 좋게 영어로 번역한 언어 자세한 설명 보러 가기 즉, 컴파일러와 인터프리터는 고급 언어를 기계어로 번역하는 번역기인 셈입니다. 제가 외국인과 소통..
[JavaScript][강력 추천] slice(), splice() [엄탱][배열 내장함수#5] 해당 글은 기존에 작성한 JavaScript 글 제목이 변경되지 않아 다시 올리게 된 글입니다. 오늘은 JS 배열 내장함수 slice, splice에 대해서 준비해 봤습니다. 하루에 계획한 것을 하기 위해서 하루에 하나의 개념만 다루려고 했는데요. slice와 splice는 같이 다뤄야 할 것 같아서 같이 준비했습니다! 이 글을 보시면 slice splice에 대해서 알고 싶은 분들 확실하게 이해하고 주의사항도 알아갈 수 있습니다. 꼭 보시길 추천 드립니다. 자! 그럼 시작하겠습니다! slice, splice 간단 한 줄 정리 slice: 배열의 원하는 시작점부터 원하는 마지막 시점까지 값에 대한 얕은 복사본을 새로운 배열 객체로 반환합니다. 원본 배열은 바뀌지 않습니다. (주의할 점! 각각의 값은 얕은..
[데이터베이스] 데이터베이스란? [엄탱] 데이터란? 데이터 베이스를 알아보기 전에 데이터란 무엇인지 알아보겠습니다. 데이터는 사전적 의미로 “이론을 세우는 데 기초가 되는 사실. 또는 바탕이 되는 자료”, “관찰이나 실험, 조사로 얻은 사실이나 정보”, “컴퓨터가 처리할 수 있는 문자, 숫자, 소리, 그림 따위의 형태로 된 정보”라고 되어있습니다. 사전적 의미에는 “사실”, “자료”, “정보”, “문자”, “숫자”, “소리”, “그림” 등등 다양하게 표현되는 것 같습니다. 사실 데이터라는 말을 어떻게 해석하는지는 사람의 관점에 따라 다를 수 있다고 생각합니다. 저는 데이터를 어떻게 표현하면 좋을까 생각을 해봤더니, “모든것”이라는 단어가 계속 머릿속에 지배하고 있었습니다. 데이터는 눈에 보이는 모든 것이 아닐까요? 그런 의미로 세상은 컴퓨터와 ..
[프로그래머스] 테이블 해시 함수 Lv2 JAVA [정렬][엄탱] 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 완호가 관리하는 어떤 데이터베이스의 한 테이블은 모두 정수 타입인 컬럼들로 이루어져 있습니다. 테이블은 2차원 행렬로 표현할 수 있으며 열은 컬럼을 나타내고, 행은 튜플을 나타냅니다. 첫 번째 컬럼은 기본키로서 모든 튜플에 대해 그 값이 중복되지 않도록 보장됩니다. 완호는 이 테이블에 대한 해시 함수를 다음과 같이 정의하였습니다. 해시 함수는 col, row_begin, row_end을 입력으로 받습니다. 테이블의 튜플을 col번째 컬럼의 값을 기준으로 오름차순 정렬을 하되, 만약 그 값..
[프로그래머스] 택배 배달과 수거하기 Lv2 JAVA [KAKAO][DP][STACK][엄탱] 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 당신은 일렬로 나열된 n개의 집에 택배를 배달하려 합니다. 배달할 물건은 모두 크기가 같은 재활용 택배 상자에 담아 배달하며, 배달을 다니면서 빈 재활용 택배 상자들을 수거하려 합니다. 배달할 택배들은 모두 재활용 택배 상자에 담겨서 물류창고에 보관되어 있고, i번째 집은 물류창고에서 거리 i만큼 떨어져 있습니다. 또한 i번째 집은 j번째 집과 거리 j - i만큼 떨어져 있습니다. (1 ≤ i ≤ j ≤ n) 트럭에는 재활용 택배 상자를 최대 cap개 실을 수 있습니다. 트럭은 배달할 재..
[컴퓨터 과학] HTTP의 진화 #3 [HTTP/1.1과 HTTP/2.0] HTTP/1.1에서의 문제점 HTTP/1.1은 많은 부분 개선이 되었지만, 여전히 문제가 있습니다. 네트워크에서 같은 큐에 있는 패킷이 그 첫 번째 패킷에 의해 지연될 때 발생하는 성능 저하 현상 HOL Blocking 문제, HTTP/1.1 헤더에 쿠키 등 많은 메타데이터가 들어 있고 압축이 되지 않아 무거운 헤더 구조 문제와 같은 문제를 해결해서 나온 버전이 HTTP/2.0입니다. HTTP/1.x와 HTTP/2.0 차이점 HTTP 요청 응답 단위 멀티플렉싱 서버 푸시 헤더 압축 HTTP/2.0은 HTTP/1.x보다 지연 시간을 줄이고 응답 시간을 더 빠르게 할 수 있으며 멀티플렉싱, 헤더 압축, 서버 푸시, 요청의 우선순위 처리를 지원하는 프로토콜입니다. HTTP 요청 응답 단위 HTTP/1.1에서는..

728x90