본문 바로가기
728x90
반응형

컴퓨터공학42

컴퓨팅 심리학(Psychology) 이 글은 Crash Course의 Computer Science를 보고 정리한 글입니다. 유용하며 유능하고, 또한 즐길 만한 컴퓨터 시스템을 구축하려면, 컴퓨터와 인간의 강점과 약점 모두를 이해할 필요가 있다. 이러한 이유로, 훌륭한 시스템 설계자는 소프트웨어를 만들 때 사회적, 인지적, 행동 및 지각 원칙을 사용한다. 우리는 컴퓨터를 사용하면서 괴상망측하거나 진행을 방해하는 물리적인 또는 컴퓨터 인터페이스를 겪어 보았을 것이다. 이러한 인터페이스는 사용성(Usability;유용성)이 좋지 않은 것이다. 사용성(또는 유용성)은 소프트웨어처럼 인간이 만든 인공물이 효율적, 효과적으로 목표를 달성할 수 있는 정도를 말한다. 인간의 작업을 용이하게 하기 위해 시스템 설계자는 인간이 보거나 생각하는 방식과 어떻.. 2023. 1. 15.
로봇(Robot) 이 글은 Crash Course의 Computer Science를 보고 정리한 글입니다. 로봇은 일반적으로 컴퓨터 제어에 의한 가이드로 자동으로 일련의 작업을 수행하는 기계를 말한다. 차에 페인트를 칠하는 공업용 팔, 날아다니는 드론, 외과의를 돕는 뱀 같은 의료 장비뿐만 아니라 인간과 비슷한 로봇 조수 등이 있다. 대화형 가상 캐릭터에 "로봇"이라는 용어가 적용되는 경우도 있지만, 이런 경우 "봇(Bot)" 또는 "에이전트(Agent)"라고 부르는 것이 더 적절하다. 로봇이라는 용어는 실제 세계에 살고 행동하는 기계라는 물리적인 의미를 지니고 있기 때문이다. 로봇이라는 단어는 1920년 체코의 연극에서 인조인간 캐릭터를 나타내는 데 처음 사용되었다. 이 단어는 강제적인 노동자를 의미하는 슬라브어인 "r.. 2023. 1. 4.
자연어 처리 (NLP; Natural Language Process) 이 글은 Crash Course의 Computer Science를 보고 정리한 글입니다. 어떻게 하면 컴퓨터에게 언어를 이해하는 능력을 줄 수 있을까? 프로그래밍 언어는 언어의 정의를 확실히 충족시키는 것은 사실이지만, 작은 어휘를 사용하고 고도로 구조화된 규칙을 따르는 경향이 있다. 코드는 철자 및 구문 오류가 100% 없으면 컴파일되고 실행된다. 물론 이것은 자연어라고 부르는 인간의 언어와 완전히 다르다. 크고 다양한 어휘와 여러 가지 다른 의미를 지닌 단어, 사람마다 다른 억양으로 말할 수 있고, 모든 종류의 언어유희를 포함한다. 또한 사람들은 글을 쓰거나 말을 할 때 모호한 단어를 사용하거나, 세부사항을 빠뜨림으로써 모호하게 하고 잘못 발음하기도 하는 등 언어적인 실수를 한다. 그러나 대부분의 경.. 2022. 12. 24.
컴퓨터 비전(CV; Computer Vision) 이 글은 Crash Course의 Computer Science를 보고 정리한 글입니다. Vision은 가장 높은 대역폭 감각이며, 세계 정보의 대부분은 Vision으로 제공한다. 이러한 이유로, 컴퓨터 과학자들은 반 세기 동안 컴퓨터에게 시각을 부여하기 위해 노력해 왔으며, 컴퓨터 비전(Computer Vision)이라는 하위 분야를 탄생시켰다. 그 목표는 컴퓨터가 디지털 이미지 및 비디오로부터 높은 수준의 이해를 추출하는 능력을 주는 것이다. 디지털카메라 또는 스마트 폰을 사용하는 모든 사람들이 잘 알고 있듯이, 컴퓨터는 이미 놀라운 정확성과 세부 묘사로 이미지를 저장하는 데 능숙하다. 그러나 컴퓨터 비전 교수일 Fei-Fie Li는 최근에 "듣는 것은 귀 기울이는 것과는 같지 않듯, 사진을 찍는 것.. 2022. 12. 11.
기계 학습(ML; Machine Learning) 및 인공 지능(AI; Artificial intelligence) 이 글은 Crash Course의 Computer Science를 보고 정리한 글입니다. 기본적으로 컴퓨터는 방대한 양의 데이터를 저장하고 정리하며, 가져오고 처리한다. 이는 수백만 개의 아이템을 판매하는 웹 사이트의 전자상거래나 의사가 신속하게 접근할 수 있는 수십억 건의 건강 기록 저장과 같은 작업에 이상적이다. 그러나 우리가 컴퓨터를 단지 데이터를 가져와서 표시하는 데에만 사용하지 않고 데이터에 관한 결정을 내릴 수 있게 한다면 어떨까? 이것이 기계 학습의 본질이다. 컴퓨터에게 데이터로부터 배울 수 있는 능력을 주고 그에 대한 예측 및 결정을 내릴 수 있는 알고리즘을 가진 컴퓨터 프로그램은 극도록 유용해서 다음과 같은 질문에 대답할 수 있다. 이 이메일은 스팸인가? 사람의 심장에 부정맥이 있는가? .. 2022. 11. 27.
암호화(Cryptography) 이 글은 Crash Course의 Computer Science를 보고 정리한 글입니다. 완벽한 100% 보안 컴퓨터 시스템은 존재하지 않는다. 항상 버그가 존재하고 그것을 아는 보안 전문가가 있다. 따라서 시스템 설계자는 다양한 보안 메커니즘으로 공격자를 좌절시키는 방위전략(Defense in Depth)을 사용한다. 여기서는 암호화(Cryptography)에 대해서 알아보겠다. Cryptography는 'crypto'와 'graphy'로부터 생겨났는데, 대략 번역하면 "비밀을 쓰는 것"이다. 정보를 비밀로 만들기 위해 평범한 텍스트를 암호문으로 변환하는 암호를 사용한다. 암호를 해독할 수 있는 키가 없으면 암호문은 쓸모없는 횡설수설이 되어버린다. 텍스트를 비밀로 만드는 과정은 "암호화(Encrypti.. 2022. 11. 20.
해커 및 사이버 공격 이 글은 Crash Course의 Computer Science를 보고 정리한 글입니다. 해커들은 그들의 기술적인 지식으로 컴퓨터 시스템에 침입한다. 모든 해커가 나쁜 것은 아니다. 버그를 찾고 시스템의 안정성과 탄력성을 높이기 위해 소프트웨어의 보안 허점을 폐쇄하려는 해커도 있다. 이러한 해커들은 종종 보안 평가를 수행하기 위해 기업 및 정부 기관에 고용된다. 이러한 좋은 해커들은 White Hat이라고 불린다. 한편으론 Black Hat, 악의적인 해커들이 컴퓨터 취약점과 데이터를 도용하고 악용하며 판매한다. 해커의 동기도 매우 다르다. 오락과 호기심으로 행하는 일부 해킹은, 사이버 범죄자가 주로 금전적 이득을 위해 해킹하는 경우이다. 그리고 사회적 또는 정치적 목표를 촉진시키는 기술을 사용하는 ha.. 2022. 11. 13.
사이버 보안 이 글은 Crash Course의 Computer Science를 보고 정리한 글입니다. 사이버 보안의 범위는 컴퓨팅 기능만큼 빠른 속도로 진화했다. 일반적으로 사이버 보안을 컴퓨터 시스템 및 데이터의 기밀성, 무결성 및 가용성을 위협으로부터 보호하기 위한 일련의 기법으로 생각할 수 있다. 이 세 가지 목표를 풀어보면 기밀성 또는 비밀성이란 권한이 부여된 사용자만이 컴퓨터 시스템 및 데이터를 읽고 접근할 권리를 가진다. 해커가 사람들의 신용 카드 정보를 공개하는 데이터 유출은 기밀성에 대한 공격이다. 무결성이란 승인된 사람만이 데이터와 시스템을 사용하거나 수정할 수 있는 것이다. 패스워드를 알아내서 사용자인 것처럼 가장하여 전자 메일을 사용하거나 사용자 정보를 수정하는 것은 무결성 공격이다. 가용성은 권.. 2022. 11. 6.
월드 와이드 웹( WWW ; World Wide Web) 이 글은 Crash Course의 Computer Science를 보고 정리한 글입니다. 월드 와이드 웹은 일상에서 인터넷과 같은 의미로 사용하지만, www는 인터넷과는 다르다. World Wide Web은 인터넷 상단에서 Skype, Minecraft, Instagram과 동일한 방식으로 실행된다. 인터넷은 이러한 모든 다른 응용 프로그램에 대한 데이터를 전달하는 기본 배관(Pipeline)의 역할을 한다. WWW는 단지 세계에서 가장 큰 프로그램으로, 전 세계 수 백만 대의 서버에서 실행되는 거대한 분산 응용 프로그램으로 웹 브라우저라는 특수 프로그램을 사용하여 액세스 할 수 있다. WWW 또는 Web의 기본 빌딩 블록은 단일 페이지이다. 이 페이지는 다른 페이지에 대한 링크를 포함할 수 있는 콘텐츠.. 2022. 10. 30.
컴퓨터 네트워크 이 글은 Crash Course의 Computer Science를 보고 정리한 글입니다. 첫 번째 컴퓨터 네트워크는 1950년대와 1960년대에 나타났다. 일반적으로 회사 또는 연구실과 같은 조직 내에서 다른 사람들 또는 컴퓨터 사이의 정보 교환을 용이하게 하기 위해서 사용되었다. 컴퓨터 네트워크의 첫 번째 이점은 펀치카드 또는 자기 테이프의 릴 더미를 걷어서 다른 곳으로 옮기는 것보다 빠르고 신뢰할 수 있다는 점이다. 이러한 점 때문에 나중에 스니커넷(SneakerNet)이라고 별명 지어졌다. 두 번째 이점은 물리적 자원을 공유할 수 있는 능력이다. 예를 들어, 각 컴퓨터가 자체 프린터를 갖는 대신, 모두가 네트워크에 연결된 하나의 프린터를 공유할 수 있다. 초기 네트워크에서도 일반적으로 크고 공유된 .. 2022. 10. 9.
3D 그래픽 3D 그래픽에서 점들은 3개의 좌표를 가진다. X, Y, Z. 물론 2D인 컴퓨터 화면에서 X, Y, Z 좌표들은 존재하지 않는다. 그래서 그래픽 알고리즘들은 3차원 자표를 2차원 평면에 "평평하게" 만들 책임이 있다. 이 과정을 3차원 투영(3D Projection)이라고 한다. 모든 점들이 3차원에서 2차원으로 변환되며, 일반적인 2D 선 그리기 기능으로 점들은 연결한다. 말 그대로 이것을 와이어 프레임 렌더링(WireFrame Rendering)이라고 한다. 만약 젓가락으로 사각형(큐브)을 만들고 그것에 손전등을 비춘다면, 벽에 생긴 그림자(투영도)는 평면이다. 이때, 큐브를 회전시키면, 이 그림자가 평면 투영일지라도, 우리들은 그것이 3차원의 물체라는 것을 알 수 있다. 3D투영에는 여러 가지 유.. 2022. 10. 2.
그래픽 유저 인터페이스(GUI) 1984년 Apple의 매킨토시는 일반 컴퓨터 중 그래픽 사용자 인터페이스로 구입할 수 있는 첫 번째 컴퓨터였다. 또한 마우스와 상호 작용할 수 있다. 이는 그 시대의 다른 모든 개인용 컴퓨터에 있는 명령 라인 인터페이스에서 급진적인 발전이었다. 입력할 명령을 기억하거나 추측하는 대신에, 그래픽 사용자 인터페이스는 어떤 가능한 기능이 있는지 보여준다. 사용자는 단지 하고 싶은 무언가를 찾기 위해 화면 주위를 둘러보기만 하면 됐다. 이것이 포인트 앤 클릭(Point&Click) 인터페이스이다. 이렇게 컴퓨터가 직관적이게 되면서 누구든지 모든 것을 혼자서 알아낼 수 있게 되었다. 단언컨대, 현대 GUI의 진정한 조상은 Douglas Engelbart였다. 제2차 세계 대전 중 Engelbart가 필리핀에서 .. 2022. 9. 24.
728x90
반응형