전체 글 104

문서여행: 패키지 공식문서에 없는 메서드의 뿌리를 찾아서 / WebSocket, on, 객체지향, 상속

미리 보는 결론: 만약 사용하는 패키지 오브젝트의 메서드나 속성이 해당 공식 문서에 없다면, 그 오브젝트를 정의할 때 상속받은 오브젝트가 존재하나 확인하고 관련 문서를 찾아봅시다. on.. 어디서 온 녀석이지? 노마드코더의 zoom 무료 클론코딩 강의를 수강하던 중이었다. 이 강좌에선 메시지를 주고받기 위해 ws라는 패키지를 이용해 웹소켓 서버를 구축한다. 웹소켓 서버는 on 이벤트리스너를 통해 유저의 접속을 감지한다. 나는 이on에대해 조금 더 자세히 알고 싶었다. 메서드의 반환값이나 감지할 수 있는 이벤트종류등등을 이해한다면 더 다양한 기능을 구현할 수 있기 때문이다. chat gpt에게 webSocket의 on에 대한 질의를 작성하였으나, 서버문제로 먹통이었다. 그래서 웹소켓 서버와 관련된 인터넷 ..

공부하면서 정리하는 HTML 태그: Select (셀렉트)

Select(셀렉트) 태그 개념 이름 그대로 선택목록을 만드는 태그이다. 아래의 드롭다운 리스트가 브라우저가 표현한 셀렉트 태그의 모습이다. HTML 삽입 미리보기할 수 없는 소스 셀렉트 태그는 자신의 내부에 여러 개의 옵션(option) 태그를 포함하는 형식으로 작성한다. ul, ol 태그가 li 태그를 포함하는 것과 같은 구성이다. 위에서 본 드롭다운 리스트의 HTML 코드는 다음과 같다. JavaScript TypeScript HTML 주요 속성 (Attribute)들 disabled: 옵션목록을 비활성화시킨다. 목록을 유저가 보거나 고를 수 없다. 비활성화된 모습 HTML 삽입 미리보기할 수 없는 소스 form: 이 드롭다운 리스트를 연결할 폼을 지정해 주는 속성 폼의 아이디를 적어넣어주면된다. ..

HTML의 Form(폼) 태그가 새로고침을 유발하는 이유: URL 리다이렉션(Redirection)

