Basic/etc(33)
-
아키텍처, 프레임워크, 플랫폼.
아키텍처, 프레임워크, 플랫폼. 상당히 많이 헷갈려서 검색을 해보았습니다. [아키텍처: S/W 주요 설계 구조] S/W의 특징들을 결정짓는 주요 설계 구조이다. 즉, S/W의 구성 요소 및 이들간의 인터페이스, 동작 방식 등의 특징들을 결정짓는 모든 설계 구조를 말한다. 이는 S/W의 주요 특징을 결정짓고 개발에 미치는 영향도 매우 커서 가장 중요한 부분이라고 할 수 있다. [프레임워크: S/W 뼈대 구조] 프레임워크는 S/W가 개발될 수 있는 뼈대 구조이다. 지원 프로그램, 라이브러리, 언어, 다른 S/W 구성 요소들을 엮어 주는 역할을 한다. 그리고 플랫폼과 구분되는 점은 프로그램 개발을 위한 부분만을 갖기에 완전한 S/W 실행 환경이 되지 않는다. [플랫폼: S/W 실행 환경] 가장 일반적이면서도 ..
2016.11.09 -
빅엔디안과 리틀엔디안
빅엔디안과 리틀엔디안바이트 오더라하여 바이트의 정렬 순서를 이야기합니다.프로그래밍 하는 과정에서 많이 헷갈리기도 하는데요.리틀엔디안부터 알아보도록 하겠습니다. 리틀엔디안 (Little Endian)리틀엔디안은 주로 인텔 프로세스에서 사용하는 바이트오더 입니다.리틀이라는 말 처럼 메모리 시작 주소를 하위 바이트부터 기록한다는 뜻입니다. - 빅엔디안은 그럼 반대겠죠? 리틀 엔디안의 바이트 오더 기록 순서입니다.레지스터에 기록된 내용을 하위바이트부터 메모리에 넣는 것을 보실 수 있습니다. - 오른쪽 -> 왼쪽의 순서로 읽습니다. 리틀엔디안은 메모리에 저장된 값의 하위 바이트들만 사용할 때에는 별도의 계산이 필요 없다는 장점이 있습니다. - 앞의 두 바이트나 한 바이트를 떼어내면 바로 하위 16비트나 8비트를 ..
2016.11.09 -
객체 지향 프로그래밍
객체 지향 프로그래밍 (Object-Oriented Programming)일종의 프로그래밍 방법론으로 프로그램을 구성하는 함수와 변수를 묶어서 객체를 만들고 객체 단위로 프로그래밍 하기 위한 방법입니다. 객체 지향 프로그래밍의 장점- 모듈간의 독립성 증대 + 하나의 프로그램은 여러가지 기능으로 구성 -> 각각의 기능들은 모듈로 구현 + 독립성이 높을 수록 유지보수, 개발이 쉬워짐 + 객체 지향 프로그래밍에서는 모듈화의 단위가 객체 단위가 된다 + 독립적인 기능을 지원하는 객체를 구현하고 객체들을 모아서 프로그램을 개발하는 것이 객체 지향 프로그래밍의 방식 + 객체마다 고유의 기능이 정해져 있기 때문에 특정 객체에서 문제가 발생하면 그 객체만 수정하면 된다. + 객체의 구현이 변경되더라도 객체의 인터페이스..
2016.11.09 -
깊은 복사와 얕은 복사
깊은 복사와 얕은 복사객체는 다른 객체를 참조할 수 있는데 이럴 경우에 객체의 복사본을 핸들링 할 경우 깊은 복사인가, 얕은 복사인가에 따라 결과값이 달라질 수 있으니 주의해서 다루어야 합니다. 복사를 한다는 것은 기존 객체와 같은 값을 가진 새로운 객체로 만든다는 것입니다.객체들은 멤버를 가지고 있고 그 멤버들은 값일 수도 있고 참조 형식일 수도 있습니다.- 바로 이 객체들이 가진 값 형식과 참조 형식의 복제 방식에 따라 얕은 복사와 깊은 복사의 개념이 나누어지게 됩니다. 얕은 복사(Shallow Copy)얕은 복사는 객체가 가진 멤버들의 값을 새로운 객체로 복사하는데 만약 객체가 참조타입의 멤버를 가지고 있다면 참조값만 복사가 됩니다. 아래의 예제를 보면,, main의Person B = A;라는 구문..
2016.11.09 -
SHA 해싱
SHA 해싱SHA(Secure Hashing Algorithm)는 안전한 해시 알고리즘으로 암호학적 해시 함수들의 모음입니다. SHA-0을 시작으로 이후 변형된 SHA-1이 발표되었고, 이후 SHA-224, SHA-256, SHA-384, SHA-512가 더 발표되었습니다. SHA-256과 SHA-512는 각각 32비트, 64비트 워드를 사용하는 해시함수이며 몇몇 상수들이 다르지만 그 구조는 라운드의 수를 빼고는 같습니다.SHA-224와 SHA-384는 SHA-256과 SHA-512의 결과를 최종 해시값 길이에 맞춰 잘라낸 것입니다. 해시값을 얻어낼 때에는 원문의 각 비트들을 and, or, xor, rotr(회전) 등의 연산을 하며 해싱하게 되는데 원문에서 토시 하나라도 달라지게 되면 스노우볼 효과로 ..
2016.11.09 -
RSA 암호화
RSA 암호화RSA암호화는 공개키 암호화 시스템의 하나로, 암호화 뿐만 아니라 전자서명이 가능한 최초의 알고리즘입니다.RSA암호화는 비대칭 방식으로 암호화 하는 키와 복호화하는 키가 다른 암호화 방식입니다.소인수분해의 난해함을 이용한 암호화 방식으로 공개키만 가지고는 개인키를 알아낼 수 없도록 설계되어 있습니다. RSA 암호화 처리 방식RSA 암호화는 두 개의 키를 갖습니다.- 키 : 메시지를 열고 잠그는 상수 공개키와 개인키 두 가지를 사용하는데- 공개키 : 데이터를 암호화하는데 사용하는 키, 공개되어 있는 키- 개인키 : 암호화된 데이터를 풀어내는데 사용하는 키, 복호화 할 수 있는 키, 공개되어있지 않은 키라고 해서 다른말로 비밀키라고도 합니다.누구나 암호화 시킬 수 있지만 그것을 볼 수 있는 사람..
2016.11.09