기존에 작업했던 서버부분을 동기분이 수정하셨지만
gitignore 설정 문제인지 제대로 설치되지 않았다.
확실히 느낄 수 있었던 부분은 express 등이 import에는 적혀있지만
npm i를 해도 설치되어 있지 않았고
json을 확인해도 dependency에도 포함되어 있지 않았다.

수동으로 설치하고 진행했지만 이번에는 proxy 문제가 나타났고
"options.allowedHosts[0] should be a non-empty string."문제가 출력되었다.

프록시 문제?

이 외에도 import 에러 메세지가 출력되는데
경로는 제대로 설정되어 있었기 때문에 이유를 알 수 없었고
.env 파일에서 가져온 경로 또한 적용되지 않았기 때문에
string 형태의 "www.xxx.xxx/xx/xx/xxx" 형태로 받아올 수 밖에 없었다.

결국 온보딩 시간 내에 서버 문제를 프론트엔드 인원끼리 해결하기엔 버거워 보였고
금요일 온보딩 발표 결과를 확인하고 추가적으로 진행하기로 마무리했다.

애초에 프론트엔드에서 백엔드 기능까지 다 도입해서 진행하는 것이 무리였지만
전공에 경험이 있으신 동기분이 추가적으로 담당하셨었지만
갑작스러운 취업 및 다음주 월요일 바로 출근 때문에 이탈할 수 밖에 없어
프로젝트가 중단될 수 밖에 없었던 것 같다.

프로젝트를 진행하며 폴더구조분할, 관심사분리, styled-components 재사용,
git -m 양식, git issue 관리, 협업 전 컨벤션, 기능정의, eslint 등
이끌어주는 멘토나 경험자가 없이 진행했던 프로젝트에서는 배울 수 없었던
협업의 전반적인 부분에 대해 배울 수 있는 좋은 시간이었다.



1.트랜잭션(Transaction)이란 데이터베이스의 상태변화 작업 단위로 아래의 4가지 특징을 가지고 있다.

 원자성 - 트랜잭션의 모든 조건(작업단위)이 db에 반영되거나 반영되지 않아야 한다.
 일관성 - 결과는 일관성이 있어야 한다.
 독립성 - 여러 트랜잭션이 실행되더라도 서로 영향을 줄 수 없다.
 지속성 - 트랜잭션이 성공적으로 commit될 경우 결과는 영구적으로 반영되어야 한다.

 

트랜잭션에는 SELECT, INSERT, DELETE, UPDATE로 4가지 변화를 작업단위로 분할할 수 있으며
분할된 작업 단위들이 합쳐져 하나의 트랜잭션이라고 할 수 있다.

트랜잭션 내의 모든 작업이 완료될 경우 commit으로 반영하며
작업이 하나라도 문제가 생긴다면 rollback을 통해 트랜잭션 자체를 되돌려야 한다.
(부분적 성공/실패는 적용되지 않음)


2.데이터베이스 관리 시스템(DataBase Management System)에는
질문 처리기(Query Processor)와 저장 시스템(Storage System)이 있으며
저장 시스템은 disk, Main Memory로 나뉘는데
이 중 Main Memory의 페이지를 관리하는 모듈이 버퍼관리자(Buffer Manager)다.

버퍼 관리에는 undo와 redo 두 가지 복구방식이 있는데
undo 방식은 steal, ¬steal / redo 방식은 FORCE, ¬FORCE가 있다.

undo steal 방식  - 수정된 페이지를 언제든 디스크에 사용할 수 있는 정책(undo 필요)
undo ¬steal 방식 - 트랜잭션이 종료된 작업까지만 버퍼에 유지하는 정책(undo 불필요)
redo FORCE 방식  - 수정한 모든 페이지를 commit 기준으로 반영 (redo 불필요)
redo ¬FORCE 방식 - commit을 따로 반영하지 않아 트랜잭션이 미반영 상태일 수 있음 (redo 필요)






(1).백준 2460 지능형 기차 2는 각 역마다 내린 사람과 탄 사람의 숫자를 주고
가장 많은 수의 탑승객이 있을 때의 값을 구하는 문제였다.
Math.max를 사용해 최댓값을 비교하며 현재값은 따로 sumNow로 관리해 해결했다.

let input = `0 32
3 13
28 25
17 5
21 20
11 0
12 12
4 2
0 8
21 0`.split('\n')
let sumNow = 0
let max = 0
for(let i = 0 ; i < input.length ; i++){
    let [a,b] = input[i].split(' ').map(Number)
    sumNow = sumNow - a + b
    max = Math.max(max,sumNow)
}

console.log(max)

+ Recent posts