본문 바로가기

전체 글57

[CS] 가상 메모리 정리 📖 가상 메모리 개념 이해 ✅ 가상 메모리가 필요한 이유 하나의 프로세스만 실행 가능한 시스템 예를 들어 배치 처리 시스템 같은 경우에는 가상 메모리가 필요가 없다. 하지만 여러 프로세스를 동시 실행하는 시스템 같은 경우에는 메모리 용량 부족 이슈나 프로세스 메모리 영역 간에 침범 이슈가 있을 수 있기 때문에 가상메모리가 필요하다. ✅ 가상 메모리란? 메모리가 실제 메모리보다 많아 보이게 하는 기술 실제 사용하는 메모리는 작다는 점에 착안해서 고안된 기술 프로세스 간 공간 분리로, 프로세스 이슈가 전체 시스템에 영향을 주지 않을 수 있음 가상 메모리 콘셉트 프로세스는 가상 주소를 사용하고, 실제 해당 주소에서 데이터를 읽고 쓸 때만 물리 주소로 바꿔주면 된다. virtual address (가상 주소) .. 2023. 2. 27.
[HTML] Select option의 value와 required 사용 시 주의할 점 Mdn의 Select에 대한 예시를 보았을 때 의문이 생겼다. Mdn 예시) Choose a pet: --Please choose an option-- Dog Cat Hamster Parrot Spider Goldfish 제일 앞 옵션에 있는 --Please choose an option-- 의 value가 없는데 '빈값으로 준 이유가 뭘까? 아예 없어도 되지 않을까?'라는 의문이었다. 그래서 바로 테스트 예시를 만들어 보았다. test1 예시) Choose a pet: --Please choose an option-- Dog Cat Hamster Parrot Spider Goldfish 테스트 예시에는 required 속성을 추가하고 option 속성의 value값을 빼고 진행해 보았다. 결과는, va.. 2023. 2. 23.
[CSS] CSS Attribute 선택자 정리 HTML의 Attribute 값으로 특정 요소를 선택할 수 있다. 예시 위 같은 HTML 마크업이 있다고 가정을 한다면, CSS에서는 target이라는 속성을 특정해서 선택해 스타일을 줄 수 있다. ✅ 주요 특성 [attr] 해당 attr을 갖고 있는 요소 선택 a[target] : 태그 중 target 속성을 갖고 있는 요소만 선택 [attr=value] attr의 값이 특정 value 인 요소 선택 input[type="submit"] : 태그 중 type 속성의 값이 submit인 요소만 선택 [attr~=value] attr의 값이 특정 value 가 아닌 요소 선택 [attr^=value] ^(캐럿) : value로 시작하는 요소 선택 (prefix) [attr$=value] $(달러) : va.. 2023. 2. 23.
내가 가고 싶은 회사, 내가 회사를 선택하는 기준 👩‍💻 내가 가고 싶은 회사 토스 토스에 관심을 갖게 된 계기 금융권에 다니면서 항상 듣는 얘기가 있었다. 토스처럼 해주세요 금융권의 토스 열풍은 정말이지 압도적일 정도다. 1 금융권 메이저 은행들마저 모두가 토스의 디자인과 인터렉션 깔끔함, 성능 모든 것에 열망하고 모티브로 삼으려고 한다. 이렇게 모두가 떠받드는 모습을 보고 있자면 이 회사가 궁금해질 수밖에 없다. 관심에서 열망이 된 이유 자연스럽게 관심이 가서 조금씩 토스라는 회사를 알아보기 시작했다. 쉽게 접할 수 있는 토스테크나 유튜브를 통해서 계속 그들의 이야기를 보고 있자면 정말 힘들었겠지만 다크모드, 인터랙션, 많은 시도가 느껴졌다, 시도를 성공으로 만든 열정 많은 사람들과 그들의 노력이 지금의 토스를 만들었고 사람들의 열망을 이끌었다 생각.. 2023. 2. 23.
[CS] 스레드(thread) 간략 정리 📖 스레드 정리 하나의 프로세스에 여러 개의 스레드 생성 가능하다. 스레드들은 동시에 실행 가능하다. 프로세스 안에 있으므로, 프로세스의 데이터를 모두 접근 가능하다. ✅ 스레드의 장단점 📌 스레드 장점 사용자에 대한 응답성 향상 작업을 분할함으로써 속도를 향상해 사용자에 대한 빠른 반응이 가능하다. 자원 공유 효율 IPC 기법과 같이 프로세스 간 자원 공유를 위해 번거로운 작업이 필요 없다. 프로세스 안에 있으므로, 프로세스의 데이터를 모두 접근 가능하다. 작업이 분리되어 코드가 간결 하지만 작성하기 나름이다. 📌 스레드 단점 여러개의 스레드 중 한 스레드만 문제가 돼도, 전체 프로세스가 영향을 받는다. 스레드를 많이 생성하면, Context Switching이 많이 일어나, 성능이 저하된다. 이 단점.. 2023. 2. 22.
[CS] 프로세스 구조 이해 ✅ 프로세스(process) 구성요소 text(CODE) : 코드 data : 변수/초기화된 데이터 stack : 임시 데이터(함수 호출, 로컬 변수등) heap: 코드에서 동적으로 만들어지는 데이터 ✅ 프로세스와 컴퓨터 구조 연관 관계 컴퓨터 구조에서 우리는 두 용어를 만나게 된다. PC(Program Counter) + SP(Stack Pointer) 둘 다 레지스터이며, 용어들의 의미를 보자면 PC : 다음 실행할 코드 주소를 가리킨다. SP : 스택 최상단 주소를 가리킨다. 를 뜻한다. 두 개를 활용하여 임베디드 시스템 등에서 동작하는 C프로그램등은 디버깅에 사용된다. 💡 파이썬에서 재귀함수 호출이 일정 횟수 이상이면 에러 나는 이유 고정된 스택 공간 때문이다. 📖 힙과 콘텍스트 스위칭 이해 ✅ .. 2023. 2. 19.
[CS] 운영체제 스케줄링 기본 및 알고리즘 이해 📖 운영체제 스케줄링 종류 ✅ 시분할 시스템 응용 프로그램이 CPU를 점유하는 시간을 잘게 쪼개어 실행될 수 있도록 하는 시스템이며 다중 사용자도 지원한다 ✅ 멀티 태스킹 단일 CPU에서, 사람이 인지하기 힘든 시간 10 ~ 20ms 단위로 실행 응용 프로그램을 바꿔 여러 응용 프로그램이 동시에 실행하는 것처럼 보이게 하는 시스템. ✅ 멀티프로그래밍 최대한 CPU를 일정 시간당 많이 활용하는 시스템 CPU를 활용한다는 말의 의미를 알아보자면, 어떤 프로세스를 실행시키는데 레지스터나 캐시 같은 메모리가 아닌 SSD, HDD 같은 저장매체에서 데이터가 필요해 가져오는 동안 CPU가 대기를 하는 일이 발생한다면 그 시간 동안 비효율이 발생한다. 그래서 효율적으로 그 대기 시간 안에 다음 진행할 프로세스를 먼저.. 2023. 2. 19.
[CS] 프로세스 개념 이해 📖 프로세스 란? 실행 중인 프로그램을 프로세스라고 한다. 프로세스 : 메모리에 올려저서, 실행 중인 프로그램 코드 이미지(바이너리) : 실행 파일 응용 프로그램과 프로세스는 같은 말이 아니며 응용 프로그램은 여러 프로세스로 구성 가능하다. 예를 들어, 스마트폰에 최근 띄운 앱들을 확인하는 기능이 있는데 그렇게 띄워진 앱들을 다 프로세스라 할 수 있다. 프로세스의 실행과 정지도 운영체제가 관여를 하는데 이러한 운영체제 기능을 프로세스 스케줄링 이라고 한다. ✅ 프로세스 스케줄링 여러개의 프로세스가 띄어져 있을 때 어느 시점에서 어떤 프로세스를 실행시킬지 규칙 알고리즘이 필요했는데 그걸 가리켜 프로세스 스케줄러 라고 한다. ✅배치 처리 시스템 맨 처음 스케줄링 알고리즘에 채택된 자료구조 큐를 활용한 알고리.. 2023. 2. 19.