본문 바로가기

java10

[Spring][Error] Java PKIX path building failed: Spring 에서 RestTemplate을 사용하여 https 통신을 하다 보면 PKIX path 오류가 발생하는 경우가 있다. 이는 JDK에서 인증서 확인 절차에서 오류가 발생한 문제다. 이를 해결하는 방법은 2가지가 있다. 1. 요청하고자 하는 사이트의 SSL인증서를 JDK에 추가 2. ssl 인증서 확인 절차를 무시하는 로직을 추가 요청하고자 하는 SSL 인증서를 다운받은 후 인증서를 추가하면 된다. sudo keytool -importcert -keystore ${JAVA_HOME}/lib/security/cacerts -storepass changeit -file {sslfile} Https 통신에서 ssl 인증서 무시 로직은 로컬환경인 경우에만 사용하는 것을 추천한다. 예제 코드는 아래와 같다.. 2023. 6. 16.
[Spring] 스프링 핵심 원리 - 기본편 (5) 이전 글 [Spring] 스프링 핵심 원리 - 기본편 (4) 싱글톤 컨테이너 웹 애플리케이션과 싱글톤 스프링은 온라인 서비스 기술을 지원하기 위해 탄생 순수 DI 컨테이너는 AppConfig 요청마다 객체를 새로 생성한다. -> 해당 객체를 1개만 생성 후 공유하도록 설계한다. (싱글톤 패턴) import hello.core.AppConfig; import hello.core.member.MemberService; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; public class SingletonTest { @Test @DisplayName.. 2023. 3. 5.
[Spring] 스프링 핵심 원리 - 기본편 (4) 이전 글 [Spring] 스프링 핵심 원리 - 기본편 (3) 스프링 컨테이너와 스프링 빈 스프링 컨테이너 생성 ApplicationContext = 스프링 컨테이너, 인터페이스 스프링 컨테이너는 xml, 혹은 annotation 기반 자바 설정 클래스 AnnotationConfigApplicationContext는 ApplicationContext의 인터페이스 구현체 스프링 빈의 이름은 메소드 이름 사용, 직접 부여도 가능(유니크하도록) 빈 생성 후 의존 관계 주입 컨테이너에 등록된 모든 빈 조회 applicationContext에서 getBean을 사용하여 확인 BeanDefinition에서 역할별 bean 확인 가능 import hello.core.AppConfig; import org.junit.j.. 2023. 2. 11.
[Spring] 스프링 핵심 원리 - 기본편 (3) 이전 글 [Spring] 스프링 핵심 원리 - 기본편 (2) 스프링의 핵심 원리 이해2 - 객체 지향 원리 적용 1. 새로운 할인 정책 개발 추가 할인 정책 추가 RateDiscountPolicy, RateDiscountPolicyTest 파일 작성 import hello.core.member.Grade; import hello.core.member.Member; public class RateDiscountPolicy implements DiscountPolicy{ private int discountPercent = 10; @Override public int discount(Member member, int price) { if(member.getGrade() == Grade.VIP){ return.. 2023. 1. 28.
[Java] MacOS + JDK 변경 terminal 실행 후 현재 버전을 확인한다. java -version 현재 맥에 설치되어 있는 버전들을 확인한다. /usr/libexec/java_home -v 설치되어 있는 JDK 중 원하는 버전을 선택 후 변경한다. (18.0.1.1 -> 11.0.15) 메이저 버전까지만 작성해도 된다. export JAVA_HOME=$(/usr/libexec/java_home -v 11) 2023. 1. 24.
[Spring] 스프링 핵심 원리 - 기본편 (2) 이전 글 [Spring] 스프링 핵심 원리 - 기본편 (1) 스프링의 핵심 원리 이해1 - 예제 만들기 1. 프로젝트 생성 https://start.spring.io/ 에서 설정 후 spring boot 프로젝트 생성한다. 만들어진 프로젝트를 압축해제 후 Intellij에서 Import하여 확인한다. src/main/java/{group}/{Artifact}/{Artifate}Application을 run하여 정상 작동 여부를 확인한다. Intellij gradle 세팅 변경 2. 비즈니스 요구사항과 설계 3. 회원 도메인 설계 4. 회원 도메인 개발 Grade, Member - model public enum Grade { BASIC, VIP } public class Member { private L.. 2023. 1. 24.
[Spring][전문가를 위한 스프링 5] CH2. 스프링 시작하기 전문가를 위한 스프링 5(Pro Spring 5) - Ch 2. 스프링 시작하기 2.1 스프링 프레임워크 가져오기 Maven, Gradle 같은 빌드 도구를 사용 || Github에서 Spring Library Checkout 후 사용 사용하려는 Spring에 적절한 JDK 사용하기 JVM(Java Virtual Machine) : 구현이 필요한 abstract machine, 자바 바이트 코드가 실행될 수 있는 실행 환경 제공하는 사양 JRE(Java Runtime Environment) : 실행 환경을 제공하는데 사용, JVM의 실제 구현체 JDK(Java Development Kit) : JRE, 메뉴얼 및 자바 도구들을 담고 있는 것 JDK12 이상, Spring 5.1.8 사용 2.2 스프링 모.. 2022. 8. 15.
[Spring][전문가를 위한 스프링 5] CH1. 스프링 소개 전문가를 위한 스프링 5(Pro Spring 5) - Ch 1. 스프링 소개 1.1 스프링이란? Spring은 Java Application 개발을 위한 경량 Framework이다. Apache Struts와 같은 단순 Web App 개발뿐만 아니라 다양한 형태의 Java Application 개발이 가능하다. 기존 App 코드에 최소한의 영향을 준다.(경량) 1.1.1 스프링 프레임워크의 발전 과정 Spring 0.9 버전 Bean, AOP, JDBC, 추상 Transaction 지원 Spring 1.X 버전 Spring Core, Context, Dao, ORM, AOP, WEB, WEB MVC Spring 2.X 버전 DTD 아닌 XML 스키마 구성지원 @Transactional, @AspectJ .. 2022. 7. 23.
[Spring] Intellij에서 Spring + Maven 시작하기 (Mac) Mac에서 Intellij에서 Spring과 Maven을 사용하여 서버를 구동해보기 intellij - https://www.jetbrains.com/idea/ openjdk17 - brew // 18 버전을 사용할 경우 (https://jdk.java.net/18/) tomcat 10.0.22 - (https://tomcat.apache.org/download-10.cgi) 1. Homebrew를 이용해 openjdk를 설치한 후 설치 확인한다. Homebrew가 없다면 (https://kkkkang1009.tistory.com/8)에서 마지막의 설치 커맨드를 입력 brew install openjdk@17 brew list 2. brew로 설치한 Openjdk를 intellij에서 사용할 수 있도록 .. 2022. 7. 14.
반응형