MySQL 데이터 분산 처리를 위한 Master-Slave 이중화 구축 저번에 작성한 MySQL 데이터 분산 처리를 위한 Master-Slave 이중화 구축에 이어서 Spring Boot와 JPA 설정을 하여 최종적으로 작동하도록 하겠습니다. Spring Boot
현재 상황 과거의 프로젝트를 다시 실행하려는데 중지된 EC2 인스턴스를 다시 시작하면서 MySQL 데이터베이스 스키마가 사라져 있는 문제가 발생했습니다. docker-compose.yml 파일에는 다음과 같이 설정이 되어 있었습니다. 이러한 현상의 이유는 볼륨이
MySQL 데이터 분산 처리를 위한 Master-Slave 이중화 구축 이중화를 하는 이유 데이터베이스의 트랜잭션을 readOnly로 셋팅할경우 성능이 상승하는 이점을 누릴 수 있습니다. 데이터베이스에서 일어나는 작업을 읽기와 쓰기로 나눈다면 대부분의 작업은 읽기에
Trie 개미굴 알고리즘을 풀다 답을 보는 과정에서 Trie에 대해 알게되어 공부할겸 기록하고자 한다. Trie(Tree)의 개념과 특징 트라이(Trie)는 문자열을 효율적으로 저장하고 검색하는 트리 형태의 자료구조입니다. 주로 자동완성 기능이나 사전 검색과 같이
현재 상황 이전에 작성한 Soft delete 적용한 코드에서는 deleted_at 컬럼이 null이면 삭제되지 않은 것으로 간주하고 조회하도록 @Where 절을 이용하여 처리하고 있었습니다. 그러나 이로 인해 삭제된 포스트 목록을 조회하는 경우 문제가 발생했습니
✅ Hard Delete vs Soft Delete: 데이터 삭제 방식 비교 📌 Hard Delete(물리 삭제) SQL의 DELETE 명령어를 활용하여 데이터를 물리적으로 제거하는 방식입니다. 실제로 디스크에서 데이터가 영구적으로 삭제되어, 디스크 공간을 확보
알고리즘 유형 : 기하학 > 풀이 없이 스스로 풀었나요? : ⭕ 백준 2203번 직교다각형 복원 솔루션 예를 들어 다음과 같은 직교다각형이 있다고 하자. 직교 다각형은 x, y축과 평행한 변들로 이루어진 다각형을 의미합니다. 이러한 다각형은 각 변들이 수직 또는
현재 상황 저번에 작성했던 @RequestPart를 이용한 MultipartFile, DTO 처리을 통해 postman으로 테스트 결과 정상적으로 작동하였으나 Swagger에서 테스트시 오류가 발생하여 Swagger에서도 정상 작동하도록 수정하려고 한다. Item
알고리즘 유형 : 구현풀이 없이 스스로 풀었나요? : ⭕SWEA 두 개의 숫자열 문제 보기N 개의 숫자로 구성된 숫자열 Ai (i=1~N) 와 M 개의 숫자로 구성된 숫자열 Bj (j=1~M) 가 있다.아래는 N =3 인 Ai 와 M = 5 인 Bj 의 예이다.Ai 나
현재 상황 토이 프로젝트를 진행하다 보니 품목 등록, 수정, 삭제 등 로그인된 상태에서 요청해야는 API가 다수 있었다. 매번 Authentication에서 email을 꺼내와 이메일을 통해 회원을 찾고 없으면 에러를 반환하는 부분이 계속해서 반복되고 있음을 느껴 반복을 줄이고자 AOP를 적용하고자 한다. ItemController 인수로 매번 Aut...
알고리즘 유형 : 그리디 > 풀이 없이 스스로 풀었나요? : ⭕ 백준 2217번 로프 솔루션 만약 로프 개수가 5개이고 각 버틸 수 있는 중량이 [10, 19, 20, 21, 40] 이라면 i) 2개의 로프를 사용할 경우 가장 큰 수 2개(21, 40)로 버틸
쇼핑몰 토이 프로젝트에서 이미지 업로드를 기능 추가 중 @RequestPart를 사용하게 되었다. @RequestPart는 처음 사용해 보는 거라 @RequestPart에 대해 공부하면서 @RequestParm, @RequestBody에 대해서도 같이 정리 해보고자 한다. @ReqeustParm 1개의 파라미터를 받기 위해 사용한다. 파라미터 여부가 d...
문제 - @RequestParam + @RequestBody 쇼핑몰 토이 프로젝트 중 해당 품목의 이미지를 첨부하고 품목 정보를 입력해 아이템을 등록하는 기능을 구현하려고* MultipartFile은 @RequestParam으로 Dto는 @RequestBody를 사
저번 프로젝트에서는 깃랩을 사용하여 도커로 받은 이미지를 크론탭으로 배포 스크립트를 실행시키는 식으로 ci/cd를 구현했었다. 이번에는 Github action을 통해 코드를 빌드하고, 이를 도커 레포지토리에 push, 그리고 ssh로 원격 서버에 접속하여 도커의 이미
docker 설치 깃 허브에 있는 스크립트를 통해 설치하겠습니다. 관리자 권한으로 들어가기 git clone 하기 설치 스크립트 실행 설치 확인 위와 같이 뜬다면 도커 설치가 완료된 것 입니다. MySQL 띄우기 ✨ run 시킨 이미지가 로컬 regist
인스턴스 생성 1.1. OS 선택 이름: rabbit-letter 애플리케이션 및 OS이미지: ubuntu 인스턴스 이름을 생성해주고 원하는 OS를 선택해주었습니다. 1.2. 인스턴스 유형 인스턴스 유형 설정 다양한 인스턴스 유형이 있는데 저는 프리티어를 사용
도커 데스크탑 설치 중 아래와 같은 에러를 만나 해결 과정을 정리해보고자 한다. Hyper-V가 완전히 비활성화되었거나 설치되지 않은 경우 1. 파워쉘을 관리자 버전으로 실행 2. 다음 명령어를 입력해준다. 3. 설치가 완료되면 컴퓨터를 재시작한다. Hype
알고리즘 유형 : 완전 탐색 > 풀이 없이 스스로 풀었나요? : ❌ 프로그래머스 Level.2 카펫 솔루션 카펫의 가로길이는 세로 길이와 같거나, 세로 길이보다 깁니다. ➡ a >= b 갈색 개수는 = 노란색 가로 길이 * 2 + 노란색 세로 길이 * 2 + 꼭지점 개수 ➡ brown = 2a + 2b - 4 노란색 개수 = 노란색 가로 길이 * 노란...
알고리즘 유형 : 이분 탐색 > 풀이 없이 스스로 풀었나요? : ❌ 백준 15732번 도토리 숨기기 솔루션 mid를 마지막 도토리가 담긴 상자의 번호라고 가정 mid까지 총 몇개의 도토리가 담겼는지 파악한다. mid까지 담긴 도토리의 개수가 총 도토리 개수(d)보다 작으면, 해당 상자보다 뒤에 있는 상자에 마지막 도토리가 담겨있으므로 5.으로 간다...
트랜잭션 격리 수준 트랜잭션이 동시에 실행될 때 발생 가능한 이상 현상 Dirty Read ✔️ 데이터가 변경되었지만, 아직 커밋되지 않은 상황에서 다른 트랜잭션이 해당 변경 사항을 조회할 수 있는 문제 Non-Repeatable Read ✔️ 같은 트랜잭션 내에서 같은 데이터를 여러번 조회했을 때 읽어온 데이터가 다른 경우 Phantom Rea...