![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cGP2Jj/btsDfU9ULMJ/rzvCGIpCaN3FTXhO7EL7c0/img.png)
Join 두 개 이상의 테이블을 하나의 집합으로 만드는 연산 Join 기법들 대표적인 기법들만 소개할 예정 NL Join이 디폴트 기법 설명 Nested Loop Join (NL Join) 선행 테이블에서 액세스한 각 값을 후행 테이블과 조인하는 방식 Sort Merge Join (SM Join) 조인 컬럼을 기준으로 데이터를 정렬하여 조인을 수행하는 방식 Hash Join 해시 함수를 이용해서 데이터를 조인하는 방식 NL Join 프로그래밍에서 사용하는 중첩 반복문과 유사한 방식으로 조인 수행 반복문 외부의 테이블은 선행 테이블 혹은 외부 테이블(Outer Table) 이라 부른다. 반복문 내부에 있는 테이블은 후행 테이블 또는 내부 테이블(Inner Table) 이라 부른다. 선행 테이블 의 조건을 ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/1nBHB/btsDh6Wk7k1/RsCDmqiFHvL1BlqTZg2Cr0/img.png)
사전 지식 (용어) DB Key란? 튜플들을 구별할 수 있는 기준이 되는 속성이다. 필요한 이유 하나의 릴레이션에는 수많은 튜플들이 존재한다. 각 튜플들 간에는 중복되는 속성값이 발생할 수 있다. 이 튜플들을 구분하기 위한 기준이 필요하고, Key가 그 기준이 된다. Key 의 종류 키의 종류로는 크게 슈퍼키, 후보키, 기본키, 대체키, 외래키 등이 있다. 최소성, 유일성 모든 키의 종류가 이 두개를 만족하는 것은 아님! 유일성 키를 통해 모든 튜플을 구별할 수 있는 특징 유일성을 만족하는 예시 회원 테이블 [주민등록번호] 혹은 [이메일] 과목 테이블 [강의 연도, 과목명, 교수명, 강의 교시] 유일성을 만족하지 않는 예시 회원 테이블 [취미] 최소성 키에 튜플을 식별하는데 불필요한 어트리뷰트가 없는 경..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/3cLjr/btstXzsxg0Z/m6wWMZvSotKekEJeG4T961/img.png)
재검토중 이 글에서 설명하는 방법으로 이슈가 해결되지 않음을 확인했습니다. 하나의 탐구과정으로 봐주시면 감사하겠습니다.문제의 발생ObjectMapper의 NamingStrategies를 여러개 쓰이게 되는 상황이 발생했다.여러 종류의 외부 API를 반영하는 서비스였기에 외부 API 마다의 json 네이밍 컨벤션이 달랐다.특히, 하나의 NamingStrategies가 늘어날 때 마다 ObjectMapper에 대한 빈을 하나 더 등록하면서 주입 받을 때도 빈이 여러개라서 신경을 써야 하는 등의 불편함이 발생했다.이 문제를 해결하는 방법을 찾던 중, 디자인 패턴인 Composite 패턴을 통해 해결하기로 했다.Composite 패턴이란?Component 라 불리는 최상위 클래스와 Leaf, Composite ..
객체지향과 인지 능력 앨리스 이야기 앨리스의 행동은 상태에 의존적 행동에 의해 상태가 변함 앨리스의 상태가 변하여도 앨리스가 다른 사람이 되는 것은 아님 → 상태와 무관하게 유일한 존재로 식별 가능 객체, 그리고 소프트웨어 나라 객체 상태 행동 식별자 객체란 식별 가능한 개체 또는 사물이다. 객체는 자동차처럼 만질 수 있는 구체적인 사물일 수 있고, 시간처럼 추상적인 개념일 수도 있다. 객체는 구별 가능한 식별자, 특징적인 행동, 변경 가능한 상태를 가진다. 소프트웨어 안에서 객체는 저장된 상테와 실행 가능한 코드를 통해 구현된다. 상태 과거의 모든 행동 이력을 설명하지 않고도 행동의 결과를 쉽게 예측하고 설명할 수 있다. 상태와 프로퍼티 객체의 상태를 구성하는 모든 특징을 통틀어 객체의 프로퍼티라고 한..
객체지향과 객체 ↔ 현실 사실, 객체지향의 목표는 실세계를 모방하는 것이 아님 그렇다면? 고객과 사용자를 만족시킬 수 있는 신세계를 창조하는 것이다. 하지만 실세계의 모방이라는 설명은 객체지향의 다양한 측면에 대한 이해 및 학습을 돕는다. 협력하는 사람들 - 커피 공화국의 아침 요점 사람들은 서로 협력 관계에 있음 각자의 역할을 가짐 자신이 맡은 바 책임을 다함 요청과 응답으로 구성된 협력 하나의 객체로 모든 것을 처리하기 버거움 → 다른 객체에게 요청한다. → 요청은 연쇄적으로 발생 주어진 책임을 다하고 요청에 대해 무언가를 제공한다. → 요청에 대해 응답한다. → 응답 역시 연쇄적으로 전달됨 요청과 응답을 통한 협력 → 복잡한 문제를 해결할 수 있는 공동체 형성 → 협력의 성공은 특정 역할 맡은 각 ..
이번 주 목표 맥북 적응 2023-6-25 일요일 졸업작품 API의 키 값들을 스네이크 케이스로 마이그레이션? 했지만 오류가 발생해 수정 중이다. 2023-6-26 월요일 졸업작품의 스네이크 케이스 관련 오류를 수정했다. 2023-6-27 화요일 졸업작품에 부하테스트를 수행했다. 딱히 오류가 생기지는 않았다. Duration=10ms, vus=10, iteration=150으로 가장 느리고 복잡한 API 몇개를 호출해봤다. 2023-6-28 수요일 서버가 간헐적으로 꺼지는 오류를 발견했다. AWS로그와 도커 백엔드 로그를 저장해놨다. 조만간 분석하고 알아봐야겠다. 2023-6-29 목요일 어제 발견한 서버 오류는 아무래도 서버의 사양이 다소 낮아서 생긴 오류 같다. https://github.com/tu..
이번 주 목표 졸업작품 발표 준비 및 발표 2023-6-18 일요일 졸업작품의 DTO 수정 작업을 이어서 진행했다. 2023-6-19 월요일 졸업작품 수정작업을 진행했다. 2023-6-20 화요일 졸업작품 수정작업을 진행했다. 생일이라 졸업작품은 조금만 하고 쉬었다. 2023-6-21 수요일 졸업작품 수정작업을 밤을 세워가면서 진행했다. AWS EC2 가 갑자기 말썽을 부려서 시간을 많이 썼다. 로컬에서 도커를 돌려 내일 시연하려고한다. 2023-6-22 목요일 졸업작품 4차 세션에서 발표했다. 2023-6-23 금요일 UMC 프로젝트 주제를 지원해 합격했다. 졸업작품 서버를 다시 배포했다. 맥북을 샀다!!! 2023-6-24 토요일 졸업작품 수정작업을 수행했다. 이번 주 리뷰 졸업작품을 위해 일주일을 ..