2021-11-26(금) 3주차 5일

Jeongyun Heo·2021년 11월 26일
0

github java style convention 검색

http://sideeffect.kr/popularconvention/

http://sideeffect.kr/popularconvention/#java

100자 구글싸..

JVM / JRE / JDK / JavaSE / JavaEE / JavaME

02-자바기초1 / 1 페이지

자바 제품

Java SE(Standard Edition) : 자바 Application의 기본 도구
  • JDK(Java Development Kit) : JRE + 개발도구(컴파일러, 디버거, 프로파일러 등)
  • JRE(Java Runtime Environment) : 자바 Application 실행 도구
    - JVM(Java Virtual Machine) : Bytecode 인터프리터

Java EE(Enterprise Edition) : 기업용 App 개발 관련 도구 (Java SE를 포함하지 않는다.)
    - Jakarta EE (이름 변경) : 개발 관리 소유권이 Eclipse 재단에 넘어감
    - Java SE를 포함하지 않는다.
    - 웹 기술(Servlet/JSP), 분산 컴퓨팅 기술(EJB), 웹 서비스, 기타 관리 기술이 들어 있다.

    Jakarta EE로 이름 변경됨
    Enterprise 라고 하면 Java SE를 포함하고 있다고 생각할 수 있는데 Java SE를 포함하지 않는다.

Java ME(Micro Edition) : Embedded App 개발 도구
    - 임베디드 프로그램을 개발할 때 필요한 기술을 제공한다.
    - 반도체 메모리에 자바 App 미리 저장 (ex.에어컨, 전자레인지, 자동차, 모니터 등)

    칩 안에 Java 프로그램을 심는 거
    모든 제품들은 프로그램이 심어져 있음 (ex.에어컨, 모니터 등)

모니터 버튼 누르면 조작 가능
모니터 안에 심어져 있는 프로그램이 실행됨

제품 안에 프로그램에 심어져 있는 걸 임베디드 시스템(embedded system, 내장형 시스템)

웹 개발은 Java SE, Java EE을 써야 됨
JDK를 깔면 JRE가 포함되어 있음. JRE 안에는 JVM이 있음.
JDK가 JRE에 개발도구가 결합되어 있으니까 JDK를 설치하는 거임.

Java EE에는 웹 기술(Servlet/JSP), 분산 컴퓨팅 기술(EJB), 웹 서비스, 기타 관리 기술이 들어 있다. 이 중에서 '웹 기술(Servlet/JSP)'을 써야 된다.

Java EE 안에는 JDK가 없다.
JDK를 쓰려면 Java SE를 다운 받아야 한다.

단순히 자바 프로그램을 실행만 시키는 사람들은 JRE만 있어도 되지만, 우리는 프로그램을 개발해야 되기 때문에 컴파일러나 디버거 같은 개발도구가 필요하기 때문에 JDK를 설치한다.

자바 컴파일과 실행

02-자바기초1 / 3 페이지

Hello.java(소스파일) --- 컴파일(javac.exe) --> Hello.class(Bytecode = p-code = IR code => 가상의 기계어)
진짜 기계어는 아니고 가상의 기계어
가상의 기계어이기 때문에 운영체제를 통해서 직접 실행할 수는 없음
OS에서 다이렉트로 실행 불가
why? 진짜 기계어가 아니다.
Hello.class 파일을 실행하려면 바이트코드를 play해주는 Java Virtual Machine이 필요하다.
Bytecode를 실행하기 위해서는 JVM이 필요
JVM = Bytecode 실행기 = interpreter, Player, Engine, Virtual Machine
직접 실행이 불가능하므로 JVM을 통해서 실행한다.

Bytecode와 JVM

02-자바기초1 / 4 페이지

Hello.class 바이트코드 파일은 운영체제에서 직접 실행이 불가능하고 JVM을 통해서 운영체제에서 실행한다.

.ppt → 파워포인트 → OS
.xls → 엑셀 → OS
.mp3 → 플레이어 → OS
.fla → 플래시 플레이어 → OS

