여태 빌드도구를 참 다양하게 사용해봤다. 그 역사를 읊자면,,,, 토이프로젝트로 스프링프레임워크 기반의 api 서버를 개발할때는 메이븐으로 빌드했었고, 어플개발할때는 안드로이드스튜디오의 표준 빌드 도구인 그레들을 사용했고, 현재 투입된 현업 플젝에서는 앤트로 빌드하고 있다....... 각각 어떻게 다른지 차이점이 궁금해서 특징을 정리해보았다. 자세한건 다음 포스팅에서~~ 총총총 - 자바 빌드 도구 3가지 소개 (Ant, Maven, Gradle) 1. Apache Ant 앤트는 플랫폼(운영체제)등에 의존하지 않는 자바 프로그램 개발을 대상으로 한 오픈 소스 빌드 도구이다. XML로 작성된 빌드 파일로 빌드를 실행한다. 앤트는 자바에 널리 보급된 최초의 빌드 도구이다. 한때는 '자바 빌드 == 앤트' 라고..

※ 프로세스 : 실행 중인 하나의 프로그램이다. 하나의 프로그램은 다중 프로세스를 만들기도 한다. 하나의 프로세스 내부에서 멀티테스킹 할 수 있다. 하나의 프로세스에 스레드가 있다. ※ 멀티 테스킹 (multi tasking) - 두 가지 이상의 작업을 동시에 처리하는 것 - 멀티 프로세스 : 독립적으로 프로그램들을 실행하고 여러 가지 작업 처리 - 멀티 스레드 : 한 개의 프로그램을 실행하고(-> 그 프로세스의 )내부적으로 여러 가지 작업 처리 ※ 메인 스레드 : 코드의 실행 흐름 - 모든 자바 프로그램은 메인 스레드가 main() 메소드를 실행하면서 시작된다. - main() 메소드의 첫 코드부터 아래로 순차적으로 실행한다. - main() 메소드의 마지막 코드를 실행하거나, return 문을 만나면..

※ 예외 처리 ▶ 예외의 종류 1. 일반 (컴파일 체크) 예외 (Exception) : 예외 처리가 코드가 없으면 컴파일 오류 발생 ex) FileNotFoundException 2. 실행 예외 (RuntimeException) : 예외 처리 코드를 생략하더라도 컴파일이 되는 예외 ex) NullPointerException : 객체 참조가 없는 상태 ArrayIndexOutOfBoundsException : 배열에서 인덱스 범위 초과하여 사용할 경우 발생 ClassCastException : 타입 변환이 되지 않을 경우 발생 ▶ 런타임 익셉션이 부모에 있으면 실행 예외라고 생각하면 됨. ▶ 자바 7부터는 하나의 catch 블록에서 여러 개의 예외 처리 가능 ※ 예외 처리 코드란 : 예외가 발생하면 프로..

※ 상속 (Inheritance) : 자식 클래스가 부모 클래스의 멤버를 물려받는 것 자식이 부모를 선택해 물려받음 ※ 상속의 효과 1. 부모 클래스 재사용해 자식 클래스 빨리 개발 가능 2. 반복된 코드 중복 줄임 3. 유지 보수 편리성 제공 4. 객체 다형성 구현 가능 ※ 상속 대상 제한 1. 부모 클래스의 private 접근 갖는 필드와 메소드 제외 2. 부모 클래스가 다른 패키지에 있을 경우, default 접근 갖는 필드와 메소드도 제외 ※ 자식 객체를 생성하면 부모 객체도 생성되는가? - 자식 객체 생성할 때는 부모 객체부터 생성 후 자식 객체 생성. - 컴파일러가 자동으로 자식 생성자에 super() 코드를 추가시켜준다. 주의) super는 반드시 자식 생성자에서 첫 째 줄에 써야 한다. ※..

※ 메소드 오버로딩(Overloading) - 클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것을 말한다. - 하나의 메소드 이름으로 다양한 매개값을 받기 위해 메소드를 오버로딩한다. - 오버로딩의 조건 : 매개변수 타입, 개수, 순서가 달라야 한다. ※ Call By Value : 값을 복사해서 사용하기 때문에 한 쪽에서 값을 변경하더라도 영향을 받지 않는다. Changer changer = new Changer(); // Call by value (값을 복사해서 호출) int v1 = 1; changer.change(v1); // void change(int value) { value = 10; } // int value = 1 -> v1이 가지고 있는 "값"을 value 변수에 저장 한다. S..

