자바란 무엇인가?

Kim·2020년 11월 21일
0

자바

목록 보기
1/1
post-thumbnail

(0) 프론트엔드와 백엔드

프론트엔드 (Client)인터넷백엔드 (Server)
웹브라우저를 다룸SKT서버를 다룸
HTML, CSS, Javascript, jQueryKTJava, Python, PHP, C++ 등
Framwork : Reactjs, Vuejs, Angularjs 등LG 같은 통신망Framework : Spring, Django, Flask 등

MYSQL 공짜, Oracle은 학생들에게 공짜 👉 공부해라




(1) 프로그래밍 언어

  • 📌 정의 :

    사람과 기계(컴퓨터) 사이의 다리 같은 역할. 컴퓨터와 사람이 대화하도록 돕는 통역사 같은 역할
    👩 사람💡 프로그래밍 언어💻 기계(컴퓨터)
    한국어,영어...고급언어: 자바, C / 저급언어 : 어셈블리어기계어
    코드 작성(소스) 👉소스를 기계어로 컴파일 👉기계어를 읽음




(2) 자바

  • 📌 정의 :

    애플리케이션 및 서버 애플리케이션을 개발하는 프로그래밍 언어

  • 📌 자바의 특징

    🐣 (2)-1 객체 지향 언어
    부품에 해당하는 객체를 먼저 만든 뒤, 이들을 하나씩 조립 및 연결해서 프로그램을 만든다. 자바는 완전한 객체 지향 언어이다. 객체를 만들기 위해 클래스(설계도, 틀 같은 것이라고 이해하면 됨)를 작성해야 한다. (즉, 클래스 생성 👉 객체 생성)

    자바는 객체 지향 언어에 필요한 ✌캡슐화(Capsulization), 추상화(abstraction), 상속(Inheritance), 다형성(Polymophism)✌의 기능을 지원하고 있다. 저 4개는 일단 외우기 진짜 중요함.

    🐣 (2)-2 운영체제에 대해 독립적임
    예를 들자면, 자바로 만든 프로그램은 운영체제에 따라 수정하지 않아도 잘 작동한다. 왜냐하면 JRE(Java Runtime Environment)와 JVM이 있기 때문이다.

    🐣 (2)-3 람다식(함수 스타일) 코딩 지원함
    뒤로 가면 나오겠지만 데이터의 병렬처리, 이벤트 지향 프로그래밍에 적합하다. 람다식(Lambda Expressions)을 이용하면 필터링, 매핑, 집계가 쉬워지고 코드가 간결해진다.

    🐣 (2)-4 메모리 자동 저장 됨
    객체를 생성할 때 자바가 스스로 메모리 영역을 할당하고 불필요한 것은 Garbage Collector가 알아서 제거한다.

    🐣 (2)-5 멀티 스레드 가능
    작업 속도를 빠르게 하려면 멀티 스레드 기능이 필요하다. 이 개념은 나중에.

    🐣 이 외에도, 동적 로딩을 지원해서 필요한 객체만 로딩해서 작업 속도가 빨라지는듯 하나 JVM 과정으로 완전한 기계어인 C보다는 느리다. 대신에 보안이 좋으며 오픈 소스 라이브러리가 풍부한 특징겸 장점이 있다.




(3) 자바 가상 기계(JVM)

  • 📌 정의 :

    JVM(java.exe) : 바이트 코드를 운영체제 별로 실행시킬 수 있는 기계어로 변역 및 프로그램 실행

    처음 자바 파일(.java)에서 컴파일 되면, 자바 클래스 파일(.class)은 기계어가 아닌 중간 단계의 바이트 코드를 쓴다. 바이트 코드를 컴퓨터에 바로 쓰는 것은 불가능하다.
    JVM은 실제 운영체제 대신 자바 프로그램을 실행시키는 가상 운영체제라고 생각하면 된다. 그러고 JVM은 운영체제 마다 다 다르다!




(4) 자바 프로그램 실행 과정

  • 📌 대략적인 순서 및 정리

.java (source) = 에디터👉컴파일(javac.exe) = JDK👉.class(byte code)👉JVM이 OS에 맞는 기계어로 번역👉실행

🐣 에디터 : 소스코드 작성용(.java)
Visual Studio Code, Eclipse 등이 있음.

그 중에 이클립스는 자바코딩하기위해 만들어진 프로그램임
Eclipse IDE✌ (Integrated Development Environment=통합개발환경)는 에디터, 컴파일, 프로그램 실행, 디버깅 모두 가능하다!

🐣 JDK (Java Development Kit) = 컴파일 프로그램 : 중간언어(바이트 코드) 생성함

🐣 JVM (Java Virtual Machine) : 프로그램 실행용. JRE (Java Runtime Environment)안에 포함되어 있음. 그래서 JRE를 운영체제에 따라 설치해야 함.




(5) 자바 프로그램 개발하기

  • 📌 대략적인 순서

    .java 소스 파일 작성
    👉 컴파일러(javac.exe)로 바이트 코드 파일(.class) 생성
    👉 JVM 구동 명령어(java.exe)로 실행

  • 📌 대략적인 프로그램 소스 보기

    🐣 클래스 : 필도 혹은 메소드를 포함하는 블록
    🐣 메소드 : 실행문을 모아놓은 블록
    클래스와 메소드는 둘다 { }로 시작하고 끝남

public class Whatever {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
    }
}

클래스 이름 : Whatever, 메소드 이름 : main

🐣 main method : 가장 먼저 실행되는 메소드라 실행 진입점(entry point)다. 한 프로젝트(클래스 묶어 놓음) 당 한 메인 메소드만 있어야 한다. 안그러면 에러 난다.

public static void main(String[] args){

}

🐣 메소드, 클래스, 프로젝트 이름에 key word 쓰면 안됨!! (예 : for, while 등등)
클래스, 프로젝트, 자바 파일 이름 : 대문자로 시작
변수, 메소드 이름 : 소문자로 시작!
Camel Notation 법칙 적용 시켜주기!
roomID 이런 것 처럼




(7) 약간의 팁??

  • 📌 팁이라 하기에도 애매하지만..그냥 받아 적은 것

    SI (System Integration) : 소프트웨어개발

    SM (System Management) : 소프트웨어 유지 관리

    솔루션+SI
    Salesforce.com - CRM
    SAP - ERP
    Customization - Setting

    Service (Portal: Naver, Daum) : 게임, 여행, 교육 등

    Automation FA : 공장자동화
    내가 된다면 공장자동화 가고 싶다.. 집에서 차타고 출근 가능한데

0개의 댓글