ppt 파일 다이렉트로 실행 불가능. 파워포인트가 깔려 있어야 됨. 파워포인트에서 ppt 파일을 읽어서 실행함.

해당 운영체제에 맞는 Player를 깔아야 됨.

Hello.class 파일을 만들려면 자바 컴파일러의 도움을 받아야 함
소스파일을 읽어서 생성

ppt 파일을 생성하려면 파워포인트가 필요함

파워포인트는 ppt 파일을 만드는 일도 하고 플레이하는 일도 함
만드는 애랑 플레이 하는 애랑 같음

자바의 경우는 클래스 파일을 만드는 건 컴파일러, 플레이 하는 건 JVM
역할이 나뉨

mp3 파일도 다른 애를 통해서 만들고 MP3 플레이어로 플레이 함

자바 컴파일러가 하는 일이 JVM이 원하는 형식대로 Bytecode로 포맷을 맞춰준 거
JVM이 이해할 수 있는 형태로 바꿔줌

자바 컴파일러로 Hello.class 파일을 만들고 JVM으로 play

자바 언어로 명령문을 작성하는 최소 코드

02-자바기초1 / 5 페이지

class 클래스명 {
  public static void main(String[] args) {
  
  }
}  

main 메서드 : JVM이 명령문을 시작하는 입구 (entry point)

main이 없으면 시작할 수가 없음. 반드시 형식을 지켜야 됨.

프로그램 소스를 관리할 폴더를 만드는데 소스가 섞여 있으면 안 되니까 목적에 따라서 명령문을 관리해야 됨. 프로그램에 따라서 명령문을 관리해야 됨. 프로그램 목적에 따라서 소스코드를 관리해야 한다. 프로그램 목적을 프로젝트라고 한다.
특정 프로그램을 작성할 목적으로 디렉토리를 구성해야 되는데 그 디렉토리를 프로젝트 디렉토리라고 한다. 시작은 항상 프로젝트 디렉토리를 만드는 것에서 시작한다.

어떤 프로젝트로 하는지에 따라서 디렉토리 구조를 다르게 한다.

Project name을 정할 때는 그 목적을 적어야 함.
예) ShoppingMall, JavaWebBrowser

소스파일과 class 파일을 한 폴더에서 관리할지, 분리해서 관리할지

내가 작성한 소스파일과 자바 컴파일러로 변환된 class 파일이랑 분리해서 관리하는 게 쉬움

Finish

모듈 생성하지 않기 Don't Create

Open Perspecrive

이클립스 안쪽을 workbench(작업대)라고 한다

뷰를 이동할 수 있음

왼쪽에 있는 Java EE 아이콘 클릭하면 웹 개발 작업대를 재배치함
서버 설정하는 탭들이 존재함.

웹 개발 관점
자바 개발자 관점

언제든지 관점 바꿀 수 있음

src - New - Other

File

확장자(.java)까지 입력해준다.

명령창을 콘솔창이라고 한다.
콘솔창으로 출력할 때는 System 이라는 도구 이름 안에 out 이라는 도구가 콘솔창에 출력하는 거
println은 한 줄의 문자열을 출력하는 기능
문자열을 출력하고 싶으면 양쪽에 double quotation

class Hello {
  public static void main(String[] args) {
    System.out.println("Hello, world!");
  }
}

cmd 띄우기

프로젝트 폴더 경로로 이동하기

프로젝트 폴더 경로 확인하는 법

프로젝트 이름에서 오른쪽 마우스 클릭 - Properties

프로젝트 디렉토리가 어디에 있는지 알 수 있음

C:\Users\JYH>cd eclipse-workspace

C:\Users\JYH\eclipse-workspace>cd test

Window - Show View - Navigator

test 폴더 안에 있는 구조 그대로 보여줌

C:\Users\JYH\eclipse-workspace\test>cd src

C:\Users\JYH\eclipse-workspace\test\src>dir

Hello.java 컴파일 하면 됨

자바 소스파일 컴파일

