목록분류 전체보기 (138)
공부하는 스누피
도커는 가상 머신을 대체하는 경량 컨테이너 개념을 새롭게 제시한 오픈 플랫폼으로, 애플리케이션들을 빠르게 구축할 수 있도록 한다. 컨테이너는 리눅스 호스트에서 실행되며, 리눅스 namespace를 이용해 시스템 리소스를 분배한다. 이 방법은 기존 가상 머신이 작동하는 방식보다 자원 사용량에 있어 효율적이다. 가상 환경이 기존 OS 위에 사용하고 싶은 OS를 올리는 방식이라면, 컨테이너는 도커가 대신 자원을 관리하기 때문에 오버헤드를 줄였다. 다음은 대표적인 도커 사용 사례이다. - 도커 컨테이너를 사용해 애플리케이션을 공유한다. - 테스트 환경 구축, 실행까지 자동화가 가능하다. - 개발 환경에서 수정한 애플리케이션을 테스트 환경에 재배포할 수 있다. - 테스트가 끝나면 상용 환경에 이미지를 쉽게 배포할..
오늘 정보처리기사 실기 결과 발표가 났다. 필기는 정기 3회 시험을 쳤고, 실기도 3회차로 치려고 했으나 인적성 시험과 겹쳐서 못갔다. 차라리 응시 취소를 했으면 4회차를 칠 수 있었겠지만, 결시여서 아쉽게도 5회 시험이 있는 11월 말까지 기다리는 수밖에 없었다. 3회차에 필기와 실기를 다 칠 생각으로 10월 초에 실기 책을 거의 다 풀어버린 데다 면접 일정까지 겹쳐서 5회 시험은 거의 준비하지 않았다. 시험 전날 수제비 카페에서 기출문제를 한번 풀어보기만 했다. 다행히 결과는 합격이었다. 필기는 시험 한 달 전부터 시나공 기본서를 사서 공부했다. 플젝 위주 수업만 듣다 보니 CS 기본을 다 잊어버린 것 같아서 길게 잡고 정독했다. 참고로 시나공 필기는 책이 두꺼우니 분철하는 것을 추천한다. 정독하면서..
서비스 검색 Service discovery 문제 client가 마이크로서비스와 인스턴스를 찾을 수 있어야 한다. 인스턴스의 동적 IP 주소는 인스턴스가 시작될때 할당받아서 HTTP 기반 API를 호출하기 어려워진다. 해결 => 사용 가능한 인스턴스와 서비스를 추적하는 새 컴포넌트(service discovery)를 추가한다. - 방법 1: 클라이언트 측 라우팅으로 클라이언트가 서비스 검색 서비스를 이용해 요청을 보낼 만한 인스턴스를 찾게 한다. - 방법 2: 서버 인프라에 리버스 프록시를 노출시켜 클라이언트를 대신해 적절한 인스턴스로 요청을 전달하게 한다. ex. 넷플릭스 유레카, 넷플릭스 리본, 쿠버네티스 kube-proxy, 쿠버네티스 서비스 리소스 에지 서버 Edge server 문제 공개된 마이..
마이크로서비스 마이크로서비스는 독자적인 업그레이드와 스케일링이 가능한 독립된 소프트웨어 컴포넌트이다. 일체형 애플리케이션과는 달리 마이크로서비스는 여러 개의 작은 서버에 배포할 수 있어 애플리케이션을 쉽게 확장하고 빠르게 개발할 수 있다. 마이크로서비스가 독립된 컴포넌트로 동작하려면 다음과 같은 기준을 충족해야 한다. - 아무것도 공유하지 않는 아키텍처를 유지해야 한다. (ex. 데이터베이스의 데이터 공유 x) - 동기 방식이나 명확한 API를 이용해서만 통신해야 한다. - 개별적인 런타임 프로세스로 배포해야 한다. - 마이크로서비스 인스턴스는 stateless하기 때문에 모든 인스턴스가 요청을 처리할 수 있다. 마이크로서비스 개발은 플랫폼의 각 기능을 독립적인 소프트웨어 컴포넌트로 개발하는 방식으로 이..
1. 네트워크는 안전하다. 2. 네트워크 지연은 0이다. 3. 대역폭은 무한하다. 4. 네트워크는 안전하다. 5. 토폴로지는 변하지 않는다. 6. 관리자는 1명이다. 7. 전송비용은 0이다. 8. 네트워크는 균일하다. - 피터 도이치, 1994 arnon.me/wp-content/uploads/Files/fallacies.pdf
DB 접속 mysql -u {username} -p{password} {db_name} 스키마 생성 create database {db_name} default character set utf8; 사용자 추가 / 권한부여 - 사용자 추가 create user '{username}'@'{address}' identified by '{password}'; - 사용자 추가 & 권한부여 grant all privileges on {db_name}.* to {username}@{address} identified by '{password}'; -- 모든 권한 부여: grant all privileges -- 일부 작업에 대한 권한 부여: grant insert, update ... -- 특정 테이블에 대해 권한 ..
개념 데이터 모델링 : 주제 영역과 핵심 데이터 집합간의 관계를 정의하는 모델링으로, 전체 모델의 골격에 해당한다. 논리 데이터 모델링 : 개념 모델로부터 업무영역의 규칙을 구체적으로 표현 - 정규화 - 포용성 - 완전성 - 독립성 물리 데이터 모델링 : 논리 모델을 기술에 맞게 상세화 - 개체 -> 테이블 - 속성 -> 컬럼 - UID -> PK - 관계 -> FK - 컬럼유형과 길이정의 - 반정규화 이상현상 anomaly : 데이터의 중복으로 나타나는 현상 => 정규화로 중복을 최소화해서 해결 - 삽입 이상 : 의도하지 않은 데이터를 같이 삽입하는 경우 - 삭제 이상 : 의도하지 않은 데이터를 삭제하는 경우 (cascade 오용) - 갱신 이상 : 데이터 갱신시 정보에 모순이 생기는 경우 정규화 : ..
운영체제를 공룡책으로 공부할 예정이었지만 책이 무거워서 일단 가벼운 책부터 읽기로 했다. 그래서 선택한 운영체제와 정보기술의 원리는 300쪽이 조금 안되는 분량임에도 운영체제의 전반적인 내용을 다루었고, 전공 서적보다는 읽기 쉬운 책이었다. 책 뒤편의 설명에 따르면 이 책은 컴퓨터 입문서로, 전공자에게는 운영체제 지식을 단기간에 체계적으로 습득할 수 있게 하였고, 비전공자에게는 기본적인 운영체제의 동작 원리를 이해할 수 있는 안내서라고 한다. 운영체제의 큰 틀을 잡아주기에는 부족함 없는 책이지만, 깊게 알기 위해서는 추가적인 공부가 필요하다는 뜻으로 이해했다. 책 초반부를 읽을 때는 비전공자를 위한 교양 서적으로 느껴졌다. 운영체제를 이미 한번 배워서 그런지 다른 책과 다르게 술술 읽혀졌다. 책 내용의 ..