전체 글 36

[컴퓨터 구조] | 컴퓨터 구조를 공부하는 이유와 컴퓨터의 구성 요소

혼자만 사용하는 프로그램을 만들 땐 성능, 용량, 비용 문제를 깊게 생각하지 않았다. 하지만 취업을 하게되면 많은 사람이 사용하는 서비스를 개발하게 되고 이러한 프로그램은 성능, 용량, 비용 문제가 중요하게 고려된다. 혼자 개발할 땐 입력과 출력에만 집중을 했지만, 더 나아가 컴퓨터 구조를 이해한다면 이러한 부분을 고려하며 개발할 수 있게 될 것을 기대하며 공부를 시작해보려고 한다. 컴퓨터가 이해하는 정보에는 데이터와 명령어가 있다. 이 때 데이터란 숫자, 문자, 이미지, 동영상과 같은 정적인 정보를 가리킨다. 명령어는 이러한 데이터를 움직이고 컴퓨터를 작동시키는 정보이다. 즉, 데이터는 명령어 없이는 아무것도 할 수 없는 정보 덩어리일 뿐이다. 그래서 컴퓨터를 한 마디로 정의하면 명령어를 처리하는 기계..

타입스크립트[TypeScript] | TS 환경에 jest 설정하기

최근 프로젝트를 진행할 때 TDD 개발 방식으로 진행해서 테스트 코드를 작성한 적이 있었고 블로그에 포스팅도 했었다. [글 보러 가기] 이번에는 TypeScript로 코드를 작성하고 있으며 vite로 개발 환경을 구축했기 때문에 jest를 따로 설치한 뒤 config 파일을 생성했다. (지난번엔 CRA로 개발 환경을 구축했고, testing-library가 기본으로 설치되어 있었다.) 타입스크립트 환경에서 jest 초기 설정 방법을 작성해보려고 한다. 패키지 설치 npm install --save-dev jest @types/jest ts-jest ts-node or yarn add -D jest @types/jest ts-jest ts-node 위 명령어를 사용하여 jest 패키지와 타입스크립트를 사용..

[ESLint] | 'module' is not defined. eslint(no-undef) 오류 해결하기

상황 vite의 react + ts 템플릿으로 프로젝트 초기 설정을 하던 중 .eslintrc.cjs 파일에서 위와 같은 오류가 발생했다. ESLint 홈페이지의 no-undef 오류 부분을 읽어보았고 [이 부분]을 발견했다. 원인 해당 부분에 따르면 ESLint는 자주 사용되는 라이브러리 및 런타임 환경을 미리 정의할 수 있도록 여러가지 환경을 제공한다고 한다. [제공하는 환경 리스트] 해당 오류는 node가 설정이 안되었기 때문에 발생하는 것이었다. 해결 env 부분에 browser, es2020 옆에 node: true로 설정해주니 오류가 해결되었다.

Front-End 2023.06.07

알고리즘[Algorithm] | DFS & BFS

DFS/BFS를 알아가기 전에.. 탐색은 많은 양의 데이터 중 원하는 데이터를 찾는 과정이며 DFS/BFS가 이 알고리즘에 속한다. DFS/BFS를 풀기 위해서 알아야 할 몇 가지 자료구조를 먼저 알아보려고 한다. 여기서 자료구조란 데이터를 표현, 관리, 처리하기 위한 구조이다. 자료구조 중에서 스택과 큐가 가장 기초적인 개념으로 자리잡고 있다. 스택(Stack) 나중에 들어온 데이터가 먼저 삭제되는 후입선출 구조의 자료구조이다. 예전 블로그에서 실행 컨텍스트에 대해 개념을 정리하면서 스택/큐 개념도 함께 정리했는데, 당시 그렸던 그림을 첨부한다. 그림처럼 후입 선출임을 알 수 있다. 이를 코드로 구현하려면 입력은 리스트의 가장 뒤쪽에 데이터를 삽입하는 append(), 출력은 리스트의 가장 뒤쪽에 있는..

Study/Algorithm 2023.06.05

알고리즘[Algorithm] | 그리디(Greedy, 탐욕법)

그리디 알고리즘 현재 상황에서 지금 당장 좋은 것만 고르는 알고리즘 즉, 매 순간 가장 좋아 보이는 것을 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다. 기준에 따라 좋은 것을 선택하는 알고리즘이므로 "가장 큰 순서대로" 또는 "가장 작은 순서대로"와 같은 기준을 제시해준다. 아래는 책에 제공되어 있는 연습 문제인데, 문제는 검색하면 나와있으니 나는 내가 접근한 방식이나 풀이 위주로 글을 작성했다. [이코테] 실전문제 1: 큰 수의 법칙 처음엔 반복문으로 풀이하려고 접근했다가 문제를 계속 살펴보니 굳이 반복문을 사용하지 않고 풀 수 있을 것 같다는 생각이 들어 중간에 풀이를 한번 갈아엎었다. 가장 큰 수를 만들기 위해서는 숫자 배열 중 첫 번째로 큰 수, 두 번째로 큰 수만 필요하..

Study/Algorithm 2023.06.01