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

🥨 데커레이터(decorator)는 무엇인가 함수 데커레이터는 소스 코드에 있는 함수를 '표시'해서 함수의 작동을 개선할 수 있게 해준다. 1. 데커레이터는 데커레이트된 함수를 다른 함수로 대체하는 능력이 있다. 2. 데커레이터는 모듈이 로딩될 때 바로 실행된다. 대부분의 데커레이터는 데커레이트된 함수를 변경한다. 즉, 내부 함수를 정의하고 그것을 반환하여 데커레이트된 함수를 대체한다. 내부 함수를 사용하는 코드는 제대로 작동하기 위해 거의 항상 클로저에 의존한다. 🥨 파이썬이 데커레이터를 실행하는 시점 데커레이터의 핵심 특징은 데커레이트된 함수가 정의된 직후에 실행된다는 것이다. 이는 일반적으로 파이썬이 모듈을 로딩하는 시점, 즉 임포트 타임에 실행된다. 함수 데커레이터는 모듈이 임포트되자마자 실행되지..

※ 프로세스 : 실행 중인 하나의 프로그램이다. 하나의 프로그램은 다중 프로세스를 만들기도 한다. 하나의 프로세스 내부에서 멀티테스킹 할 수 있다. 하나의 프로세스에 스레드가 있다. ※ 멀티 테스킹 (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..
- Total
- Today
- Yesterday
- yarn start
- @functools.singledispatch
- java
- @functools.lru_cache
- nodejs
- jre
- 자바스레드
- jdk
- method와 function
- 정적멤버
- 메이븐 저장소
- 자바빌드도구
- 인스턴스멤버
- 익명자식객체
- 자바스크립트Call-back
- 자바스크립트Promise
- @functools.wraps
- 사용자정의예외클래스
- dynamic-project
- ES6
- Git
- 객체지향개념
- 백준2206 파이썬 풀이
- 클래스와객체
- sequelize.fn
- os
- 백준
- nunjucks
- 생성자필드메소드
- es6모듈
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |