ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 우아한테크캠프 Day14
    우아한테크캠프 2018. 7. 20. 01:06

    호스트와 서버란?

    호스트 : 물리적인 머신

    서버 : 물리적 머신 안에 있는 프로그램

    즉, 서로 다른 개념이다.



    SSH Tunneling

    터널을 통해 데이터를 주고받는다 해서 붙여진 이름, 방화벽에서 특정 포트가 막혀있을 경우 우회하는 방법으로 쓰임

    ※ SSH의 고유기능 : 데이터 암/복호화



    점프호스트(Jump host), 베스천호스트(Bastion host)

    침입 차단 소프트웨어가 설치되어 내부와 외부 네트워크 사이에서 일종의 게이트 역할을 수행하는 호스트



    Scale up 과 Scale out 개념 (추후 정리)



    공개키, 비밀키 개념 (추후 정리)



    클라우드

    기존의 레거시 코드 그대로 클라우드로 가져가면 오히려 성능이 더 나빠질 수 있다. 

    따라서 클라우드에 적합한 코딩방법으로 구현해야 한다 

    책 추천 : 클라우드 네이티브 자바





    Day14 학습 내용



    관계형 데이터베이스의 핵심

    1. 정규화 : 테이블을 쪼개는 것 

    2. Join : 테이블을 합치는 것 



    PK에 인덱스를 거는 이유 (Unique 인덱스 + Not null)

    1. Insert나 Update 시 PK에 중복 값이 있는지 검사를 해줌

    2. Join을 빨리하기 위해



    물리적 저장 방식의 종류 (대상 : 데이터)

    Clustered Index (인덱스를 의미하는 것이 아니라 하나의 자료구조다.)



    Non-Clustered Index



    Unique Index는 주소 부분에 PID 주소가 들어간다.

    Secondary Index는 주소 부분에 PK 주소가 들어간다. (PID 주소가 아님)




    트랜잭션 고립화 수준(Transaction Isolation Level)

    Level 0 (= Read Uncommitted)

    커밋되지 않은 데이터를 다른 트랜잭션에서 읽는 것이 가능


    Level 1 (= Read Committed)

    트랜잭션이 완료된 데이터만 읽는 것이 가능


    Level 2 (= Repeatable Read)

    반복해서 읽어도 같은 트랜잭션에서는 값이 똑같다.

    선행 트랜잭션이 읽은 데이터는 트랜잭션이 종료될 때까지, 후행 트랜잭션이 수정하거나 삭제하는 것이 불가능


    Level 3 (= Serializable Read)

    선행 트랜잭션이 읽은 데이터를 수정하거나 삭제하지 못할 뿐만 아니라, 새로운 레코드 삽입도 불가능



    ※ 용어 정리

    Dirty Read (= Uncommitted Dependency)

    수정 중인 데이터를 다른 트랜잭션에서 읽을 수 있는 것


    Non-Repeatable Read(= Inconsistent Analysis)

    한 트랜잭션 안에서 같은 쿼리를 두 번 이상 사용할 때 그 사이 다른 트랜잭션이 값을 수정 또는 삭제하여 

    두쿼리의 결과가 다른 것


    Phantom Read

    한 트랜잭션 안에서 일정 범위의 레코드들을 두 번 이상 읽을 때, 첫 번째 쿼리에서 없던 레코드가 두 번째 쿼리에서 나타나는 현상



    NoSQL

    1. CAP 이론

    C: Consistency A: Availability P: Partition Tolerence

    셋 모두 만족시키는 시스템은 구현할 수 없다. (트랜잭션의 일관성과 의미가 다소 다름)

    많은 NoSQL은 일관성(C)을 포기함


    2. Eventual Consistency

    미래의 언젠가 일관성이 보장되긴 하는데 그 시점은 모름




    호눅스에게 질문한 목록

    1. many to many 관계에서 매핑 테이블은 필수인가?

    필수다. (다음의 예를 보고 생각해 볼 것)

    ex. 유저는 다수의 아이템을 소지 가능

    한 아이템은 복수의 유저에 의해 소유됨

    소유한 아이템은 개별로 내구도(DURABILITY), 강화(ENCHANT)의 속성을 추가로 가짐


    ※ many to one 관계에서는 many 쪽에 foreign key를 둘 수 밖에 없다.



    2. cross join(카테시안 프로덕트)와 full outer join의 차이점 (추후 정리)


    3. clustered index와 non-clustered index 자료구조의 차이점 (추후 정리)


    4. 물리적 조인과 논리적 조인의 차이점 (추후 정리)




    참고

    http://bysql.net/index.php?document_srl=5062&mid=w201002





    '우아한테크캠프' 카테고리의 다른 글

    우아한테크캠프 Day17  (0) 2018.07.25
    우아한테크캠프 Day15  (0) 2018.07.23
    우아한테크캠프 Day13  (0) 2018.07.18
    우아한테크캠프 Day12  (0) 2018.07.17
    우아한테크캠프 Day11  (0) 2018.07.17

    댓글

Designed by Tistory.