상세 컨텐츠

본문 제목

123

카테고리 없음

by 코딩초보 신성민 2020. 5. 13. 12:19

본문

기계어와 어셈블리언어

기계어

퓨터가 사용하는 언어로, 컴퓨터의 CPU가 명령을 처리할 때 사용하는 언어이며 2진법으로 구성되어 있다.

 

어셈블리 언어

기계어에서 숫자를 의미있는 단어로 바꿔서 사람들이 이해하기 쉽게 만든 언어이다.


컴파일과 컴파일러

컴파일

원래의 문서를 소스코드 또는 원시코드라고 하고, 출력된 문서를 목적 코드라고 한다.

여기서 원시코드에서 목적 코드로 옮기는 과정 컴파일이라고 한다.

 

컴파일러

특정 프로그래밍 언어로 쓰여있는 문서를 다른 프로그래밍 언어로 옮기는 프로그램을 말한다.


부동소수점과 그 한계

부동소수점 방식이란 소수점이 포함된 실수를 표현하기 위해 사용되며

부호 비트, 지수 부분, 가수 부분으로 구성되는 방식이다.

가수 : 실수의 실제 값.

지수 : 크기를 표현, 가수의 어디쯤에 소수점이있는지를 나타낸다.

즉, 지수의 값에 따라 소수점이 움직이기 때문에 이 방식으로 실수를 표현하는 방법을 부동 소수점이라고 한다.

부동 소수점은 적은 비트로 큰 수를 표현할 수 있지만, 이런 효율성은 정확성을 떨어뜨릴 수 밖에 없다.

또한 1/10은 이진 소수로 정확히 표현할 수 없기 때문에 한계가 있을 수 밖에 없다.


메모리 영역

코드(code) 영역

실행할 프로그램의 코드가 저장되는 영역으로 텍스트(code) 영역이라고도 한다.

CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 된다.

 

데이터(data) 영역

프로그램의 전역변수와 정적(static) 변수가 저장되는 영역이다.

데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸한다.

 

(heap) 영역

사용자가 직접 관리할 수 있는(해야만 하는) 메모리 영역이다.

힙 영역은 사용자에 의해 메모리 공간이 동적으로 할당되고 해제된다.

메모리의 낮은 주소에서 높은 주소의 방향으로 할당된다.

 

스택(stack) 영역

함수의 호출과 관계되는 지역변수와 매개변수가 저장되는 영역이다.

스택 영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸한다.


메모리 할당

프로그램이 사용할 수 있도록 운영체제가 메모리를 할당한다.

저수준 언어에서는 이를 개발자가 명시적으로 처리해줘야 하지만 고수준 언어에서는 개발자가 신경쓸 필요 없다.

 

동적할당

컴퓨터 프로그래밍에서 실행 시간 동안 사용할 메모리 공간을 할당하는 것을 말한다.

사용이 끝나면 운영체제가 쓸 수 있도록 반납하고 다음에 요구가 오면 재 할당을 받을 수 있다.

동적으로 할당된 메모리 공간은 프로그래머가 명시적으로 해제하거나 

쓰레기 수집이 일어나기 전 까지 그대로 유지된다.

 

정적할당

메모리 할당 방법 중에 하나로, 메모리의 크기가 하드 코딩되어 있기 때문에

프로그램이 실행 될 때 이미 해당 메모리의 크기가 결정되는 것이 특징이다.

사용하는 운영체제에 따라 각 데이터형에 약속된 기억공간의 크기가 있고,

지정된 만큼 프로그램을 실행하는 프로세서에 필요한 자원으로 할당 시켜준다
즉, 프로그램 실행의 시작부분에서 필요한 만큼 미리 기억공간을 할당 받고 시작하는 것을 의미한다.

 

가비지 컬렉터(Garbage Collector) / 가비지 컬렉션(garbage collection)

쓰레기 수집, 가비지 컬렉션은 메모리 관리 기법 중의 하나로,

프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 해체하는 기능이다.


서버(server)

클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로 

컴퓨터 프로그램(server program) 또는 장치(device)를 의미한다.

특히, 서버에서 동작하는 소프트웨어를 서버 소프트웨어(server software)라 한다.

 

HTTP와 웹서버 & 브라우저의 관계

HTTP(HyperText Transfer Tprotocol) 은 하나의 약속으로 

서버(웹)와 클라이언트(PC, 모바일 등의 웹브라우저)가 대화하기 위한 약속이다.

크롬이나 익스플로러, 사파리와 같은 웹 브라우저를 통해 정보를 전송받거나 정보를 요청하는데

그때 웹 브라우저로 부터 요청을 받아 정보를 전달하거나 웹 프로그램을 작동하고 전송하는 것이

웹 서버 소프트웨어의 기능이다.


데이터베이스( database, DB))

여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합이다.

작성된 목록으로써 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음이다.


윈도우 응용 프로그래머

보통 클라이언트 프로그래머라고 부르기도 한다.

응용 프로그래머는 컴퓨터 내에서 실행 및 연산이 가능한 프로그램을 개발하는 개발자로,

예를 들면 카카오톡 PC 버전의 개발자, 오피스 엑셀, 윈도우 등의 프로그램등을 제작하는

사람들을 응용프로그램 개발자 라고 한다.

이러한 프로그램들을 유지 및 보수 하는 사람들을 응용프로그램 관리자라고 한다.

응용 프로그래머의 경우 C, C++, C#, JAVA 같은 언어를 이용해 프로그램을 코딩한다.

 

웹 프로그래머

서버 프로그래머라고 부르기도 하며 웹프로그래머가 하는 일은

컴퓨터와 인터넷이 연결되어 일어나는 대부분의 역할을 관장한다고 볼 수 있다.

또한 응용프로그램으로 만들어 졌지만 게임접속이나 인터넷 업데이트 같은 인터넷 접속을

필요하는 응용프로그램의 경우도 웹 프로그래머가 역할을 하고있다.

웹 프로그래머의 경우 JSP, ASP, PHP 등의 언어를 이용해 프로그램을 코딩한다.