본문 바로가기
지식공유/JAVA

JAVA 수업 복습 정리(1)_JAVA/JDK/자바기초/프로그래밍

by 시간기억자 2024. 4. 19.
반응형

자바(JAVA)

  • 자바는 프로그램을 만드는 언어이다.
  • 자바는 프로그래밍 언어이기 때문에 문법을 알아야 한다.(우리가 영어를 배울 때 문법을 알아야 되듯이)
  • 자바는 객체지향프로그램이다.(OOP : Object-Oriented Programing) --> 무조건 객체단위여야 한다.
  • 클래스(class)를 통해 객체를 만들고 메소드로 호출한다고 생각하면 된다.
    (객체끼리 관계를 맺고 메소드로 호출해서 프로그램을 만들어주는 것)
  • 자바에서는 알고리즘보다 객체가 중요하다.
  • 라이브러리를 통해 다른 사람의 객체를 가져다 쓸 수 있다. --> 라이브러리가 풍부해서 프로그램 만들기가 수월하다.
  • API
  • JDK 라이브러리를 활용할 수 있다.
  • JDK(Java Development Kit) : 자바 프로그래밍을 하기 위해 필요한 개발 도구라고 생각하면 된다.

 

오라클(Oracle) 홈페이지에서 JDK 설치하기(Window 환경)

  1. 오라클 홈페이지 접속(https://www.oracle.com/)
  2. 상단 Product 메뉴 클릭
  3. Hardware and Software 카테고리에서 Java 클릭
  4. 'Java products and technologies' 부분에서 Java SE 선택 확인 후 'Download Java now'클릭
  5. JDK17 버전 클릭 후 x64 Installer 클릭하여 다운로드

 

JDK가 잘 설치 되었는지 확인하는 방법

  1. 터미널 열기
  2. [javac -version] 적고 클릭한 다음에 특별한 오류멘트 없이 자바 버전이 잘 표기되면 됨

 

환경설정

  • 내PC 우클릭 > 속성 > 고급시스템설정 > 환경변수(값을 저장하는 이름/식별자) > 시스템변수 > 새로만들기
  • 변수이름 : JAVA_HOME
  • 변수 값 : C:\Program Files\Java\jdk-17 (자바가 설치된 경로)
  • 특별한 기능이 있다기보다는, 자바가 어디에 설치되어있다는걸 알려주는 환경변수이다.
  • 추후 자바 버전을 바꿔서 사용할 일이있다보니 버전관리를 위해 사용하는거다
  • 시스템변수 > Path > 편집 > 새로만들기 > %JAVA_HOME%\bin 추가
    - 이 작업은 추후 버전을 바꿔 사용해야하기 때문에 하는 작업이다.
    - bin : 개발할 때 필요한 도구(실행파일)들이 있다. 자바 컴파일러와 자바 실행 명령어가 이 폴더에 저장되어있다.
  • 원래는 터미널에서 명령어를 통해 프로그램 실행을 해야하는데, 윈도우는 아이콘을 만들어 더블클릭을 통해 실행되도록 만들었다.
  • 터미널에 명령어를 칠 건데, 그걸 path안에 있는 폴더 안에서 프로그램을 찾아주는거다.


- JDK 11에서는 그 경로(C:\Program Files\Common Files\Oracle\Java\javapath)가 없다

java -version / javac -version 차이점
java는 실행할때 쓰는 명령어 / javac는 컴파일 할 때 쓰는 명령어
  • JDK 설치가 됐으면 이제 자바를 가지고 프로그래밍을 할 수 있는 도구 준비가 된 것이다.


  • 자바프로그램 개발을 위해서는 소스파일을 만들어야 함.
    - 소스파일명은 ‘클래스이름’으로 만들어준다. 확장자는 java이다.
    ⇒ 소스파일명 : 클래스이름.java
  • 소스파일 안에는 소스코드가 있다.(자바라는 언어를 이용해서 만든다)
    - 자바의 기본단위는 클래스가 기본단위이다.
    - 자바와 C#은 완전한 객체지향프로그램이다.
  • 소스코드에는 클래스를 만든다.
    클래스를 여러개 만들수는 있지만, 클래스를 하나만 만든다.

 

public class 클래스이름{
    public static void main(String[] args){
          명령;
          명령;
    }
}
 
  • public이나 class 같은건 약속되어 사용되는 키워드이다.
  • 클래스이름은 스칼라 표기법으로. 단어의 조합으로 만들되 단어의 첫 글자를 대문자로 한다.
    일반적으로 단어들이 조합될때는 표기법은 카멜 표기법을 사용한다.
  • 중괄호 열고닫고는 하나의 세트로 묶어서 생각한다.
  • 클래스 중괄호 안에는 field(필드), constructor(생성자), method(메소드)만 만들수 있다.
    - 여기에서 가장 중요한건 메소드이다. 메소드 안에 명령을 넣어줄 수 있기 때문.
    - 명령은 무조건 메소드 안에 작성해야 한다.
    - 메소드가 없는 클래스는 존재 가치가 없다.
  • 프로그램 만들기 위해 무조건 만들어야 하는 메소드 : main
    - 메소드는 호출을 해야지만 그 안에 명령이 실행된다. 이 호출은 프로그래머가 할거지만, 프로그래머가 호출하지 않아도 자동호출되는 메소드가 main 메소드이다.
 

 

  • 나중에 자바프로그램을 실행할때는 JVM을 통해 실행하는데, 기본적으로 위에서 아래로, 왼쪽에서 오른쪽으로 읽어나간다.(순차)
    - 그런데 순차만 있으면 안되고, 취향별 선택이 있어야 한다. 그리고 그걸 반복한다.
    - ‘순차 / 선택 / 반복’ 만 잘하면 된다.
    - 프로그램은  ‘순차’가 기본이고, ‘선택’과 ‘반복’을 적절히 사용해서 쓰면된다.

  • Java 소스파일(Source Code / 클래스이름.java)을 컴파일 과정을 통해 class파일(Byte Code / 클래스이름.class)로 만들어준다.
    그 다음 class파일을 실행(배포)한다.(JVM:Java Virtual Machine)

  • 컴퓨터는 0과 1만 읽는다. 그래서 자바 소스파일에 있는 소스코드를 읽을 수 없다. 그래서 우리는 컴파일 작업이 필요하다.
    - 컴파일을 통해 소스코드를 Byte Code(0과 1로 만들어진 코드)로 만들어준다.
    >> 이걸 class파일이라 한다.(파일명 : 클래스이름.class)
    - 컴파일을 위해서는 컴파일러가 필요.( javac 소스파일명)
javac 소스파일명 (확장자 포함)
단, 이 소스파일에는 오류가 있으면 안된다.
한군데라도 문법적 잘못된 곳이 있으면 에러가 된다.(에러 원인을 알려줌)

에러 메세지를 봤는데 뭔지 모르겠다면 문법을 모르는것이다. 그럼 다시 공부해야 한다.

 

  • 이 클래스 파일을 가져다가 실행을 시켜야 한다.(배포한다)
    배포하는건 클래스 파일을 해야한다.
    실행을 할때는 JVM(Java Virtual Machine)을 통해 한다.(JVM은 JRE를 통해 설치)
java 클래스이름
자바는 운영체제와 상관없이 동일하게 사용가능하나, 각 운영체제별로 거기에 맞는 JVM이 설치되어 있어야 한다.
그런데 그건 기본적으로 이미 JDK안에 다 들어있다.

JVM의 장점이자 단점

  • 장점 : 운영체제(플랫폼)의 영향을 받지 않는다.
  • 단점 : JVM이 필수로 있어야지만 실행이 가능하다.
  • 단점 : JVM을 통해 실행이 되어야 하기에 실행속도가 느리다.

java 클래스이름
이렇게 명령 주면 main() 메소드를 호출한다.
  • 객체지향이기 때문에 클래스가 매우 많을거고 클래스가 많은만큼 소스파일이 많고 그만큼 클래스 파일도 많을텐데, 그걸 다 묶어서 배포해야한다.

  • 소스파일 만들어서 컴파일 시켜서 실행시켜보는것 예제 테스트

public class HelloWorld{
	public static void main(String[] args){
		입력 관련 명령;
		...
		데이터 처리 명령;
		...
		출력 관련 명령;
		...

		System.out.print("Hello,");   ⇒ System 클래스가 가지고 있는 out이라는 필드를 가지고 와서 print 메소드를 출력한다.
		System.out.println("World!!!"); ⇒ 문자값을 출력하는데 enter를 같이 출력
		System.out.println("Good Bye");
	}
}
더보기

[출력물]
Hello, World!!!
Good Bye

여기에서 dot은 ‘가지고있는’의 의미라 생각하면 됨.

System.out 도 일종의 객체이다.
System 클래스가 가지고 있는 out이라는 필드를 가지고 올거고, 이 out이라는 필드는 String이라는 객체다.
 그리고 print라는 메소드를 통해 모니터에 출력할 수 있다.
메소드는 명령들을 실행해서 필요한 기능들을 구현할 수 있도록 하는 이름.
메소드를 호출한다.(method invoke)

문자값을 문자열이라 한다.

  • 모든지 순서는 입력부터 받아야 되고, 처리를 해야되고 출력을 해야한다.
  • 계산은 컴퓨터가 할지 몰라도 설계는 사람이 해야한다.
 

  • 파일의 문자형태(charset) : UTF-8(조합형 / 자음과 모음이 하나로 합쳐진 것)

  • 명령 프롬프트 실행(검색에서 cmd로 실행)
  • 소스파일 있는 경로로 가야됨.

  • javac 소스파일명 (확장자 포함)
    으로 컴파일 했을때 아무런 메세지 안뜨면 잘된거다.
    문제가 있을경우 에러메세지가 뜬다.
  • java 클래스명 (class 확장자 제외)
    으로 실행하면 메세지가 뜬다.

 

  • SI : 개발
  • SM : 관리

 

  • 프로그램 개발할때 쓰는 도구 : IDE
  • 특히 자바 개발할때 가장 많이 쓰는 도구가 이클립스이다.
  • 인텔리J는 스프링 부트에 쓸때가 좋고 일반 자바 개발에는 좋지 않다.

 

이클립스


다운로드 > Download Packages > Eclipse IDE for Enterprise Java and Web Developers

이걸로 다운받아야 일반적인 자바 프로그램 뿐만 아니라 웹 프로그램도 개발이 가능하다.

반응형

댓글