목록Java (6)
The Boxer
[Bean, Java Beans]정의 : 어플리케이션 컴포넌트를 지칭하는 단어(클래스, 패키지, 모듈 같은 부품들...) 반복적인 코드를 재사용하기 위해서 만들어진 클래스들 이며, 자바에서 지정하는 표준에 따라 작성됩니다. 특성- 모든 속성이 private(getters, setters 사용)- public이고 매개변수 없는 생성자 사용- Serializable을 상속 => stream으로 변환될 수 있으며, 파일, 데이터베이스 등에 쓰기 가능 [POJO(Plain-Old Java Object)]정의 : 평범한 자바 오브젝트. 자바 개발자가 마음대로 정의할 수 있는 객체 일반적으로 개발자가 제한조건도 없이 개발 환경에서 자유롭게 만들어 낸 모든 객체를 의미합니다. [참고 자료]자바 빈에 대한 stack ..
[Synchronized] - Java 실행시 두개 이상의 쓰레드가 사용된다고 할때 사용되는 자원에 대해서 제어를 해줘야함- 예를들어 2개 이상의 쓰레드가 하나의 변수(자원)에 접근한다고 가정할 때, 두 쓰레드가 동시에 변수를 사용하면 결과에 오류가 날 수도 있음- 따라서 하나의 쓰레드가 자원에 접근하는 경우 다른 쓰레드는 그 자원에 접근하지 못하도록 [동기화] 시켜줘야 함- 동기화는 자원에 대한 동기화, 메소드에 대한 동기화가 존재함- 하지만 과도하게 동기화를 할 경우 프로그램의 실행 속도가 줄어든다는 단점이 있음 [변수/객체에 사용하는 예시] private Object object = new Object(); public void method() { synchronized(object); //코드 실..
[Lombok]Java에서 사용하는 다양한 기능들을 annotation으로 처리할 수 있게 하는 라이브러리 annotation으로 처리를 하기 때문에 반복되는 코드 사용을 줄일 수 있음 [Lombok의 종류]Stable Lombok에서 사용하는 것을 추천하는 기능들. [val, var]타입이 정해지지 않은 객체 혹은 변수를 선언 가능.- annotation없이 변수명 앞에 선언하여 사용- 지역변수로만 선언 가능(클래스 변수로는 선언 불가)- val과 var의 기능은 같으나 val은 final이기 때문에 값 변경이 불가사용 예시import lombok.*; import java.util.Stack; public class ValAndVar { val classValue = 10; //#에러발생 : clas..
[콜백(Callback)] 동기 비동기 개념 이전에 콜백 함수에 대해 알아봅시다. 위키에 따르면 다른 코드의 인자로 넘겨주는 실행 가능한 코드라고 적혀 있습니다. 즉, 콜백 함수란 다른 코드의 인자로 넘겨줄 수 있는 함수입니다. 다른 코드의 인자로 넘겨주게 되면 그 함수 안에서 콜백 함수를 실행시킬 수 있으며 함수의 재사용성도 증가시킬 수 있습니다. 그렇다면 콜백함수는 왜 쓰는 것이고, 이게 동기 비동기랑 무슨 상관이 있을까요? [동기(Synchronous) vs 비동기(Asynchronous)] 먼저 동기, 비동기 개념에 대해 알아봅시다. 동기 : 작업을 요청한 후 작업 결과가 나올때 까지 기다린 후 나머지 작업을 처리하는 방식 즉, 동기 방식은 스레드(프로세스)가 하부 작업을 요청했을 때 그 작업이 ..
log4j를 사용해 자바에서 logging 기능을 구현해 봅시다. [Logging]logging은 프로그램을 디버깅 혹은 사용중에 발생하는 오류를 모니터링하기 위해 필요한 정보(log)를 기록하는 행위.가령 프로그램 실행 중 어떤 메소드가 성공 혹은 실패를 하였는지, 시간을 얼마나 사용하는지에 대해 파악하는 용도로 사용.Java에서 기본적으로 제공되는 System.out또한 logging의 일종으로 볼 수 있음. -> Logging은 프로그램 실행 중 정보를 기록하는 행위 [log4j]apache에서 제작한 Java용 logging 유틸리티. 특징- 기본출력보다 속도가 빠름- 다양한 프레임워크에 적용 가능- Layout 설정으로 다양한 형태로 출력 가능 log4j의 구조log4j는 3가지 구조로 이루어짐..
Interface를 사용한 Callback 구현 1. Callback의 개념Callback이란 한 클래스가 다른 클래스에 실행을 요청하여 실행이 진행되는 도중, Event가 발생하면 요청한 Class에서 정의한 함수를 실행하도록 하는 개념입니다. Callback을 사용하는 이유는 실행을 요청한 Class에 Sync/Async 방식으로 수행이 끝났는지 알려주거나 요청한 Class에서 정의한 함수를 실행시키기 위함입니다. 주로 비동기 방식에서 사용될 수 있는데, 예를들어 버튼을 클릭하면 사진을 띄우는 논리가 있다고 하면, 버튼을 클릭하는 행위가 Event이고, Event가 발생하면 Callback을 통해 사진이 띄워지는 것을 생각해 볼 수 있습니다. 2. Interface를 통한 구현구현에 앞서 Caller..