본문 바로가기

java

(4)
node.js, JavaScript Runtime Environment Node.js Node.js 는 웹브라우저 밖에서도 자바스크립트 코드를 실행할 수 있는 실행환경(Runtime Environment) 이다. node.js 에 대해 갖고있던 오해 "Node.js" 는 JavaScript를 이용해서 서버를 만들 수 있는 개발 도구 입니다" Node.js 관련 서적을 읽으며 처음 접한 Node.js 의 정의였다. 오해는 여기서부터 시작된 것 같다. 부끄럽게도 최근까지 node.js를 웹 서버 프레임워크로 알고있었다. https://nodejs.org/en/about/ 에 들어가면 가장 먼저 볼 수 있는 예제이다. http://localhost:3000 으로 접속하면 "Hello World" 를 출력하는 간단한 "웹 애플리케이션" 이다. 위 코드는 SpringBoot 로 만든..
try-with-resources 를 사용하자 0. 문제 상황 Read 버튼을 누르면 파일을 읽어 TextField에 표시하고, Delete를 누르면 파일을 삭제하는 간단한 Swing Application 이다. Read 버튼을 누르면 Scanner 객체를 이용해 파일을 읽는다. Delete 버튼은 File.delete() 메서드로 파일을 삭제한다. Read 버튼을 누르지 않고 Delete 버튼을 먼저 누르면, 파일은 문제없이 삭제된다. 그러나 Read 버튼으로 파일을 읽고 Delete 버튼을 누르면, 파일이 삭제되지 않은것을 확인할 수 있다. 혹시 프로세스에서 사용중이라 삭제가 안되나 싶어 Windows 탐색기에서 삭제를 시도하니 아래와 같은 경고창이 나왔다. 1. Scanner.close() Scanner 로 파일을 읽고, Resource(tes..
Maven Compile, 실행 실습 환경 - macOS (11.2.1) - Visual Studio Code - Open JDK 11 - Apache Maven 3.8.1 0. 목표 Maven Project를 생성, 컴파일, 실행할 수 있다. 1. Maven Project 생성 Visual Studio Code 에서 Command Palette (fn + F1) 을 열어 Maven Project를 생성한다. archetype 설정 archetype은 Maven에서 제공하는 프로젝트 템플릿으로, 만들고자 하는 프로젝트 타입의 모범사례를 제공한다. maven-archetype-quickstart, version은 1.4 를 선택한다. groupId 설정 com.example 로 설정한다. artifactId - demo 로 설정한다. 2..
Reflection 을 이용해 Interface 정보 얻기 Dog 클래스는 Bark 와 Run 인터페이스를 구현한다고 가정한다. public class Dog implements Bark, Run{ @Override public void bark() { // do-something } @Override public void run() { // do-something } } 이때, Reflection 을 이용해 Dog 가 구현하는 Bark와 Run interface 정보를 얻을 수 있다. public class ClassNameTest { @Test void getInterfaces () { Dog dog = new Dog(); Class[] interfaces = dog.getClass().getInterfaces(); for(int i=0; i