※ 객체지향이 무엇인가? - 부품 객체를 먼저 만들고 이것들을 하나씩 조립해서 완성된 프로그램을 만드는 기법이다. 여기서 부품도 객체이고, 전체로 만들어진 것도 객체이다. -> 여기서 아래에 나올 객체의 특징과 객체의 상호 작용, 객체의 관계3가지를 모두 설명한 뒤에 이 모든것이 객체 지향 프로그래밍이라고 말해야 한다. ※ 객체(Object) - 객체는 이름이 있어야 한다. - 속성 : 데이터 속성은 반드시 있어야 한다. (필드) - 동작 : 동작은 있을수도 없을 수도 있다. 현실객체를 프로그래밍하는 것을 객체지향 모델링이라고 한다. ※ 객체의 상호 작용 ▶객체를 사용한다 - 객체가 가진 동작이나 속성을 이용한다. ▶기능을 실행하도록 요청하는 것 ==> 메소드 호출(객체가 다른 객체가 가진 메소드를 호출..

※ 배열 복사 - 배열은 한 번 생성하면 크기를 변경할 수 없다. - 더 많은 저장 공간이 필요하다면 보다 큰 배열을 새로 만들고 이전 배열로부터 항목값들을 복사해야 한다. -> 그렇다면 배열 복사 방법은? 1. for문을 이용하는 방법 int[] oldStrArray = {1, 2, 3}; String[] newStrArray = new String[5]; for(int i = 0; i < oldStrArray.length; i++){ newStrArray[i] = oldStrArray[i]; } 2. System.arrayCopy() 메소드를 이용하는 방법 String[] oldStrArray = {"java", "array", "copy"}; String[] newStrArray = new Stri..

public static void main(String[] args) {} -> 메인 메소드이다. (함수와는 다르다.) - 위의 메인 메소드의 종료 시점이 마지막 괄호가 닫힐때까지 인데, return을 주게 되면 그 시점에 프로그램을 종료한다. [데이터 타입] 1. 기본 타입(primitive type) : 값 자체를 저장함 정수 타입 byte char short int long 실수 타입 float double 논리 타입 boolean 2. 참조 타입 (reference type) : 값 자체가 아닌 값이 저장되어 있는 메모리 주소를 저장하는 타입 - 참조 타입 변수는 객체를 참조하는 변수이다. 배열 타입 열거 타입 클래스 - String 인터페이스 [기본 타입과 참조 타입의 메모리 위치 비교] - 참..

자바는 컴파일을 한 번하게 되면 -> 컴파일된 클래스 파일로 여러 운영체제에서 실행할 수 있다는 장점이 있다. 즉, 이식성이 높은 언어이다. - 파이썬과 자바스크립트는 컴파일이 필요 없다. - 자바는 함수적 스타일 코딩을 지원한다. (람다식) - 자바는 메모리(주기억장치)를 자동으로 관리한다. - 이클립스와 STS(Spring Tool Suite)는 주 언어로 JAVA를 이용하여 만들었다. - 멀티스레드를 쉽게 구현할 수 있다. - 동적 로딩을 지원한다. ※ 자바의 3가지 영역 - Java SE - Standard Editioin : 기본 에디션, 자바 프로그램을 실행시키는 JVM 정의 자바 프로그램들이 공통으로 사용하는 개발 도구와 API 정의 구현체 -> JDK - Java EE - Enterpris..

# 목표 - 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기 0. intro - Write Once, Run Everywhere 다른 프로그래밍 언어와 비교했을 때, 자바를 특색 있게 만드는 것은 하나의 자바 프로그램이 어떤 컴퓨터 기종에서도 실행이 가능하는 점이다. 실행 파일을 전혀 변경하지 않아도 된다. 즉, 다시 컴파일할 필요가 없다. 이렇게 자바가 다양한 종류의 컴퓨터에서 실행이 가능한 것은 "가상 기계" 개념 때문이다. 1. JVM이란 무엇인가 다른 프로그래밍 언어의 경우, 소스 코드가 컴파일러에 의하여 특정한 컴퓨터의 기계어로 변환되어서 특정 컴퓨터에서 실행된다. 그러나 자바 컴파일러는 특정한 컴퓨터를 위한 코드를 바로 생성하지 않는다. 대신에 가상적인 컴퓨터의 기계어인 바이트..
- Total
- Today
- Yesterday
- nodejs
- 정적멤버
- 생성자필드메소드
- @functools.wraps
- ES6
- Git
- 인스턴스멤버
- @functools.singledispatch
- java
- nunjucks
- 익명자식객체
- 사용자정의예외클래스
- 클래스와객체
- 자바스크립트Promise
- method와 function
- dynamic-project
- 자바스레드
- jre
- 자바스크립트Call-back
- 백준2206 파이썬 풀이
- 메이븐 저장소
- 백준
- es6모듈
- 객체지향개념
- @functools.lru_cache
- os
- yarn start
- jdk
- sequelize.fn
- 자바빌드도구
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |