@Hudi
배움을 글로 정제해 공유하는 것을 좋아하는 개발자입니다.

채팅서비스를 구현하며 배워보는 Websocket 원리 (feat. node.js)

January 27, 2022

본 포스팅에서는 Websocket 의 원리를 배우고, node.js 의 ExpressJS 프레임워크에서 Websocket 서버를 만들어 웹브라우저와 실시간 통신으로 간단한 채팅을 만드는 것을 목표로 한다. 1. Websocket 이란? 1-1. 정의 웹소켓(Websocket) 은 HTTP 와 구분되는 통신 프로토콜이다. RFC 6455 로 국제적으로 표…


ERD (Entity-Relation Diagram) 표기법

January 16, 2022

1. 데이터베이스 설계 단계 데이터베이스 설계는 개념적 모델링 → 논리적 모델링 → 물리적 모델링 세 단계로 진행된다. 개념적 모델링은 Entity 를 도출하고 ERD를 작성하는 단계이다. 논리적 모델링은 ERD 를 사용할 특정 DBMS 의 논리적 자료구조에 맞게 사상 (Mapping) 하는 과정이다. 예를들어 RDBMS 를 사용한다고 하면, ERD를 R…


JAVA Collection Framework (2) - 리스트 (List)

January 14, 2022

본 포스팅에서는 컬렉션 프레임워크 중 List 인터페이스와 그것을 구현한 여러 클래스들의 특징, 메소드 등을 알아본다. 1. Collection 인터페이스 들어가기 앞서 , , 이 구현하는 인터페이스의 주요 메소드들에 대해 짚고 넘어가자. Collection 인터페이스의 모든 스펙을 확인하고 싶다면, Oracle 문서를 확인하자. 메소드 설명 bo…


2021년 회고, Dunning-Kruger Effect

January 05, 2022

Prologue 이렇게 긴 호흡의 글을 작성하기 위해 노트북 커버를 열어본 것은 오랜만일 것이다. 그도 그럴 것이 처음이자 마지막 회고가 2018년이 마지막이니. 그때 회고 제목은 ‘2018년, 나는 어떤 21살이었나.’ 였는데, 벌써 본 회고를 작성하고 있는 2022년의 나는 25살이다. 시간이 참 빠르다는게 체감된다. 올해는 많은 좌절과 한계를 느꼈으…


JAVA Collection Framework (1) - 컬렉션 프레임워크란?

December 24, 2021

본 포스팅에서는 컬렉션 프레임워크의 개요, 종류, 그리고 구현과 상속의 계층적 구조 등에 대해 개괄적으로 짚어본다. 1. Collection Framework 의 개요 컬렉션 프레임워크는 자바 프로그래밍에서 빠질 수 없는 필수적인 요소이다. 컬렉션은 다수의 요소를 하나의 그룹으로 묶어 효율적으로 저장하고, 관리할 수 있는 기능을 제공하는 일종의 컨테이너이…


파이썬 소켓으로 직접 구현하는 SMTP 프로토콜

November 20, 2021

본 포스팅에서는 SMTP 프로토콜의 개략적인 소개와 Telnet 을 사용한 메일 전송 실습, Python 을 사용한 간단한 메일 전송 클라이언트 작성에 대해 다룬다. SMTP은 메일 서버 간 메일을 전송할 때 사용되는 프로토콜로 OSI 모델의 7계층에 해당한다. TCP 위에서 구현되었으며, 25번 포트를 사용한다. 본래 1982년 IETF의 RFC 821…


ngrok - 포트포워딩 없이 외부에 로컬서버 공개하기

November 08, 2021

개발을 하다 보면, 로컬에서 개발 중인 버전을 배포하지 않고 외부에 공개해야할 일이 존재한다. 이를테면 현재 개발중인 기능에 대해 논의해야하는 상황이거나, 모바일에서 테스트하기 위한 상황 등이 있을 것 이다. 또한 Webhook 을 테스트하기 위해 수정사항이 발생할 때 마다 배포하는 것은 고역일 것이다. 물론 현재 개발 중인 장소가 자택이라면, 공유기 설…


[ALG] 이진 탐색 (Binary Search)

September 14, 2021

본 포스트는 저자가 학습하며 작성한 글 이기 때문에 틀린 내용이 있을 수 있습니다. 지적은 언제나 환영입니다. 1. 이진 탐색 (Binary Search) 이진 탐색 (Binary Search) 은 정렬 되어 있는 리스트 에서 특정 값을 찾아내는 알고리즘이다. 오름차순, 내림차순의 여부는 크게 상관없으나 보통의 경우 '오름차순으로 정렬된 데이터' 를 사…


[ALG] 시간복잡도와 빅오 (Big-O) 표기법

September 11, 2021

본 포스트는 저자가 학습하며 작성한 글 이기 때문에 틀린 내용이 있을 수 있습니다. 지적은 언제나 환영입니다. 1. 알고리즘의 비용 계산 특정 문제를 해결하는 알고리즘은 여러가지가 존재할 수 있다. 그 중 가장 최적의 알고리즘을 선택해야하는데, 그 선택의 기준으로 공간 복잡도 (Space complexity) 와 시간 복잡도 (Time complexit…


[ALG] DFS/BFS (깊이/너비 우선탐색)

September 07, 2021

본 포스트는 저자가 학습하며 작성한 글 이기 때문에 틀린 내용이 있을 수 있습니다. 지적은 언제나 환영입니다. 1. 서론 DFS/BFS 는 그래프 자료구조에 기반한 대표적인 '탐색' 알고리즘이다. 그래프 탐색 순서에 따라 DFS 와 BFS 가 구분된다. DFS 와 BFS 를 이해하고 활용하기 위해서는 우선적으로 큐 (Queue), 스택 (Stack) 그…