오전
- markdown editor를 뭘 쓸지 고민했다
- typora, dynalist, obsidian 등등
- 개인 공부자료들을 어떻게 저장하고 어떻게 열람하는지 효율적인지 고민
- 답은 typora를 써보는걸로
오후
- DTO의 목적은 tier간 통신, 프로세스간 통신에서 데이터를 주고받는 용도의 객체
- DTO는
객체 간의 협력하는 공동체 라는 객체지향설계의 개념에 위배된다
- 데이터를 주고 받는 용도로 쓰이며, 객체가 독립적이고 자율적인 행위 없이 getter setter만 있을뿐
- java record 불변객체타입
- (데이터 전송을 위한) 불변객체를 만들기 위한 코드의 중복(boilerplate)를 줄이기 위한 목적
- CORS(Cross-Origin Resource Sharing): 출처가 다르더라도 통신할 수 있도록 만드는 정책
- CORS는 (자바스크립트) XHR/Fetch를 통해서 요청을 보낼 때 영향을 미친다
저녁
- SELECT 절의 처리순서
FROM``JOIN (조회할 테이블 지정) -> WHERE (조건에 맞는 데이터 필터링) -> GROUP (선택한 칼럼을 기준으로 그룹핑) -> HAVING (그룹핑 후에 각 그룹에 적용하는 조건절) -> ORDER BY (행의 순서) -> LIMIT (몇 개의 행)
- SELECT ~ FOR UPDATE
동시적 제어를 위하여 특정 데이터(row)에 대해 배타적 LOCK을 건다
- 페이지네이션 구현방법: offset vs cursor
- 공유락(LS, shared lock): 읽기
배타락(LX, exclusive lock): 읽기/쓰기