목록전체 글 (141)
공부하는 스누피
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쪽이 조금 안되는 분량임에도 운영체제의 전반적인 내용을 다루었고, 전공 서적보다는 읽기 쉬운 책이었다. 책 뒤편의 설명에 따르면 이 책은 컴퓨터 입문서로, 전공자에게는 운영체제 지식을 단기간에 체계적으로 습득할 수 있게 하였고, 비전공자에게는 기본적인 운영체제의 동작 원리를 이해할 수 있는 안내서라고 한다. 운영체제의 큰 틀을 잡아주기에는 부족함 없는 책이지만, 깊게 알기 위해서는 추가적인 공부가 필요하다는 뜻으로 이해했다. 책 초반부를 읽을 때는 비전공자를 위한 교양 서적으로 느껴졌다. 운영체제를 이미 한번 배워서 그런지 다른 책과 다르게 술술 읽혀졌다. 책 내용의 ..

가상메모리 : 보조 메모리를 캐시로 이용하는 것. - 당장 수행할 부분만 메모리에 올려놓는 방식으로, 일부는 물리 메모리에 적재하고 나머지는 디스크 스왑 영역에 적재한다. 이를 요구 페이징 방식이라고 한다. - 다수의 프로그램을 동시에 수행할 때 지역성의 원칙을 적용하여 메모리를 효과적으로 공유한다. - 메인 메모리보다 큰 프로그램을 사용하게 해준다. - 가상 주소를 실제 주소(physical address)로 재배치하는 기능을 제공한다. => 가상 메모리 주소는 가상 페이지 번호와 페이지 offset으로 이루어져 있다. => 가상 페이지 번호는 physical page의 번호로 변환된다. => 페이지 offset은 페이지의 크기를 결정한다. - 이 기능을 주소 바인딩이라고 하며, 바인딩 시점에 따라 3..

수학을 포기한 사람이 수포자라면 나는 컴구포자(?)였다고 할 수 있다. 대학교 2학년때 컴퓨터 구조 수업을 들을 때 내 이해력의 한계를 처음으로 느꼈고, 처음 보는 회로도와 계산문제에 백기를 들었다. 그래서 그때는 이해를 포기하고 무조건 암기만 했었던 걸로 기억한다. 2년 후 컴퓨터 구조 책을 다시 펼쳐 보게 된 계기는 취업 준비 때문이 아니었다. 내가 엔지니어 파트로 갈 게 아니면 회로나 어셈블리는 취업 준비 과정에서 거의 쓸 일이 없겠지만, 전공 과정에서 유일하게 항복(???)했던 분야였기도 했고 이대로 넘어가면 나중에 어떻게든 발목을 잡을 것 같았다. 운영체제, 클라우드 컴퓨팅 등에서 기반 과목이기 때문이었다. 그래서 예전에 수업에서 교재로 쓰였던 '컴퓨터 구조 및 설계'를 선택해 읽기 시작했다. ..
CPU Burst 사용자 프로그램이 CPU를 직접 가지고 명령을 수행하는 것. - 계산 위주 프로그램같이 CPU Burst가 IO Burst보다 길 경우 CPU Bound Process라고 한다. - CPU Burst가 균일하지 않은 프로세스를 위해 스케줄링이 필요하다. => 보통 CPU Burst가 짧은 프로세스에게 우선적으로 CPU를 할당한다. I/O Burst I/O 요청이 발생해 커널에 의해 I/O 작업을 수행하는 것. - 대화형 프로그램같이 IO Burst가 CPU Burst보다 길 경우 IO Bound Process라고 한다. CPU 스케줄링 방식 - 비선점형 방식: CPU를 획득한 프로세스가 스스로 반납하기 전까지는 빼앗기지 않는 방식. - 선점형 방식: 강제로 CPU를 빼앗는 방식. - 디..

최근들어 컴퓨터구조와 운영체제를 집중적으로 공부하면서 인프라에 대해 잘 모르고 있었다는 사실을 깨닫게 되었다. 아무리 좋은 소프트웨어라도 하드웨어 위에서 동작하니까, 소프트웨어가 돌아갈 환경인 인프라에 대해 알고 싶어 일단은 가볍게 인프라 공부를 시작해보기로 했다. 인프라는 네트워크, OS, 데이터베이스 등 컴퓨터 공학 지식을 폭넓게 아우르는 분야이다. 게다가 클라우드 컴퓨팅의 등장으로 오래된 컴퓨터 공학 이론에서 배울 수 없는 것들이 끊임없이 등장하고 있다. 그래서 그만큼 공부할 양이 많아 보였는데, 다행히 도서관에서 상당히 얇은 책을 찾을 수 있었다. 이 책의 제목은 '인프라 엔지니어의 교과서'라는데, 총 191페이지로 정말 교과서인지 의심이 갈 정도의 두께였다. 하지만 LINE 창업 멤버인 저자의 ..

캐시 캐시는 메모리 접근의 지역성을 이용하는 장치이다. 프로세스가 캐시에 없는 워드를 요청하면 fault를 발생시켜서 해당 워드를 캐시로 가져오게 한다. 캐시는 메모리 장치 간의 속도차로 인한 병목 현상을 예방해 주는 장치인데, 예를 들어 CPU와 메인 메모리 간의 속도가 1,000,000배 차이난다면, 두 장치와 속도차가 1000배씩 차이나는 캐시를 중간에 하나 추가해주어 각 메모리 간의 속도차를 1000배씩 줄여준다. (예시) CPU (1,000,000) --- Main Memory (1) => CPU는 1초에 1,000,000개의 데이터 교환이 가능한데 Main Memory는 1개만 가능하다. => 그렇게 되면 CPU에서 메인 메모리에 1,000,000개의 데이터를 보내는 데 1,000,000초가 ..