전체 글

컴퓨터 공부하는 블로그입니다. 공부하는거 다 적어요~!
'도커 교과서'를 읽고 정리한 내용입니다.도커 - 컨테이너를 단위로 해 애플리케이션을 실행하는 기능을 제공하는 플랫폼. 클라우드 환경으로 이주하기1. PaaS(Platform as a Service)우리 애플리케이션의 각 컴포넌트를 하나씩 클라우드의 매니지드 서비스로 옮기는 작업을 해야함애플리케이션이 특정 클라우드에 종속되지만, 운영비를 절감할 수 있음.2. IaaS(Infra as a Service)애플리케이션의 각 컴포넌트를 가상 머신에서 동작시킴특정 클라우드에 종속되진 않지만, 운영비가 상승함.=3. 도커애플리케이션의 각 컴포넌트를 컨테이너로 이주한 뒤, Azure k8s service나 Amazon ECS 또는 직접 구축한 도커 클러스터에서 전체 애플리케이션을 실행할 수 있음.(분산 애플리케이션을..
무료 요금제에선 하나의 개인 저장소만 사용할 수 있음.Public ⇒ 누구나 다운로드 할 수 있음.(보안 관련 데이터나 개인정보가 유출되지 않도록 주의해야 함)  개인 저장소 생성 완료.아직 push 한 것이 없으므로, 비어있음. 터미널에 command를 입력하면 위와 같이 이미지가 로컬에 존재하지 않는 저장소를 참조하고 있다는 에러가 나온다. 위를 해결하기 위해선 이미지에 node-hello-world라고 이름을 지정해주면 된다. 즉, 우리가 업로드하려는 이미지를 도커 허브에 푸시하는 이미지로 바꾸면 된다.방법은 2가지인데, 1. 새로 빌드하기       docker build -t 도커 레포지토리 이름/node-hello-world .2. 존재하는 이미지를 재사용하기(이름 다시 붙이기!)       ..
async authenticateUser(user: LoginUserDto) { const existingUser = await this.usersRepository.findUserByEmail(user.email); if (!existingUser) { throw new UnauthorizedException('Email이 존재하지 않습니다.'); } const isMatch = await bcrypt.compare(user.password, existingUser.password); if (!isMatch) { throw new UnauthorizedException('비밀번호가 일치하지 않습니다.'); } return existingUser; ..
Test하려는 코드  private parseOrderFilter(key: string, value: any): FindOptionsOrder { const order: FindOptionsOrder = {}; const split = key.split('__'); if (split.length !== 2) { throw new BadRequestException( `order 필터는 '__'로 split 했을 때 길이가 2여야 합니다. - 문제되는 키값 : ${key}`, ); } const [_, field] = split; order[field] = va..
축구팀 관리 프로젝트에서 토너먼트를 구현중에 있다.토너먼트의 경우 선착순으로 입력을 받도록 구현했다. 여기서 걸리는 부분은 동시성 문제였다. 여러 사람이 동시에 신청을 하게되면 다음과 같은 문제가 생길 것 같았다. 1. 동시에 참가하는 경우 - 두 팀이 거의 동시에 신청을 하고, 토너먼트에 자리가 하나만 남아있다면, 신청된 팀의 수가 토너먼트 참가 제한 수보다 많아질 수 있다. 2. 동시에 취소하는 경우- 동시에 여러 팀이 참가를 취소하는 경우, 참가 팀의 수가 올바르게 바뀌지 않을 수 있다. 3. 동시에 토너먼트 정보 수정- 현재 우린 어드민만 수정을 할 수 있도록 변경했다. 만약 여러 어드민이 토너먼트 정보를 수정할 경우, 마지막 쓰기만반영이 되고, 이전 수정 사항은 무시될 수 있다. 동시성 문제를 ..
전호영
컴퓨터 공부하는 블로그