분류 전체보기
-
SourceTree 설치방법 및 용어저장소 2016. 7. 8. 17:41
공통1. https://www.sourcetreeapp.com/ 에서 SourceTree 다운로드 후 실행2. 실행 도중 Atlassian의 계정이 없을 경우, Atlassian 생성3. 가입한 계정 또는 기존 존재하는 계정으로 이메일 인증4. Remotes 부분 건너뛰기5. SSH 키 불러오기 아니요 선택Windows6. 컴퓨터에 git이 설치되어 있지 않을 경우 ( SourceTree가 git을 찾지 못할 경우) git 설치에 대한 4개의 선택지 존재단일 내장 Source Tree용 Git 설치7. Mercurial이 설치되어 있지 않을 경우 Mercurial설치에 대한 4개의 선택지 존재첫 번째 선택8. 설치 완료 10. 복제 / 생성 아이콘 클릭 후, 소스 경로에 clone받을 git 주소 입력1..
-
[Django] orm언어/파이썬 & 장고 2016. 7. 8. 17:27
장고에서 제공하는 모델을 사용하기 위해선 from 앱이름.models import 모델명, 모델명1과 같이 선언해야 합니다.먼저 django orm 사용에서 복잡한 쿼리에 대해 적합하지 않습니다. 예를 들어, 두 테이블 간 join을 하기 위해선 foriegn key가 잡혀 있어야만 join이 가능한 상태입니다. 복잡한 쿼리의 같은 경우 orm을 지양하는 것이 좋습니다.또한 여기서는 restframework도 같이 설명하고 있기 때문에 레퍼런스를 보고 싶은 분은 아래 링크를 확인해 주시기 바랍니다.http://www.django-rest-framework.org/http://www.django-rest-framework.org/api-guide/serializers/SelectGet단일 행 결과를 반환하..
-
정규 표현식공부 2016. 7. 7. 16:44
정규 표현식이란?정규표현식의 사전적인 의미로는 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어입니다. 주로 Programming Language나 Text Editor 등 에서 문자열의 검색과 치환을 위한 용도로 쓰이고 있습니다. 입력한 문자열에서 특정한 조건을 표현할 경우 일반적인 조건문으로는 다소 복잡할 수도 있지만, 정규표현식을 이용하면 매우 간단하게 표현 할 수 있습니다. 하지만 코드가 간단한 만큼 가독성이 떨어져서 표현식을 숙지하지 않으면 이해하기 힘들다는 문제점이 있습니다.정규 표현식 방법정규표현식은 표준인 POSIX의 정규표현식과 POSIX 정규표현식에서 확장된 Perl방식의 PCRE가 대표적이며, 이외에도 수많은 정규표현식이 존재하며 정규표현식 간에는 약간의 차이점이 있으..
-
IDS와 IPS공부 2016. 7. 7. 14:49
IDS(Intrusion Detection System)IDS는 컴퓨터나 전산망의 비정상적인 사용이나 오남용과 같은 잠재적인 침입 시도 등을 실시간으로 탐지 하기 위한 시스템입니다. IDS는 컴퓨터 시스템에서 발생하는 서비스 거부 공격 등과 같은 네트워크 공격에 대비하여 기밀성, 무결성, 가용성 등을 제공 하기 위해 만들어진 시스템입니다. 공격자는 특별한 목적없이 공격을 수행할 수 있고, 컴퓨터의 사용자가 인지 하지 못한 상태에서 공격에 가담하고 있을 수 있습니다. 네트워크 규모의 확대와 정보시스템들의 통합은 막대한 양의 시스템 로그 및 감사(Audit)자료를 발생시키기 때문에 관리자에게 정형화 된 형태로 필요한 정보만 선택 하여 수용할 수 있어야 합니다. 이 역할을 하는 것이 바로 IDS입니다.IPS(..
-
네트워크 가상화공부 2016. 7. 7. 14:49
네트워크 관리자에게는 며칠, 길게는 몇 주가 걸릴 수 있는 환경 설정 요청들이 마구 쏟아진다. 다행히 네트워크 민첩성을 높여줄 수 있는 여러 가지 방안들이 나오고 있는데, 그 중에서 네트워크 가상화(Network Virtualization), NFV(Network Functions Virtualization, 네트워크 기능 가상화), 그리고 SDN(Software Defined Networking, 소프트웨어 정의 네트워킹(SDN)이 가장 두드러진다.난해한 용어들은 보기만 해도 머리가 지끈거리겠지만 이 접근 방법들은 네트워크 이동성이라는 큰 문제에 있어 각기 서로 다른 부분집합을 해결하기 위한 것이다. 네트워크 가상화와 NFV, SDN이 어떻게 다르고, 각각이 어떻게 프로그래밍 가능한 네트워크를 향한 길..
-
SQL Injection보안 & 보안 2016. 7. 6. 17:24
SQL Injection개요SQL 인젝션 (SQL 삽입, SQL 주입으로도 불린다) 은 코드 인젝션의 한 기법으로 클라이언트의 입력값을 조작하여 서버의 데이터베이스를 공격할 수 있는 공격방식을 말한다. 주로 사용자가 입력한 데이터를 제대로 필터링, 이스케이핑하지 못했을 경우에 발생한다. 공격이 쉬운데 비해 파괴력이 어마어마 하기 때문에 시큐어 코딩을 하는 개발자라면 가장 먼저 배우게 되는 내용이다. 이러한 injection 계열의 취약점들은 테스트를 통해 발견하기는 힘들지만 스캐닝 툴이나 코드 검증절차를 거치면 보통 쉽게 발견되기 때문에 탐지하기는 쉬운 편이다. 보안회사 Imperva가 2012년에 발표한 보고서에 따르면 월 평균 4회 가량의 SQL 인젝션 공격이 일어난다고 한다. OWASP에서도 수년동..
-
SHA보안 & 보안 2016. 7. 6. 17:22
SHA란?SHA(Secure Hash Algorithm, 안전한 해시 알고리즘) 함수들은 서로 관련된 암호학적 해시 함수들의 모음이다. 이들 함수는 미국 국가안보국(NSA)이 1993년에 처음으로 설계했으며 미국 국가 표준으로 지정되었다. SHA 함수군에 속하는 최초의 함수는 공식적으로 SHA라고 불리지만, 나중에 설계된 함수들과 구별하기 위하여 SHA-0이라고도 불린다. 2년 후 SHA-0의 변형인 SHA-1이 발표되었으며, 그 후에 4종류의 변형, 즉 SHA-224, SHA-256, SHA-384, SHA-512가 더 발표되었다. 이들을 통칭해서 SHA-2라고 하기도 한다.SHA-1은 SHA 함수들 중 가장 많이 쓰이며, TLS, SSL, PGP, SSH, IPSec 등 많은 보안 프로토콜과 프로그램..
-
[DB] DB Index 란?DB 2016. 7. 6. 16:06
Index란?테이블에 저장된 데이터를 빠르게 조회하기 위한 데이터베이스 객체 대개 B-Tree, B+Tree구조를 가짐Index는 논리적/물리적으로 테이블과 독립적임Index를 왜 사용할까?SQL서버에서 테이블을 만들고 데이터를 추가, 수정, 삭제 할 때 데이터의 레코드는 내부적으로 아무런 순서 없이 저장된다. 이때 데이터 저장영역을 Heap이라고 한다. Heap에서는 인덱스가 없는 테이블의 데이터를 찾을 때 무조건 전체 데이터 페이지의 처음 레코드부터 끝 페이지의 마지막 레코드까지 다 읽어서 검색조건과 비교하게 된다. 이런 식의 데이터 검색방법을 테이블 스캔(table scan) 또는 풀 스캔(full scan)이라고 한다. 이럴 경우 양이 많은 테이블에서 일부분의 데이터만 불러 올 때 풀 스캔을 하면..
-
파이썬이란?언어/파이썬 & 장고 2016. 7. 6. 15:07
파이썬이란?파이썬이란 1990년 암스테르담의 귀도 반 로섬(Guido Van Rossum)에 의해 만들어진 인터프리터 언어이다. 귀도는 이 파이썬이라는 이름을 본인이 좋아하는 "Monty Python's Flying Circus"라는 코미디 쇼에서 따왔다고 한다. 파이썬(Python)의 사전적인 뜻은 고대 신화 속의 파르나수스(Parnassus) 산의 동굴에 살던 큰 뱀으로서, 아폴로가 델파이에서 파이썬을 퇴치했다는 이야기가 전해지고 있다. 대부분의 파이썬 책 표지와 아이콘이 뱀 모양으로 그려져 있는 이유가 여기에 있다.현재 파이썬은 국내에서는 많이 알려져 있지 않지만 외국에서는 학습의 목적뿐만 아니라 실용적인 부분에서도 많이 사용되고 있는데 그 대표적인 예는 바로 구글(Google) 이다. 구글에서 만..
-
인터프리터와 컴파일러공부 2016. 7. 6. 15:06
인터프리터란?컴파일러와는 다른 방식으로 코드를 기계어로 번역해 주는 프로그램. 스크립트 언어의 사실상 전부가 인터프리터 방식이고 각종 DSL(도메인 특화 언어)의 해석 엔진도 인터프리터로 구현된다. 코드를 한 줄씩 번역하는 방식으로 기계어 번역을 진행하기 때문에 실행 속도는 컴파일 언어보다는 느리다. 그러나 요즘의 인터프리터는 번역 결과를 캐싱하거나 JIT를 사용하는 등의 방법으로 실행 속도를 컴파일 언어에 상당히 근접한 수준으로 따라잡긴 했다. (그래도 컴파일 언어보단 느림)여기까지 읽었다면 그 느린 것을 왜 쓰느냐는 의문에 도달하겠지만, 인터프리터 언어는 프로그램 수정이 간단하다는 장점이 있다. 컴파일러는 소스 코드를 번역해서 실행 파일을 만들기 때문에 프로그램에 수정 사항이 발생하면 소스코드를 수정..