인터넷이란? 인터넷이라는 단어를 떠올리면 web만 생각하기 쉽지만 인터넷은 원거리 접속이나 파일 전송, 전자 메일 등의 다양한 데이터 통신 서비스를 포함하는 컴퓨터 네트워크 시스템이다. 인터넷은 수십억 대의 컴퓨터를 연결하는 인프라이고, 웹은 인프라 위에 구축된 서비스
HTTP는 하이퍼텍스트 전송 프로토콜(HyperText Transfer Protocol)이다. 인터넷에서 데이터를 주고받기 위해 사용되는 프로토콜로, HTML 문서와 같은 리소스들을 가져올 수 있도록 해준다.웹 개발시 클라이언트와 서버 둘 다 HTTP를 이용해 통신을
브라우저란? 브라우저(Browser)는 웹 서버의 모든 정보를 볼 수 있도록 하고, 문서 검색을 도와주는 응용 프로그램이다. 우리가 인터넷에 접속하기 위해 사용하는 chrome, safari, edge, firefox 등이 바로 브라우저다. 웹 브라우저는 웹 페이지를
DNS란? DNS(Domain Name System)은 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었다. Reference
호스팅이란? 호스팅(Hosting)이란 서버 컴퓨터의 전체 또는 일정 공간을 이용할 수 있도록 임대해 주는 서비스를 말한다. 사용자가 직접 서버를 구입하고 운영할 필요 없이 호스팅 업체가 미리 준비해 놓은 서버를 빌려 사용하는 형식이다. 호스팅 서비스 종류는 다양하지만
도메인 네임은 IP 주소를 문자로 알아보기 쉽게 만든 인터넷상의 주소이다. 넓은 의미로는 네트워크상에서 컴퓨터를 식별하는 호스트명을 가리키며, 좁은 의미에서는 도메인 레지스티리에게서 등록된 이름을 의미한다.호스트명(hostname)은 네트워크에 연괄된 장치들에게 부여되
자바는 객체 지향 언어로 개발된 프로그래밍 언어다. 자바는 자바 가상 머신을 사용하여, 운영체제와는 독립적으로 동작할 수 있다. 따라서 자바는 어느 운영체제에서나 같은 형태로 실행될 수 있다. 자바 언어의 장점으로는 자동 메모리 관리를 지원하여 다른 언어에 비해 안정성
제네릭(Generic)란? 자바에서 제네릭이란 데이터의 타입을 일반화한다는 것을 의미한다. 다양한 타입의 객체를 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능을 의미한다. 컴파일 시에 객체의 타입을 체크하기 때문에 다음과 같은 장점을 가진다.
스트림이란? Java 8부터 추가된 스트림(Stream)은 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자다. 스트림을 활용해서 배열 또는 컬렉션 인스턴스에 함수 여러 개를 조합해서 원하는 결과를 필터링하고 가공된 결과를 얻을 수 있다.
자바에는 기본 타입과 Wrapper 클래스가 존재한다. 기본 타입 : int, long, float, double, boolean Wrapper 클래스 : Integer, Long, Float, Double, Boolean 박싱과 언박싱 박싱 : 기본 타입 데이터에
C/C++ 프로그래밍을 할 때 메모리 누수를 막기 위해 객체를 생성한 후 사용하지 않는 객체의 메모리를 직접 해제해줘야 했다. 하지만 Java에서는 JVM의 가비지 컬렉션(GC)이 불필요한 메모리를 알아서 정리해주기 때문에 직접 해제해주는 일이 없다.GC를 해도 더이상
바인딩(Binding)은 함수 호출 시, 호출된 부분을 해당 함수의 정의와 연결짓는 것을 뜻한다. 메모리 관점에서 함수의 정의가 위치한 메모리 주소로 연결되는 것이다. 바인딩이 되는 시점에 따라 정적 바인딩과 동적 바인딩으로 구분할 수 있다.컴파일 시간에 성격이 결정된
터미널은 컴퓨터와 사용자 간 소통을 위한 인터페이스다.
grep awk sed lsof curl wget head tail less find ssh kill
운영체제(Operating System)는 컴퓨터 하드웨어의 리소스를 관리해주면서 동시에 여러 애플리케이션이 작동할 수 있는 환경을 제공해주는 소프트웨어다.운영체제는 크게 커널과 인터페이스로 이루어져 있다.커널은 운영체제 핵심 기능을 모아놓은 곳으로 프로세스 관리, 메
프로세스란 프로세스는 운영체제에서 하나의 작업 단위이며 태스크(task)라고도 부른다. 프로그램은 일반적으로 하드디스크 같은 저장장치에에 저장되어 있는 정적 상태고, 프로세스는 실행을 위해 메모리에 올라온 동적인 상태다.
프로세스는 자신에게 할당된 메모리 내의 정보만 접근할 수 있고, 이를 벗어나서 접근할 경우 (C의 경우 segmentation fault) 오류가 발생한다. 이는 안전성을 위해 OS에서 자기 프로세스의 메모리만 접근하도록 강제하는 것이다.프로세스 간 통신(Inter P
스레드(thread)는 프로세스 내에서 실제로 작업을 수행하는 주체를 의미한다. 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행한다. 하나의 프로세스 내에서 두 개 이상의 스레드가 동시에 작업을 수행하는 것을 멀티스레드(multi
어떤 프로그램이든 프로세스가 되기 위해 메모리에 적재되어야 실행 가능하다. 따라서 메모리는 중요한 작업 공간이고, 한정된 메모리를 다중 프로그래밍 환경에서 여러 프로세스가 함께 메모리를 사용하므로 효율적인 관리가 필요하다. 메모리 관리는 운영체제를 비롯해 여러 작업을
컴퓨터의 주요한 두가지 작업은 연산 작업과 입출력 작업이다. 그중 입출력 작업은 컴퓨터에 연결된 다양한 입출력 하드웨어 장치들과 어떤 식으로 상호작용하는지에 관한 작업이다. 마우스, 키보드, 모니터 등 다양한 장치들이 컴퓨터와 잘 동작하게 하려면 둘 사이에 공통된 인
stdin stdout stderr pipes
컴퓨터 네트워크 네트워크 구성요소 네트워크 토폴로지
OSI 참조 모델 국제표준화기구(ISO)는 서로 다른 컴퓨터가 네트워크 구조에 상관없이 통신할 수 있도록 OSI 참조 모델을 만들었다. OSI 참조 모델은 컴퓨터 통신 기능을 계층 구조로 나누어 각 계층마다 표준화된 서비스와 프로토콜을 규정한 모델로, 일종의 통신 규칙