전체 글 258

22.08.11 소프트웨어 버전 관리 규칙

버전 번호는 다음과 같이 정한다. (깃 창업자가 제시) 1.0.8 Major, Minor, Patch 규칙 1. 각 번호의 수는 항상 증가해야 한다. 각각 자연수이고 Major 는 0이 되어서는 안된다. 2. 특정 버전으로 패키지를 배포하면 그 버전의 내용은 절대 변경되어서는 안된다. 3. 변경할 내용이 있다면 반드시 새로운 버전으로 배포해야 한다. 4. Major 버전이 변경될 때, Minor, Patch 는 0으로 초기화되고, 5. Minor 버전이 변경될 때, Patch 는 0으로 초기화된다. Major 버전 증가 다 바뀜, 거의 리뉴얼 수준 하위 버전과 호환되지 않는 변화가 생겼을 때 Minor 버전 증가 기능 추가 하위 버전과 호환이 되면서, 새로운 기능이 추가될 때 기존의 기능이 변경되거나 사..

22.08.08 IPS, WAF, FW이란?

IPS Instruction Protection System 침입 방지 시스템 네트워크 3~7계층에서 IPS 가 가지고 있는 취약점 패턴에 대해서만 탐지 및 차단 WAF Web Application Firewall 웹 방화벽 웹 서비스를 하는 모든 웹서버에 대한 침해사고 대응할 수 있다. 웹 어플리케이션 방화벽 OSI 7계층(Application Level)에서 HTTP 80프로토콜을 베이스로 하는 취약점 공격만 탐지 및 차단 FW Firewall 침입 차단 시스템 OSI 3계층(Network level)에서 IP와 Port 만 제어함으로써 인가된 사용자에 대해서만 전산시스템에 접근 허용 라우팅 모드에서 NAT 기능 제공

Network 2022.08.11

22.08.10 bcrypt 와 sha

SHA 알고리즘과 bcrypt 는 어떤 차이점이 있는지? SHA 알고리즘과 bcrypt 는 모두 해시 알고리즘이지만 두 알고리즘이 설계된 목적은 다르다. SHA 알고리즘은 메세지 송수신 시 무결성 검사를 빠르게 진행하기 위해 설계되었다. 그렇기 때문에 SHA 알고리즘을 사용했을 때 GPU를 이용한 연산 속도가 매우 빨라서 초당 수십억개의 해시를 계산할 수 있다. 하지만 이것이 무작위 암호 공격에는 더 취약하기 때문에 비밀번호를 암호화하는데는 권장하지 않는다고 한다. bcrypt 는 어떤 해시 알고리즘인가? bcrypt 는 비밀번호를 암호화하는데 최적화된 해시 알고리즘이다. bcrypt 를 구현하는데에는 SHA 해시 알고리즘을 사용하지 않고 "salt" 라고 불리는 랜덤 문자열을 섞어서 암호화하도록 구현했..

암호학 2022.08.11

22.08.07 Ray Tracing 광선 추적

3D 그래픽을 구현하기 위해서는 빛을 자연스럽게 표현하는 것이 중요하다. ray tracing 은 3D 그래픽 렌더링 기법으로 내 눈에서 빛이 출발한다고 가정하고 그 빛이 여러 물체들을 지나면서 흡수, 반사, 굴절, 형광의 물리 현상을 반복한다. 그리고 최종적으로 광원에 도달하면 그 광원으로부터 다시 내 눈으로 들어오는 경로를 추적하여 픽셀의 색상과 밝기를 계산한다. 빛의 광원에서 내 눈으로의 방향으로 계산하는 것이 아니라 내 눈에서 빛의 광원의 방향으로 역추적하는 방식인 것이 특징이다. 참고문서링크 CG적 관점 https://woo-dev.tistory.com/241 물리학적 관점 https://www.ksakosmos.com/post/%EB%A0%88%EC%9D%B4-%ED%8A%B8%EB%A0%88..

Graphic 2022.08.07

22.07.18 배타적 논리합과 합동식

논리 연산 중에서 XOR (exclusive OR) 는 입력으로 들어온 두 인자가 다를 경우, 참을 반환하는 연산이다. ⊕이라는 기호를 쓰기도 한다. x⊕x=0 잘 몰랐던 것이 아래와 같은 예시에서 5와 7을 바로 비교하는 것이라고 생각했는데 너무 무지했다...ㅎㅎ 5와 7 각각을 이진수로 변환하고 이진수의 각 자리에 대한 논리 연산을 진행해야했다!! 따라서 답은 2인 것이 이제 이해가 간당 논리연산과 모듈러 연산에 관한 자료 http://www.ktword.co.kr/test/view/view.php?m_temp1=5779 mod-2 Modulo-2 연산, 법 n 연산, n을 법으로 하는, 모듈러-2 덧셈, 모듈러-2 곱셈, 모듈로 2 www.ktword.co.kr

암호학 2022.07.18

22.07.16 암호화와 인코딩

인코딩이란 심볼을 코드로 바꾸는 것이다. 심볼이란 뜻을 가진 무언가 이고, 코드는 뜻을 갖지 않은 무언가 이며 즉, 의미를 기호로 바꾸는 과정이다. 암호화와 인코딩은 데이터를 다른 형태로 변환한다는 점에서 비슷하다고 볼 수 있다. 하지만 인코딩은 데이터의 기밀성을 고려하지 않으며, 누구나 디코딩하여 원문을 구할 수 있다. 그리고 그 목적도 데이터를 숨기기 위한 것이 아니라 심볼들을 컴퓨터가 이해할 수 있는 숫자 code 로 매핑하기 위해서 또는 압축하여 크기를 줄이기 위함이며 또한, 그 과정에서 정보의 손실이 없다. 인코딩은 심볼을 어떻게 코드화하는지 그리고 어떻게 되돌리는지 규칙만 있으면 쉽게 만들 수 있다. ASCII code 아스키코드: 특수문자들을 1 byte 의 정수로 인코딩한다. UTF-8, ..

암호학 2022.07.16

22.07.05 DAO, DTO, VO

DAO: Data Access Object 데이터베이스의 data 에 접근하기 위한 객체 database 에 접그하기 위한 로직, 비즈니스 로직을 분리하기 위해 사용 DTO: Data Transfer Object 계층 간 데이터 교환을 하기 위해 사용하는 객체 DTO sms fhwlrdmf rkwlwl dksgsms tnstngks epdlxj rorcp getter & setter VO: Value Object 사용 도중에 변경 불가능 오직 읽기만 가능하다. DTO 와 유사하지만 DTO 는 setter 를 가지고 있어서 값이 변할 수 있다.