TCP의 헤더에는 어떤 정보들이 담겨있는걸까?

저번에 HTTP/3는 왜 UDP를 선택한 것일까? 포스팅을 진행하며 TCP에 대해 간단한 언급을 했었지만, 해당 포스팅에서는 기존의 HTTP에서 사용하던 TCP에 어떤 문제가 있었는지에 집중해서 이야기했었지만 이번에는 TCP 자체에 조금 더 집중해서 이야기해보려고 한다.

수학과 함께 복잡한 문제를 단순하게 만들자!

최근 많은 IT 기업들이 개발자를 채용할 때 코딩 테스트를 시행하고 있다. 회사마다 어떤 스타일의 문제를 출제하는지 차이는 있지만, 대부분 간단한 알고리즘 풀이 또는 Codility프로그래머스와 같은 사이트처럼 실무에서 겪을 만한 상황을 살짝 섞어놓는 느낌의 문제를 선호하는 것 같다.

[JS 프로토타입] 프로토타입을 사용하여 상속하기

이번 포스팅에서는 이전 포스팅에 이어, 프로토타입을 사용한 다양한 상속 패턴에 대한 이야기를 해볼까 한다.

사실 자바스크립트에는 상속이나 캡슐화와 같은 개념이 명시적으로 존재하지는 않기 때문에 자바나 C++ 같은 클래스 기반 언어를 사용하던 개발자들은 자바스크립트에 클래스가 없다는 사실에 혼란스러워한다.

[JS 프로토타입] 자바스크립트의 프로토타입 훑어보기

이번 포스팅에서는 자바스크립트(JavaScript)하면 빠질 수 없는 프로토타입(Prototype)에 대해서 한번 이야기해보려고 한다.

프로토타입은 자바스크립트를 ES5 시절부터 사용해오던 분들에게는 매우 익숙하지만 ES6부터 시작하신 분들은 대부분 클래스를 사용하기 때문에 익숙한 개념은 아닐 것이라고 생각한다.

최소 값과 최대 값을 빠르게 찾을 수 있게 도와주는 힙(Heap)

이번 포스팅에서는 대표적인 자료 구조 중 하나인 힙(Heap)에 대한 설명과 구현을 한번 해보려고 한다.

HTTP/3는 왜 UDP를 선택한 것일까?

HTTP/3HTTP(Hypertext Transfer Protocol)의 세 번째 메이저 버전으로, 기존의 HTTP/1, HTTP/2와는 다르게 UDP 기반의 프로토콜인 QUIC을 사용하여 통신하는 프로토콜이다. HTTP/3와 기존 HTTP 들과 가장 큰 차이점이라면 TCP가 아닌 UDP 기반의 통신을 한다는 것이다.

동기(Synchronous)는 정확히 무엇을 의미하는걸까?

이번 포스팅에서는 I/O와 네트워크 등 전반적으로 다양한 모델에서 사용하는 개념인 동기(Synchronous)가 정확히 무엇을 의미하는 것인지, 그리고 동기 방식과 비동기 방식의 차이에 대해서 한번 이야기 해보려고 한다. 그리고 이 두 가지 개념과 많이 혼동되는 개념인 블록킹(Blocking)논블록킹(Non-Blocking)에 대해서도 간단하게 짚고 넘어갈 예정이다.

커밋 히스토리를 이쁘게 단장하자

이번 포스팅에서는 Git의 머지 전략 중 대표적인 3가지인 Merge, Squash and merge, Rebase and merge의 차이에 대해서 한번 이야기해보려고 한다. 이 3가지 머지 전략 모두 브랜치를 머지한다는 목적은 같지만, 어떤 방식을 선택하냐에 따라 커밋 히스토리가 기록되는 방식이 달라지게 된다.

알고 보면 재밌는 객체 지향 프로그래밍, OOP 흝어보기

이번 포스팅에서는 객체 지향 프로그래밍(Object-Oriented Programming), 줄여서 흔히들 OOP라고 부르는 설계 방법론에 대해서 이야기해보려고 한다. OOP는 프로그래밍의 설계 패러다임 중 하나로, 현실 세계를 프로그램 설계에 반영한다는 개념을 기반으로 접근하는 방법이다. OOP는 90년대 초반부터 유명해지기 시작했지만 아직까지도 전 세계의 많은 프로그래머들이 사용하고 있는 설계 패턴 중 하나이기 때문에 알아둬서 나쁠 건 없다.

[JavaScript로 오디오 이펙터를 만들어보자] 나만의 소리 만들기

이번 포스팅에서는 저번 포스팅에 이어 HTML5 Audio API를 사용하여 실제로 오디오 이펙터를 만드는 과정에 대해서 포스팅 하려고 한다. 저번 포스팅에서 이미 이야기 했듯이 Audio API는 여러 개의 노드를 연결하여 오디오의 흐름을 만들어 내는 것을 기본 개념으로 가지고 있고, 이펙터를 만들기 위해 필요한 몇 개의 추상화된 노드들을 기본적으로 제공해주기 때문에 그렇게 어려울 건 없다.

ACK Aamazon Web Service Agile Algorithm Array Asynchronous Atlassian Audio Average Backpropagation Blocking Burn Out Commit Data Driven Data structure Deep Learning ECN Essay Essay Tips Event Loop Express Git Good Programmer Gravity HTTP HTTP/2 HTTP3 Hash Table Heap Hoisting IP JavaScript JavaScript Audio API Jira MFS Machine Learning Memory leak Merge Merge and squash Network NodeJS Non Blocking Notification API OOP Object Oriendted Programming PWA Paypal Progressive Web Application Prototype Rebase Render Optimizing SEO SPA SSR SYN Server Side Rendering Single Page Application Sort Algorithms Sound Engineering Study Synchronous TCP TCP 플래그 TDZ Temporal Dead Zone Tutorial TypeScript UDP V8 Versioning Vue Web Web Push Webpack Writing memory-fs traceroute webpack dev middleware webpack dev server 개발서적 개발자 객체지향프로그래밍 공동집필 공부 궤도 구현하기 글쓰기 나이퀴스트 난수생성알고리즘 네트워크 논리학 논블록킹 누적평균 데이터 기반 의사결정 동기 딥러닝 렌더 최적화 머신러닝 메르센 트위스터 배열 성능 최적화 버전관리 번아웃 부트캠프 블록킹 비동기 비전공 개발자 사운드 엔지니어 서버사이드 렌더링 소프트웨어 개발 방법론 소프트웨어 장인 리뷰 소프트웨어 장인정신 수학 알고리즘 애자일 애자일 프로세스 에세이 역전파 알고리즘 오디오 이펙터 이벤트 루프 자료 구조 자료구조 자바스크립트 정렬 알고리즘 조직문화 좋은 프로그래머 중력 중력 구현하기 철학 커피 한잔 마시며 끝내는 VueJS 컴퓨터 공학 컴퓨터공학 케플러 6요소 케플러 궤도 방정식 코딩테스트 코딩학원 타입스크립트 타입스크립트 인공 신경망 퇴사 튜토리얼 페이팔 평균구하기 프라하 프라하 생활 팁 프로그래밍 프로그래밍서적 프로토타입 프로페셔널 한 달살기 해시테이블 헤더 협업 호이스팅 회고 회고록
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×