Bleeding edge

2022/09/29 - TIL 본문

ConnecTo

2022/09/29 - TIL

codevil 2022. 9. 29. 19:45

오늘 Pair-Programming에서 배운 것

  1. some, every

두 메서드는 boolean을 반환하는데, 여러 배열이 특정 조건을 만족하는지 체크하는 데 사용하였다

winCases.some(wincase => wincase.every(index => $gameBoard[index].textContent === player));

둘을 굳이 비교하자면 some은 or(그 중에 한개가 성립하는가?) every는 and(모든 것이)와 유사하다. 둘다 Array.prototype.some, Array.prototype.every로 배열에 사용할 수 있다.

  1. scrollHeight

높이가 0인 element에서, scroll이 있었다면 되었을 높이가 scrollHeight이다.

ul.style.height = ul.scrollHeight+"px"

다음과 같이 사용할 수 있다. 애니 메이션에서 숨기기와 펼치기를 사용해야하는 경우에 height auto나 이상한 기능이 아니라 이 기능을 사용하는 게 좋을 것 같다.

Process vs Thread

프로세스: 운영체제로부터 자원을 할당받은 작업의 단위.

스레드: 프로세스가 할당받은 자원을 이용하는 실행 흐름 의 단위.

vs Programming..?

프로그램이란, 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태 를 말한다.

프로세스가 메모리에 올라갈 때 운영체제로부터 시스템 자원을 할당받는다
이 때 운영체제는 프로세스마다 각각 독립된 메모리 영역을, 
Code/Data/Stack/Heap의 형식으로 할당해 준다. 
각각 독립된 메모리 영역을 할당해 주기 때문에 
프로세스는 다른 프로세스의 변수나 자료에 접근할 수 없다.

이와 다르게 스레드는 메모리를 서로 공유할 수 있다. 프로세스가 할당받은 메모리 영역 내에서 Stack 형식으로 할당된 메모리 영역은 따로 할당받고, 나머지 Code/Data/Heap 형식으로 할당된 메모리 영역을 공유한다.

프로세스를 실행하다가 오류가 발생해서 프로세스가 강제로 종료된다면, 다른 프로세스에게 어떤 영향이 있을까? 공유하고 있는 파일을 손상시키는 경우가 아니라면 아무런 영향을 주지 않는다. 스레드의 경우는 다르다. 스레드는 Code/Data/Heap 메모리 영역의 내용을 공유하기 때문에 어떤 스레드 하나에서 오류가 발생한다면 같은 프로세스 내의 다른 스레드 모두가 강제로 종료된다.

'ConnecTo' 카테고리의 다른 글

2022/10/04 - TIL  (0) 2022.10.04
2022/09/30 - TIL  (1) 2022.09.30
2022/09/28 - TIL  (1) 2022.09.28
2022/09/27 - TIL  (1) 2022.09.27
2022/09/26 - TIL  (1) 2022.09.26