300x250
반응형

Back-End 99

[Spring] Version 별 특징

1. Spring 2.x XML 네임스페이스와 AspectJ를 지원한다 2. Spring 3.x 프레임워크 코드베이스 전반에 걸쳐 강력한 Java 5+ 기반과 Java 기반 @Configuration모델과 같은 기능을 도입한다 Bean을 XML 형태로 관리할 수 있다 RestTemplate을 지원한다 JavaConfig 프로젝트의 몇몇 핵심 기능을 스프링 프레임워크에 추가했다 이 말은 다음 어노테이션을 이제 어노테이션을 이용해 DI 를 지원한다는 것이다 @Configuration @Bean 어노테이션을 지원한다 HSQL, H2, Derby 같은 내장 자바 데이터베이스 엔진을 편리하게 지원한다 3. Spring 4.x Java 8 기능을 완전히 지원하는 최초의 버전이다 Spring의 콜백 인터페이스 로 람..

Back-End/그 외 2023.06.26

[SpringBoot] Springboot + JWT 이용하여 API 서버간 인증하기

Springboot로 샘플 프로젝트를 2개 만들었다. 하나는 API를 호출하는 역할을 하는 A 프로젝트, 다른 하나는 A로부터 호출을 받아 값을 주는 역할을 하는 B 프로젝트. B 서버는 전형적인 API 서버라고 생각하면 된다. jwt api 서비스 인증 이런 과정에 대해 샘플을 만들고 테스트를 할 것이다. 환경 구성 (A, B 프로젝트 공통) pom.xml org.springframework.boot spring-boot-starter-web io.jsonwebtoken jjwt 0.9.1 기본적으로 필요한 dependency는 spring-boot-starter-web과 jjwt가 필요하다. jjwt는 java json web token 인걸로 알고 있다. application.yml (A, B 프로..

Back-End/Spring 2023.06.26

[SpringBoot] ChatGPT와 연동하기

springboot 에서 chatGPT API를 연동해보겠습니다. 생각보다 어렵지 않으니 순서대로 따라오시면 됩니다. 우선 chatGPT API 를 이용하기 위해 API-KEY가 필요합니다. https://platform.openai.com/account/api-keys OpenAI API An API for accessing new AI models developed by OpenAI platform.openai.com 링크를 따라 들어가면, 로그인 해야할겁니다. 로그인 후 위에 링크를 다시 들어가면, 아래에 + Create new secret key 를 발급 받으실 수 있습니다. 추후에 api 사용을 위한 api-key 이니, 알고계셔야 합니다. 이제 프로젝트를 생성해봅시다. id 'org.sprin..

Back-End/Spring 2023.06.23

[SpringBoot] static resource ERR_ABORTED 404 오류

springboot를 사용해서 web 개발을 하면 초반에 ERR_ABORTED 404를 심상치 않게 만나볼 수 있다. 404는 알다시피 경로에 있는 파일을 못찾는 경우이다. 즉 잘못된 경로를 입력했다는 것이다. static resource 구조 필자의 static resource 구조와 그 안에 있는 js 파일에 대한 정의를 한 소스이다. springboot의 특성상 정적자원을 읽어오는 위치는 classpath:/static, classpath:/public, classpath:/resources 이어야 한다. public이라는 폴더명을 선택하여 사용하였다. 위에 나온것중 아무거나 써도 무방하다. 내가 만약 /public/images/abc.png 라는 파일을 접근하고 싶다면 localhost:8080/..

Back-End/Spring 2023.06.23

[SpringBoot] 기동시 Failed to scan : FileNotFoundException *.jar 오류

프로젝트 변경사항이 있어서 BootApplication.java (springboot main class)의 위치를 변경하였다. 변경하고 나니 다음과 같은 오류가 발생을 했다. WARNING: Failed to scan [file:/C:/Users/tester/.m2/repository/com/sun/xml/ws/jaxws-rt/2.1.7/jaxws-api.jar] from classloader hierarchy java.io.FileNotFoundException: C:\Users\tester\.m2\repository\com\sun\xml\ws\jaxws-rt\2.1.7\jaxws-api.jar (The system cannot find the file specified) at java.util.zi..

Back-End/Spring 2023.06.23

[Springboot] SolrServerException 발생 with actuator

스프링부트에 actuactor적용하다가 다음과 같은 에러메시지가 발생했다. 해당 프로젝트에서는 스프링부트 버전 2.1.0.REALSE를 사용하고 있다. org.apache.solr.client.solrj.SolrServerException: Server refused connection at: http://127.0.0.1:8983/solr at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:650) at . . . java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Th..

Back-End/Spring 2023.06.23

[Spring] 스프링 의존성 주입 (Dependency Injection) 개념 및 종류

오늘은 Spring 프레임워크의 DI (의존성 주입, Dependency Injection)에 관해 공부를 하면서 정리를 해보도록 하겠습니다. 1. DI(의존성 주입)이란? Spring Dependency Injection이란, 각 객체 간 의존관계를 스프링 컨테이너가 개발자가 정의한 Bean 등록 정보를 바탕으로 자동으로 주입해주는 기능입니다. 일반적인 다양한 기존 스프링 프로젝트를 보면, Controller에서 Service나 Repository 객체를 사용 시, new 키워드를 통해 컨트롤러에서 객체를 직접 생성하여 사용하지 않고 의존성 주입을 통해 스프링 컨테이너에 생성된 객체를 받아 사용하고 있는 것을 볼 수 있습니다. @Component, @Service, @Repository, @Contro..

Back-End/Spring 2023.06.23

[SpringBoot] Spring Boot Access Log 요청 호출 수, 응답시간 또는 사이즈 순으로 통계 (Linux Shell Script 활용)

여러 API URI 혹은 페이지를 가지고 있는 스프링부트 애플리케이션의 액세스 로그 (Access Log)를 통해 시간당 혹은 분당 URL별 호출 수 (호출량)를 통계 낸다거나, 특정 시간 대 응답 시간이 가장 긴 호출 혹은 응답 사이즈가 큰 호출의 랭킹을 조사하는 등 간단하게 통계를 내야 하는 경우가 생겨서 정리를 해보려고 합니다. 다른 모니터링 툴이나 다른 방법이 있겠지만 여기서는 Embedded Tomcat을 활용한 간단한 Spring Boot 어플리케이션의 경우 Tomcat Access Log와 서버의 리눅스 쉘 스크립트를 통해서 아주 간략히 통계를 내는 방법을 정리해보도록 하겠습니다. Access 로그 예시 먼저 위와 같은 여러 URL과 다양한 파라미터를 가진 Rest API 스프링부트 애플리케..

Back-End/Spring 2023.06.23

[Java] tomcat 에서 SSL 적용시 Cannot recover key 에러 날 때

톰캣에서 SSL을 적용하려면 아래와 같은 소스를 입력 해야 합니다. 물론 그 전에 해당 SSL 업체에서 받은 key 파일을을 톰캣에서 사용할 수 있게끔 변환 해야 합니다. keytool -importkeystore -srckeystore cert.pfx -srcstoretype pkcs12 -destkeystore cert.jks -deststoretype jks 위의 예제는 PKCS(.pfx) 에서 keystore 파일로 변환 하는 명령어입니다. keytool은 자바에서 bin 폴더에 있는 파일입니다. 다른 crt파일을 변환 하는 방법도 있긴 한데 왠만하면 업체에서 pfx를 지원해주리라 보기 때문에 이게 편합니다. 다른건 좀 복잡하더군요. 어쨌든 적용을 해보니 톰캣 부팅시에 "Cannot recover..

Back-End/Java 2023.03.27

[Java] Java keytool - pfx에서 jks(JavaKeyStore)로 변환

Java keytool - pfx to jks(JavakeyStore) 변환 ※ 주의 사항 keytool 명령어는 JDK가 설치된 PC나 서버에서 사용할 수 있습니다. 아래의 경로에서 패키지를 설치 후 진행 하십시오. jdk or jre 패키지 - http://www.java.com/ko/download/manual.jsp [인증서 변환] 예) keytool -importkeystore -srckeystore 변환할파일.pfx -srcstoretype pkcs12 -destkeystore 변환될파일.jks -deststoretype jks ※ pfx 파일명은 ssl_kr.pfx라 가정하여 변환해보도록 하겠습니다. # keytool -importkeystore -srckeystore ssl_kr.pfx -..

Back-End/Java 2023.03.27
300x250
반응형