728x90
1. ubuntu와 VirtualBox을 설치`ubuntu` : 고유한 데스크톱 환경을 사용하는 리눅스 운영체제이다.`VirtualBox` : 호스트 컴퓨터에서 가상 머신을 생성하고 관리하며, 자체 운영체제 / 하드웨어 리소스를 사용하는 무료 가상 머신이다. 2. 가상 환경을 설정`VirtualBox` 를 실행시켜 이름 : Ubuntu종류 : Linux버전 : Ubuntu 64-bit를 선택하여 가상 환경을 만든다. 그 후, 가상 머신에 할당할 RAM 크기를 지정하고, 할당할 하드 디스크를 선택해야 한다.(지금 새 가상 하드 디스크 만들기를 선택) 하드 디스크가 더 필요할 경우, 사용할 때마다 직접 하드디스크를 추가 할당하는 고정 크기로 할지, 사용하는대로 하드 디스크를 크게 할당하는 동적 할당을 할지 ..
가상화가상화란? 물리적인 하드웨어 리소스나 운영체제를 소프트웨어적으로 추상화하여, 여러 개의 논리적 리소스처럼 보이게 하는 기술이다.(예를 들어, 가상 메모리는 실제 디스크 공간을 메모리처럼 사용하여 물리적 메모리의 용량을 확장할 수 있다.) 가상화를 통해 한 대의 컴퓨터에서 여러 대의 OS를 가동할 수 있어, 자원의 효율적 사용과 비용 절감이 가능하다. 에뮬레이터'모방자'라는 뜻의 영단어로, 특정 하드웨어의 동작을 소프트웨어로 모방한다.특정 하드웨어에서만 동작하는 소프트웨어를 다른 하드웨어 환경에서도 실행할 수 있도록 한다.(예를 들어, 게임기로 출시된 게임을 컴퓨터나 스마트폰으로 구동하도록 해주는 것이다.) 따라서 실제 하드웨어 동작을 소프트웨어적으로 흉내내기 때문에 발생하는 오버헤드 때문에 성능이 ..
쉘 스크립트 기초 문법shell⸰ 사용자와 커널 사이에서 사용자로부터 명령을 받아 해석하고 프로그램 실행 파일 생성$ vi 스크립트명.sh 실행권한을 부여, 실행$ chmod 755 example.sh$ ./example.sh Shebang#!/usr/bin/bash ⸰ 스크립트 첫 째 줄에 쉘 스크립트가 실행될 때, 어떤 쉘로 실행할 지 정의하는 곳 -sh: 초기의 유닉스 쉘 -ksh: 콘 쉘, sh 확장 -csh: c언어 기반 -bash: 리눅스 표준 쉘, sh와 대부분 호환 변수 선언⸰ 대/소문자 구별함⸰ 숫자로 시작 X (포함 가능)⸰ 모든 값 문자열로 저장⸰ 변수 사용 시 $ 사용⸰ 변수 초기화 시 $ 사용 X⸰ = 문자 앞뒤로 공백 없어야 함 √. 문자열을 붙여서 사용하려면, ${ ..
ANSI escape codeANSI escape code⸰ 텍스트 터미널에서 커서 위치, 색, 글꼴 스타일, 그 밖의 옵션을 제어하는 표준 console.log("\x1b[31mHello, world!\x1b[0m");코드를 자세히 보자. 1.\x1b[31m2.Hello, world!> 작성하고 싶은 문구3.\x1b[0m 1번, 3번 -> ANSI escape code ⸰\x1b[숫자m - \x1b 는 16진수 1b, 즉 27이 아스키코드표에서 뜻하는 ESC - \x1b 대신 8진수인 \033을 사용하기도 함⸰[ - Control Sequence Introducer(CSI) - [ 뒤에 오는 코드에 따라, 여러 옵션을 수행⸰m - Select Graphic Rendition(SGR) - m ..
프로그래스 바 구현하기function updateProgressBar(progress) { const barLength = 20; const filledLength = Math.round((progress / 100) * barLength); const emptyLength = barLength - filledLength; const filledBar = "\x1b[103m \x1b[0m".repeat(filledLength); const emptyBar = "\x1b[100m \x1b[0m".repeat(emptyLength); process.stdout.write("\x1b[1A\x1b[2K"); console.log(` 조금만 기다려주세요.${progress}%`);}function p..
Object / MapJavascript Type⸰ 원시 타입 : boolean,null,undifiend,number,string,symbol⸰ 객체 타입 : 함수,배열,정규표현식등 원시 타입을 제외한 나머지 Object⸰ Key :string,symbol⸰ Key 순서 보장 X⸰ Value 는 Key 를 통해서만 접근 가능 ⸰ for-in 문으로 반복문 수행 가능 (for-of 문 불가)⸰ Symbol.iterator 구현 Xconst person = { name: "yeHyun", gender: "female",};for (const prop in person) { console.log(prop + " : " + person[prop]);}/*name : yeHyungender : female..
vscode 디버깅디버깅 명령어 ⸰ 1 :continue,resume - 다음 breakpoint 실행 직전으로 이동 ⸰ 2 :step over - 현재 코드 라인을 실행하고, 다음 라인으로 이동 - 현재 코드 라인이 함수이면, 함수 안에서 멈추지 않고 해당 함수를 실행하며 지나감 - 특정 함수가 잘 작동하는지 확인하고 싶을 때 사용⸰ 3 :step into - 현재 코드 라인이 함수이면, 해당 함수 내부로 진입한 이후 한 줄씩 짚어가며 넘어감 - 코드를 한 줄씩 모두 디버깅하고 싶을 때 사용⸰ 4 :step out - 현재 코드 라인이 함수 안이면, 해당 함수를 끝까지 실행하고 반환 후 멈춤 - 해당 함수를 한 줄씩 확인하다가, 에러 없음을 확신하여 함수를 끝내고 싶을 때 사용⸰ 5..
TCP 연결 해제TCP 연결 해제(4 way handshake) 1.FIN: 클라이언트 연결 해제 요청 먼저 클라이언트가 연결을 닫으려고 할 때 FIN으로 설정된 세그먼트를 서버에 보낸다. 그리고 클라이언트는 FIN_WAIT_1의 상태로 들어가 서버의 응답을 기다린다. 2.ACK: 클라이언트 연결 해제 요청 확인 서버는 클라이언트에게 ACK를 보내 해제 요청 승인 세그먼트를 보낸다. 그리고 CLOSE_WAIT 상태에 들어간다. 클라이언트가 서버의 ACK 세그먼트를 받으면 FIN_WAIT_2 상태에 들어간다. 3.FIN: 서버 연결 해제 요청 서버는 2에서 ACK 세그먼트를 보내고 일정 시간 이후에 클라이언트에 FIN이라는 세그먼트를 보낸다. 서버로부터 FIN 세그먼트를 받은 클라이언트는 TIME_W..