| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
- 열려있니
- 핫키
- 리눅스
- 통신확인
- Linux
- 비동기통신
- 아틀라시안
- ORM
- 암호화
- IntelliJ
- 단축키
- centos
- IDE
- rabbitmq
- Database
- JPA #MyBatis #ORM
- access list
- 7 layers
- toLocaleString
- 인코딩
- 자바스크립트
- executable jar
- 네트워크
- 인텔리제이
- CrossOrigin
- 메시지 큐
- MQ
- java
- Netwrok
- 깃랩
- Today
- Total
목록전체 글 (43)
헝그리둘기 개발일지
데이터베이스 부하 분산을 위해 스케일 아웃이 필요한 경우에 활용할 수 있는 방법을 소개한다.1. Read Replication (읽기 복제)Read Replication은 말 그대로 메인 DB의 복사본을 만들어 "읽기(조회) 작업만 전담"시키는 기술. 일반적인 웹 서비스의 트래픽 비율을 보면 조회(Read)가 약 70~80% 이상을 차지한다는 점에서 착안한 아키텍처이다.💡 구조와 작동 원리Primary (Master) 서버: 데이터의 추가, 수정, 삭제(INSERT, UPDATE, DELETE) 등 쓰기 작업만 처리. 시스템에 단 1대만 존재한다.Secondary (Replica) 서버: 데이터 조회(SELECT) 등 읽기 작업만 처리. 트래픽 양에 따라 여러 대를 추가할 수 있음.데이터 동기화: 사용..
xAPI (https://xapi.com/learning-record-store/) - 개념Experience API 로써, 학사관리시스템(LMS)안팎에서 발생한 학습 경험에 대한 기록을 저장하고 추적하기 위한 표준 설계 모델이다.레거시 시스템에서 주로 활용되던 SCORM 모델보다 활동 기록 범위가 넓고 데이터의 저장소가 다르다. - 구조xAPI 데이터는 항상 다음과 같은 세 가지 필수 요소로 구성된 JSON 문장 형식으로 기록된다.Actor (누가) + Verb (무엇을 했는지) + Object (무엇에 대해)즉, 주어+동사+목적어이다.예) 김둘기가 비둘기밥의 이해 과목에 대해 수강신청했다.{ "actor": { "name": "DulgiKim" }, "verb": { "id": "ht..
DB의 트랜잭션 안정성을 보장하기 위한 ACID 속성 중, Isolation (독립성)과 관련 있는 트랜잭션 격리 수준에 대해 알아보았다. 격리 수준은 1~4단계이고, 격리수준이 높을수록 데이터를 읽을때 일관성이 보장되지만, 그만큼 락을 오래 물고있기 때문에 동시성(처리 성능)은 떨어진다.때문에 성능이 중요한지 데이터 정확성이 중요한지 판단해서 격리 수준을 설정해야 한다.Mysql과 같은 대중적인 RDBMS의 기본 격리 수준은 2단계나 3단계이다. 수준발생할 수 있는 현상내용1. Read UncommittedDirty ReadNon-repeatable ReadPhantom Read가장 낮은 격리 수준. 다른 트랜잭션의 커밋되지 않은 데이터를 읽는 것을 허용합니다. (성능은 빠르지만, 데이터 오염 위험이 ..
공통점1. 비동기 요청으로, promise 리턴2. 클라이언트와 서버 도메인이 다른 경우, 브라우저의 CORS 정책의 제한을 받음 Fetch1. 자바스크립트 내장된 네이티브 함수2. promise 리턴 (400, 500에러 떨어져도 resolve 처리. 통신 자체에 실패해야 reject 처리됨)3. 응답 데이터를 res.json() 등의 비동기 함수로 파싱해서 사용해야함4. 인터셉터 없음5. 내장 기능인만큼 패키지 크기에 부담 없음 Axios1. 써드파티 라이브러리로, 패키지 설치 후 사용해야 함2. promise 리턴 (통신 실패는 물론이고 400, 500에러 떨어지면 reject 처리)3. 응답 데이터가 자동으로 파싱되어서, res.data 로 꺼내서 쓰면 됨4. 서버로 요청 쏘기 전, 응답..
개념두 가지 이상의 프로세스의 실행 순서가 보장되지 않고 서로 경쟁 상태에 있어, 최종 결과값을 알 수 없는 상태.예를들어, 여러 트랜잭션이 한 자원에 대해 락을 획득해야 하는데, 어떤 트랜잭션이 먼저 획득할지 모르는 상태. 예시 1. Nextjs에서 태그로 이미지를 렌더링 해야하는 상황.기본 saveFilePath상태의 값은 공백이고, 페이지 렌더링 시 외부 API를 호출하여 savefile 파라미터의 값을 채우는 구조.import Image from "next/image"const uri = "https://www.abc.com/download?savefile="const [saveFilePath, setSaveFilePath] = useState("")// 외부 API 요청 후 파일경로 세팅..