본문 바로가기

학습 내용 정리

(155)
MacOS Ruby 설치하기 (rbenv) MacOS 에는 사전 설치된 Ruby가 있다. Brew로 기본 설치된 Ruby를 변경하게 되면 MacOS 손상 위험이 있다. 이 글에서는 rbenv를 사용하여 설치를 진행합니다. brew install rbenv ruby-build rbenv init 새 터미널 열기 curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | bash mkdir -p /Users/ashleytharp/.rbenv/shims vim ~/.bash_profile eval "$(rbenv init - bash)" export PATH="/Users/내mac사용자이름/.rbenv/shims:$PATH" source ~/.bash_profile r..
String Tokenizer vs split split = 토큰화에 대한 생각을 항해 잡담방에 올렸다. 그 뒤 재밌는 질문을 받게 되었다. 그러면 StringToken방식이랑 split메서드에 차이도 크게 있을까요?? 혹은 split메서드는 배열을 따로 받아 사용하는데 메모리관점에서 비효율적인게 아닐까요?? 궁금해서 댓글 남겨요! 질문에 답변 드리기 위해 조사한 결과를 기록한다. 안녕하세요 __ 님 :) 토큰화 방식은 필요에 따라 다른 메서드를 활용하면 좋을 것 같다고 생각합니다. 조사한 내용을 공유 드립니다! StringTokenizer는 빈 문자열을 토큰으로 인식하지 않지만 split는 빈 문자열을 토큰으로 인식하는 차이가 있습니다. StringTokenizer는 결과값이 문자열이라면 split는 결과 값이 문자열 배열입니다. 따라서 Strin..
부하와 오버헤드는 다른 단어이다. 부하 (Load): "부하"는 시스템이나 장치에 가해지는 작업량이나 압력을 의미합니다. 컴퓨팅에서는 주로 CPU, 메모리, 디스크, 네트워크 등의 하드웨어 자원에 가해지는 작업량을 의미합니다. 높은 부하는 시스템의 성능 저하나 응답 지연을 초래할 수 있습니다. 오버헤드 (Overhead): "오버헤드"는 시스템이나 프로세스를 실행하는 데 필요한 추가적인 리소스나 작업을 의미합니다. 이는 실제 작업에 직접적으로 기여하지 않지만, 작업을 완료하기 위해 필요한 추가적인 작업이나 리소스를 말합니다. 예를 들어, 프로세스 간 통신을 위해 추가적인 네트워크 오버헤드가 발생할 수 있습니다.
인코딩 Encoding 과 디코딩 Decoding 인코딩(Encoding): Enable할 때 En ~하게 하다. 되게끔 만들다 라는 어원. 코드하게 하다. 인코딩은 특정한 데이터를 컴퓨터가 처리 가능한 형태로 변환하는 과정입니다. 특히, 문자열을 바이트 형태로 변환하는 과정을 인코딩이라고 합니다. 인코딩은 문자나 기호를 컴퓨터가 이해할 수 있는 숫자 형태로 변환합니다. 가장 일반적인 인코딩 방식으로는 ASCII, UTF-8, UTF-16 등이 있습니다. 예를 들어, 문자 'A'를 ASCII 코드로 변환하면 65가 됩니다. 디코딩(Decoding): De- 되돌리다라는 접두사. 코드 되돌리다 디코딩은 인코딩된 데이터를 원래의 형태로 변환하는 과정입니다. 즉, 바이트 형태로 저장된 데이터를 문자열로 변환하는 과정을 디코딩이라고 합니다. 디코딩은 컴퓨터가 ..
splilt() 메서드는 토큰화의 예시이다. split메서드는 특정 문자열을 기준으로 토큰화한다. "This is a book" ["This", "is", "a", "book"] 내부는 보통은 단순한 for문을 이용한 구조이다. 문자열을 선형 시간(O(n))에 처리하는 방식이다. 효율적인 구분자 검색을 위해 보이어-무어 알고리즘이나 KMP 알고리즘과 같은 문자열 검색 알고리즘을 사용하는 경우도 있을 수 있다.
퀵 정렬 (Java7 이후 Arrays.sort()메서드의 Dual Pivot Quick Sort) 퀵 정렬(Quick Sort) 피봇(Pivot)을 선택해 피봇보다 작은 그룹과 큰 그룹으로 나누는 작업을 반복하여 정렬하는 방식 장점 기준값에 의한 분할을 통해서 구현하는 정렬법으로써, 분할 과정에서 logN 이라는 시간이 걸리게되고 전체적으로 보게 되면 평균 NlogN 으로써 실행시간이 준수한 편이다. 단점 기준값(Pivot)에 따라서 시간복잡도가 크게 달라진다. Pivot이 적당하게 이상적인 값을 선택했다면 NlogN의 시간복잡도를 갖지만, 최악으로 Pivot을 선택할 경우 O(N^2)이라는 시간복잡도를 갖게 된다. Java의 Arrays.sort() 메서드는 기본적으로 Dual-Pivot Quicksort 알고리즘을 사용합니다. 이는 Java 7 이후 버전부터 도입되었습니다. 그러나 Java 7 이..
개발이란 무엇인가? Node.js에 대한 이해 (작성 중) 1. 개발자란? 프로그램을 만드는 사람 (프로그래머) 2. 백엔드 프로그램이란? 서버에서 해석을 하는 웹 프로그램 3. 통신은 무엇으로 이루어져 있는가? 요청과 응답 4. 요청과 응답은 무엇으로 이루어져 있는가? header와 body 5. 웹 프로그램을 큰 틀로 설명한다면? 프론트엔드에서 백엔드로 제공되는 정보를 요청한다. 백엔드는 데이터베이스 프로그램에게 데이터를 요청하여 받는데 데이터베이스에서 받은 정보를 백엔드는 프론트엔드로 응답한다. 6. 언어에 새로운 기능이 나왔을 때 프론트엔드는 바로 그 기능을 사용할 수 없었던 이유는? 7. 백엔드의 역할 3가지 8. 브라우저는 어떤 역할을 하는 프로그램인가? HTML, JS, CSS 를 해석하는 프로그램 9. 웹에서 요청을 할 때 아무렇게 나 요청을 하면..
Nest.js Fundamentals - 2. Creating a REST API application (1) npm run start:dev watch mode가 되어 코드 변화를 감지한다. 코드변경 > 빌드 > 서버 재시작 nest generate controller // 또는 nest g co nest generate controller 파일 경로 // 그 경로에 controller를 만들어 줌 파일 명령어 결과 미리보기 --dry-run nest g co modules/abc --dry-run @Get 데코레이터 import { Controller, Get } from '@nestjs/common'; @Controller('coffees') export class CoffeesController { @Get('flavors') findAll() { return 'This action returns all ..