환경STS 3.2.5jakarta.servlet-api 4.0.4Apache Tomcat 9.xJDK 17JSP 오류Failed to complete request: java.lang.IllegalArgumentException: Unknown return value type: java.lang.Integer 원인JSP 화면에서 ajax로 호출한 URL에서 int 타입으로 return을 하는 과정에서 에러가 발생 해결@ResponseBody 추가하여 오류 해결ResponseBody http응답값을 자바 객체로 변환시켜 객체에 저장한다.[ EmpController.java ]@PostMapping("/selectEmp")@ResponseBodypublic int selectEmp(@RequestBody ..
Firebase Cloud Messaging(FCM) HTTPS v1 서비스를 Java에서 사용하려면 Firebase Admin SDK 방식과 REST 방식 중 하나를 선택하여 build.gradle이나 pom.xml에 Firebase Admin SDK , Google OAuth 라이브러리를 추가하면 됩니다. 성능상의 차이는 없으며 서비스 구현에 맞게 선택하면 됩니다. Firebase Admin SDK 방식과 REST 방식 두 가지특징Firebase Admin SDKGoogle OAuth REST 방식라이브러리 firebase-admin google-auth-library-oauth2-http레벨고수준 API저수준 API설정 및 초기화간단 (FirebaseOptions로 초기화)별도의 HTTP 요청 작..
에러Error getting access token for service acount : sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetFirebase Admin SDK를 사용하는 경우, Local 테스트와 달리 인증서를 수동으로 처리할 필요 없이 내부적으로 해결됩니다. 원인1. 토큰 만료 또는 재생성 실패 FCM REST API는 Google OAuth2 토큰을 사용하며, 이 토큰은 제한된 시간(대부분 1시간) 동안..
에러Error getting access token for service acount : sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target원인SSL 인증서 등록 관련 오류로 Java의 경우 자체 인증서 저장소를 가지고 있고 여기에 해당 https 사이트의 인증 기관이 등록이 되지 않은 경우 발생할 수 있어 local 테스트시 인증서를 아래와 같이 등록해 주었습니다. 해결 방법1. SSL 인증서 다운https://fc..
차이점에 대해 알아보기 전 connection 비용에 대해 먼저 살펴보겠습니다.Connection 비용WAS와 데이터베이스 사이의 연결에는 많은 비용이 발생합니다.Mysql 8.0 기준 INSERT 문 수행할때 비용으로 괄호안 숫자가 비율을 의미합니다.1. Connecting (3) 2. Sending query to server (2)3. Parsing query (2)4. Inserting row (1)5. Inserting index(1)6. Closing (1)connection 가장 많은 비용이 발생하며 불필요한 연결에 의한 서버 자원의 낭비가 발생하므로이를 보완할 수 있는 방법이 Connection Pool.Connection poolDriverManager은 실제 자바프로그램과 데이터베이스..
Spring JDBC는 Spring Framework에서 제공하는 JDBC 모듈이다.Connection 연결 객체 생성 및 종료, Statement 준비/실행 및 종료,ResultSet 처리 및 종료, 예외 처리,트랙잭션 등의 반복되는 처리를 개발자가 직접하지 않고 Database에 대한 작업을 수행할 수있다. Spring JDBC의 주요기능 1. DataSource 설정Spring JDBC는 DataSource를 사용하여 데이터베이스와 연결한다.Spring JDBC는 JDBC 드라이버 클래스 데이터베이스URL,username, password 포함하는 DataSource를 만든다. 2. SQL 실행Spring JDBC는 JDBC 코드를 대체하여 데이터베이스와 상호작용한다.Spring JDBC를 사용하면..
MyBatis에서 바인드 변수 주입 방법 2가지#{}: Prepared Statement 바인딩 (파라미터 바인딩)#{}는 파라미터 바인딩을 통해 값이 안전하게 쿼리에 삽입됩니다.값은 쿼리에 그대로 포함되지 않고 SQL 쿼리 실행 시점에 바인드 변수로 전달됩니다.데이터베이스 엔진은 이 방식을 통해 SQL 인젝션 공격을 방지할 수 있습니다 SELECT * FROM users WHERE user_id = #{userId} userId에 값이 들어올 경우, 쿼리는 실제로 아래와 같이 실행됩니다.예1) user_id 값이 5인 경우 쿼리 실행SELECT * FROM users WHERE user_id = ?# ? 에 5 바인딩예2) user_id 값이 "5 or 1=1"인 경우 쿼리 실행SELECT * ..