지극히 개인적인 공부 노트/토막 상식(Shorts) 5

[JavaScript] ES란?(Feat. ES6)

1. ES란? ES란 ECMAScript의 줄임말로써, Ecma International이 ECMA-262 기술 규격에 따라 정의하고 있는 표준화된 스크립트 프로그래밍 언어를 의미한다. 쉽게 말하면 자바스크립트(JavaScript)를 표준화하기 위해 만들어졌다고도 볼 수 있다. 역사적으로 보면 1996년 3월 넷스케이프에서 넷스케이프 네비게이터 2.0을 출시하며 자바스크립트를 지원하기 시작했고, 자바스크립트의 성공을 본 마이크로소프트가 이와 적당히 호환되는 J스크립트를 개발했다. 넷스케이프는 이렇게 생겨나는 스크립트 언어들의 표준화를 위하여 ECMA-262라는 이름의 기술 규격을 제출하고 ECMA 일반 회의에서 1997년 6월에 채택된 것이다. 즉, ES(ECMAScript)는 ECMA-262에 의해 표..

[UI/UX] UI/UX란?

1. UI란? UI는 'User Interface'의 줄임말로써, 흔히 사용자 인터페이스 디자인을 의미한다. 웹/앱 서비스 측면에서 보면 사용자가 서비스 안에서 마주 보는 대부분의 인터페이스 요소를 말한다. 서비스 내에 배치할 수 있는 여러 요소를 활용해 서비스의 특정한 기능을 구성하고, UX를 이끌어내는 역할을 하며, 특히 버튼, 아이콘, 폰트, 컬러, 레이아웃 등의 그래픽 요소를 활용한 인터페이스는 GUI(Graphic User Interface)라고도 한다. 2. UX란? UX는 'User eXperience'의 줄임말로써, 사용자 경험 디자인을 의미한다. 서비스 측면에서는 사용자의 관점에서 이루어지는 서비스에 대한 경험을 말한다. 즉, 사용자가 서비스를 이용함에 있어서 무엇을 필요로 하고, 무엇을..

[Flask] 'Flask'란?

1. 플라스크(Flask)란? 플라스크(Flask)란 파이썬을 기반으로 작성된 마이크로 웹 프레임워크(framework) 중 하나로, Werkzeug 툴킷과 Jinja2 템플릿 엔진에 기반을 둔다. 플라스크는 Docs를 읽으면 알 수 있지만, '단순한 업무는 단순해야 한다'라는 설계 원칙이 있다. 이런 원칙 덕분에 비교적 쉽게 이해하고 작성할 수 있다. 이런 측면 때문에 웹 개발 관련해서 가르칠 때도 많은 곳에서 플라스크를 가르치는 것 같다. 하지만 쉬운 만큼 단점도 있는데 그중 하나는 보안 부분에서 비교적 취약하다는 것이다. 플라스크와 그 안의 Jinja2 템플릿에도 당연히 보안을 위해 설계된 구조가 있지만, 때로는 오히려 그런 부분들이 보안 이슈를 일으키기도 한다는 것이다. 이제 막 공부하기 시작한 ..

[Web] '웹서버'란?

인터넷이 동작하는 원리에 필요한 컴퓨터는 단 2대. 정보를 요청하는 컴퓨터(웹클라이언트)와 요청에 응답, 정보를 제공하는 컴퓨터(웹서버)가 필요하다. 웹클라이언트(브라우저)의 종류가 여러가지가 있듯이, 웹서버 또한 엔진에 따라 여러가지가 있다. 대표적인 웹서버 소프트웨어에는 Apache, Nginx, IIS 등이 있다. 이 중 Apache는 웹서버 시장점유율이 가장 높고, 오픈소스인 소프트웨어이다. 이런 웹서버 프로그램을 직접 컴퓨터에 설치하고 운영해보고 싶다면 아래 글을 참고하자. https://opentutorials.org/course/3084/18892 웹서버 운영하기 - 생활코딩 웹서버 소개 --- 이번 시간에는 내 컴퓨터에 웹서버를 설치해서 누구나 내 컴퓨터에 있는 웹페이지를 볼 수 있도록 해..

[AI] '인공지능'이란?

AI(Artificial Intelligence). 인간의 지능으로 할 수 있는 모든 것을 컴퓨터가 할 수 있도록 하는 방법 및 기술. 현대에는 4차 산업혁명을 맞이하여 여러 분야에서 인공지능 요소를 도입하고, 그 분야의 문제 풀이에 활용하려는 시도가 매우 활발하게 이루어지고 있다. 대표적으로 머신러닝이 인공지능 기술 중 하나이다. 인공지능의 역사는 다음과 같다. 인공지능의 유형에는 약인공지능, 강인공지능, 슈퍼인공지능 등이 있고, 강인공지능과 슈퍼인공지능 사이에 특이점이 존재한다. 1. 약인공지능(ANI: Artificial Narrow Intelligence) - 많은 양의 데이터를 처리하여 특정 기능만 수행하는 인공지능 2. 강인공지능(AGI: Artificial General Intelligenc..