본문 바로가기

전체 글63

TypeScript는 퇴출 될까? Issue 타입스크립트가 큰 프로젝트들에서 버려지면서 퇴출되는 게 아닌가 하는 논란이 떠오르고 있습니다. 제가 평소에 좋아하던 채널인 fireship에서 "Big projects are ditching TypeScript… why?"라는 영상이 업로드되면서 알게 된 내용을 정리해 보겠습니다. Big projects are ditching TypeScript… why? 타입스크립트 논란은 초창기 부터 있었지만 대표적으로 2017년 자바스크립트 개발자 중 유명한 Kent C. Dodds라는 개발자가 타입스크립트를 사용하는 사람들을 비판하는 트윗을 올린 적이 있었습니다. Kent C. Dodds는 최근에 항복하고 타입스크립트의 편이 되었지만 hotwired/turbo의 개발자인 David Heinemeier .. 2023. 9. 20.
[자료구조] 큐 Queue 개념 | js 구현 Queue의 특징 1. FIFO (First In First Out) 먼저 들어간 데이터가 제일 처음에 나오는 선입선출의 구조를 가지고 있습니다. 2. 데이터는 하나씩 넣고 뺄 수 있습니다. Queue 자료구조는 데이터가 아무리 많이 있어도 하나씩 데이터를 넣고, 뺍니다. 한꺼번에 여러 개를 넣거나 뺄 수 없습니다. 3. 두 개의 입출력 방향을 가지고 있습니다. Queue 자료구조는 데이터의 입력, 출력 방향이 다릅니다. 만약 입출력 방향이 같다면 Queue 자료구조라고 볼 수 없습니다 js 코드 구현 class Queue { //가장 앞에 있는 요소를 front, //가장 뒤에 있는 요소를 rear 라고 했을 때 //queue constructor 생성 constructor() { this.storag.. 2023. 9. 14.
[자료구조] Hash Table Hash Table의 정의 hash table이란 해시함수(hash function)를 사용하여 변환한 해시(hash)를 색인(index)으로 삼아 키(key)와 데이터(value)를 저장하는 자료구조입니다. 이 해시테이블은 쉽게 핸드폰으로 통화를 하기 위해, 단축번호를 설정하여 사용하는 것과 같다고 생각하면 됩니다. 김코딩 , 010-1234-5678 , 단축번호 : 1이라는 사람에게 전화를 걸기 위해 미리 사용자가 저장한 단축번호 : 1을 누르면 010-1234-5678 번호로 바로 통화를 할 수 있습니다. 이 과정처럼, 필요한 데이터의 키(key)를 해시함수를 사용해 별도의 해시(hash)로 바꿔 주고, 해당하는 데이터(value)를 함께 저장하는 자료구조입니다. Hash Table의 구조 키(ke.. 2023. 9. 14.
[자료구조] 스택 Stack 개념 | js 구현 Stack의 특징 1. LIFO(Last In First Out) 먼저 들어간 데이터는 제일 나중에 나오는 후입선출의 구조를 가지고 있습니다. 2. 데이터는 하나씩 넣고 뺄 수 있습니다. Stack 자료구조는 데이터가 아무리 많이 있어도 하나씩 데이터를 넣고, 뺍니다. 한꺼번에 여러 개를 넣거나 뺄 수 없습니다. 3. 하나의 입출력 방향을 가지고 있습니다. Stack 자료구조는 데이터의 입출력 방향이 같습니다. 만약, 입출력 방향이 여러 개라면 Stack 자료구조라고 볼 수 없습니다. js 코드 구현 class Stack { // stack constructor를 생성합니다. constructor() { this.storage = {}; this.top = -1; } // stack의 사이즈를 구합니다... 2023. 9. 14.
[코테] 콜라 문제 Lv. 1 (67%) 문제 설명 오래전 유행했던 콜라 문제가 있습니다. 콜라 문제의 지문은 다음과 같습니다. 정답은 아무에게도 말하지 마세요. 콜라 빈 병 2개를 가져다주면 콜라 1병을 주는 마트가 있다. 빈 병 20개를 가져다주면 몇 병을 받을 수 있는가? 단, 보유 중인 빈 병이 2개 미만이면, 콜라를 받을 수 없다. 문제를 풀던 상빈이는 콜라 문제의 완벽한 해답을 찾았습니다. 상빈이가 푼 방법은 아래 그림과 같습니다. 우선 콜라 빈 병 20병을 가져가서 10병을 받습니다. 받은 10병을 모두 마신 뒤, 가져가서 5병을 받습니다. 5병 중 4병을 모두 마신 뒤 가져가서 2병을 받고, 또 2병을 모두 마신 뒤 가져가서 1병을 받습니다. 받은 1병과 5병을 받았을 때 남은 1병을 모두 마신 뒤 가져가면 1병을 또 받을 수 있.. 2023. 8. 31.
마크다운 문법 정리 마크다운 이란? 마크다운을 사용하면 쉬운 문법으로 텍스트를 보기 쉽게 정리할 수 있는 언어입니다. 깃허브에서 README.md 파일을 작성하면 레포지터리의 메인 화면에 노출되는데 .md라는 확장자가 마크다운으로 작성된 파일입니다. VSCode를 사용하는 경우 Markdown All in One이라는 확장 프로그램을 설치하면 여러 도움을 받을 수 있습니다. ctrl + shift + x 키로 마켓플레이스로 들어간 뒤, markdown을 검색해서 설치할 수 있습니다. 간단 마크다운 문법 정리 1.# (제목1) (띄어쓰기 필수) 제목1 2.## (제목2) 제목2 3.### (제목3) 제목3 4. 1. (순서 있는 목록) 아이템1 아이템2 아이템3 5. - (순서 없는 목록) 아이템 아이템 아이템 6. ** (.. 2023. 8. 29.
[코테] 옹알이 (1) Lv. 0 (32%) 문제 설명 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ babbling의 길이 ≤ 100 1 ≤ babbling[i]의 길이 ≤ 15 babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다. 즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다. 문자열은 알파벳 소문자로.. 2023. 8. 27.
[코테] 정수를 나선형으로 배치하기 Lv. 0 (45%) 문제 설명 양의 정수 n이 매개변수로 주어집니다. n × n 배열에 1부터 n^2 까지 정수를 인덱스 [0][0]부터 시계방향 나선형으로 배치한 이차원 배열을 return 하는 solution 함수를 작성해 주세요. 제한사항 1 ≤ n ≤ 30 입출력 예 n result 4 [[1, 2, 3, 4], [12, 13, 14, 5], [11, 16, 15, 6], [10, 9, 8, 7]] 5 [[1, 2, 3, 4, 5], [16, 17, 18, 19, 6], [15, 24, 25, 20, 7], [14, 23, 22, 21, 8], [13, 12, 11, 10, 9]] 입출력 예 설명 입출력 예 #1 예제 1번의 n의 값은 4로 4 × 4 배열에 다음과 같이 1부터 16까지 숫자를 채울 수 있습니다.행 .. 2023. 8. 27.
os.system() 실행 경로에 띄어쓰기가 있어서 생기는 오류 상황 현재 실행 중인 애플리케이션에서 다른 파일을 실행하는 코드는 자주 쓰이는 편입니다. 평소에 os.system("start 나의앱.exe")과 같은 방식으로 사용하였는데 문제가 발생했습니다. # 기존에 쓰던 외부 파일을 실행하는 코드 os.system("start 나의앱.exe") 원인 분석 타입이나 한글 경로의 문제는 아니었고, 실행하려는 파일의 경로 중에 띄어쓰기가 포함되면 파일을 찾지 못하는 문제였습니다. 예를 들어, "사용 법.txt"라는 파일을 실행할 경우 띄어쓰기의 앞부분 까지만 인식하고 에러 메시지가 뜹니다. subprocess.call 방식을 사용하라는 내용이 많았지만 실행 파일만 되는 것 같았고, 큰 따옴표로 감쌌을 땐 텍스트 파일이 cmd로 실행이 되었습니다. 🔑해결 구글링하고 Ch.. 2023. 8. 16.
리눅스 터미널 명령어 정리(Ubuntu, macOS) 우리가 일반적으로 사용하는 방식으로 모니터에 보이는 화면의 요소를 클릭하는 방식을 GUI라고 하는데 대부분의 PC에서 쓰이는 방식일 정도로 대중화가 되어있습니다. 이러한 GUI 방식이 있기전부터 터미널에 한줄 한줄 입력하는 CLI 방식이 있었는데 GUI 방식과 다른 장점이 존재하여 서로 보완하면서 쓰이는 매우 근본적인 방식입니다. 프로그래머나 해커를 생각했을 때 검은 화면에 글자가 있는게 터미널에 명령어를 입력하는 CLI 방식입니다. 맥북을 처음 구매하고 윈도우와는 다른 명령어를 학습하는 과정에서 정리해 보았습니다. 기본적인 명령어를 알아두면 많은 문제를 해결할 수 있고 남이 봤을 때 똑똑해 보이기도 하기 때문에 직접 사용해 보시는 것을 추천합니다. 스포트라이트(Spotlight search)를 이용해 .. 2023. 8. 10.
[Flutter] 플러터 설치 (for Mac) 2023.06.26 - [프로그래밍/Flutter] - 플러터(Flutter)로 1인 앱개발을 하려는 이유? 2023.08.03 - [프로그래밍/Flutter] - [Flutter] 플러터 설치 (for 윈도우) 1. 플러터 SDK 설치하기 https://docs.flutter.dev/get-started/install Install Install Flutter and get started. Downloads available for Windows, macOS, Linux, and ChromeOS operating systems. docs.flutter.dev 위에 링크에 들어가서 macOS용 SDK를 다운로드하고 압축을 해제합니다. 인텔 프로세서인지, 애플 실리콘인지에 따라 알맞은 SDK를 다운로드합니.. 2023. 8. 7.
[Flutter] 플러터 설치 (for 윈도우) 2023.06.26 - [프로그래밍/Flutter] - 플러터(Flutter)로 1인 앱개발을 하려는 이유? 1. 플러터 SDK 설치하기 https://docs.flutter.dev/get-started/install Install Install Flutter and get started. Downloads available for Windows, macOS, Linux, and ChromeOS operating systems. docs.flutter.dev 위에 링크에 들어가서 OS에 맞는 SDK를 다운로드하고 압축을 해제합니다. 위치는 어디든 상관이 없지만 웬만하면 유저 폴더나 문서 폴더 같은 의미 있는 곳에 해제해 줍니다. SDK의 bin 폴더 경로를 환경 변수에 등록해 주어야 하기 때문에 잘 기억.. 2023. 8. 3.