Java 17

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

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

[java build] ANT란? (feat. MAVEN과 차이점? )

Ant란? 주식개미아니고요.. 자바 기반의 빌드툴로 리눅스의 make와 흡사한 기능 제공한다. Ant는 자바 기반으로 플랫폼에 독립적으로 실행. - 운영체제에 구애받지 않고 프로젝트 진행가능. 복잡한 쉘 명령어 대신 xml기반의 기능 설정파일을 사용하기 때문에 작업 설정이 복잡하지 않다. 미리 정의된 Task를 사용하여 쉽고 빠르게 배치 작업을 설정할 수 있다. 새로운 Task의 추가를 통해 배치작업의 확장이 가능하다. *Task는 Ant를 통해서 처리하고자 하는 작업을 나타내는것으로 파일복사 태스크, 소스코드 컴파일 태스크, Javadoc API생성 태스크 등 다양한 태스크가 미리 정의되어 있다. Ant사용법 Ant의 빌드 파일은 xml 문서의 구조이며 Ant가 작업을 수행할 프로젝트에 대한 정보를 담..

[java] Lombok 사용 및 설치방법 (intelli J 기준)

Lombok 적용 및 설치하기. 롬복은 @Getter, @Setter등의 어노테이션을 사용하는데, 이러한 API를 사용하기 위해서 롬복 라이브러리 (.jar) 파일을 추가 해 주어야 한다. .jar파일을 직접 내려밭아 class path상에 추가해주어도 되지만 메이븐 프로젝트의 경우 pom.xml 에 아래와 같이 의존성을 추가한 후, 메이븐 업데이트를 해주면 된다. pom.xml ) org.projectlombok lombok 1.18.20 compile *직접 lombok.jar를 내려받아 프로젝트에 추가하려면 https://projectlombok.org/download에서 다운로드 할 수 있다. 프로젝트에 롬복 라이브러리 의존성을 추가했다면 이제 @Getter나 @Setter등의 API를 사용할수 ..

[java] Lombok 롬복이란? - 코드 다이어트

Lombok 롬복 이란? Lombok 이란 Java 라이브러리로 반복되는 getter, setter, toString .. 등의 반복 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리 이다. 근데 왜 Chilli 모양일까... Java에서 보통 model 클래스나 Entity 같은 도메인 클래스 등에는 수많은 멤버변수가 있고 이에 대응되는 getter, setter 와 toString() 메서드, 때에따라 멤버변수에 따른 여러개의 생성자를 만들어주게 되는데 거의 대부분 이클립스나 인텔리제이같은 IDE에서 자동생성 기능이 있지만 이 역시도 번거로운 작업이 아닐 수 없다. 뿐만 아니라 코드 자체가 반복 소스코드로 인해 복잡해지게 된다. Lombok은 여러가지 @어노테이션을 제공하고 이를 기반으로 반복 소..

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

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

[JAVA] Try-Catch문이란? 예외처리하기/예외던지기

* 선행되면 좋을 참고 포스팅 cheershennah.tistory.com/144 에러/예외처리란? Error/Exception Handling 에러란? Error 프로그램 실행중 어떤원인에 의해 오작동하거나 비정상 종료된 경우. 이를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. 발생시점에 따라 컴파일에러 Compile Error, 와 런타임 cheershennah.tistory.com Try-Catch문이란? 1)예외처리하기 Try-catch문은 예외를 처리하기 위한 구문이다. try-catch문의 구조 try { //예외발생할 가능성이 있는 문장 }catch(Exception1 e1) { //Exception1이 발생했을 경우, 이를 처리하지 위한 문장적는다. //보통 이곳에 예외메세지를 출력..

Linux환경에서 Java InstallCert를 사용하여 외부 SSL/TLS인증서를 Import 하기.

Linux환경에서 Java InstallCert를 사용하여 외부 SSL/TLS 인증서를 Import 하기. Java를 사용하여 HTTPS로 remote 사이트에 연결 또는 인증서 없이 HttpsURLConnection을 사용하면 SSLHandshakeException 이 발생한다. PKIX path building failed javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requ..

Back-end/Linux 2020.12.08

[spring] 어노테이션이란? @modelAttribute

@ModelAttribute = command object 이미지와 같이 @ModelAttribute는 클라이언트의 파라미터를 완벽하게 이해하고 있는 자바빈 객체 요구. 이 객체에 @ModelAttribute라는 어노테이션을 붙이면 자동으로 바인딩 해주고 중간과정은 모두 자동으로 생략해준다. @Controller public class HomeController { @RequestMapping (value"/", method = RequestMethod.GET){ . . . . } } 위 예시보면 바인딩 과정이 코드에 전혀 나타나있지 않고 전달인자에 @ModelAttribute를 넣는 것만으로 모두 생각이 가능해졌다. 만약 이 코드를 서블릿으로 대체해 보자면 아래와 같다 public class HomeC..

[java spring] 스프링프레임워크 <form:form> 태그 사용법

스프링 프레임워크 태그 사용법 스프링프레임워크 form 태그라이브러리를 사용하기 위해서는 먼저 다음 taglib 설정을 페이지 상단에 추가합니다. 1. 옵션 없이 사용했을 경우 기본값 호출 URL이 /offbyone/boardForm.do 라고 가정하고, 옵션 없이 사용한 경우 form 태그: 결과 HTML: - id 속성은 "command" 가 기본값입니다.- action 속성은 자기 페이지의 URL 입니다.- method는 POST가 기본입니다 2. commandName과 modelAttribute 옵션 commandName 과 modelAttribute 옵션은 폼에 있는 요소들의 값을 채우기 위해서 사용될 객체를 request 로부터 찾을때 사용할 이름을 지정합니다. 두 옵션은 동일한 기능을 합니다..

[스프링]자바에서 설정파일(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..