분류 전체보기
-
스위치, 라우터, 허브 차이점공부/Network 2016. 11. 26. 19:17
리피터, 허브를 레이어 1장비, 브리지 스위치를 레이어 2장비, 라우터 L3스위치를 레이어 3 장비라고 합니다. L2 스위치는 그 하위 레이어 장비의 기능을 모두 포함하고 있으며 L3스위치는 L2스위치 기능을 모두 포함하고 있습니다. 따라서, 서로 대체 하여 쓸 수 있지만, 문제는 가격이 비싸다는 것입니다. 그래서 네트워크 규모에 따라 적절한 장비를 써야 합니다.리피터 상위계층에서 사용하는 MAC주소나 IP주소를 이해하지 못하고 단순히 전기적인 신호만 증폭시키는 역할을 합니다.전기적인 신호를 증폭시켜 먼거리 까지 도달 할 수 있도록 하는 장비전체 LAN에 접속할 수 있는 장비의 수 증가허브전기적인 신호를 증폭시켜 LAN의 전송거리를 연장시키고 여러대의 장비를 LAN에 접속할 수 있도록 합니다.UTP 케이..
-
OSI 7계층공부/Network 2016. 11. 26. 18:53
OSI 7계층이란?OSI 모형은 국제표준화기구에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것입니다.각 계층의 캡슐화와 디캡슐화OSI 7계층에서 데이터를 전송할 때, 각 층마다 인식할 수 있는 헤더를 붙여야 하는데 이러한 과정을 캡슐화라 합니다. 데이터를 전송하고 전송매체를 통해 전송된 후에 1계층부터 7계층까지 올라가게 되면서 헤더를 확인해야 하는데 이러한 과정을 디캡슐레이션이라고 합니다. 각 층마다 요청과 응답을 하며 상호작용하기 때문에 서버/클라이언트 관계라고 할 수 있습니다.OSI 7계층 계층 별 프로토콜과 기능OSI 7계층에서 PDU개념을 중요시하는데 PDU(Process Data Unit)란 각 계층에서의 전송되는 단위입니다.1계층에서 PDU가 비트라고 ..
-
[Python] Tip - 메타클래스로 서브클래스를 검증언어/파이썬 & 장고 2016. 11. 26. 17:48
메타클래스를 응용하는 가장 간단한 사례는 클래스를 올바르게 정의했는지 검증하는 것입니다. 복잡한 클래스 계층을 만들 때 스타일을 강제하거나 메서드를 오버라이드하도록 요구하거나 클래스 속성 사이에 철저한 관계를 두고 싶을 수도 있습니다. 메타클래스는 서브클래스가 정의될 때마다 검증 코드를 실행하는 신뢰할 만한 방법을 제공하므로 이럴 때 사용할 수 있습니다.보통 클래스 검증 코드는 클래스의 객체가 생성될 때 __init__ 메서드에서 실행됩니다. 메타클래스를 검증용으로 사용하면 오류를 더 빨리 일으킬 수 있습니다.서브클래스 검증용으로 메타클래스를 정의하는 방법을 알아보기에 앞서 메타클래스가 표준 객체에는 어떻게 동작하는지 이해해야 합니다. 메타클래스는 type을 상속하여 정의합니다. 메타클래스는 기본으로 자..
-
[Python] Tip - 지연 속성에는 __getattr__, __getattribute__, __setattr__을 사용언어/파이썬 & 장고 2016. 11. 26. 17:22
파이썬의 언어 후크를 이용하면 시스템들을 연계하는 범용 코드를 쉽게 만들 수 있습니다. 예를 들어 데이터베이스의 row를 파이썬 객체로 표현한다고 할 때, 데이터베이스에는 스키마 세트가 있습니다. 그러므로 로우에 대응하는 객체를 사용하는 코드는 데이터베이스 형태도 알아야 합니다. 하지만 파이썬에서는 객체와 데이터베이스를 연결하는 코드에서 로우의 스키마를 몰라도 됩니다. 코드를 범용으로 만들면 됩니다.사용하기에 앞서 정의부터 해야하는 일반 인스턴스 속성, @property 메서드, 디스크립터로는 이렇게 할 수 없습니다. 파이썬은 __getattr__이라는 특별한 메서드로 이런 동작을 가능하게 합니다. 클래스에 __getattr__ 메서드를 정의하면 객체의 인스턴스 딕셔너리에서 속성을 찾을 수 없을 때마다 ..
-
[Golang] Database/sql언어/Golang 2016. 11. 26. 16:27
PackageSQL 데이타베이스를 사용하기 위해서는 표준패키지 database/sql을 사용합니다. database/sql 패키지는 관계형 데이타베이스들에게 공통적으로 사용되는 인터페이스들을 제공하고 있습니다.database/sql 패키지는 여러 종류의 SQL 데이타베이스를 지원하는데, 각각의 데이타베이스 Driver와 함께 사용됩니다.MySQL: https://github.com/go-sql-driver/mysqlMSSQL: https://github.com/denisenkom/go-mssqldbOracle: https://github.com/rana/oraPostgres: https://github.com/lib/pqSQLite: https://github.com/mattn/go-sqlite3DB2:..
-
[Golang] Defer언어/Golang 2016. 11. 25. 17:45
defer문은 주변 함수가 반환될 때까지 함수의 실행을 연기시킵니다. 지연호출의 인수는 즉시 평가되지만 주변 함수가 반환 될 때까지 함수 호출이 실행되지 않습니다. 예시1package main import "fmt" func main() { defer fmt.Println("world") fmt.Println("hello") } // 결과 hello world예시2package main import ( _ "github.com/lib/pq" "database/sql" ) func main() { // sql.DB 객체 db 생성 db, err := sql.Open("mysql", "root:pwd@tcp(127.0.0.1:3306)/testdb") // db 차후에 닫기 defer db.Close() /..
-
[Linux] 프로세스 종료서버 2016. 11. 24. 09:54
아래와 같이 명령어를 입력하면 단일 프로세스가 종료됩니다.$ ps -ef | grep python admin 26127 1 45 11월23 ? 07:23:27 python3 test.py $ kill -9 26127 만약 같은 이름으로 실행 중인 프로세스들ㅇ을 종료하고 싶은 경우, 아래 명령어를 입력합니다.$ ps ax | grep uwsgi 15005 pts/4 S 0:00 /ve/path/bin/uwsgi --ini config.ini 15006 pts/4 S 0:00 /ve/path/bin/uwsgi --ini config.ini 15007 pts/4 S 0:00 /ve/path/bin/uwsgi --ini config.ini $ killall -s INT /ve/path/bin/uwsgi # 또는..
-
[DB] 클러스터DB 2016. 11. 18. 22:14
클러스터란?디스크로부터 데이터를 읽어오는 시간을 줄이기 위해서 조인이나 자주 사용되는 테이블의 데이터를 디스크의 같은 위치에 저장시키는 방법 입니다.클러스터의 장점그룹된 컬럼 데이터 행들이 같은 데이터 Block에 저장되기 때문에 디스크 I/O를 줄여 줍니다.클러스터된 테이블 사이에 조인이 발생할 경우 그 처리 시간이 단축 됩니다.클러스터 키 열을 공유하여 한번만 저장하므로 저장 영역의 사용을 줄입니다. 테이블 클러스터링의 특징클러스터는 데이터 조회 성능을 향상 시키지만 데이터 저장, 수정, 삭제 또는 한 테이블 전체 Scan의 성능을 감소 시킵니다 클러스터 하기 좋은 테이블주로 조회가 자주 발생하고 수정이 거의 발생하지 않는 테이블컬럼안의 많은 중복 데이터를 가지는 테이블자주 Join되는 테이블 클러스..
-
[DB] 무결성 제약조건DB 2016. 11. 18. 21:46
무결성 제약조건이란?테이블 생성 시에 Constraint(제약조건)를 사용해서 입력하는 자료에 대해서 제약, 즉 규칙을 정해줄 수 있습니다. 이때 정해진 제약에 따라서 데이터가 입력이 됩니다. 만약 제약에 배반된다면 자료 입력이 거부되면서 오류가 납니다.네이버 지식백과에서는 데이터 무결성에 대해서 다음과 같이 서술하고 있습니다. 무결성 : 데이터 및 네트워크 보안에 있어서 정보가 인가된 사람에 의해서만 접근이나 변경이 가능한 성질 데이터 무결성 : 데이터를 인가하지 않은 방법으로 변경할 수 없도록 보호하는 성질 쉽게 말해서, 권한이 부여된 계정이나 사람만이 접근 가능하고, 정확하고 완전한 데이터들이 저장되어 있는 상태라고 생각하면 됩니다. 여기서 제약조건은 이러한 데이터 무결성을 보장함으로써 이상한 데이..
-
[DB] 트랜잭션, REDO와 UNDO 개념DB 2016. 11. 18. 21:19
트랜잭션이란?데이터베이스 트랜잭션(Database Transaction)은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위입니다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미합니다.이론적으로 데이터베이스 시스템은 각각의 트랜잭션에 대해 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 영구성(Durability)을 보장합니다. 이 성질을 첫글자를 따 ACID라 부릅니다. 그러나, 실제로는 성능향상을 위해 이런 특성들이 종종 완화되곤 합니다. 다시말해서 트랜잭션은 데이터베이스 내에서 한꺼번에 수행되어야 할 일련의 연산들입니다. 간단하게 말해서 전부 성공하거나 전부 실패되거나 둘 중 ..