고급언어로 작성된 프로그램을 실행하는데에는 두가지 방법이 있는데 가장 일반적인 방법은 프로그램을 컴파일하는 것이고, 다른 하나는 프로그램을 인터프린터에 통과시키는 방법이다.
인터프린터(하이브리드) 방식: 인터프리터는 고급언어로 작성된 원시코드 명령어들을 한번에 한줄씩 읽어들여서 실행하는 프로그램이다. 운영체제에 독립적이고 컴파일 방식보다는 속도가 느리다.
컴파일 방식(C계열): 컴퓨터는 기계어를 이해할 수 없다. 그걸 이해할 수 있도록 작성해주는 것! 운영체제에 종속적이며 인터프린트 방식(자바)보다 빠르다.
소프트웨어와 하드웨어 사이에서 중개하는 역할, 문제는 우리가 완전 기계를 알아야 한다. A컴퓨터에서 개발을 했으면 B컴퓨터에서도 사용할 수 있어야하는데 사용할 수 없다(이식성 없다).
사용자, 프로그램 비율에 따라 결정되는 것이지 좋다 나쁘다의 문제가 아니다.
C언어를 기준으로 보통 저급언어와 고급언어가 나뉜다
저급언어(기계가 쉽게 사용할 수 있는 언어)
고급언어(사람이 쉽게 사용할 수 있는 언어)
고급언어일수록 기계는 쓰기 어렵단 뜻> 구동이 느려진다
저급언어는 사람이 개발하기 어렵단 뜻> 개발하는데 오래걸린다
C언어가 나오면서 기라성같은 IT기업이 생겼다.
절차지향: 위에서부터 아래로 간다는 뜻이 아니라 함수단위로 프로그램을 작성하는 방식이라는 뜻이다. 함수가 함수를 호출하는 것처럼! 개발하기가 쉽지 않아서 많은 인력이 필요해졌고 자연스레 비용이 증가했다. 프로그램의 가격이 올라가고 이익률이 낮아졌다.
객체지향: 데이터(공간)을 여러개 묶어놓고 기능(메소드-함수), 객체중심의 프로그램 언어, 객체끼리 상호작용해서 프로그램을 작성하는 방식을 말한다. 간단히 '찍어낸다'고 생각하면 된다. '데이터를 쓰겠대요, 근데 기능을 미리 다 만들어놓고 필요한거 있음 갖다가 써!' 이런 식으로! 설계도만 존재하면 그냥 그 설계도대로 찍어내면 끝!
자바는 C언어를 기반으로(CPP)해서 개선할 것들을 개선, 걷어내고 나온 언어이다.
사실 자바보다 CPP가 더 안정적이고 이전에 개발할 때 C로 다 했었다. 근데 웹이 발전하면서 자바가 다시 흥해졌다.
jre설치했는데 한번 더 설치하라고 나온다 > 자바는 외부 응용 프로그램과 연동되는 경우가 많다.
.metadata가 생기는데 이건 workspace 관리해주는 폴더이다.
package(=폴더같은 것): 비슷한 기능을 가진 파일들을 관리하기 쉽도록 하나의 폴더로 모아둔다. 회원관련-회원폴더에, 게시판관련-게시판폴더에 모아두는 식이다.
project: 프로그램의 기본 틀
class: 필요한 기능들의 모음(클래스 포함)
import java.lang.*;
/*
01.import 경로;
프로그램에서 필요한 기능을 가져다 쓰기 위한 키워드
import는 위치 알려줄테니 갖다 써,
include는 포함시킴(include 용량이 커질 수밖에 없음)
02.java.lang 패키지
프로그램에서 기본적으로 필요한 기능들을 정의한 패키지
기본적으로 모든 파일이 자동으로 import 하고 있다
03. 패키지
비슷한 기능들의 파일들을 모아 놓은 폴더
04. *
'모든 것' 의미
05. {}
영역 또는 지역 표시
데이터의 묶음 처리 (여러 개의 데이터가 나올 때 그 데이터들을
묶음 처리하기 위해 중괄호 사용 ex: 배열)
*/
public class AugTue09{
//class 영역
/*
자바에서는 모든 프로그래밍 코드를 class영역 안에 적어야 한다
클래스명은 camel case로 작성
실행 시, 클래스를 찾을 때는 파일명을 통해 클래스를 찾는다
파일명과 클래스명은 동일하게 작성해야 한다
*/
public static void main(String[], args){
//main method 영역
/*
01. method vs 함수(function)
클래스 내부에 정의한 함수(method), 클래스의 멤버 .lang 이런 식
여러 문장들이 하나의 기능을 구현하도록 구성한 것(function)
즉, 함수 중에서 클래스 내부에 정의한 함수를 method라고 한다
02. 한가지 기능을 실행할 수 있도록 정의한 작은 프로그램
*/
system.out.println("Heavy rain today!");
}
}
import java.lang.*;
public class AugWed10_01{
public static void main(String[], args){
// '.' 멤버 참조 연산자 - 클래스의 멤버를 참조(호출)하는 연산자
// 프로그래밍에서 자주 사용되는 데이터
// 1. 정수
System.out.println(10);
// 2. 실수
System.out.println(10.234);
// 3. 문자 - 문자형 데이터를 구별하기 위해서 '' 안에 작성
System.out.println('S');
// 4. 문자열 - 모든 프로그래밍 언어에서는 문장을 문자열이라 부른다, 구별하기 위해서 "" 안에 작성
System.out.println("System.out.println");
// package - 비슷한 기능의 파일들을 하나로 모아놓은 것, name 다 소문자로
}
}