TIL 21.07.01 ~ 07.02

Jaemin Jung·2021년 7월 4일
0

Today I Learned

목록 보기
50/62
post-thumbnail

오늘한일

아직 작성중

Achievement Goals

  • 프로그램, 프로세스, 스레드에 대해 기본적인 개념을 설명할 수 있다
    • 동시성과 병렬성의 차이를 이해할 수 있다
    • 자바스크립트 엔진(v8)이 어떤 특징을 가지고 있는지 이해할 수 있다
  • 프로그래밍에서 문자열을 다루는 방법과 유니코드 및 인코딩에 이해할 수 있다
  • 비트맵 이미지와 벡터 이미지의 차이를 이해할 수 있다
  • 가비지 컬렉션에 대해 이해할 수 있다
  • 웹 서비스에서 사용하는 다양한 캐싱의 사례를 이해할 수 있다

유니코드

아주 옛날 컴퓨터에서는 영어와 몇가지 특수문자만 사용했고, 글로벌 시대가 되었을때 국제적으로 전세계 언어를 모두 표시할 수 있는 표준 코드가 필요했다.
문자열은 유니코드를 써야 텍스트를 정확하게 저장 가능하다고 이해했다.

유니코드(영어: Unicode)는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이며, 유니코드 협회(Unicode Consortium)가 제정한다.

유니코드가 있기 전에는 영어를 제외한 다른나라의 언어들은 다른 인코딩 형식을 가지고 있었기에 제대로 해독 처리가 되질 않았다.

ASCII 문자라는게 있는데 영문 알파벳을 사용하는 대표적인 문자 인코딩으로 7비트로 표현, 52개의 영문 알파벳 대소문자와, 10개의 숫자, 32개의 특수 문자, 그리고 하나의 공백 문자를 포함한다.

유니코드는 이 ASCII를 확장한 형태라고 한다.

인코딩 -> 어떤 문자나 기호를 컴퓨터가 이용할 수 있느 신호로 만드는것

유니코드의 인코딩 방식으로는 UTF-8과 UTF-16 등등이 있다.

비트맵 vs 벡터

컴퓨터에서 사용하는 이미지는 '벡터'와 '비트맵' 두 가지이다.

벡터는 수학 기반의 선과 곡선의 모임으로 이미지를 구현하는 방식이고,
비트맵은 픽셀이라고 불리는 조그만 사각형이 각각의 색상을 가져 이미지를 구현하는 방식이다.

이미지 다운 ▶ 크기 확대 ▶ 해상도가 변하지 않음 ▶ 벡터 이미지

이미지 다운 ▶ 크기 확대 ▶ 뿌옇고 흐려짐 ▶ 비트맵 이미지

프로세스

운영체제는 하드웨어에게 일을 시키는 주체를 말한다.
그 운영체제 안에서 실행 중인 하나의 프로그램을 프로세스라고 부른다.
실행 중인 프로세스는 작업관리자를 열면 확인이 가능하다.

스레드(Thread)

스레드는 프로세스 안에서 진행되고 있는 흐름의 단위로 얘기 할 수 있겠다.
스레드의 개수가 늘어난다면 좀더 빠른 일처리를 할 수 있다.

비유를 하자면 일상생활에 차도를 예로 들 수 있을것같다.
도로에서 차로가 1개만 존재할때 많은 차들이 몰리면 차가 막히게 된다.
만약 차로가 1개 이상 여러개 존재할때에도 많은 차들이 몰렸을때 막힐지언정,
차로가 1개만 존재할때 보다는 차가 덜 막힐것이다.
도로를 프로세스, 차로를 스레드, 차를 프로그램의 내부 코드들로 생각하면 이해가 쉽다.
차로가 1개 이상 존재할 경우, 이 경우를 컴퓨터 공학에서는 멀티 스레드라고 한다.

참고사이트

https://parksb.github.io/article/5.html
https://velog.io/@eensungkim/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%EC%8A%A4%EB%A0%88%EB%93%9C-TIL-90%EC%9D%BC%EC%B0%A8
https://ko.wikipedia.org/wiki/%EB%AC%B8%EC%9E%90_%EC%9D%B8%EC%BD%94%EB%94%A9
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jamduino&logNo=221047067812
https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C
https://jeongdowon.medium.com/unicode%EC%99%80-utf-8-%EA%B0%84%EB%8B%A8%ED%9E%88-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-b6aa3f7edf96
https://wooody92.github.io/os/%EB%A9%80%ED%8B%B0-%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EC%99%80-%EB%A9%80%ED%8B%B0-%EC%8A%A4%EB%A0%88%EB%93%9C/
https://hyoje420.tistory.com/3
https://codedragon.tistory.com/5103
https://security-nanglam.tistory.com/66
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=rlarudfbf12&logNo=220346647271
https://developer.chrome.com/docs/devtools/memory-problems/memory-101/
https://beyourlifeboss.tistory.com/17

profile
내가 보려고 쓰는 블로그

0개의 댓글