$ 프로젝트폴더/src/Hello.java

javac Hello.java

C:\Users\JYH\eclipse-workspace\test\src>javac Hello.java

잘못 작성했더라도 컴파일 하는 과정에서 문법검사를 해서 바로 에러 뜸

dir 해보면 Hello.class 파일이 생긴 걸 확인할 수 있다.

src 폴더에 소스파일이랑 클래스파일이 둘 다 있다.

개발할 때 소스파일을 몇천개를 만들게 되는데 몇천개가 섞여 있다고 생각해봐라

나중에 고객사에 배포할 때 소스파일 빼고 클래스파일만 배포해야 되는데 불편함

소스파일을 컴파일할 때 옵션을 준다.

-d 옵션을 준다

현재 폴더(src)에서 상위 폴더로 가서 그 폴더 밑에 bin이라는 폴더가 있는데 거기에 컴파일한 결과를 둬라

javac -d ../bin Hello.java

컴파일한 class 파일을 bin 밑에 둔다.

기존 클래스파일 지우기

확장자가 class인 파일 다 지워라

C:\Users\JYH\eclipse-workspace\test\src>del *.class

Mac : rm *.class

.. : 상위 폴더로 가라
../bin : 상위 폴더로 이동한 다음에 bin 이라는 폴더로 이동해라

번거로우니까 src 폴더에서 실행하지 말고
현재 위치가 src에 있다고 가정하고

src 폴더에서 실행하지 말고 프로젝트 폴더에서 실행해라

test 폴더 밑에 bin이니까 그냥 bin이라고 적으면 됨 → bin
소스파일은 src 폴더 밑에 있는 Hello.java 파일 → src/Hello.java

bin 폴더 가서 Hello.class 파일 지우기

프로젝트 폴더로 가서 명령어 입력하기

프로젝트폴더 $ javac -d bin src/Hello.java

C:\Users\JYH\eclipse-workspace\test>javac -d bin src/Hello.java

소스파일이 몇천개인데 클래스파일이랑 섞여있으면 관리하기 힘듦
소스파일은 따로 src 폴더에 모아두고,
컴파일된 가상 기계어 파일은 bin 폴더에 모아둔다.

Text 파일과 Binary 파일

▣ Text 파일
• 저장형식 : UTF-8, MS949 등 특정 문자 집합의 규칙에 따라 저장
• 파일 보기 : 텍스트 편집기라면 파일 보기 가능
• 파일 편집 : 텍스트 편집기는 모두 가능
  eclipse, vscode도 텍스트 에디터
• 파일 크기 : 파일 크기가 크다.
• 예 : .java / .csv / .xml / .html / .cs / .js / .txt / .md / .properties 등

▣ Binary 파일
• 저장형식 : .ppt, .psd, .gif, .pdf 등 특정 애플리케이션의 포맷에 맞춰 저장
• 파일 보기 : 해당 파일의 포맷을 알고 있는 프로그램만 가능
• 파일 편집 : 해당 파일의 포맷을 지원하는 프로그램만 가능
  메모장에서 pdf 저장 못 함
  vscode에서 pdf 저장 못 함
  eclipse에서 pdf 저장 못 함
  MS Word에서 pdf 저장 가능
  파워포인트도 pdf로 저장 가능
  아래한글도 pdf로 저장 가능
  아무 프로그램이나 가능한 게 아님 → 전용 프로그램 필요
• 파일 크기 : 파일 크기가 작다.
• 예 : .pdf / .doc / .hwp / .ppt / .xls / .mp3 / .avi / .jpg / .class 등

폴더명이 bin(binary)
컴파일 된 클래스파일은 특정 포맷으로 저장된 파일 (바이너리 파일)
실행과 관련된 파일도 바이너리 파일이라고 한다.

Hello.class 파일 실행하기

-classpath 또는 -cp 옵션 주기

클래스파일이 들어있는 폴더 → bin

프로젝트폴더 $ java -classpath bin Hello

프로젝트폴더 $ java -cp bin Hello

