본문 바로가기

내가 마주치는 Error들

(10)
JAVA의 미래... JDK21 Virtual Thread
Reduce VS Collector.of
깊은 복사(Deep Copy) ... 얕은 복사(Shallow Copy) , @Qualifier - @Autowired 같이 Value and Reference type 모든 데이터 타입은 값 타입(value type) 또는 참조 타입(reference type)을 가진다. 값 타입(Value type) : 각각의 고유의 메모리를 소유한다. 스위프트에서 struct, enum, array, tuples 들이 해당 타입에 속한다. 참조 타입(Reference type) : 생성된 인스턴스들은 주소값을 공유한다. 스위프트에서 class가 해당 타입에 속한다. 두 가지 타입 모두 copy 메소드가 존재하는데 과연 깊은 복사(deep copy)가 일어날까? 아니면 얕은 복사(shallow copy)가 일어날까? 깊은 복사(Deep copy)란? 데이터 자체를 통째로 복사한다. 복사된 두 객체는 완전히 독립적인 메모리를 차지한다. va..
instanceof, Class.isAssignableFrom Instanceof instanceof는 해당 Object가, 특정 Class, Interface를 상속하거나 구현 했는지를, boolean type으로 return해주는 method이다. public class Gillog extends Gil { ... } Gillog obj = new Gillog(); // true if (obj instanceof Gil) { ... } Class.isAssignableFrom Class.isAssignableFrom은 특정 Class가, 특정 Class, Interface를 상속하거나 구현 했는지를, boolean type으로 return해주는 method이다. // true if (Gillog.class.isAssignableFrom(Gil.class)) { ..
[DB ORACLE] 동시성 문제 예전에, DB 동시성과 관련된 이슈사항들이 발생하였고 해결했던 경험과 방법들을 공유해보자 한다. 동시성 문제란 무엇인가에 대해 파악하였고, 여러 해결방법들에 대해서 적을것이고, 나의 사례는 어떻게 해결했는지에 대해서 말할것이다. 동시성 문제란? 사전적 의미는 하나의 CPU 코어에서 시간분할(Time sharing)을 통하여 여러 일을 처리하는 것 처럼 보여지게 하는 기법을 의미합니다. 대중적으로는, 여러 요청이 동시에 동일한 자원(data)에 접근하고 수정하려는 것을 의미합니다. 이와 같은 현상은 DB에서 더욱 자주 발생합니다.데이터를 수정하여 저장했지만 다시 조회했을 때 다른 값이 반환되는 경우입니다. 이때 데이터의 무결성이 깨지고, 의도하지 않은 결과가 반환됩니다. 문제 해결 방법 비관적인 방법 데이..
크롬80,84 쿠키정책 변경 이슈 크롬 80버전 2020년 2월 4일 크롬80 쿠키정책이 변경되었다. 도메인이 서로 다른 사이트 간 이동을 하는 경우 쿠키 전달 불가 서로 다른 도메인 간 이동 시 쿠키 전달 불가로 인한 세션 오류 발생(결제 pg사) 기본 SameSite를 Lax로 변경 문제 사이트에 간헐적으로 결제시 세션이 끊기는 현상이 발생하였다. 원인(PG사) 크롬80 쿠키정책에 대응을 하더라도 사용자가 임의로 위에처럼 차단시에 결제등 외부 쿠키관련 데이터가 막힐수 있다. 차단시 인클루드된 외부사이트 스크립트에서 문제가 발생하였다. 해결법 각사이트 header나 공통 페이지에 아래처럼 기재하였다. httpServletResponse.setHeader("Set-Cookie", "JSESSIONID=" + session.getId() ..
Stringbuilder vs StringBuffer String 정의와 특징 Java에서 String 클래스는 불변성을 갖습니다. 그래서 변하지 않는 문자열을 자주 사용하는 경우엔 좋은 성능을 기대할 수 있습니다. 하지만 문자열에 대한 변경이 자주 일어나는 프로그램에서 String만 사용하게 된다면 효율적인 성능을 기대하기 어렵습니다. 그래서 우리는 StringBuilder , StringBuffer을 사용하여 효율적인 성능을 보일 수 있습니다. String vs String Builder vs String Buffer Java에서 String 객체는 한번 값이 할당되면 그 공간은 변하지 않습니다. Stringbuilder나 StringBuffer 객체는 한번 값이 할당되더라도 한번 더 다른 값이 할당되면 할당된 공간이 변하는 특성을 갖고 있습니다. St..
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 해결기(1) 카카오 간편 로그인을 구현하면서 마주쳤던 error에 대해 정리하면서 다시 상기시키기 위해 작성한다. 발생 상황 메인 시스템에서 https://kaip.kakao.com으로 로 시작하는 API를 호출할때 마주쳤다. 해결 실마리 찾기 분명 같은 error을 마주쳤던 다양한 사람들이 존재할것이라 생각했고 kakao developer에서 해당 에러를 기반으로 검색한후 다음과 같은 글을 발견했다. https://devtalk.kakao.com/t/rest-api-pkix-path-building-failed/120588 카카오 로그인, (REST API) , PKIX path building failed 로그인 토큰 정보를 가져오려고 하는데 다음과 같은 오류 메세지가 나옵니다. sun.security.valid..