본문 바로가기
study_java/java_수강정리(~10.29)

[JAVA]1일차 + 2일차

by developer_j 2020. 5. 12.
728x90
반응형

< 수업 1일차 >

 

효율적인 프로그래밍에는 컴퓨터 구조에 대한 이해가 도움이 될 수 있다. 컴퓨터 시스템은 하드웨어, 소프트웨어, 펌웨어의 결합으로 구성된다.

하드웨어는 컴퓨터의 실제 물리적 부품들을 말하고 CPU, 메인메모리, I/O Bus, 하드디스크, 그래픽카드 등이 있다. 특히 CPU는 컴퓨터 장치 중 가장 핵심적인 것으로, 컴퓨터로 수행되는 연산처리의 모든 것을 담당한다. CPU는 각 장치들과 '버스'를 통해 처리할, 처리된 데이터를 주고 받는다.  메모리와 통신하는 버스는 I/O 버스(Input/Output Bus:입출력 버스)라고 부른다.  메모리는 컴퓨터가 켜진 동안에만 데이터가 저장되고 이용되는 공간으로, 주기억장치와 보조기억장치가 존재한다. 

소프트웨어는 하드웨어가 작업을 수행하도록 명령하는 코드의 집합체, 즉 프로그램이다.

펌웨어는 컴퓨터의 기본적인 제어를 하는 것으로, 일종의 운영체제라 볼 수 있다. 쉽게 말해 소프트웨어를 하드웨어처럼 만든 것으로, 하드웨어를 보강하고 대신할 수 있는 프로그램이다(예-ROM).

 



< 수업 2일차 >

 

프로그램은 운영체제(OS:Operating System)를 거쳐 CPU에서 처리된다. OS는 컴퓨터 자원인 CPU, RAM 등을 실행하고 관리 운용한다. 사용자와 컴퓨터 하드웨어 간의 인터페이스 역할을 한다.하드디스크(HDD)에 저장되어있는 프로그램은 사용자에 의해 실행되고 운영 체제가 사용자가 원하는 프로그램을 구동시킬 준비를 하기 위해 메모리로 프로그램을 올려둔다. 이렇게 메모리에 올린 프로그램은 CPU에 의해 연산처리된다. 

.exe는 하드디스크에 있는 상태 - .exe를 누르면 OS가 구동시킬 준비 - 메모리로 .exe를 올림 - 메모리에 올린 .exe를 CPU가 연산

즉, 사용자가 프로그램을 실행시키려고 더블클릭한 순간 메모리에 .exe가 올라가고, cpu가 이것을 처리하는 구조인 것.

그러나 우리는 동시에 많은 프로그램을 실행한다. 인터넷을 띄워서 유튜브로 매드무비 음악을 틀어놓고 롤을 한다거나, 업무 화면을 띄워놓고 한쪽에서는 카카오톡을 하는 것처럼.

이럴 때 OS의 역할이 중요해진다. OS의 주요 기능 중 하나는 메모리 관리다. 메모리는 주소를 가지고 관리한다. 각각의 프로그램에게 주소를 지정해주고, 사용자가 의도하는 대로 그 주소의 프로그램을 관리한다(실행하거나, 작성한 데이터를 저장하거나, 닫거나 등등).


자바 컴파일러의 역할

자바 코드를 짜고 나면 컴파일 과정을 거쳐 오류 여부를 검토수정 한 후 오류가 없다면 자바 파일이 실행된다.

그럼 컴파일러 과정은 오류를 찾아내는 역할일까? 자바 컴파일러는 무슨 역할을 할까?

컴파일은 내가 짠 소스 코드를 CPU가 이해하는 CPU 전용 바이트 코드로 만들기 위한 과정이다. CPU는 2진수로 구성된 코드만 이해할 수 있다. 바로 바이트 코드(클래스 파일)다. CPU가 내 코드를 이해해야 처리할 수 있으니, CPU 전용 코드 스타일로 바꾸어 새로 만들어주는 것이다. 즉, 소스 코드를 기반으로 컴파일 과정을 통해 클래스 파일을 새로 생성하는데, 그 과정에서 틀린 부분이 있다면 파일로 바꿀 수 없으니 오류난 부분을 제시해주는 것이다. 이렇게 생성된 클래스 파일을 자바 런처(java.exe)가 실행하고, 클래스 파일이 실행되기 위해 메모리에 올라가고 --> 메모리에 올라간 것을 CPU가 처리함으로써 --> 실행이 되는 것이다. 


주석 처리 단축키

여러 줄을 주석처리 할 때는 /* */가, 한 줄을 주석처리 할 때는 //가 적합한데

/* */ 주석처리를 할 때는 Ctrl + Shift + /

주석 처리를 해제할때 Ctrl + Shift + \

// 주석처리를 할 때는 Ctrl + /


메모리 공간은 주소로 관리됨

변수명은 메모리 공간 활용을 위한 도구다. 즉, 메모리 공간의 할당과 접근을 위해 필요하다. 메모리 공간의 주소는 본인이 지정하는 것이 아니다. 랜덤으로 주어진다.

변수는 자료형 변수명 = 변수값;으로 정의된다.  예 ) int num = 30;

자료형은 메모리 공간의 타입을 정한다. 타입은 8가지가 있는데, 정수형(byte-1바이트/short-2바이트/int-4바이트/long-8바이트), 실수형(float-4바이트/double-8바이트), 논리형(boolean-1바이트), 문자형(char-2바이트)가 있다.

변수명은 변수명 규칙에 기반하여 가독성 있게 잘 지으면 된다. 이렇게 변수명으로 이름지어진 메모리 공간의 형태와 크기를 정하고(자료형), 이 공간에 넣어둘 변수 값을 정의하면 변수 선언이 끝난다!!! 변수 선언이 이처럼 매우 까다롭다. 

728x90
반응형

'study_java > java_수강정리(~10.29)' 카테고리의 다른 글

[JAVA]7일차  (0) 2020.05.19
[JAVA]6일차  (0) 2020.05.19
[JAVA]5일차  (0) 2020.05.15
[JAVA]4일차  (0) 2020.05.15
[JAVA]3일차  (0) 2020.05.13