분류 전체보기 48

[PART5] 운영체제/시스템/보안 - TERMS 05

[ TERMS 05 ] 메모리1. 메모리(Memory)의 정의 메모리는 RAM(Random Access Memory)으로써 순서에 상관없이 임의로 데이터들에 접근하는 장치를 의미한다. 컴퓨터가 작업을 처리할 때 CPU는 계산을 담당하고 HDD와 같은 보조기억장치는 정보를 담당한다. 그런데 보조기억장치에서 바로 계산하기에는 CPU에 비해 보조기억장치가 상대적으로 너무 느리기 때문에 보다 빠른 RAM을 활용하여 정보를 처리한다. 2. 메모리는 어디서 접하게 될까? 프로그래밍 언어는 크게 2가지로 분리할 수 있다. C/C++과 같이 개발자가 메모리를 직접 관리하는 Managed언어, 자바와 같이 가비지 컬렉터가 메모리를 관리하는 Unmanaged 언어가 있다. 프로그래밍에서 메모리는 중요하다. 메모리 관리에..

[PART5] 운영체제/시스템/보안 - TERMS 04

[ TERMS 04 ] 셸1. 셸(Shell)의 정의 셸은 사용자와 커널 간의 소통을 원활하게 해 주는 소프트웨어이다. 사용자가 터미널에서 작성한 명령어를 해석하여 커널에 직접 전달해서 컴퓨터를 빠르고 강력하게 제어할 수 있다. > 터미널 최초의 터미널은 유닉스 기반의 컴퓨러를 제어하는 하드웨어 단말기를 의미했다. 주로 전신 타자기(Teletype Writer)을 이용했기 때문에 'TTY'라고도 불렸으나 현재는 기술이 발달하여 소프트웨어로 완전히 대체되었다. 터미널의 목적은 컴퓨터가 실행한 결과를 그대로 출력해 주는 것이다. > 파워셸(PowerShell) 파워셸은 마이크로소프트사에서 윈도우에서 실행되도록 만든 셸이다. 기존 CMD(명령 프롬프트)의 확장형이라고 볼 수 있다. 기존 CMD와 다르게 ..

[PART5] 운영체제/시스템/보안 - TERMS 03

[ TERMS 03 ] CPU1. CPU(Central Processing Unit)의 정의 CPU는 컴퓨터의 두뇌이자 컴퓨터 프로그램 실행에 핵심적인 역할을 하는 장치다. 2. CPU는 어떻게 접하게 될까? 컴퓨터 구매과정에서 부품 항목 최상단에 'CPU'라는 항목이 있다. CPU는 컴퓨터의 전반적인 성능을 좌우하는 가장 중요한 부품이다. 3. CPU 알아보기> CPU의 구성요소ALU(Arithmetic Logic Unit) ALU는 CPU 내부에서 실제 연산을 담당하는 장치이다. 그 밖에 나머지 장치들은 연살할 때 도움을 준다. ALU가 처리하는 연산은 2가지 이다. 덧셈이나 뺄셈 같은 산술 연산과 AND나 OR 같은 논리 연산이다. 아주 복잡한 프로그램이라도 CPU 입장에서는 이 두 가지 형태의..

[PART5] 운영체제/시스템/보안 - TERMS 02

[ TERMS 02 ] 프로세스/스레드 1. 프로세스(Process)/스레드(Thread)의 정의 프로세스 : 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 스레드 : 프로세스 내에서 실행되는 여러 흐름의 단위 2. 프로세스/스레드는 어디서 접하게 될까? 컴퓨터의 작업관리자를 실행하면 무수히 많은 프로세스가 실행되고 있는 모습을 볼 수 있다. 컴퓨터 작업을 하는 동안 프로세스, 스레드와 항상 함께하고 있는 것이다. 빠르고 안정적인 프로그램을 만들기 위해서는 프로세스와 스레드가 효율적으로, 오류 없이 일을 처리해야한다. 따라서 개발자가 프로그래밍을 할 때는 자신의 코드가 프로세스 단위에서 실행되어야 하는지, 스레드 단위에서 실행되어야 하는지 구분하고 코드의 동작 방식을 정확히 이해할 필요가 있다..

[PART5] 운영체제/시스템/보안 - TERMS 01

[ TERMS 01 ] 운영체제 1. 운영체제(Operating System)의 정의 운영체제는 컴퓨터의 하드웨어를 제어하고 사용자가 컴퓨터를 사용할 수 있도록 중재 역할을 하는 프로그램이다. 대표적으로 마이크로소프트사에서 개발한 컴퓨터용 운영체제인 윈도우, 애플이 개발한 맥 전용 운영체제인 맥 OS, 커뮤니티 주체로 개발한 공개 운영체제인 리눅스, 대부분의 현대적 컴퓨터 운영체제의 원형인 유닉스(UNIX) 등이 있다.2. 운영체제는 어디서 접하게 될까? 컴퓨터를 켰을 때 바로 나오는 윈도우 화면이 운영체제이다. 운영체제는 주로 사용자와 컴퓨터 하드웨어 사이에서 중간 다리 역할을 한다. 컴퓨터를 사용하는 동안 계속 함께 하고 있습니다. 하드웨어는 크게 프로세서(CPU), 메모리(기억장치, RAM),..