이 글은 먼저 자바스크립트 코드를 통해 글의 동기를 서술하고, 밑부분에 새로고침이 발생하는 이유를 보여주는 구성을 가지고 있습니다. 이유바로 보기 Form(폼) 태그를 다루는 자바스크립트 코드 밑의 코드는 자바스크립트를 통해 폼의 이벤트를 감지하는 예제의 템플릿이다 코드의 구성은 다음과 같다. 1. 변수: DOM document 오브젝트의 메서드를 통해 폼 태그가 저장되어 있다. 2. 콜백함수: "submit"이벤트가 폼태그에서 발생했을 때 호출된다 3. 이벤트리스너: 1번의 변수에 저장한 폼의 "submit" 이벤트를 감지하는 비동기함수이다. const myForm = document.querySelecotr("form") /**Event Listener는 콜백함수의 첫 인자로 * event 오브젝트를..

파이썬으로 타입체크 해보자: Type hint 아닙니다. (타입힌트아님)

동기 노마드코더의 파이썬 챌린지를 하던 중, 입력받은 숫자를 계산하는 함수를 만들어야 했다. 나는 여기서 함수에 인자로 입력받은 숫자에 대한 타입체크를 수행하고 싶었다. 파이썬은 함수의 입력인자 및 출력 값의 데이터 타입을 확인하는 기능이 있다. 바로 타입힌트(type hint) 가 그것이다. 하지만 이것은 말 그대로 타입 힌트이지 타입체크가 아니다. 아무런 강제성이 없다. 허접한 영문장으로 구글에 파이썬 유니온타입 타입체크를 검색하자 (how to check union type in python?) 스택오버플로우에서는 "typing"이라는 라이브러리를 추천해 주었다. typing 라이브러리 주소 https://docs.python.org/3/library/typing.html typing.Union U..

javascript의 Date모듈의 Month는 0월부터 11월 까지 있다.

Mdn문서 설명: getMonth() 메서드는 지역시간에 근거한 달력을 0-기반 값으로 반환합니다. (숫자 0은 그 해의 첫 달을 의미합니다.) *이글의 작성일자: 2023/03/14 getFullYear은 2023을 잘 반환한다. 다른 메서드 getDate도 오늘이 14일임을 정확히 알려준다. 그런데 getMonth만 시작 숫자가 0을 기반으로 설정되어 있어서 현재 달에 해당하는 숫자보다 1 낮춰서 반환한다. 즉, 2를 반환한다. 당장 콘솔창을 열어서 아래의 코드를 입력해보면 2023/2/14를 얻을 수 있다. const today =new Date(); today.getFullYear() today.getMonth() today.getDate() 비슷한 zero-base 메서드를 찾아보면 getDay..

Queue(큐): 큐는 차례를 기다리는 줄과 같다. /파이썬 리스트로 구현해보기 enqueue, dequeue

큐 요약정리부분 바로가기 파이썬 코드부분 바로가기 자료구조 Queue(큐)에 대한 이해 Queue motivation 큐를 배워야 하는 이유 큐는 한번에 하나의 정보를 입력하거나 출력할 수 있는 자료구조에요. 저장할때에는 제일 뒷부분에 저장하고, 출력할때에는 맨 앞의 정보를 출력해요. 큐의 구조와 동작을 이해하면 컴퓨터 및 프로그래밍 언어의 실행구조에 관한 이해에도 도움이 되어요. 자바스크립트는 비동기(Asynchronous) 함수를 실행하면, 그 함수의 종료를 알리는 콜백을 테스크 큐라는곳에 저장한답니다. 거기에서 태스크(작업)들은 자신의 차례를 기다리게 됩니다. 이벤트 루프가 콜백이 저장된 큐를 확인하고, 콜스택의 작업이 비어있으면 콜백함수를 콜스택으로 옮겨서 실행하게 하지요. 또 컴퓨터 프로세스의 ..

스택(stack)자료구조: 스택은 책더미와 같다. / 파이썬 리스트로 구현해 보기. /push, pop, dynamic array

스택 요약정리 부분 바로가기 파이썬 코드부분 바로가기 자료구조 Stack(스택)에 대한 이해 Stack(스택) motivation: 스택 공부 동기 스택은 데이터를 저장하는 자료구조입니다. 한 번에 하나의 정보를 입력하거나 출력할 수 있어요. 정보의 저장 및 제거는 항상 스택 성분의 마지막위치(최상단)에서 일어나요. 만약 스택을 직접 사용하지 않더라도 구조와 동작을 잘 알아두는 것이 좋습니다. 컴퓨터나 프로그램에서 함수의 실행에 대한 이해에 많은 도움이 되거든요. 대부분의 프로그래밍 언어에서 중첩된 함수를 구현할때, 스택 구조를 이용하고 있어요. 함수가 호출되면 콜 스택에 저장하고, 실행이 완료되면 다시 제거하는 방식입니다.. 이러한 스택의 크기는 정해져있어서, 일정 개수 이상의 함수를 중첩하면 스택이 ..

MDN 문서 여행: fetch()메서드를 이해해보자. /// XMLHttpRequest, Asynchronous, promise, then 그외 무수한 개념들...

목차링크 1.시작: fetch가 뭐야? 2. XMLHttpRequest: 선배님들이 사용한 api통신 오브젝트 3.Promise & then : fetch의 밑바탕 +@ 영단어 resolve 4. Synchronous & Asynchronous:동기와 비동기, Promise의 개발이유 5. 결론: 영상속 코드 이해하기 들어가며.. 이 글은 특정 개발지식을 익히기에 적합한 글이 아닙니다. 문서에 쓰여있는 개념들을 읽으면서 실시간으로 내용을 써넣었기 때문에, 개념의 정돈보다는 흐름에 집중했습니다. 항상MDN 문서를 위키 탐독하듯이 돌아다니면서 공부를 합니다. 인상적인 개념 몇가지만 포스팅으로 남기는것이 늘 아쉬워 공부 과정 전체를 글로 남겼습니다. 시간 넉넉하고 심심하신분만 읽어보시길 바랍니다. 사실 쓰다가..

CSS + HTML + Javascript : 3개의 파일이 필요한 이유. + 작성순서// 프론트엔드 기본지식

일반적으로 하나의 웹페이지를 개발할 때, html, css, 그리고 javascript 세 종류의 파일에 코드를 분리해서 저장한다. html 문서의 구조 사실 스타일을 지정하거나, 브라우저의 동작을 지정할 코드들도 html 문서 내부에 충분히 작성할 수 있다. 그렇다면 대체 왜 개발자들은 css파일과 javascript파일을 따로 분리해서 html 파일에 연결해 주는 방식을 택한 것일까? html 파일 하나에 모두 작성하지 않는 이유! 를 CSS와 javascript 를 통한 html 태그의 조작을 간단히 소개하면서 살펴보겠다. 기술적 이유: 사실은 이렇습니다. CSS (Cascading Style Sheets)? CSS는 HTML와 같은 웹페이지 구성요소의 스타일을 지정하는 언어이다. CSS코드를 HT..