C:\Users\JYH\eclipse-workspace\test>java -cp bin Hello
Hello, world!

src로 들어가지 말고 항상 프로젝트 폴더에서 실행하기

존재하지 않는 클래스파일 실행시켜 보기

C:\Users\JYH\eclipse-workspace\test>java -classpath bin Hello2
Error: Could not find or load main class Hello2
Caused by: java.lang.ClassNotFoundException: Hello2

Hello2 라는 클래스파일은 없음

Hello.java Ctrl + C 하고 Ctrl + V 해서 복붙하기

Project Explorer 보니까 Hello2.java가 2개 생김

Refresh 하니까 사라짐

왜 딱딱 안 맞아 떨어질까? 왜 저렇게 보이지??
왜 일치하지 않을까?
일치하다
싱크로나이즈
synchronize
동시에 발생하다[움직이다]; 동시에 발생하게[움직이게] 하다
…에 동시성을 갖게 하다, 동시에 일어나게[발생하게·움직이게] 하다.
일치시키다.

Refresh 하면 안 보이니까 나타나더라도 당황하지 말기

돈 주고 산 것도 아니니까 그냥 그러려니 하고 쓰기

Hello2.java 보면 class이름이 파일이름에 맞춰서 자동으로 Hello2로 바뀌어 있음

main : JVM이 명령문을 시작하는 입구

JVM이 명령문을 시작하는 입구 → entry point (진입점)

모든 건물에는 진입점이 필요함

public static void main(String[] args)에서 public 지워보기

static void main(String[] args)

컴파일 해보기

C:\Users\JYH\eclipse-workspace\test>java -d bin src/Hello2.java

bin 폴더에 Hello2.class 파일이 만들어짐

Hello2.class 파일 실행해보기

C:\Users\JYH\eclipse-workspace\test>java -cp bin Hello2

Error: Main method not found in class Hello2, please define the main method as:
   public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

에러남

public 붙여줘야 됨

이번에는 static 지워보기

public void main(String[] args)

컴파일 하기

C:\Users\JYH\eclipse-workspace\test>java -d bin src/Hello2.java

클래스파일 실행시켜 보기

C:\Users\JYH\eclipse-workspace\test>java -cp bin Hello2

Error: Main method is not static in class Hello2, please define the main method as:
   public static void main(String[] args)

에러남

이번에는 void 대신 int 라고 입력해보기

return 0 추가해주기

class Hello2 {
  public static int main(String[] args) {
    System.out.println("Hello, world!");
    return 0;
  }
}

컴파일 하기

C:\Users\JYH\eclipse-workspace\test>java -d bin src/Hello2.java

클래스파일 실행시켜 보기

C:\Users\JYH\eclipse-workspace\test>java -cp bin Hello2

Error: Main method must return a value of type void in class Hello2, please
define the main method as:
   public static void main(String[] args)

에러남

이번에는 main을 mein으로 써보기

class Hello2 {
  public static void mein(String[] args) {
    System.out.println("Hello, world!");
  }
}

컴파일 하기

C:\Users\JYH\eclipse-workspace\test>java -d bin src/Hello2.java

클래스파일 실행시켜 보기

C:\Users\JYH\eclipse-workspace\test>java -cp bin Hello2

Error: Main method not found in class Hello2, please define the main method as:
   public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

에러남

public static void main 이라는 entry point가 반드시 필요함

이번에는 String[]에서 그냥 String으로 바꿔보기

class Hello2 {
  public static void main(String args) {
    System.out.println("Hello, world!");
  }
}

컴파일 하기

C:\Users\JYH\eclipse-workspace\test>java -d bin src/Hello2.java

클래스파일 실행시켜 보기

C:\Users\JYH\eclipse-workspace\test>java -cp bin Hello2

Error: Main method not found in class Hello2, please define the main method as:
   public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

에러남

public static void main(String[] args) 정확하게 일치해야 됨

이번에는 파라미터 이름을 args에서 ok로 바꿔보기

