[JAVA] 자바 프로그램 개요 및 실습환경 구축

logg·2020년 12월 28일
0
post-thumbnail

비전공자로서 개발자가 되기 위해서 체계적인 커리큘럼과 관리가 필요한 상황이었다.

그래서 SSAFY_5기에 지원을 하였고 저번 주에 최종 합격이라는 좋은 결과를 얻게 되었다.

어제까지는 혼자공부하는자바를 보면서 자바에 대한 공부를 하였지만 오늘부터는 SSAFY에서 제공하는 JAVA교육을 통해서 JAVA 공부를 할 예정이다.

1. 자바의 특징

이전 게시물에서도 자바의 특징을 몇 가지 적었었는데 책에서는 없었던 내용에 대해서만 작성해보겠다.

  • 자바는 분산처리에 용이하다.

    • 분산환경에서 TCP/IP등의 프로토콜을 통해 효율적으로 실행할 수 있도록 설계된 언어
    • 서로 다른 컴퓨터 상의 객체들도 원격으로 호출하여 실행할 수 있는 라이브러리 제공
  • 자바는 컴파일과 동시에 인터프리터 언어이다.

  • 자바는 견고하다 : 여러 운영체제에서 쓰이기 위해 여러 특징들을 가진다.

    • 포인터를 사용하지 않음 -> 포인터를 사용하지 않는게 왜 견고하게 되는 것인지 조사 해봐야겠다
    • 자동으로 가비지 컬렉션 기능을 수행
    • 엄격한 데이터 타입의 검사를 통해 에러를 초기에 발견
    • 실행시간에 발생하는 에러를 처리
  • 자바는 안전하다.

    클래스 로더와 바이트 코드 검증기를 통해 코드를 분리하고 정리하는 과정을 거치게 된다. 미리 검증하는 과정을 거치기 때문에 안전하다고 하는 것 같다.


  • 자바는 높은 성능을 제공한다.
    • 가비지 컬렉션 기능이 추가되어있어 자동으로 메모리 관리가 가능
    • 메모리가 할당된 객체의 상태를 추적 관리
    • 더 이상 참조되지 않으면 자동으로 할당된 메모리 해체

  • 자바는 멀티스레드를 지원한다.
    • 하나의 CPU가 여러 개의 프로그램을 동시에 수정하도록 하여 수행속도를 빠르게 한다.

2. 자바 플랫폼

  • 일반적인 플랫폼과 다르게 자바 플랫폼은

    • 소프트웨어만으로 구성되어 있으며
    • JDK(Java Development Kit)로 설치된다
    • ex) Java SE(가장 기본이 되는 에디션), Jave EE, Java ME
  • 자바 플랫폼 구조

    • 자바 프로그램 -> 자바 가상 머신 -> 다양한 하드웨어 플랫폼으로 진행된다.

    • 자바 가상 머신은 자바로 쓰여진 애플리케이션과 특정 운영체제 중간에 존재하여 서로를 분리함으로써 애플리케이션이 운영체제에 영향을 받지 않고 동작할 수 있는 환경을 제공

    • 자바API는 프로그래머가 필요로하는 기본적인 클래스(Class)들을 거대한 라이브러리로 미리 만들어서 제공하는 것

3. 실습 환경 구축

2020-12-29
자바 프로그램 개발을 위한 자바 개발 환경 설치

다운로드 사이트: https://www.oracle.com/java/technologies/

설치 후 환경설정 진행
환경설정은 https://blog.naver.com/sjshi/222184557842 <- 이 분의 글을 참고해서 진행하였습니다😊

추가적으로, 환경설정 후 메모장으로 Hello.java 파일을 만들어본 후 cmd를 활용해 컴파일 후 class파일을 실행해보았다

  1. Hello!!를 출력하는 Hello.java 생성 (소스코드)

  2. cmd를 통해 Hello.java 파일을 javac를 통해서 클래스 파일로 컴파일 진행 -> Hello.class파일 생성

  3. 마지막으로 java Hello를 통해서 Hello.class 파일을 실행하여 Hello!!를 출력

자바 개발 툴 (이클립스)

SSAFY에서는 자바 개발 툴로 이클립스를 사용한다고 한다. 그래서 이클립스 설치를 해보았다.

먼저 특징을 살펴보겠다

  • 실시간 문법 체크나 디버깅 기능, 소스 자동 생성 기능등을 무료로 제공
  • 사용이 용이한 인터페이스 구성

https://anywhereifyoucan.com/273 <- 설치는 이 분의 글을 통해서 진행하였습니다😊



여기까지가 SWEA에서 제공하는 JAVA 첫 번째 강의였고 내일 두 번째 강의 내용 정리해보겠습니다
profile
logg

0개의 댓글