Visual Studio Code에서 Java 프로그래밍

From DISLab
Revision as of 11:48, 22 December 2022 by Swpark (talk | contribs) (Created page with "== Java == === Java 언어의 특징 === * High-level, class-based, object-oriented programming language * Write once, run anywhere (WORA) * Java Virtaul Machine (JVM) ** bytecode (compile 된 기계어 코드) * C, C++와 비슷한 문법 * Dynamic capabilitites ** Reflection ** Runtime code modification === 개발 === * Sun Microsystems에 근무하고 있던 James Gosling에 의해 개발됨 * Sun이 [https://www.oracle.com Oracle]에 인수됨 === 역사 === * 1991...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Java

Java 언어의 특징

  • High-level, class-based, object-oriented programming language
  • Write once, run anywhere (WORA)
  • Java Virtaul Machine (JVM)
    • bytecode (compile 된 기계어 코드)
  • C, C++와 비슷한 문법
  • Dynamic capabilitites
    • Reflection
    • Runtime code modification

개발

  • Sun Microsystems에 근무하고 있던 James Gosling에 의해 개발됨
  • Sun이 Oracle에 인수됨

역사

  • 1991년 James Gosling이 interactive television에 사용할 언어로 개발되기 시작함
  • Oak (Gosling의 마당에 있던 나무) -> Green -> Java (인도네시아의 자바 커피에서 이름을 따옴)
  • 1996년 Java 1.0 발표
  • Write once, run anywhere (compile된 후 어느 기계에서나 실행될 수 있도록)
  • Java SE (standard edition), Java EE (enterprise edition), Java ME (micro edition)
  • 2006년. Sun은 JVM을 GPL 2.0 라이센스로 공개 (free & open-source software)
  • 2009년. Oracle이 Sun을 인수하면서 Java 기술도 인수함
  • 2016년. JDK 9부터 browser plugin 중단 (그러므로 Stanford Karel이 동작 안함)

설계 원칙

  1. It must be simple, object-oriented, and familiar.
  2. It must be robust and secure.
  3. It must be architecture-neutral and portable.
  4. It must execute with high performance.
  5. It must be interpreted, threaded, and dynamic.

Wikipedia에서 참조

Java 설치

이 부분의 본문은 Java 설치입니다.

Java 다운로드

Visual Studio Code 설치

이 부분의 본문은 Visual Studio Code 설치입니다.

Visual Studio Code 다운로드 및 설명서

한국어 지원

  • Vscode extension 설치 - 확장(Ctrl-<shift>-x) / korean 입력
    • Korean Language Pack for Visual Studio Code

Java

  • Vscode extension 설치 - 확장(Ctrl-<shift>-x) / java 입력
    • Extension Pack for Java
    • Debugger for Java
    • Language Support for Java(TM) by RedHat
    • Project Manager for Java

프로젝트 관리

Java를 이용하여 앱을 개발할 때 Project를 지원한다.

  • Vscode extension 설치 - 확장(Ctrl-<shift>-x) / maven 입력
    • IntelliCode
    • Maven for Java
    • Maven dependency explorer

UML(Unified Modeling Language)

  • Vscode extension 설치 - 확장(Ctrl-<shift>-x) / plantuml 입력
    • PlantUML
    • PlantUML Previewer
    • PlantUML Grammar

Python

  • Vscode extension 설치 - 확장(Ctrl-<shift>-X) / python 입력
    • Python

C/C++

  • Vscode extension 설치 - 확장(Ctrl-<shift>-X) / c++ 입력
    • C/C++
    • C/C++ Extension Pack
    • Better C++ Syntax
    • C/C++ Themes
  • MinGW-w64 설치
    $ pacman -Syu   // 설치 후 실행
    $ pacman -Syu   // Run "MSYS2 MSYS" from Start menu.
    $ pacman -S --needed base-devel mingw-w64-x86_64-toolchain
    
  • Path에 C:\msys64\mingw64\bin 등록함

Windows Subsystems for Linux (WSL)

  • Vscode extension 설치 - 확장(Ctrl-<shift>-X) / wsl 입력
    • Remote - WSL

기본 예제 프로그램 및 설명

이 부분의 본문은 기본 예제 프로그램 및 설명입니다.
FirstClass

첫 번째 Java 프로그램

public class FirstClass {
    public static void main(String[] args) {
        System.out.println("hello");
    }
}
운영체제 계통도

첫 번째 C 프로그램

#include <stdio.h>

int main()
{
    fprintf(stdio, "hello\n");
}
  • vscode 실행
    mkdir projects
    cd projects
    mkdir helloworld
    cd helloworld
    code .
    
  • Build
    mingw64 g++ build
    • 터미널 / 작업 실행 선택
  • 실행 : 터미널에서 직접 helloworld.exe를 실행한다.

첫 번째 C++ 프로그램

#include <iostream>

using namespace std;

int main()
{
    cout << "hello" << endl;
}

Unix에서 프로세스가 생성될 때 마다 열리는 파일들

  • Unix에서 프로세스가 만들어지면 생성되는 세 개의 파일. 모든 프로세스는 세 개의 파일이 열려(open)있다.
    • Standard input : stdin(C), cin(C++), System.in(Java)
    • Standard output : stdout(C), cout(C++), System.out(Java)
    • Standard error : stderr(C), cerr(C++), System.err(Java)
  • Standard output 예제
    #include <stdio.h>
    #include <fcntl.h>
    
    int main()
    {
        int fd;
        char buf[10];
        
        strcpy(buf, "hello\n");
    
        fd = open("stdoutput.c", O_RDONLY);
        printf("%d\n", fd);
    
        write(1, buf, sizeof(buf));
    }
    
  • 실행 결과
    3
    hello
    
    1. 사용자가 작성한 프로그램(user program)에서 첫 번째 open 하여 얻은 file descriptor가 0이 아니라 3이다. 왜냐하면 0, 1, 2는 이미 stdin, stdout, stderr로 사용중이기 때문이다.
    2. write 함수는 파일에 데이터를 기록하는 함수이다. 이 함수는 첫 번째 인자로 대상 파일의 file descriptor 번호가 필요한데, write(1, ...)에서 1은 stdout을 뜻한다. 그러므로 출력이 화면으로 나온다.