일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- springboot
- java
- redis
- tool
- ReactJS
- Git
- it
- jenkins
- Gradle
- db
- docker
- php
- Design Patterns
- elasticsearch
- JPA
- devops
- MySQL
- 맛집
- jsp
- Oracle
- 요리
- linux
- Web Server
- Spring Boot
- Spring
- ubuntu
- javascript
- AWS
- IntelliJ
- laravel
- Today
- Total
목록Java (237)
아무거나
스프링 부트는 2014년부터 개발된 스프링의 하위 프로젝트 중 하나입니다. 단독으로 실행이 가능하고(stand-alone), 제품 수준의(production-grade) 스프링 기반 어플리케이션을 제작하는 것을 목표로 진행된 프로젝트입니다. 스프링부트의 주요 기능들은 - 단독 실행이 가능한 수준의 스프링 어플리케이션 제작이 가능 - 내장된 Tomcat, Jetty, UnderTow 등의 서버를 이용해서 별도의 서버를 설치하지 않고 실행이 가능 - 최대한 자동화된 설정을 제공 - XML 설정 없이 단순한 설정 방식을 제공 이러한 특징들을 요약하면 스프링 부트는 '단독으로 빠르게 개발 가능한 스프링 프로젝트' 제작용입니다. 처음 스프링 프레임워크를 사용했을 때 많은 XML파일을 설정해가며 개발을 하던 게 어..
Teams Web Hook API를 이용한 Message Sending 처리 Teams 메신저를 사용할 경우 애플리케이션에 알람이 필요한 경우의 예제 코드이다. 메세지를 수신받을 Teams API 생성 (1) Teams 좌측 메뉴에서 "팀"을 클릭한다. (2) "채널 추가"를 클릭한다. (3) 입력란에 입력 후 "추가"를 클릭한다. (4) "커넥터"를 선택한다. (5) "Incoming Webhook" 우측의 "구성" 버튼을 클릭한다. (6) 이름을 입력하고 하단의 "만들기" 버튼 클릭. (7) 제공하는 URL을 복사한다. (반드시 기억하고 있어야 한다.) (8) 좌측 구성됨을 선택하여 확인할 수 있다. (9) "이 채널 팔로우"를 선택하면 팀즈 채널로 메세지가 전송될 때 마다 알림이 표시된다. (10)..
Spring Boot에서 특정 디렉토리에 있는 파일 목록 읽기 설정 파일에 파일이 저장되어있는 경로를 설정(MAC 기준, 외장 tomcat 구성 기준) [application.yml] ... # dev local-server: local-file-save-path: ${HOME} # live local-server: local-file-save-path: /var/lib/tomcat8/webapps ... [FileServerProperties.java] // application.yml에 설정된 파일 경로를 가져온다. import lombok.Getter; import lombok.Setter; import org.springframework.boot.context.properties.Configura..
Spring Boot에서 에러 페이지 처리하기 에러가 발생할 때 웹 페이지에 에러에 대한 내용을 바로 출력하는 경우가 있다. 이와 같은 경우를 방지하기 위하여 에러페이지를 커스터마이징을 할 수 있는 컨트롤러를 만들어보자. 컨트롤러 생성 ErrorController를 Implements하여 커스텀 에러 컨트롤러를 생성한다. [CustomErrorController.java] import java.util.Date; import javax.servlet.RequestDispatcher; import javax.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.web.servlet.e..
@ComponentScan 관련 @ComponentScan 에서 빨간줄이 표시되길래 확인해보니 Redundant declaration: @SpringBootApplication already applies given @ComponentScan 을 표시하고 있었다. 즉 내용 그대로 @SpringBootApplication 안에 @ComponentScan이 이미 적용되어 있다고 되어있다. 아래 코드와 같이 @SpringBootApplication 의 scanBasePackages 를 활용하여 코드를 변경하면 된다. @SpringBootApplication(scanBasePackages = "com.bkjeon.example") // 추가 public class ApiApplication extends Spr..
[Document] Tistory: https://bkjeon1614.tistory.com/256 Github: https://github.com/bkjeon1614/java-example-code/tree/master/swagger-example [Development Environment] IntelliJ IDEA Ultimate SpringBoot 2.1.4.RELEASE Java8 Gradle [Description] dependencies 추가 // const def swaggerVersion = '2.8.0' dependencies { ... // swagger compile group: 'io.springfox', name: 'springfox-swagger2', version: swagge..
Garbage Collection 이란 Java Application에서 사용하지 않는 메모리를 자동으로 수거하는 기능을 말한다. Garbage Collection 과정 GC에 대해 알아보기 전에 알아야 할 용어인 "Stop-the-world"를 참고하면서 읽자. Stop-the-world GC를 실행하기 위해 JVM이 애플리케이션 실행을 멈추는 것이다. 이것이 발생하면 GC를 실행하는 스레드를 제외한 나머지 스레드는 모두 작업을 멈춘다. GC 작업을 완료한 이후에야 중단했던 작업을 다시 시작한다. 어떤 GC 알고리즘을 사용하더라고 stop-the-world는 발생한다. 즉, GC 튜닝이란 stop-the-world 시간을 줄이는 것이다. Java는 프로그램 코드에서 메모리를 명시적으로 지정하여 해제하지..
아래와 같은 쿼리문에서 바인딩 에러 : No parameter binding found for name 에러가 나고 있다. 해결방법은 이러하다. [오류]바인딩 에러 : No parameter binding found for name @Query(value=" SELECT * " + "FROM system_logs " + "WHERE log_level = :logLevel " + "AND project_type = :projectType " + "AND data_provider_type = :dataProviderType" + // 띄어쓰기 때문에 오류가 났었다 위에 다른 행들처럼 마지막에 띄어쓰기를 하자. --> "AND data_provider_type = :dataProviderType " "LI..
[JAVA]Address already in use: JVM_Bind 오류webapplication 실행시에 해당 오류가 발생하는 경우가 있다.이 경우 포트가 충돌이나서 안되는 경우다. 1. windows - netstat -o -a 로 사용 port 정보 확인 - 이중 원하는 포트번호를 찾아 PID를 기억해둔다. - 작업관리자의 프로세스탭에서 해당 PID의 프로세스를 끝낸다.
Runtime.getRuntime().exec() 호출시 종료되지 않는 문제 위의 함수는 process 를 실행시키기 위한 함수이다.만약 프로세스의 수행이 끝이 날때까지 기다려야 한다면 어떻게 해야되는가..? Process process = Runtime.getRuntime().exec(cmd); process.waitFor(); // waitFor()를 호출한다. 문제는 waitFor() 가 영원히 끝나지 않는 경우가 발생한다는 것입니다.분명히 cmd 에 해당하는 프로세스가 종료되어야 하는데, 이상하게도 끝나지 않는다는 이야깁니다. 원인은 stream 의 버퍼가 비워지지 않았기 때문입니다. 이를 비워줌으로써 문제를 해결할 수 있습니다. 그럼 어떻게 비워주면 될까요? waitFor() 함수를 호출하는 순..