Computer Science/CS Basic
Authentication vs Authorization 차이
Authentication / Authorization 차이점 보통 우리가 '권한' 이라고 불리우는 것엔 인증(Authentication)과 인가/승인(Authorization) 두가지 단어가 존재하는데, 인증(Authentication) 과 인가/승인(Authorization)은 비슷해 보이지만 엄연한 차이가 존재한다. 인증(Authentication) : 본인이 누구인지 확인 (로그인) 인가/승인(Authorization) : 특정 리소스에 권한이 있는지 확인 (등급 권한) 인증 (Authentication) 인가 (Authorization) 기능 자격 증명 확인 권한 허가/거부 진행 방식 비밀번호, 생체인식, 일회용 핀 또는 앱 보안 팀에서 관리하는 설정 사용 사용자가 볼 수 있는가? 예 아니오 사..
함수형 프로그래밍(Functional Programming) 이란?
함수형 프로그래밍(Functional Programming) 프로그래밍 패러다임(Programming Paradigm) 프로그래밍 패러다임(Programming Paradigm)은 프로그래머에게 프로그래밍의 관점을 갖게 하고 코드를 어떻게 작성할 지 결정하는 역할을 한다. 새로운 프로그래밍 패러다임을 통해서는 새로운 방식으로 생각하는 법을 배우게 되고, 이를 바탕으로 코드를 작성하게 된다. 최근의 프로그래밍 패러다임은 크게 아래와 같이 구분할 수 있다. 명령형 프로그래밍: 무엇(What)을 할 것인지 나타내기보다 어떻게(How) 할 건지를 설명하는 방식 절차지향 프로그래밍: 수행되어야 할 순차적인 처리 과정을 포함하는 방식 (C, C++) 객체지향 프로그래밍: 객체들의 집합으로 프로그램의 상호작용을 표현..
일급 객체(first-class object) 란?
일급 객체 란? 보통 자바의 람다 표현식(Lambda Expression)을 배우다 보면 '일급 객체' 라는 단어를 접하게 되는데, 대체 무엇을 말하는 건지 와닿지 않을 것이다. '일급' 이란 뜻은 일급 시민 처럼 무슨 혜택을 받는 다는 뜻이 아니라, 사용할 때 다른 요소들과 아무런 차별이 없다는 것을 뜻한다. 그리고 보통 일급 객체를 아래 3가지 조건을 충족한 객체를 일컫는다. 모든 일급 객체는 변수나 데이터에 담을 수 있어야 한다. 모든 일급 객체는 함수의 파라미터로 전달 할 수 있어야 한다. 모든 일급 객체는 함수의 리턴값으로 사용 할수 있어야 한다. 일급 객체는 어떠한 특정 언어에 국한되는 문법 단어가 아니다. 프로그래밍 언어론의 개념으로서, 자바나 자바스크립트 외에 다양한 언어가 이 일급 객체 ..
클라우드 서비스의 종류(Iaas, Paas, Saas)
클라우드란? 클라우드는 인터넷을 통해서 언제 어디서든지 원하는 때 원하는 만큼의 IT리소스(컴퓨팅, 스토리지, 네트워크)를 손쉽게 사용할 수 있게 하는 서비스를 말한다. 즉, 내 컴퓨터 장비를 사용하지 않고 컴퓨터 장비를 구축해 놓은 데이터 센터(Data Center, 클라우드)에 있는 컴퓨터를 온라인을 통해 작업하는 것을 말한다(IDC, '인터넷 데이터 센터'(Internet Data Center)라고도 말한다.) 이렇게 되면 서버를 직접 구매할 때 고려해야할 전력, 위치, 서버 세팅, 확장성 등을 고민하지 않고 서비스 운영에만 집중할 수 있다. 이를 오프프레미스(off-premise) 방식이라고 한다. 반면에 온프레미스(on-premise) 방식은 데이터 센터를 직접 보유하고 있는 네이버, 카카오 같..
API란?
API란? API (API, Application Programming Interface) API는 “Application Programming Interface”의 준말이며 풀이 하자면, 둘 이상의 컴퓨터 프로그램이 서로 통신하는 방법이자 컴퓨터 사이에 있는 중계 계층을 의미한다. 예를 들어 A라는 컴퓨터가 요청을 하고 B라는 컴퓨터가 응답을 한다고 했을 때!!! 이때 어떻게 통신을 할것인지? 어떤 데이터를 주고 받을 것인지? 등에 대한 방법 (HTTP, HTTPS 프로토콜을 사용할지, GET, POST 등의 방식인지 등...)이 정의된 중계 계층인 것이다. 즉, "어떠한 방식으로 정보를 요청해야 하는지, 그리고 그러한 요청을 보냈을 때 어떠한 형식으로 무슨 데이터를 전달받을 수 있는지"에 대해 정리한..
데이터 포맷) XML
XML 이란? XML은 데이터를 저장하고 전달할 목적으로 만들어졌으며, 저장되는 데이터의 구조를 기술하기 위한 언어이다. XML은 EXtensible Markup Language의 약자로, 수많은 응용 분야에서 데이터를 저장하고 전달하는 중요한 역할을 맡고 있다. XML은 HTML과 매우 비슷한 문자 기반의 마크업 언어(text-based markup language)이며 이 언어는 사람과 기계가 동시에 읽기 편한 구조로 되어 있다. 그러나 XML은 HTML처럼 데이터를 보여주는 목적이 아닌, 데이터를 저장하고 전달할 목적으로만 만들어졌다. 또한, XML 태그는 HTML 태그처럼 미리 정의되어 있지 않고, 사용자가 직접 정의할 수 있다. XML 의 특징 1. XML은 다른 목적의 마크업 언어를 만드는 데..
아키텍처(Architecture)
개발 문서나 블로그에서 종종 보이는 아키텍처라는 용어를 자주 봤던거 같다. 하지만 뭔가...느낌? 만 알고 제대로 된 설명을 하라고 하면 못할거 같아서 이번 기회에 정확하게 개념을 정리하려고 작성하였다. 본문 시스템 아키텍처(system Architecture)는 시스템의 구조, 행위, 더 많은 뷰를 정의하는 개념적 모형이다. 시스템 목적을 달성하기 위해 시스템의 각 컴포넌트가 무엇이며 어떻게 상호작용하는지, 정보가 어떻게 교환되는지를 설명한다. - 위키백과 위의 말이 약간 어렵긴 하지만 구체적인 하는 일은 다음과 같다. 시스템 구성 및 동작 원리를 나타내고 있다. 시스템 구성 요소(부품)에 대해 설계 및 구현을 지원하는 수준으로 자세히 기술된다. (IEEE 1471 또는 TOGAF 등) 구성 요소 간의..