자바 8

컴파일러compiler와 인터프리터interpreter의 차이? + 자바컴파일러와 자바인터프리터의 역할

컴파일 Compile 코딩을 할때 사용하는 프로그래밍 언어들은 사람이 알아볼 수 있는 인간친화적 언어이다. 컴퓨터는 0과 1로 이루어진 기계어 신호만 알아듣기 때문에 이해할 수 없다. 때문에 우리가 작성한 코드를 컴퓨터에서 실행시키려면 컴퓨터가 알아들을 수 있도록 코드를 기계어로 번역해야한다. 코딩을 마친 후 코드로 짜여진 소스들을 소프트웨어로 실행시키기 전 한방에 미리 번역하는 과정이 '컴파일'이고, 번역역할을 해주는 놈이 컴파일러 이다. 이 컴파일 작업이 요구되는 언어들을 컴파일러 언어라고 한다. 대표적으로 C, C++, 등의 언어가 있다. (Java 는 조금 특이하게 인터프리터도 병행한다. 아래서 살펴보겠다. ) 컴퓨터는 이렇게 컴퓨터의 언어로 번역된 코드를 읽기만 하면 되기 때문에 컴파일러언어는 ..

JUnit Test 자바 단위테스트란? feat. 서비스 단에서 DB연결 테스트해보기.

junit 자바 단위테스트란? Java에서 독립된 단위테스트 (Unit test)를 지원해주는 프레임워크. * 단위테스트란? 특정 소스코드의 모듈이 의도한 대로 작동하는지 검증하는 테스트이다. 즉, 함수 및 메소드에 대한 테스트를 하는 작업. Spring에서 단위테스트를 하는것은 스프링 커네이너에 올라와있는 Bean들을 테스트 하는 것이다. Junit을 사용하면 스프링 컨테이너를 띄워, 그 위에 올라가있는 Bean을 테스트 할 수 있다. JUnit 특징 단정 메서드(assert)로 테스트 케이스의 수행결과를 판별. ex) assertEquals(예상값, 실제값) assert()는 junit의 대표적인 기능이다. 이 메소드를 사용하여 테스트가 정상인지 아닌지 판별한다. Junit 4부터는 테스트 어노테이션..

[java] 자바 쓰레드 풀 ThreadPoolExecutor 란 ?

쓰레드를 무한으로 늘리게 되면 어떤 문제가 발생하나? - 성능 저하 - 쓰레드도 하나의 자원이므로 계속적으로 소모되면 자원고갈로 인해 메모리풀로 인해 서버가 다운될 수 있다. - 서버 입장에서 가장 중요한 것은 서버가 다운되지 않고 안정적으로 운영되는 것이다. 서버를 어떻게 안정적으로 운영할까? 쓰레드를 미리 만들어 놓고 재사용하는 방식으로 사용한다 == 쓰레드 풀. 왜 쓰레드 풀을 사용할까? 서버가 모든 요청에 대해 Thread를 매번 생성하게되면 성능상 문제가 발생할 수 있다. ThreadPool을 적용해 일정 수의 작업을 동시 처리하도록 한다. ThreadPoolExecutor 자바에서는 ThreadPoolExecutor라는 클래스를 지원해주는데 다음과 같은 생성자들이 존재한다. //ThreadPo..

[java] Thread Pool 쓰레드 풀이란 ?

프로세스 중 병렬 작업처리가 많아지면 스레드 개수가 증가되고 그에따른 스레드생성과 스케줄링으로 인해 CPU가 바빠져 메모리 사용량이 늘어난다. 따라서 시스템성능이 저하되고, 갑작스러운 병렬작업의 폭증에 따른 스레드 폭증을 막으려면 스레드 풀 Thread Pool을 사용해야 한다. Thread Pool 스레드 풀 스레드 풀은 작업처리에 사용되는 스레드를 제한된 개수만큼 정해놓고 작업큐 (Queue)에 들어오는 작업들을 하나씩 스레드가 맡아 처리한다. 그렇게 하면 작업처리 요청이 폭증되어도 스레드의 전체개수가 늘어나지 않으므로(제한해서 하나씩 처리하기 때문) 시스템 성능이 급격히 저하되지 않는다. 자바는 스레드풀을 생성하고 사용할 수 있도록 java.util.concurrent.Executors 클래스와 j..

[스프링]자바에서 설정파일(xml , properties.. ) 읽어들이기.

Apache Commons Configuration :애플리케이션 운영 환경 설정에 사용하는 기술- Apache commons 프로젝트 중 한 컴포넌트인 Configuration. Commons Configuration은 일반화된 설정 인터페이스를 제공함으로써 자바 애플리케이션이 다양한 소스에서 설정을 읽을 수 있도록 해준다. 자바에서 설정 파일 읽어들이는 방법 * 순서 : 1. [web.xml]선언된 listener클래스 ContextLoaderListener 의해 RootWebApplicationContext영역을 구성 applicationContext.xml org.springframework.web.util.Log4jConfigListener org.springframework.web.contex..

[java spring] ModelAndView 모델앤뷰 / ViewResolver뷰리졸버 란 ?

ModelAndView컨트롤러 처리 결과 후 응답할 view와 view에 전달할 값을 저장 및 전달하는 클래스 1 주요 생성자생성자역할ModelAndView(String viewName)응답할 viewModelAndView(String viewName, Map values)응답할 view와 view로 전달할 값들을 저장한 Map 객체ModelAndView(Stirng viewName, String name, Object value)응답할 view이름, view로 넘길 객체의 name 과 value2 주요 메소드메소드역할setViewName(String view)응답할 view이름 설정addObject(String name, Object value)view에 전달할 값을 설정addAllObject(Map ..

[Spring Boot] 스프링 부트 MVC 기본 환경설정

스프링 부트 MVC 기본 환경설정 Project 소스구성 메인클래스: DemoApplication.java 프로퍼티파일: application.properties 환경설정파일: pom.xml >스프링 부트 기반으로 프로젝트 생성시 기존의 전통적인 웹어플리케이션 방식에서 필수로 관리 되어야 하는 톰캣설정 및 web.xml파일 등은 스프링 부트의 내부모듈에 의해서 구동시 자동설정 한다. 어플리케이션 실행 *프로젝트 생성시 application.properties 파일이 자동생성되며 빈 파일로 생성된다. 사용자가원하는 DB 드라이버 라이브러리설치와 jdbc설정 필요. *당장 결정이 안된경우 메인클래스에 Auto Configuration 작업중 DataSource설정 부분을 제외 시킬 수 있다. @EnableA..

[JAVA] Collections Framework 자바 컬렉션 프레임 워크란?

Java Collections Framework 자바 컬렉션 프레임 워크란? - Collections : 다수의 데이터 그룹 - Framework : 표준화된 프로그래밍 방식. 즉, 다수의 데이터 그룹을 위한 표준화 프로그래밍 방식이다. 다수의 데이터를 다루는데 필요한 다양하고 풍부한 클래스들을 제공하기 때문에 프로그래머의 짐을 상당히 덜고, 인터페이스와 다형성을 이용한 객체지향적 설계를 통해 표준화 되어있기 때문에 사용법도 편리하고 재사용성이 높은 코드를 작성할 수 있다. 컬렉션 인터페이스의 핵심 인터페이스. 1. List 순서가 있는 데이터의 집합. 데이터 중복 허용 ex) 대기자 명단 ArrayList , LinkedList, Stak, Vector .. 2. Set 순서를 유지하지 않는 데이터의 ..