본문 바로가기

분류 전체보기

(125)
[CS BASIC] 암호(cipher), 암호화(encipher), 대칭키(Symmetric Key), 비대칭 키(Asymmetric Key) 개요 오늘은 서로 다른 두 컴퓨터 시스템 사이에서 데이터를 주고 받을 때 사용할 수 있는 암호화 기술과 암호에 대해 살펴보도록 하겠습니다. 암호(暗號 cipher, cypher) 란? 암호(暗號 cipher, cypher)는 정보를 이해할 수 없도록 암호화 하거나 다시 해독하기 위한 일련의 단계를 정의한 알고리즘을 말합니다. 코드를 통한 인코딩과 암호(cipher)를 통한 암호화(encipher)는 둘다 본래 뜻이 알 수 없게 한다는 점에서 같은 의미로 볼 수 있습니다. 그러나 암호학, 특히 비밀을 유지하기 위한 고전적인 암호학 관점에서는 두 개념을 서로 다르게 구분합니다. 코드는 일반적으로 여러 코드를 모아놓은 코드 사전을 통해 단어나 문장을 대체한다. 예를 들어 "UQJHSE"라는 코드는 "다음 장소..
[CS BASIC] 콘텐츠 보안 기술과, 기업 보안 전략 개요 오늘은 콘텐츠 보안 기술과 기업 보안 전략에 대해서 알아보도록 하겠습니다. 웹브라우저를 통해 탐색할 수 있는 인터넷 공간에서 우리는 다양한 정보를 얻을 수 있습니다. 그리고 이러한 정보는 때로는 무단으로 복제 및 도용되어 사용되기도 하는데요. 그중에서도 특히 기업의 영업 비밀이나 혹은 저작권자에 의해 창작된 게시글 또는 저작물에 대해서는 함부로 복제 및 도용되는 것만으로도 당사자 및 기업에 큰 피해를 줄 수 있습니다. 따라서, 이러한 정보의 무단 복제 및 도용을 막고 사용을 허가한 사용자에게 제한적으로 편집 권한을 주는 등 정보를 보호하기 위해 다양한 콘텐츠 보안 기술과 기업 보안 전략이 설계되었습니다. 콘텐츠 유출 방지 솔루션 유형 설명 보안 USB - 정보 유출방지 등 보안 기능을 갖춘 USB ..
[CS BASIC] 피싱(phishing), 시스템 보안 공격 그리고 네트워크 보안 솔루션 개요 오늘은 피싱(phishing), 시스템 보안 공격 그리고 네트워크 보안 솔루션에 대해서 알아보도록 하겠습니다. 인터넷(Internet)에는 수많은 정보가 존재하고, 다수의 사용자는 이러한 정보를 찾기 위해 웹 브라우저를 통해서 간편하게 정보를 획득할 수 있습니다. 하지만, 인터넷에 올라갈 컨텐츠를 제공하는 공급자 중에는 악의적인 목적을 가지고 다른 회사나 단체를 모방하여 사용자로부터 부당하게 정보를 탈취하는 범죄행위를 하기도 합니다. 그리고 이렇게 악의적인 목적을 가지고 다양한 디지털 매체를 통하여 기밀을 필요로 하는 정보를 취득하는 행위를 피싱(phishing)이라고 합니다. 피싱(phishing)이란? 피싱(phishing)은 전자우편 또는 메신저를 사용해서 신뢰할 수 있는 사람 또는 기업이 보..
[CS BASIC] 정보 보안(InfoSec)과 해킹(Security Hacking) 개요 오늘은 정보 보안(InfoSec)과 해킹(Security Hacking), 그리고 다양한 도구와 공격 기법에 대해서 알아보도록 하겠습니다. 오늘날 컴퓨터는 네트워크 케이블 또는 무선 공유기를 통해 언제 어디서나 상호간에 정보를 교환 받을 수 있습니다. 그리고 이러한 '연결(Connection)'은 기업에서 컴퓨터 시스템을 구축할 때 전체적인 구조를 설계하거나, 때로는 개발자가 하나의 컴퓨터로 여러 개의 컴퓨터를 관리하고자 할 때 유용하게 사용되는 접점, 즉 인터페이스(Interface)가 되어주기도 합니다. 따라서, 사용자는 업무의 효율성과 편의성이 증가하는 부수적인 효과도 얻기 때문에 컴퓨터 시스템에서 없어서는 안될 기술 중 하나라고 할 수 있습니다. 하지만, 해커(Hacker) 즉 뛰어난 프로그..
[CS BASIC] 익스트림 프로그래밍(XP, eXtreme Programming) 익스트림 프로그래밍(XP, eXtreme Programming)이란? 익스트림 프로그래밍(XP, eXtreme Programming) 란 소프트웨어 개발 방법론 중 하나로, 기존의 개발 방법론들이 가지고 있던 일부 한계를 극복하고 빠른 속도로 변화에 대응하기 위해 만들어졌습니다. 켄트 백 등이 제안한 소프트웨어 개발 방법으로, 비즈니스 상의 요구가 시시각각 변동이 심한 경우에 적합한 개발 방법입니다. XP는 애자일(Agile) 개발 프로세스의 한 가지로 분류되는 개발 프로세스입니다. 그렇기에 특히 작은 규모의 개발 팀에서 유연하고 빠르게 소프트웨어를 개발하고 유지보수하는 데 중점을 두고 있습니다. 익스트림 프로그래밍(XP, eXtreme Programming)의 특징 XP의 특징은 다음과 같습니다. 특징..
[CS BASIC] 사용자 요구 사항(User Requirements)과 사용자 인터페이스(User Interface) 개요 오늘은 소프트웨어 개발을 위해 사용자로부터 요구사항(User Requirements)을 도출하는 방법과 분석 절차, 그리고 사용자 인터페이스(UI, User Interface)의 설계 과정에 대해서 알아보도록 하겠습니다. 개인 또는 기업과 같은 고객이 비즈니스 목적을 위해 개발자 또는 IT 회사에 프로그램을 만들어줄 것을 의뢰할 수 있습니다. 이때, 고객으로부터 어떤 프로그램을 제작하길 원하는지 니즈를 반영하고 이에 맞는 현실적은 개발 계획을 수립하는 것은 당연한 과정일 것입니다. 하지만, 고객으로부터 어떤 요청을 받았는지 체계적으로 기록해두지 않으면 향후 개발 과정에서 예기치 못한 문제가 생겼거나, 상황에 따라서는 요청한 내용을 고객과 협의하여 정정해야할 수도 있을 것입니다. 이러한 상황에 가장 ..
[CS BASIC] 소프트웨어 테스트, 분석 도구, 소프트웨어 재공학(Software Testing, Analysis Tools And Software Reengineering) 개요 오늘은 소프트웨어의 테스트 기법과 원리 그리고 이에 활용되는 다양한 분석 도구와 소프트웨어 재공학(Software Reengineering)에 대해서 알아보도록 하겠습니다. 지난 포스팅에서는 소프트웨어의 개발과 설계 그리고 실제 개발에서 활용되는 다양한 개발 방법론 등에 대해서 살펴 보았는데요. 오늘은 소프트웨어 개발을 위해 열심히 설계하고 만드는 과정을 거쳐 어떤 테스트, 즉 검증 과정을 거쳐야하는지 알아보도록 하겠습니다. 제법 규모가 있는 소프트웨어 회사라면 사내에 별도로 테스트를 전문으로 하는 인력이 존재하기도 합니다. 만들어진 소프트웨어 대해서 꼼꼼히 검증 작업을 수행하고, 결함이나 놓친 부분은 없는 지 체크를 해주는 일을 QA(Quality Assurance)라고 하며, 소프트웨어 뿐만 아..
[CS BASIC] 개발 일정 관리 모델(Development Managing Model)과 다양한 개발 도구(Development Kit)들 개요 지난 포스팅에서는 소프트웨어를 잘 설계하기 위한 다양한 다이어그램, 모델링 기법을 중점으로 알아보았는데요. 오늘은 소프트웨어의 개발 일정 관리 모델(Development Managing Model)과 형상 관리(Configuration Management), 그리고 개발 방법론 그리고 다양한 개발 도구(Development Kit)에 대해서 알아보도록 하겠습니다. 소프트웨어 일정 관리 모델 일정 관리 모델 설명 주 공정법 (CPM, Critical Path Method) 여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정을 계산하는 기법 모든 자원 제약사항을 배제한 상태로 프로젝트의 시작과 끝을 나타내는 노드(Node)와 노드 간의 연결을 통해 공정을 계산하기 위한 액티비티(Activity) 표기법..