[PART4] 클라우드/데브옵스 - TERMS 09

[ TERMS 09 ] 마이크로서비스1. 마이크로서비스(Microservice)의 정의 앱은 수많은 기능들의 집합이다. 이 기능들을 작은 서비스 단위로 분리한 것이 마이크로서비스이다. 마이크로서비스는 독립적으로 배치될 수 있고 단독 실행이 가능하다. 마이크로서비스마다 개발 언어가 달라도 상관없고, 데이터 베이스도 각각 자체적으로 보유하고 관리한다. 각 마이크로서비스는 REST API같은 인터페이스로 느슨하게 결합된다. 마이크로서비스 덕분에 앱의 배포 주기가 빨라졌다. 2. 마이크로서비스는 어디서 접하게 될까? 배달의 민족, 넷플릭스 등의 IT 서비스를 이용하고 있다면 이미 마이크로 서비스를 접하고 있는 것이다. 이 IT 서비스는 서버가 다운되어도 몇 시간씩 전체 서비스를 이용하지 못하는 문제가 발생하지..

[PART4] 클라우드/데브옵스 - TERMS 08

[ TERMS 08 ] 클라우드 서비스 모델1. 클라우드 서비스 모델(Cloud Service Models)의 정의 클라우드 컴퓨팅은 어떠한 서비스를 제공하는지에 따라 여러 모델이 존재한다. 대표적으로는 IaaS(Infrastructure as a Service), PaaS(Platfom as a Service), SaaS(Software as a Service)가 있다. 이 세 단어에 공통으로 붙어 있는 '-aaS'는 'As-a-service'의 약자로 클라우드 서비스를 가리킨다. 클라우드 서비스 사용자들의 니즈가 다양해짐에 따라 여러 종류의 모델이 생겨나고 있다. 2. 클라우드 서비스 모델은 어디서 접하게 될까? 클라우드는 인터넷상의 서버에 사진, 각종 파일과 문서를 저장하는 공간이다. 인터넷만 연..

[PART4] 클라우드/데브옵스 - TERMS 07

[ TERMS 07 ] CDN 1. CDN(Contents Delivery Network)의 정의 최근 네트워크가 많은 발전을 이룬 덕분에 언제 어디서든 정보를 교환할 수 있게 되었다. 현대의 우리는 네트워크 속에 살고 있다고 표현할 수 있다. 심지어 해외에서 만들어진 앱도 문제없이 사용이 가능하다. 만약 교환되는 정보가 대용량이라면 어떨까? 데이터를 언제 어시서든 지연 없이 처리하기 위해 등장한 것이 CDN 서비스이다. 2. CDN는 어디서 접하게 될까? 웹 또는 앱이 많은 사용자를 보유하고 있거나 전 세계 또는 먼 곳에 콘텐츠를 제공할 때 CDN을 이용한다. 온라인 동영상 스트리밍 서비스를 제공하는 넷플릭스는 CDN 기술을 활용해 전 세계 사람들에게 콘텐츠를 안정적으로 제공하고 있다. 또한 보안을..

[PART4] 클라우드/데브옵스 - TERMS 06

[ TERMS 06 ] CI / CD 1. CI(Continuous Integration) / CD(Continuous Deployment, Continuous Delivery)의 정의 CI와 CD는 지속적인 통합과 지속적인 배포로서 개발 생산성을 위해 자동화하는 과정을 말한다. 2. CI / CD는 어디서 접하게 될까?> Github 오픈 소스 프로젝트 CI가 사용되는 가장 대표적인 공간은 Github이다. Github는 소스코드들을 버전별로 관리하고 공유하는 공간이다. 이는 여러 소스코드가 개발되고, 이를이 하나로 합쳐진다는 의미이다. 특히 Github의 여러 오픈 소스 프로젝트는 회사 직원뿐만 아니라 다른 개발자들도 기여할 수 있기 때문에 CI 같은 통합 자동화가 이루어져야 한다. 위 이미지는 ..

[PART4] 클라우드/데브옵스 - TERMS 05

[ TERMS 05 ] 쿠버네티스1. 쿠버네티스(Kubernetes)의 정의 쿠버네티스는 구글에서 개발한 오픈 소스 기반의 컨테이너 오케스트레이션(Container Orchestration)이다. 'Kubernetes'는 그리스어로 '키잡이''를 뜻한다. 쿠버네티스는 현재 가장 널리 사용되고 있는 오케스트레이션 툴로서, '쿠베르네티스, K8s, 쿠베, 쿠버, 큐브' 등 여러 이름으로 불리고 있다. 2. 쿠버네티스는 어디에서 접하게 될까? 모놀리식(Monolithic)을 마이크로서비스로 나누거나 마이크로서비스 기반 시스템을 처음부터 구축할 때 수많은 서비스만큼 수많은 컨테이너가 생성된다. 이런 분산 시스템에서 정신없이 많은 컨테이넏릉르 능숙하게 관리하는 쿠버네티스를 만날 수 있다. 3. 쿠버네티스 알아..