터미널, 터미널명령어를 알아야하는이유?
2023. 2. 26. 10:41
개발/CS
터미널? Terminal - 원래는 방 한칸을 차지하는 컴퓨터가 있던 시절 컴퓨터와 연결하기 위한 실제 단자인 물리 하드웨어를 가리켰다. - console이라고도 부른다. (자세히 따지자면 콘솔은 터미널의 일종으로 서버의 로컬장치에서 직접 명령어를 작성할 수 있는 조금 더 좁은 의미) - 현재는 인간과 컴퓨터가 소통할 수 있는 입출력이 가능한 문자 기반의 인터페이스, 소프트웨어를 가리킨다. - 명령어를 입력받고 출력받는 곳이자 쉘을 실행하기위한 껍데기 라고 생각할 수 있다. - windows에서는 명령 프롬프트(cmd) 라고 부른다. 터미널 명령을 알아야 하는 이유 1. 속도 GUI에 비해 훨씬 빠른 CLI. 마우스와 키보드를 이용해 실행하던 명령들을 한 줄에만 타이핑을 해도 한 번에 대 여섯개의 명령을..
[CS] 프로그래밍 언어 분류
2023. 2. 7. 18:05
개발/CS
프로그래밍 언어는 나눠지는 몇 가지 기준이 있고, 각 언어는 구분된 카테고리중 하나 또는 여러 범주에 속한다. 컴파일 언어 vs 인터프리터 언어 컴파일언어 컴파일? 코드를 실행하기 전 기계어나 다른 코드로 먼저 번역하는 것 ==> 사람이 이해할 수 있는 언어를 컴퓨터가 이해할 수 있는 언어(기계어)로 바꿔주는것 Java : 자바 인터프리터, 컴파일러가 생성한 바이트코드를 해석하고 실행한다 Javac : 자바소스코드를 바이트 코드로 컴파일러 javap : 역어셈블러, 컴파일된 클래스 파일을 원래의 소스로 변환한다 컴파일러? 고급언어로 쓰인 프로그램을 즉시 실행될 수 있는 형태의 프로그램으로 바꾸어 주는 번역프로그램 compile 주된 기능 - 문법 체크(compile error) 1. 문법오류 2. 실행 ..
[CS] CPU, 프로세스, 스레드
2023. 2. 4. 18:15
개발/CS
우리는 컴퓨터로 영상을 보면서 블로그를 쓰고, 동시에 카톡으로 친구들과 대화도 한다. 이 모든걸 하면서 파일을 다운로드 할 수도 있다. 이처럼 컴퓨터는 동시에 여러가지 일을 수행할 수 있다. 이 보이는 작업들 외에도 컴퓨터는 우리눈에 보이지 않는 작업들 또한 동시에 진행하고 있다. 컴퓨터는 어떻게 CPU 코어수보다 많은 작업을 멀티태스킹 할 수 있을까? 먼저 CPU란 무엇일까? CPU(Central Processing Unit) CPU는 중앙 처리 장치로 컴퓨터의 뇌라고 부를 수 있다. 컴퓨터에 저장된 프로그램을 불러와 기계어로 작성된 명령문을 해석하고 실행한다. 보조기억장치(ROM, RAM)에서 프로그램의 코드와 필요한 데이터를 꺼내 메인메모리에 올려놓고 작업을 한다. 코어, 스레드, 클럭 내컴퓨터-속..
[Network] IP, DNS, HTTP, HTTPS
2023. 1. 26. 21:27
개발/CS
IP? Internet Protocol 의 약자로 인터넷 상에서 데이터를 주고받기 위한 통신규약. IPv4 - 0~255의 숫자가 네 마디로 구분되는 방식 - 0.0.0.0 ~ 255.255.255.255까지를 주소로 사용하며 대략 42억개의 주소를 표현할 수 있다. IPv6 - 스마트폰, 태블릿, 스마트워치 등 다양한 모바일 기기가 만들어지면서 IPv4방식의 주소가 고갈되고있어 생긴 방식 - 0~F로 표현하는 16진수를 4자리 숫자 8개로 표현하며 거의 무한 개라고 할 수 있다. 공인IP - 지구상 어느것과도 중복 되지 않는 고유 IP주소로, 인터넷 서비스 제공업체(ISP)에의해 회사나 개인에게 부여된다. 다른 어떤 IP와도 중복되지 않기 때문에 웹사이트 같은 서버를 찾기 위한 용도로 사용된다. - 외..
웹 데이터 저장방식: 쿠키, 세션, 토큰, 캐시, CDN
2023. 1. 12. 22:10
개발/CS
쿠키와 세션 등을 사용하는 이유? - HTTP프로토콜의 특징이자 단점인 비연결성을 보완하기 위해 사용 - 서버-클라이언트 모델을 따르는 HTTP는 Connectionless, stateless 특성을 가진다. Connectionless(비연결성): 클라이언트가 서버에게 요청을 한 후 응답을 받으면 연결이 끊긴다. 즉, 클라이언트와 서버가 연결되어있지 않아 리소스가 계속 사용되지 않고 일회성으로 발생한다. 다만 이러한 특징때문에 매번 요청에 대해 새로운 연결을 해야하므로 '오버헤드(처리를 위해 들어가는 간접적인 처리시간&메모리)'가 발생하는 단점 또한 존재한다 Stateless(무상태): 상태를 가지고 있지 않다. 즉, 서버는 클라이언트를 식별할 수 없기때문에 클라이언트의 상태 또한 알 수 없다. 예) 쇼..