[TIL]

Sarahsea 사라씨·2021년 9월 10일
0

TIL

목록 보기
67/128
post-thumbnail

정규

CS 기초- review

  1. 문자열

    1 byte = 8 bit

개발자에게 어떤 의미?
문자열과 숫자를 다룰 때 (저장할 때, 할당될 때) 드는 용량(byte)가 다름

  • 정수 4byte(4/8)
  • 실수 16byte (8/16) 소수점 16경우가 더 정확도가 높다
  • 문자 16byte

유니코드 문자를 저장하는 약속,규칙 (예: a - 64)
UTF-8 vs UTF-16
; 유니코드를 위한 가변 길이 문자 인코딩 방식 중 하나
일반적으로 http 통신에서 utf-8이 주로 쓰이는 이유는 효율이 더 좋기 때문에(인간이 이해할 텍스트를 컴퓨터 언어로)

  1. 그래픽 | 비트맵 jpg, gif, png vs 벡터 svg
    픽셀별 rgbs 값 - 2차원 배열 / 점과점, 선을 연산하는 수학적 방식
    열기에 비트맵이 상대적으로 가볍다

  2. 운영체제 OS;Operation System
    ; 하드웨어 위에서 돌아감
    운영체제를 통해 컴퓨터에 일을 시키는 응용프로그램
    응용프로그램; OS 위에서 돌아감

    예) 내가 만든 리액트 파일은 응용프로그램일까? No, OS위에서가 아닌 브라우저에서 돌아가는 html파일, 여기선 브라우저가 응용프로그램
    // 그럼, node.js로 만든 프로그램은 응용프로그램일까? yes, OS 위에서 돌아감, 브라우저 필요한게 아님 (그래서 node.js는 인터페이스, 엄밀히 말해서 언어가 아니다)

  3. 프로세스 / 멀티스레드
    프로세스; 운영체제가 응용 프로그램을 실행시키기 위해 제공하는 영역
    기본적으로 하나의 응용프로그램은 하나의 프로세스를 제공받음
    (단, 여러개 받을 수도 있음/ 개발하기 어렵다, 일분배, 언제시작,끝.. 지정해줘야..)

    프로세스-스레드 역시 디폴트 1:1, 단 멀티도 가능
    각각의 스레드는 프로세스 내에서 각각 Stack만 따로 할당받고,
    Code, Data, Heap 영역은 공유

동시성과 병렬성

  • 멀티스레드의 문제점, 업무를 분배해줘야하는 번거로움

  • 동시성 이슈: 각각의 스레드가 서로 어디까지 일했는지, 이게 옆 스레드가 해결한 일인지 아닌지 인식 못함, 중복될 수도

    자바스크립트가 왜 싱글 스레드가 되었나? "비동기"
    인간의 뇌가 멀티스레드로 일하는 방식을 잘 이해 못함/ 비동기는 오히려 사람이 이해하기 좋은방식이란 소린가(?) 비동기는 마치 정규직스레드가 아닌 계약직 스레드 같이 필요할때만 쓰는 것(?)

    node.js의 Event loop는 싱글 스레드로 작동되지만, Worker pool은 멀티 스레드로 작동된다.
    즉, node.js의 초기화와 callback은 Event loop라는 하나의 프로세스, 하나의 스레드에서 작동되지만 I/O intensive, CPU intensive한 모듈은 Worker pool에서 작동함

  1. 가비지 컬렉션 Garbage Collection
let a = 10;
// 10은 Heap에 저장되고, 이 Heap의 "주소값"이 stack에 저장됨
console.log(a);
// stack에서 a를 찾아서 가지고 있는 주소값을 확인한 뒤,
// 해당 주소 안의 값을 가져온다

그래서 가비지 컬렉션이란?
  스택의 a를 지운다면 어떻게 될까? Heap의 10은 집주소없어~ 
  "즉, 다시 불려서 쓰여질 수 없는 가비지 데이터!"
이 가비지 데이터를 주기적으로 줍는 쓰레기 차가 가비지 컬렉션!
  
 //so, 내가 왜 알아야해?
 이런 쓰레기가 엄청 쌓인다면? (가비지컬렉션 엄청 일하면..)
 -> 결과적으로 컴퓨터 작업 효율, 속도 x 
 기본으로 가비지 컬렉션이 내장되어있는 엔진/언어 javascript, java, C# 등
  1. 캐시 Cache (웹에서의 캐시)
    ; http통신을 통해 받은 데이터를 저장하는 것
    왜 저장할까? - 효율 (이미 방문해서 동일한 데이터를 받았던 동일한 사용자에게 재방문시마다 매번 다시 같은데이터를 제공하는 것, 엄청난 비용 낭비, 비효율)
    so, 장점: 서버 부하를 낮추고, 클라 반응속도 높일 수 있음
    단점: 캐시 갱신을 제대로 못하면, 옛 버젼의 페이지를 보게됨( 하지만 요즘은 드물고, 단점에 비해 장점이 훨씬 크기에 캐시 잘 쓰고 있음)

    Q. 쿠키랑 뭔가 비슷한거 아니에요? 캐시 와 쿠키?
    쿠키: 사용자 인증을 위한 / 캐시: 모든 데이터..img등
    만료기간전에 지우지 않는다면 유지 / 브라우저 끄면 사라짐

공학도들 1,2학년 때 배우는 내용이라 깊이 공부하자면, 끝도 없다
당장 cs지식이 눈에 보이는 도움을 주진 않지만, 개발자라면 (연차가 올라갈수록 부스팅하게 되는 필수지식, 꾸준히 공부할 것)

개인

코테 8개 lv1 빨리 다 풀어버려야지~
언더더씨 css / js,
textarea // defaultValue 클릭시 사라지기
state 추가 반영

내일은

주말

  • 코린기
  • 언더더씨 찐막
  • 루야 시작하기
  • 코딩애플 part3 마무리 -완강하기

내일

  • 프로젝트 아이데이션 코게더준비 3
  • 언더더씨 1
  • 스프린트 세션/토큰/oauth 플로우 정리 - 기준:말로 설명가능 2
  • 스프린트 토큰 0 to the end~ 4
  • 드림엘리 5
  • 코테는 매일!
profile
생각하는 사람

0개의 댓글