Section 3 - 62일차

노태경·2021년 7월 1일
0

SEB-Section 3

목록 보기
17/31

1. Toy - 35일차

  • n번째, uglyNumber
  • uglyNumber는 2, 3, 5로만 나누어지는 수
    ex)
    12 => 1 2 3 4 6 12 >> 4와 6은 2,3의 곱으로 이루어진 수라서 가능
    14 => 1 2 7 14 >> 7이 포함되므로 안됨

일일이 하나씩 나누어보는 것은 비효율적임
uglyNumber에 2,3,5를 곱한 것도 uglyNumber임을 활용

2. 컴퓨터 공학 기초

문자열
UTF-8 / 가변 길이 인코딩
UTF-16

그래픽
비트맵(레스터)
벡터

프로세스
운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션 코드를 실행하는 것

스레드
하나의 코드 실행 흐름

멀티 태스킹
두 가지 이상의 작업을 동시에 처리하는 것

멀티 스레드
하나의 프로세스에 두 가지 이상의 작업처리

스레드로 구현할 경우 시스템 자원 소모가 줄어든다 >> 응답 시간 단축

스레드 간 통신이 필요한 경우 전역 변수의 공간 또는 Heap 영역 이용

여러 프로세스로 나눠야 해야할 일을 하나의 프로세스에서 멀티 스레드로 나눠함!

문제는 동시에 리소스에 접근하는 경우 문제가 될 수 있다 >> 동기화 작업이 필요

  • 동시성 / 병렬성
    동시에 돌릴 수 있는 스레드의 수는 코어의 갯수로 제한됨 >> 각 스레드를 시간을 나눠 실행(시분할)
    여러 스레드가 시분할 방식으로 동시에 수행되는 것 처럼 동작(병행성, 동시성)
    멀티코어 환경에서 실제로 동시에 작업되는 것(병렬성)

  • Context Switching
    다른 task(프로세스, 스레드)가 시작할 수 있도록, 한 태스크를 멈추는 것

  • 가비지 컬렉션
    프로그램에서 더 이상 쓰지 않는 메모리를 자동으로 찾아서 가져가는 것
    해당 기능을 가진 언어는 Java, C#, JavaScript 등이 있다.

트레이싱(mark and sweep)
플래그를 사용하여, 사용중인 것은 표시(mark), 그 후 표시되지 않는 것은 삭제(sweep)

레퍼런스 카운팅
개게를 참조하는 변수의 레퍼런스가 복사될 때마다 레퍼런스 카운트가 늘어남
변수의 값이 바뀌거나, 스코프를 벗어나면 레퍼런스 카운트가 줄어듬
카운트가 0이되면, 객체에 대한 레퍼런스를 가지고 있지 않다고 판단, 메모리를 비움

캐시
빠르게 접근 가능한 RAM과 같은 하드웨어에 저장
느린 저장장치에 접근할 일을 줄여 성능을 향상시키는 목적

profile
개발자 공부 일기😉

0개의 댓글