class Hello2 {
  public static void main(String[] ok) {
    System.out.println("Hello, world!");
  }
}

컴파일 하기

C:\Users\JYH\eclipse-workspace\test>java -d bin src/Hello2.java

클래스파일 실행시켜 보기

C:\Users\JYH\eclipse-workspace\test>java -cp bin Hello2
Hello, world!

에러 안 남

프로그램의 진입점 main 메서드

JVM을 통해서 클래스를 실행한다면 그 클래스는 반드시 main이라는 entry point가 반드시 있어야 한다.

java entry point 검색

자바 뿐만 아니라 C, C++도 main을 entry point로 한다.

자바스크립트는 entry point가 없음
그냥 위에서 아래로 순서대로 실행됨
바깥을 감싸는 게 없음

C는 main이라는 entry point가 시작점
C도 function이라는 중괄호 안에 명령문을 작성해야 됨
최소 껍데기가 function

근데 자바는 더 두터움
class 라는 껍데기가 하나 더 있음
class 껍데기 안에 있는 main 메서드 껍데기 안에 명령문을 작성해야 됨

JavaScript / C / Java

Hello.js
위에서 아래로 실행
entry point가 따로 없고
entry point는 첫 줄이다.

Hello.c

void main() {
    
}

entry point는 main() 함수다.

Hello.java

class Hello {
    public static void main(String[] args) {

    }
}

껍데기가 하나 더 있음
entry point는 main() 메서드다. (자바에서는 함수라고 안 하고 메서드라고 함)

왜 여러 폴더로 나누어져 있
왜 하나에 안 넣음?
옷을 분류를 해야지 넣고 빼기가 좋음
상자 또는 서랍장
폴더

그래서 우리도 파일을 관리할 때

파일이 한두개면 한 폴더에 쭉 나열하면 됨
파일이 많으면 폴더별로 분류함

프로그램 명령문(코드) 관리

① 단순관리
하나의 파일에 명령문이 들어 있음

② 기능(function)별로 묶어서 관리
function 등장
기능하는 명령문
함수로 만듦
왜? 명령문이 복잡해지고 많아졌다.
function이 도입된 이유 : 소스코드 관리
묶어서 관리하니까 더 편함
유지보수하기 편하고
명령문이 몇 줄 안 될 때는 상관없지만

③ 서로 관련된 기능을 분류(class)하여 묶어서 관리
class 등장
classification 분류
classify 분류하다
함수를 다시 분류해서 클래스 묶음으로 만들어 놓음
이게 바로 객체 지향 프로그램
대량의 소스코드를 명령문을 조금 더 체계적으로 더 잘 관리하기 위해서 등장
객체지향 문법은 프로그래밍 속도랑 전혀 상관없음
오히려 단순 관리, 기능별로 묶어서 관리하는 게 프로그래밍 속도가 더 빠름
묶어놓으면
그럼에도 불구하고 그렇게 하는 게 관리 측면에서 낫기 때문에
속도가 떨어짐에도 그렇게 하는 거임
C C++
C 언어가 기능별로 묶어서 관리하는 기법
functional programming 언어
C++는 객체지향 프로그래밍 언어
C++보다 C로 짜는 게 더 빠름
C++가 속도를 높이려고 만든 언어가 아니라 대량의 명령문을 C보다 분류해서 관리하기 쉬우라고 만든 게 객체 지향 프로그래밍 언어
특히 자바에서는 class별로 파일 분리

④ class 별도 파일 분리

더 관리하기 쉽게끔 별도 파일로 분류

명령문이 적을 때는 단순관리

각각의 function들을 class로 분류
클래스이름 = 분류명

내거가 아니면 익숙해지는 거
프로그래밍 언어에서 필요한 건 익숙함
class 라는 단어, function 이라는 단어, parameter 라는 단어

⑤ class 파일을 묶어서 관리 → 패키지
패키지 등장
파일이 수천개가 되면 또 관리하기 힘들어짐
class 파일을 묶어서 관리
디렉토리를 패키지라고 부른다.
대량의 명령 코드를 관리하기 쉽게 계속 발전하다 보니까 class 라는 문법과 package라는 문법이 등장하게 되었다.

