[JAVA]

[처음부터 다시 하는 JAVA] 자바란?

북방바다코끼리표범 2024. 1. 3. 23:23

5개월간의 국비 교육을 수료하고 취업 준비를 하면서 생각보다 자바에 대해 깊이 배우지 못했고, 시간에 쫒겨 수박 겉핥기 식으로 언어를 배웠다.

기초에 대해 잡고 가지 않으면 나중에 문제가 생길 것 같아서 자바를 처음부터 다시 공부하기로 했다.

다시 처음부터 자바를 공부해보자!

 

객체를 만들 때는 나는 어렵게 만들더라도 사용하는 사람은 쉽게 사용하도록 만들어야 한다

 

자바란?

자바 프로그램은 컴파일과 실행 단계를 거침

  • 자바 소스 코드를 개발자가 작성
  • 자바 컴파일러를 사용해서 소스 코드를 컴파일 함
    • 자바가 제공하는 javac 라는 프로그램 사용
    • .java → .class 파일이 생성됨
    • 자바 소스코드를 바이트 코드로 변환하며 자바 가상 머신에서 더 빠르게 실행될 수 있게 최적화하고 문법 오류도 검출함
  • 자바 프로그램을 실행
    • 자바가 제공하는 java 프로그램 사용
    • 자바 가상 머신(JVM) 실행되며 프로그램 작동

자바는 특정 OS에 맞춰서 개발하지 않아도 됨 os문제는 자바가 해결함

 

개발할 때 자바와 실행할 때 다른 자바 사용 가능

 

서버는 주로 리눅스 서버 사용(aws 사용시 amazon corretto 자바를 aws 리눅스 서버에 설치하면 됨)

 

자바의 운영체제 독립성 덕분에 각각의 환경에 맞춰 자바 설치 가능

 

Hello.java 분석

  • public class로 정의된 hello 클래스 public class의 클래스 이름과 파일이름은 같아야 함.(대소문자 구분 중요)
**public static void main(String[] args){ … };**
  • 클래스안에는 필드(field)와 메서드(method)를 가질 수 있다.
  • 프로그램을 실행하려면 반드시 가져야 하는 main 메서드
  • java로 만든 프로그램이 실행되려면 위의 코드(code)를 가지고 있어야 함 (프로그램 시작점이라고도 함)
**System.out.println("hello");**
  • 해석 : 클래스인 System이 가지고 있는 필드 = out
  • out이 가지고 있는 println
  • System.out 은 System이 가지고 있는 out 이라는 의미.
  • out.println은 out이 가지고 있는 println이라는 의미
  • println 뒤에 괄호가 붙어 있는데 이것을 println 메소드 라고 함
  • out 은 괄호가 붙지 않았는데 이것을 out 필드라고 함
  • out이 가지고 있는 println메서드의 역할은 괄호 안의 내용을 화면에 출력한다. (큰따옴표 안의 내용이 출력됨, 큰따옴표 까지 포함해서 문자열(String) 이라고 함)
  • 자바에서 첫글자가 대문자로 시작 == 클래스
  • 이름이 써있고 뒤에 괄호가 붙어있으면 = 메서드
  • 소문자로 시작하는데 괄호가 붙어있지 않으면 == 필드

시스템이 무엇을 가지고 있는지 알려면 api 라는 문서의 내용을 살펴야 함

 

컴파일하기

  • 컴파일을 하려면 반드시 javac 라는 프로그램이 필요.
  • javac는 자바 컴파일러(Compiler)를 의미

컴파일 구조 예시

  • 터미널에서 위의 명령을 입력하면 Hello.java라는 파일을 읽어들여서 컴파일을 하게 됨
  • 컴파일을 성공하면 Hello.class 파일이 생성되고 실패시 오류 메세지보임
  • Hello.class 파일을 바이트 파일이라고 말함

JVM 으로 실행하기

  • 자바로 작성된 프로그램이라는 것은 = 컴파일된 클래스(바이트 파일 의미)
  • 작성된 바이트 파일을 실행하려면 JVM이 필요 (JVM 역할을 수행하는 것이 java 명령어)
  • java 프로그램은 Hello 클래스를 한 줄 읽고 해석하고 실행하고를 반복하며 실행 이렇게 한줄 읽고 해석하며 실행하는 방식을 인터프리터 (interpreter)방식 이라고 함

인텔리제이 ide

  • IDE ? 통합 개발 환경
  • 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 환경을 제공하는 소프트웨어
  • 대표적인 IDE = 이클립스, 인텔리제이

여러사람이 함께 개발할때는 .idea 폴더나 iml 파일은 개발자마다 별도로 저장되게 관리해야 한다.

소스코드를 공유하는 시스템에 소스코드를 올릴때는 intellij 설정파일이 공유되지 않게 조심하자.

덮어쓰여지기 때문에 내 설정이 사라진다.

형상관리 서버에 안올리도록 조심하자.