본문 바로가기

전체 글24

참조무결성 참조무결성(referential integrity) 관계형 데이터베이스의 관계 모델에서 2개의 관련 있던 관계 변수(테이블)간의 일관성(데이터 무결성)을 말한다. 참조 무결성은 종종 키 또는 키가 아닌 후보 키와 외래키의 조합으로 강제 적용된다. 외래키(Foreign Key)는 데이터베이스에서 참조 무결성을 보장하기 위해 사용 위 이미지를 보면 하단 앨범테이블은 상단 아티스트테이블에 존재하지 않은 아티스트를 참조하고 있다. 즉, 외래 키 값에 해당 참조되는 관계 변수의 기본 키가 없는 것이 있다. 여기서 "Aerosmith" 라는 아티스트가 artist_id가 "4"로 존재하고 있었지만, 이 아티스트가 아티스트 관계 변수에서 제거되어 버린 것이다. 그러나 앨범 "Eat the Rich"가 아티스트를 참조.. 2023. 1. 1.
JWT JWT JSON Web Token의 약자로 전자 서명 된 URL-safe(URL로 이용할 수 있는 문자만 구성된)의 JSON이다. JWT는 속성 정보 (Claim)를 JSON 데이터 구조로 표현한 토큰으로 RFC7519 표준이다. JWT는 서버와 클라이언트 간 정보를 주고받을 때 Http 리퀘스트 헤더에 JSON 토큰을 넣은 후 서버는 별도의 인증 과정 없이 헤더에 포함되어 있는 JWT 정보를 통해 인증한다. 이때 사용되는 JSON 데이터는 URL-Safe 하도록 URL에 포함할 수 있는 문자만으로 만든다. JWT는 HMAC 알고리즘을 사용하여 비밀키 또는 RSA를 이용한 Public Key/ Private Key 쌍으로 서명할 수 있다. Claim Token(클레임 토큰) 클레임 토큰에서 클레이란 단어.. 2023. 1. 1.
디자인 패턴 디자인 패턴 디자인 패턴을 이야기 할 때 항상 언급되는 문구가 있다. "바퀴를 다시 발명하지마라(Don't reinvent the wheel)" 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을 때 재사용할 수 있는 훌륭한 해결책이 된다. 이미 만들어져서 잘 되는 것을 처음부터 다시 만들 필요가 없다는 것을 의미한다. 패턴 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때도 서로 간에 공통되는 설계 문제가 존재하며 이를 처리하는 해결책 사이에도 공통점이 있다. 이러한 유사점을 패턴이라고 한다. 패턴은 공통의 언어를 만들어주며 팀원 사이의 의사 소통을 원할하게 해주는 아주 중요한 역할을 한다. 구조 콘텍스트(Context) 문제가 발생하.. 2023. 1. 1.
Lombok 과 Jackson Deserialize 관계 이슈 최근 회사에서 평소와 같이 업무를 보던 중 마케팅팀을 통해 특정 API에 오류가 있음을 전달 받았고, 해결했지만 그 과정이 꽤나 재밌어서 내용을 정리하고자 한다. 우선 이슈는 아래와 같다. 크롤링 기능이 포함된 API 가 있다.API는 요청을 받으면 특정 웹 사이트의 데이터를 크롤링하고, 결과를 원하는 데이터 객체에맞게 변환하여 클라이언트에게 응답한다. 이 API 가 갑자기 제기능을 못한 것이다. 분명 이전에는 정상적으로 작동했었는데 말이다. 원인이 뭘까?? 좀 더 편리한 확인을 위해 로컬환경에서 같은 상황을 재현시켰더니 아래와 같이 로그를 출력했다. Cannot construct instance of `com.example.admin.model.crawling.Example` (no Creator.. 2023. 1. 1.