본문 바로가기
반응형

Programming/Java9

[JAVA] BrainBrowser - nii파일로 mri영상을 보는 OpenSource API https://brainbrowser.cbrain.mcgill.ca/ BrainBrowser v2.5.2 BrainBrowser is an open source JavaScript library exposing a set of web-based 3D visualization tools primarily targetting neuroimaging [Sherif et al. 2015]. Using open web-standard technologies, such as WebGL and HTML5, it allows for real-time manipulation brainbrowser.cbrain.mcgill.ca 혹시 dicom파일을 nii파일로 컨버전하는 소스가 필요하신 분은 비밀글로 이메일 남겨주세요. 2021. 6. 29.
[JAVA] SessionTimeOut 설정 - 세션 시간 제어 세션 타임을 설정하는 곳 (우선순위대로) 1) JAVA단 - 특정 세션만 타임아웃 2) 프로젝트의 WEB-INF/web.xml - 기본값 30분 3) tomcat서버의 web.xml - 기본값 30분 // JAVA, 단위=초 HttpSession session = request.getSession(); session.setMaxInactiveInterval(10*초); ... 10 2021. 2. 2.
[JAVA] JVM(Java Virtual Machine) 자바 가상 머신 / Runtime Data Area "WORA (Write Once, Run Anywhere)" - Sun Microsystems 자바 코드를 컴파일해서 배포하면 어떤 플랫폼(운영체제+CPU 아키텍쳐)이든 다시 컴파일할 필요없이 실행할 수 있다. 단, 그 플랫폼에 맞는 JVM이 설치되어 있을 때! c/c++도 크로스 컴파일을 해서 배포하면 되는데 굳이 JVM이 필요할까? - 애초에 자바는 네트워크에 연결된 모든 디바이스에서 작동하는 것이 목적이었다. - 디바이스마다 운영체제나 하드웨어가 다르기때문에 플랫폼에 의존하지 않도록 자바 언어를 설계했다. JDK(Java Development Kit) - JRE + 개발 툴(java c) - 자바 11부터는 JDK 단위로 배포됨 JRE(Java Runtime Environment) - JVM + 핵.. 2020. 8. 15.
DTO vs VO vs Entity DTO Data Transfer Object (데이터 전송 객체) 계층(Layer)간 데이터 교환을 위해 사용하는 객체이다. 로직을 갖고 있지않은 순수한 데이터 객체이며, getter/setter 메소드만을 갖는다. Client Controller Service Respository VO Value Object(값 객체) 서로 다른 이름을 가진 VO의 인스턴스가 모든 속성 값이 같다면 같은 객체이다. (-> 전제 조건 equals()와 hashCode()를 오버라이딩 했을때) 객체의 불변성을 보장한다. 로직을 포함할 수 있다. Entity 실제 DB의 테이블과 매핑되는 클래스 Id로 구분되며 로직을 포함할 수 있다. DTO와 VO를 같은 의미로 생각할 수 있다. Entity를 DTO 대신 사용할 수는 있.. 2020. 8. 14.
[JAVA] 자바의 스트림(stream)과 파일 입출력 스트림(stream) 자바에서는 파일이나 콘솔의 입출력을 직접 다루지않고, 스트림이라는 흐름을 통해 다룬다. 스트림이란 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름을 의미한다. 즉, 스트림은 운영체제에 의해 생성되는 가상의 연결 고리를 의미하며, 중간 매개자 역할을 한다. Java SE 8 버전부터 추가된 스트림 API와는 다른 개념임을 유의할 것! 스트림의 용도? 외부에 있는 리소스(파일,네트워크,메모리 등등)를 읽어오거나, 프로그래밍 리소스를 내보내는 경우에 사용 입력 스트림, 출력 스트림 : 작업의 방향 바이트 스트림, 문자 스트림 : 작업하는 데이터의 성격 입력 스트림, 바이트단위 작업 : InputStream (최상위 클래스) 출력 스트림, 바이트단위 작업 : OutputStream (.. 2020. 8. 14.
[Java / Spring ] 어노테이션(@, annotation)의 정의와 종류 (계속 추가중 / 최종수정일:20200831) 어노테이션(@, annotation)이란? Annotation은 Java5부터 새롭게 추가된 문법요소이다. 사전적으로는 "주석"이라는 의미를 가지고 있으며, 자바 코드에 @를 이용해 주석처럼 달아 특수한 의미를 부여해준다. 프로그램 코드의 일부가 아닌 프로그램에 관한 데이터를 제공하고, 코드에 정보를 추가하는 정형화된 방법이다. 어노테이션을 사용하면 코드가 깔끔해지고 재사용이 가능하다. ps. 자바 리플렉션 : 다른 언어에는 존재하지않는 특별한 기능으로, 컴파일 시간이 아닌 실행 시간에 동적으로 특정 클래스의 정보를 객체를 통해 분석 및 추출해내는 프로그래밍 기법 @SpringBootApplication @Configuration + @EnableAutoCo.. 2020. 8. 12.
[JAVA] 제네릭(Generic) 제네릭(generic) 이란? 자바에서의 제네릭이란 데이터 타입(data type)을 일반화한다(generalize)는 것을 의미한다. (JDK 1.5부터) 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법이다. 제네릭의 장점 1. 객체의 타입 안정성을 높일 수 있다. 2. 타입 체크와 형변환을 생략할 수 있어 코드가 간결해진다. 1) 제네릭의 용어 2) 제네릭의 선언 및 생성 - 클래스를 작성할 때, Object타입 대신 T와 같은 타입변수를 사용한다. // Object 타입 class Box{ Object item; void setItem(Object item){this.item=item;} Object getItem(){return item;} } // Generic 타.. 2020. 8. 2.
[JAVA] Iterator method : hasNext() vs next() 메소드 차이점 Interface Iterator boolean hasNext() : 다음에 가져올 값이 있으면 true, 없으면 false 반환 E next() : Parameter 타입으로 Iterator에 입력된 값들을 반환 2020. 7. 25.
[JAVA/자료구조] 자바 컬렉션 프레임워크(java collection framework) 총정리 - 컬렉션(collection) : 여러 객체(데이터)를 담을 수 있는 자료구조, 다수의 데이터 그룹 - 프레임워크(framework) : 표준화, 정형화된 체계적인 프로그래밍 방식 ▶ 컬렉션 프레임워크(collection framework) : 배열의 단점을 보완해주는 컬렉션 - 다수의 객체를 다루기위한 표준화된 프로그래밍 방식 - 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 인터페이스와 클래스 제공 - java.util 패키지에 포함되어있고 JDK1.2부터 제공됨 - 이미 구현되어 있는 것을 사용함으로써 코딩 시간 감소, 코드 품질 보장, 유지보수 용이 ▶ 컬렉션 프레임워크의 구성 요소 - 컬렉션 인터페이스 : java.util 패키지 안에 있음 - 컬렉션 클래스 : 컬렉션 인터페이스를 상속받고 ja.. 2020. 7. 24.
반응형