패키지는 결국 폴더다.

package lang;

public class Test1 {

}

맨 위에 package를 적어줘야 패키지 소속

서로 싱크가 안 맞음

lang 밑에 두는 게 나중에 소스파일을 관리할 때

package lang;

public class Test1 {
  public static void main(String[] args) {
    System.out.println("Test1");
  }
}

class 파일을 관리하게 쉽게 하려고

이름은 의미 있게 짓는다.

그런데 이런 식으로 하지 말기

lang이라는 폴더 밑에 두고 싶으면 소스파일도 lang이라는 폴더 밑에 둬야지 나중에 유지보수할 때 찾기 편함

빨간밑줄 사라짐

C:\Users\JYH\eclipse-workspace\test>java -cp bin/lang Test1
Error: Could not find or load main class Test1
Caused by: java.lang.NoClassDefFoundError: lang/Test1 (wrong name: Test1)

클래스파일 또는 패키지가 있는 위치를 지정해야 됨

C:\Users\JYH\eclipse-workspace\test>java -cp bin lang.Test1
Test1

. 으로 하기

패키지가 있는 클래스 실행

클래스를 지정할 때 반드시 패키지명을 포함해야 한다.

패키지명.클래스명

lang.Test1

$ java -cp bin lang.Test1

프로젝트폴더/bin/

java

자바 애플리케이션의 최소 코드를 작성할 수 있는가?

엔트리 포인트(entry point) 의미를 설명할 수 있는가?

자바 컴파일러를 사용하여 자바 소스를 컴파일 할 수 있는가?

소스 파일과 클래스 파일을 분리하여 컴파일 할 수 있는가?
-d 옵션 사용

• JVM을 사용하여 자바 클래스 파일을 실행할 수 있는가?

• 패키지에 소속된 클래스 파일을 실행할 수 있는가?
패키지명.클래스명

• 텍스트 파일과 바이너리 파일을 구분하여 설명할 수 있는가?
텍스트 파일과 바이너리 파일을 구분하는 방법을 아는가?

• 함수와 클래스, 패키지 문법이 등장한 이유를 설명할 수 있는가?
대량의 코드를 좀 더 쉽게 관리하기 위해서
그냥 쭉 나열하는 것보다 기능별로, 분류해놓으면 더 쉽고

명령문을 기능 단위로 묶어놓으면 관리하기 더 쉽다
그렇게 묶어 놓은 function들을 다시 서로 유사한 기능단위로 묶어서 클래스로 분류해놓으면

클래스들을 여러 디렉토리로 분류해 놓으면 더 쉽다

이클립스는 저장을 하는 순간 자동으로 javac 명령문을 실행한다.

이클립스는 각각 개별적으로 컴파일

자동 컴파일과 수동 컴파일

Java IDE 도구에서는 보통 자동 컴파일을 수행한다.

C/C++과 같은 기존 프로그래밍 언어는 수동 컴파일을 수행한다.

App.java
Sub1.java
Sub2.java

컴파일된 코드를 한 개의 실행파일로 합치지 않는다.
Java는 실행파일을 만들지 않는다.
그래서 소스파일을 변경할 때 각 파일마다 컴파일한다.

App.c
Sub1.c
Sub2.c

링킹

C/C++은 한 개의 실행파일을 만들기 때문에 보통 코드를 변경한 후 한 번에 컴파일 한다.

▶ 자바가 C/C++ 언어와 달리 각 파일마다 컴파일하는 이유를 설명할 수 있는가?

그래서 파일을 저장할 때마다 자동으로 빌드가 된다.

java -cp bin Hello

JDK11부터 자동 컴파일

아직까진 국내에선 8버전

저장하는 순간 자동 컴파일되게 하기

C:\Users\JYH\eclipse-workspace\test>java -cp bin p1.p2.p3.Hello2
Hello, world!

javaw.exe
윈도우 프로그램에서 VM을 가동할 때 쓰는 거야

Integrated

자바 언어 학습 방법

프로젝트 폴더 준비

다른 IDE툴과 호환되지 않는다.

src : 자바 소스 파일 설정 파일
bin : 컴파일된 클래스 파일

Maven 빌드 도구

생성

단위 테스트 관련 파일

컴파일된 파일

특정 IDE에 종속되지 않는 프로젝트 구조

자바 프로젝트 표준 디렉터리 구조로 사용된다.

자바의 경우 수동 컴파일 방식보다 각 소스파일별로 자동 컴파일 방식을 사용

빌드 도구

02-자바기초1 / 16 페이지

빌드 도구
‐ 프로젝트의 소스 컴파일, 테스트, 문서 생성, 배포파일 생성 등 애플리케이션을 만드는 작업을 도와주는 도구다.
‐ 컴파일러나 인터프리터가 아니다.
‐ 컴파일러나 인터프리터를 사용하여 애플리케이션을 만든다.

① Ant
build.xml (설정 파일) :
컴파일 방법, 테스트 방법, 디렉토리 정보
외부 라이브러리 관리 기능이 없음

② Maven
­+ 외부 라이브러리 관리 기능
pom.xml (설정 파일)

Maven 빌드 도구의 기능을 사용
Maven이랑 호환됨

PROJECT OBJECT MODEL.xml

pom.xml이 있으면

XML 태그 대신 groovy나 kotlin 같은 프로그래밍 언어를 사용하여 빌드 과정을 정교하게 제어할 수 있음

build 과정

안드로이드 스튜디오

build.gradle(groovy) : 설정 파일

https://github.com/spring-projects

https://github.com/spring-projects/spring-framework

https://github.com/spring-projects/spring-petclinic

Gradle

빌드 도구의 역할을 설명할 수 있는가?

Gradle을 이용하여 Maven 표준 프로젝트 디렉토리 생성하기

02-자바기초1 / 17 페이지

① 프로젝트 폴더로 사용할 디렉토리 생성

~ : 사용자홈 폴더
~/git/

개발 도구 준비
⑥ Gradle 빌드 도구 설치 : 프로젝트 컴파일, 테스트, 문서 생성, 패키징(배포파일 생성) 등 빌드 작업 수행

brew install gradle

https://gradle.org/install/

tools에 압축풀기

환경 변수 등록하기

specific

명사 형용사

Domain-specific Language(DSL)
특정 영역에서 사용하는 언어

groovy

설정 파일 = build script 파일

build.xml

이클립스용 프로젝트 설정 파일 생성

build.gradle 파일 편집

gradle 빌드 도구를 설치하고 설정할 수 있는가?

gradle을 이용하여 자바 프로젝트 폴더를 구성할 수 있는가?

build.gradle 빌드 스크립트 파일에 이클립스 관련 설정을 수행할 수 있는가?

자동으로 구성해주는 명령어가 있다.
$ gradle init

C:\Users\bitcamp\git\bitcamp-study\java-lang>gradle init

app 폴더 만들어짐

이클립스용으로
$ gradle 명령

자바 관련 작업을 할 수 있도록 플러그인 추가

C:\Users\JYH\git\bitcamp-study\java-lang\app>gradle tasks --all

늘어남

C:\Users\JYH\git\bitcamp-study\java-lang\app>gradle compileJava

https://docs.gradle.org/current/samples/sample_building_java_applications.html

저게 무엇을 의미하는지를

하고 싶으면 플러그인을 장착

플러인 이름을 주면서 id를 지정

https://search.maven.org/

압축까지 해서 만들었다는 거

이클립스가 원하는 파일 3개를 만들어줘야 됨

C:\Users\JYH\git\bitcamp-study\java-lang\app>gradle build

C:\Users\JYH\git\bitcamp-study\java-lang\app>gradle eclipse

.settings 폴더 있는 위치로 해야 됨

0개의 댓글

관련 채용 정보