본문 바로가기

분류

인공지능 vs 머신러닝 인공지능은 대세다. 그런데 과연 인공지능은 현 시대의 작품일까? 1956년도에 다트머스 컨퍼런스에서 인공지능에 대해서 정의가 이뤄졌다. 신경망 이론 이라는 단어도 그때 등장을 했다. 왜 신경망 이론일까? 인공지능의 출발은 어쩌면 사람의 두뇌에서 시작했던거 같다. 사람의 두뇌에 보면 뉴런이란게 있으니 그 두뇌를 흉내내보려는 시작이다. 인간은 학습을 하고 그 학습 기반으로 다음의 것을 안다. 기계가 머신러닝-기계학습을 하고 그 학습을 기반으로 다음을 맞춘다면 인간의 뇌와 유사하다. 그래서 인공지능은 반세기가 흘러서야 우리에게 핫하게 다가왔다. 알파고라른 이름으로 알파고가 전부는 아니였다. 이미 체스로는 이미 컴퓨터가 딥블루라는 이름으로 20년전에 세계 체스 챔피언 가리 가스파로프를 꺽었다. 인공지능은 반세기.. 더보기
빅데이터의 실제적인 이야기 데이터가 많다고 해서 빅데이터라는 말로 만들어졌을 것이다. 데이터가 기존에는 필요한 정보들 위주로 저장이 되어서 사용되었다. 사용자 정보라고 하면 언제 태어났고, 어디 살고 있고, 취미가 무엇인지 정도 이것을 가지고, CRM이라고 고객 관리 데이터로 사용을 했다. 데이터베이스는 정형화된 틀 속에 값을 넣고, 그 값이 틀림이 없게 관리하는 것이 기존 데이터베이스의 역할이였을 것이다. 빅데이터는 그 사람의 정보뿐 아니라 그 사람의 행동까지도 기록한다로 생각하면 된다. 그 사람이 하는 행위도 다 기록에 남는다. 그 사람이 무엇을 샀고, 어디로 갔고, 무엇을 먹었는지 사실 과거에 불필요하다고 생각했던 데이터들 또는 데이터베이스에서 구지 관리하지 않았던 시계열(시계열은 시간축을 X로 하여 흘러가는 데이터들) 의 .. 더보기
DHCP는 편리하다. DHCP는 Dynamic하게 IP를 부여 받고, 제공하는 방식이다. IP를 구지 설정하지 않고, DHCP로 설정을 하게 되면 자동으로 IP를 부여 받게 된다. IP를 구지 몰라도 되고, 셋팅하지 않아도 되어 편리하다. IP는 고정IP가 있고, 동적IP가 있다. 고정IP는 일반적으로 컴퓨터나 서버에서 지정된 IP를 설정을 한다. 고정 IP를 사용한다. IP는 00.00.00.00 이런식으로 구성된다. 이런 경우는 사용하고자 하는 수만큼 IP가 확보되어야 한다. DHCP는 동적 IP를 사용한다. IP설정을 하지 않는다. 그럼 DHCP서버에서 임의의 사용할 수 있는 IP를 부여해주고, 그 IP 부여 받은 것으로 인터넷을 쓸 수 있다. 대개 집에서 인터넷 통신사를 통해서 인터넷을 할 때는 고정 IP로 사용하지 .. 더보기
압축의 원리 간단하게 압축이라는 것은 흔하게 많이 접해본 말이다. 원래 크기보다 줄인다라는 의미이다. 어떻게 하면 원래 크기보다 줄일 수 있을까? 압축이 되는 것이 무엇이 있을까? 원리는 무엇인가? 일반 생활에서 압축은 여유 있는 공간을 줄임으로 압축이 될 것이다. 압축을 하는 것은 부피를 줄이는 것이다. 컴퓨터에서의 압축의 대상은 파일이다. 파일의 크기를 줄이는 것이다. 예전에는 파일의 크기를 줄일 필요성이 더 컸다. 디스크 용량도 부족하고 네트워크 속도도 느리기때문에 줄여야 이동도 가능하고, 전송도 가능했다. 그래서 여러가지 압축 기술들이 나오기 시작했다. 외국 제품들이 많이 나왔는데, RAR, ZIP 이런 확장 파일을 갖는 파일들을 만들어주고, 해당 압축된 파일을 풀어주었다. 우리나라에서는 대표적으로 알집이 있었다. 알.. 더보기
TCP/IP의 시작 인터넷의 시초는 1969년 미국 국방성의 연구로부터 시작됐다. 기술 발전은 전쟁, 포르노 산업등에서 시작됨은 공공연한 사실이다. 그리 유쾌한 일은 아니지만, 사람들의 필요에 의해서 출발하고 그것이 사업이 되었을 것이다. 아파넷이라고 불리었고, 대학 연구기간과에서 실험적으로 시작이 되었고, 서로간의 통신을 위해서 시작이 되었다. 아파넷은 점점 커지기 시작했다. 그런데, 상호간의 접속을 위한 프로토콜(일종의 약속)이 필요했고, 이를 위해서 1982년 OSI라는 프로토콜이 만들어졌다. 그런데, 표준규약이 또는 통신사들이 내세우는 표준이라는 것이 뒤떨어지고 또는 너무 무겁기 때문에 실제로는 사용을 안하듯이 이 표준을 뒤로 하고 TCP/IP표준이 더 많이 사용하게 되었다. TCP/IP 프로토콜도 OSI 7 lay.. 더보기
NAT는 사설과 공인 IP 변환기 NAT는 Network Address Translation이다. 말 그대로 하면 네트워크 주소를 변환해주는 것이다. IP는 내부 IP와 외부 IP 개념이 있는데, 외부 IP의 경우는 그 주소로 외부에서도 데이터를 전달할 수가 있다. 유일하게 존재하는 주소가 되고, 그것은 어디서든 접속이 된다. 내부 IP의 경우는 임의로 지정을 할 수가 있고, 내부에서만 연결이 가능하다. NAT는 내부 네트워크에서 외부로 통신을 하기 위해서 주소를 변환해주는 서버이다. 통신을 하기 위해서는 상호간에 외부 또는 공인 IP가 있어야 한다. 내부 네트워크인 경우에 외부에서는 접속을 할 수가 없다. 이를 위해서 NAT는 외부에서도 접속할 수 있는 IP를 제공한다. 외부와 통신이 가능하도록 해당 서버에 IP를 부여해준다. 이렇게 .. 더보기
캐시(Cache) 개념과 원리 캐시는 종종 듣게 된다. 캐시 된 거 아니야? 라는 말을 하기도 하고, 캐시 되어 있어서 빠른거야 라는 말을 하기도 한다. 캐시는 잠시 저장해둔다는 의미이고 기능이다. 캐시 메모리라고 하면 실제 메모리와 CPU 사이에서 빠르게 전달을 위해서 미리 데이터들을 저장해두는 좀더 빠른 메모리이다. 네트워크에서 캐시는 로컬에 파일을 미리 받아놓고, 그 내용을 보거나 웹서버에서도 매번 로딩을 해야 하는 파일들을 미리 로딩해두고, 응답을 주기도 한다. 데이터 베이스를 매번 확인해야 하는것도 캐시서버를 이용한다면 빠른 응답을 해줄 수 있다. 캐시의 원리를 이용한 캐시 서버를 활용하여 CDN같은 서비스도 할 수 있다. CDN은 컨텐츠를 딜리버리 해주는 서버이다. 아주 먼곳에 있는 파일을 매번 가져와야 한다면 네트워크 구.. 더보기
배열을 선언한다는 것은 데이터를 연결하여 저장한다는 개념은 자료구조 상에서 필요하다. 1에서 100까지를 저장한다고 했을 때 여러가지 형태로 저장을 할 수 있다. 변수를 100개 선언할 수도 있다. 가장 쉽게 접근하는 방식이 배열이다. 100개의 저장소를 선언하고 숫자를 각각 저장소에 저장한다. 변수를 100개 선언했다면 물리적인 저장 공간의 위치가 어디 일지 모르고, 연결 여부도 알 수 없다. 대부분은 비슷한 위치일 수 있지만, 꼭 그렇다고 할 수는 없다. 배열은 물리적 공간도 바로 옆으로 메모리 공간을 확보한다. 이런 배열의 물리적 공간 확보로 빠른 엑세스를 보장 받을 수 있다. 단점은 그 공간만큼은 미리 확보하고 사용하기에 혹시 사용하지 않더라도 다른 변수들이 쓸 수 없기에 비효율적인 부분이 있을 수 있다. 배열은 그리고.. 더보기
큐와 스택을 쉽게 비교하면 그리고 배열 컴퓨터 구조에서는 또는 프로그램을 개발을 할 때 큐나 스택이라는 말이 가끔 등장을 한다. 큐와 스택 값을 저장하는 방식인데, 그 형태가 다르다. 큐는 먼저 들어온 값이 먼저 나간다. 가게에서 물건을 사기 위해서 줄을 섰다면 당연하게도 먼저 계산대에 온 사람부터 계산을 해줄 것이다. 그래서 그 사람이 끝나면 다음 사람을 계산해주는 순을 한다. 이렇게 온 순서대로 처리를 해주는 것이 큐이다. 스택은 나중에 들어온 것부터 처리를 해준다. 큐는 지극히 생활속에서 많이 봐왔고, 그렇게 처리하는 것이 당연한 거 같지만, 알고리즘에서는 의외로 스택과 같은 저장 방식이 필요한 상황도 있다. 예를 들면 계산기에서 덧셈 뺄셈 또 곱셈 나눗셈을 할 때 스택이라는 저장 방식을 이용하기도 한다. 우선순위라는 것이 있고, 그 우.. 더보기
컴퓨터 통신 방식 중 동기/비동기란 컴퓨터에서 사용하는 용어 중 동기와 비동기가 있다. 이 중 비동기라는 한글은 영어로 Asynchronous라고 영어로 표기한다. Asynchronous는 대표적으로 Ajax라는 기술의 첫번째 약자에서 사용된다. Ajax(Asynchronous Javascript XML)인데, 이 기술의 특징을 보면 비동기의 의미를 쉽게 알 수 있다. 홈페이지에 접속을 했는데, UI나 테이블 또는 이미지는 그대로 있고, 물론 이미지 갱신도 포함하여 페이지 로딩 시 데이터를 별도로 가져오는 기술이다. API 호출 등을 하여 응답을 받고 표시할 수 있다. 현상적으로 몇가지 얘길 해보면 과거 메뉴나 페이지 넘기기 같은 것을 하면 전체 페이지가 리로딩되어야 했다. 그럼으로써 새로 받은 데이터를 표시해줄 수가 있었다. 최근 보면 .. 더보기
클라이언트/서버 통신 방법 & HTTP 클라이언트/서버 통신 방법 클라이언트는 우리가 사용하는 컴퓨터 또는 스마트폰과 같은 것이 될 수 있다. 기본적으로 클라이언트 측에서 먼저 요청을 한다. 요청을 한다는 것은 어떤 기능을 요구한다는 것이다. 카카오톡도 사용자 중 누군가가 메시지를 작성하고 전송 버튼을 누르게 된다. 카카오톡의 서버가 어떤 구조인지 정확히는 알 수 없지만, 기본적으로 서버는 Listen을 하고 있다. Listen은 들을 준비를 하고 있는 것이다. 그래서 어떤 클라이언트가 어떤 요청을 하는지 또는 연결을 하고 싶어 하는지를 알 수 있다. 웹사이트 접속 시 서버와 클라이언트 동작을 생각해본다면 웹브라우저에서 특정 URL로 접속을 하게 되면 그 URL의 주소값을 DNS라는 서버를 통해서 가져온다. 시스템은 숫자 주소인 IP라는 것이.. 더보기
운영 체제의 핵심, 커널 커널은 운영체제에 있어서 핵심 모듈이다. 운영체제가 시스템이 프로그램이 동작되게끔 하고, CPU, 메모리 디스크를 관리하는 프로그램이라면 커널은 그 운영체제의 핵심 모듈이다. 자동차로 비유하면 엔진 같은 것이다. 커널의 역할을 보면 커널이 어떤 것인지 더 명확하게 알 수 있다. 1) 시스템 콜 인터페이스 어플리케이션에서 시스템으로 어떤 명령을 주고 싶으면 시스템콜이라는 것을 한다. 이 시스템콜이 인터페이스를 통해서 전달이 된다. 접수 창구와 같은 역할을 한다고 보면 된다. 이 콜이 불리면 시스템은 특정 역할을 하게 된다. 디스크 엑세스라든가 네트워크 관련 요청들이 모두 시스템 콜에 해당된다. 2) 프로세스 관리 운영체제는 수많은 프로세스를 관리한다. 프로세스는 실행 중인 프로그램을 말한다. 운영체제는 C.. 더보기
클라우드 컴퓨팅의 활용 사례 클라우드 컴퓨팅을 이용할 수 있는 분야는 전분야라고도 할 수 있다. B2C, 엔터프라이즈 분야, 공공분야, 신사업, IoT 서비스 가능도 가능하다. 물론 기업의 기존 시스템들도 클라우드 환경에서 서비스할 수 있다. 대표적으로 어떤 기능들을 통해서 효과를 낼 수 있는 생각해보면 CDN이 이용이 가능하다. CDN은 Content Delivery Network이다. 대용량 파일이나 이미지 파일들을 빠른 속도로 전파하기 좋다. 이러한 파일 전파에 특화된 서비스이다. 이를 통해서 게임서비스 같은 곳에서 업데이트 시에 파일을 올려두고 단말로 내려받기를 할 수 있으니 쉽게 배포가 가능하다. CDN은 네트워크를 구간별로 특화 시켜서 빠른 속도를 보장하기도 하지만, 일반적으로는 캐시 서버라고 해서 원본 파일을 미리 해당.. 더보기
서버리스 아키텍쳐 서버가 없다? 이제는 심지어 가상화를 뛰어 넘어 서버가 없다. 서버가 없다는 것이 쉽게 이해되지 않는다. 실제로 없는 것은 아니다. 다만 사용자 관점에서는 이제 더이상 신경을 쓸 서버가 없다는 의미에 가깝다. 신경을 쓴다는 의미는 관리 대상에서 생각하지 않아도 된다는 의미이다. 이미 클라우드라는 서비스를 통해서 하드웨어적인 서버는 생각하지 않아도 된다. 그냥 서비스 내에서 인스턴스라는 개념으로 보여지는 것을 껐다 켜거나 생성하거나 삭제 하면 된다. 서버리스는 그 인스턴스 내에서 관리해야 하는 요소를 더 줄였다. 인스턴스 내에는 대개 리눅스 운영체제가 설치되어 있다. 그 이후 웹서버나 WAS서버는 설치를 해야 하고 관리를 해줘야 한다. 인스턴스를 몇대 관리 한다고 하면 이곳에 서버들은 모두 관리의 대상이다. 문제가 생기.. 더보기
API (Application Program Interface) 그리고 OpenAPI 어플리케이션을 개발할 때 이 API로 개발을 한다. 어플리케이션에서 또는 플랫폼에서 API를 제공한다. 그 API를 사용해서 프로그램을 개발할 수가 있다. API는 인터페이스이고, 그 것을 호출한다고 하는데, 부르면 해당 API가 실행된다. 프로그램 내부에서만 사용을 했다면 함수가 될 수 있다. 하지만 외부에서 그 함수를 호출하려면 인터페이스가 필요한데, 이 인터페이스를 API라고 한다. 외부에서 부를 수 있는 함수라고 보면 된다. 물론 실제 단일 함수가 아니라 API를 호출하게 되면 어떤 기능을 수행하기 위해서 내부적으로는 여러가지 함수를 호출할 수 있다. 윈도우 프로그램을 만들때는 API를 이용한다. API 기능 중에는 윈도우를 제어 할 수 있는 기능들도 있고, 화면에 표현을 해주는 API도 있다. .. 더보기
NoSQL은 Not only SQL? NoSQL(Not only SQL)은 기존 방식의 관계형 DB가 아니라 대량 데이터를 위한 고속처리를 위한 DB이다. 왜 NoSQL인가 기존 DB는 데이터 베이스 모델링할 때 관계를 맺고 그 관계 구조 상에서 데이터가 저장이 되고, SQL은 이를 조회하기 위한 문장인데, 이 문장은 이 관계를 기본으로 SQL문이 만들어진다. 이런식의 관계지향은 아니다. NoSQL은 기존 방식의 SQL을 사용하지 않는다. 매우 직관적이며 자료 그대로를 넣는다. 기존 DB가 관계를 나누고 사용할 때는 조합해서 사용했다면 NoSQL은 사용하고자 하는 값을 위주로 저장을 그대로 해둔다. 그리고 그대로 꺼내서 사용한다. 기존에 DB의 많은 예제로 학생 테이블, 과목 인덱스 테이블, 과목 점수 테이블 등이 있어서 저장을 할 때 정규.. 더보기
클라우드 실현 기술, 가상화 클라우드 컴퓨팅이 가능한 기술적인 근거는 가상화이다. 여기서의 가상화는 우리가 일상적으로 말하는 가상과는 약간 거리가 있다. 가상이라고 하면 없는 것을 있는 것처럼 보이는 정도 아닐까 가상현실, 현실에 없는 것을 보여주는 것일터이다. 클라우드 컴퓨팅의 가상화가 가지는 의미는 이런 개념이다. 두대의 물리적인 컴퓨터를 한대의 컴퓨터처럼 보이게 하는 것 또는 한대의 컴퓨터를 두대의 컴퓨터처럼 나눠 쓸 수 있는 것 이 과정에서 실제 물리적으로 나눈다기 보다는 가상적으로 나눈다고 해서 가상화이다. 이러한 것이 가능한 것이 내부 기술 두가지가 있다. 컨테이너와 분산처리 기술이다. 컨테이너는 하나의 OS환경에서 어플리케이션이 실행할 수 있는 독립된 영역을 만들어주고 실제로 OS내부에 또 다른 OS가 있는 것처럼 동작.. 더보기
아마존 클라우드의 데이터베이스 서비스 DB도 아마존 같은 경우 DB를 품고 있다. RDS라는 이름으로 기존 관계형데이터 베이스들을 품고(?) 서비스형태로 서비스를 하고 있다. 품고 한다는 의미는 RDS 서비스를 선택할 경우 구지 DB를 설치 하지 않아도 된다. 인스턴스와 같이 그냥 생성하고 사용하면 된다. MySQL이나 Oracle DB를 설치 하지 않아도 된다. 크게 몇가지 DB 형태가 있는데, RDS, 그리고 DynamoDB, ElasticCache, Redshift DynamoDB는 NoSQL 기반의 DB이다. NoSQL는 기존 관계형 DB에서의 SQL과 다르다는 의미인데, 이를 기반으로 하는 것이다. Why NoSQL은 다시 언급하고자 한다. 왜 기존의 SQL은 NoSQL이라는 물결을 만났을까? 결국 성능과 IoT와 같은 디바이스 대.. 더보기
Why? 클라우드, 클라우드인 이유, 제공되는 기능들 예를 들면 명절에 철도 예매 서비스, 연말 정산 서비스 등 몇몇개 서비스는 플랙서블한 컴퓨팅 자원이 필요한 것들이다. 현재 어떤 서버 구조로 서비스 하고 있는지 보안사항이여서 알 수는 없겠지만, 매우 적합 할 것으로 보인다. 때로는 게임업체에서도 우리나라 게임이라면 시간대별 게임서버 댓수를 달리 함으로써 효율적인 서버 관리를 할 수도 있다. 아무래도 새벽 2-6시까지는 게임하는 사람들이 상식적으로는 적을 것이다. 낮시간에도 적을 수 있다. 하지만 휴일이나 주말에는 늘어날 수 있다. 이러한 때에 맞춰서 서버를 유연하게 관리한다면 비용적인 측면에서 좋고, 프로모션 같은 것을 진행했을때 갑자기 늘어나는 트래픽을 대응할 수 있을 것이다. 클라우드 이용 시 모델에는 퍼블릭 클라우드가 있고, 프라이빗 클라우드가 있.. 더보기
SaaS vs PaaS vs IaaS SaaS는 Software as a Service이다. 기존 방식으로 보면 소프트웨어는 구매를 해서 설치하고 사용을 했다. 장점과 단점이 존재할 수 있다. 일시에 구매를 해야 한다는 점이 그리고 사용하지 않을 수도 있다는 점등에서 진입 장벽이 높았을 수도 있다. SaaS는 소프트웨어를 서비스방식으로 제공한다는 취지이다. 과거 마이크로 소프트 워드 제품을 구매해서 사용해야 했다면 구매 당시에 비싼 제품 비용을 내야 하는 단점과 생각했던 거보다 많이 사용하지 않을 수 있는 리스크가 있다. 이를 제공처에서 한번의 라이센스 구매가 아니라 사용시에 비용을 지불하는 식으로 제공하는 것이다. 그리고 설치방식이 아니라 스트리밍 방식으로 서비스 처럼 제공을 한다. 그리고 데이터도 서버에 저장할 수 있다. 물론 서버는 개.. 더보기
클라우드 컴퓨팅이란? 장점은? 클라우드 컴퓨팅은 클라우드라는 말은 구름이라는 뜻에서 나왔다. 어딘가 존재하는 컴퓨터들이다. 어딘가는 존재한다. 하지만 구지 우리가 알아야 하는 것은 아닌 개념이다. 물리적으로 어떻게 구성되어 있는지 몰라도 된다. 모른다는 것은 큰 리스크이기도 하지만, 편리함을 주는 부분도 있다. 과거 서버 하나를 구입해서 운영을 하는 것까지는 큰 비용과 시간이 들었다. 클라우드 컴퓨팅은 이미 준비되어 있고, 그것을 바로 이용할 수 있다. 서버를 구입하는 것은 매우 큰 돈이 든다. 수천만원에서 수억까지 투자를 해야 서버를 구입할 수 있다. 하지만 클라우드는 몇만원부터 시작이 가능하다. 잘만 이용하면 Free Tier 같은 혜택을 통해서 매우 저렴하게 운영을 할 수도 있다. 편리함과 비용측면이 있는데, 보안 관점에서 우려.. 더보기
인터넷 쿠키와 세션 컴퓨터에서의 쿠키도 먹는 쿠키에서 표현이 나왔을지 모른다. 개발을 하다보면 쿠키로 구웠냐 라는 표현을 하는 것 봐서는 그럴 수 있다. 변수 값을 단말, 클라이언트쪽에 저장하는 개념이 쿠키이다. 달리 서버에 저장되는 것을 세션이라고 한다. 클라이언트나 서버에 왜 무엇을 저장할까 보면 이것이 왜 나왔을지 생각해보면서 개념을 이해하면 좋을 것이다. 웹은 기본적으로 한번 호출하고 응답을 받고 끊긴다. 계속 연결되어 있지 않아서 페이지 호출마다 클라이언트가 누군인지를 알아야 한다. 최소 어떤 데이터들을 보여주려면 어떤 사람의 것인지는 알아야 하는데, 그 사람이라는 것을 매번 알려준다는 것은 번거로운 일일 수도 있고, 보안상 취약점이 노출될 수도 있다. 그러면 값을 저장을 해야 한다. 그러면 이 값을 어떤식으로 어.. 더보기
인터넷의 탄생과 원리 인터넷의 탄생은 역시 국방의 통신에서 시작되었다. 웹사이트는 기존 텍스트 기반의 인터넷에서 이미지를 포함하면서도 화려한 페이지가 만들어지는 HTML 기반의 문서형태로 이미지의 활발한 송수신을 야기했다. 초반 기업 홈페이지로 가장 많이 사용되었다. 모든 기업이 URL이라는 것을 가지기 시작했다. URL은 일종의 주소이다. 인터넷 공간의 주소이다. Uniform Resource Locator이다. 인터넷 주소를 가리키기 위한 규칙이다. http://로 시작하는 부분은 프로토콜을 의미한다. 프로토콜은 통신을 위한 상호간의 약속이다. http:// 프로토콜외에도 ftp도 있고, 여러가지 프로토콜이 존재한다. 요청과 응답의 약속을 정해둔 것이다. 그리고 주소는 http:// 이후에 시작된다. www.ooo.com.. 더보기
서버 기반 컴퓨팅 상식적으로 말하면 서버 기반의 컴퓨터 구조라는 것은 기본적인 서버-클라이언트 구도에서 서버에 비중이 높은 구조이다. 비중이 높다는 것은 대부분의 로직이 서버에서 수행이 되고, 클라이언트는 결과값 위주로 받는 것이다. 반대로 클라이언트가 대부분의 기능을 하고, 서버는 가볍게 수행될 수도 있다. 서버 기반이 되는 것은 클라이언트를 가볍게 하고, 어디서나 할 수 있게 하기 위함이다. 각각은 장단점을 가질 수 있다. 서버 기반으로 하게 되고, 클라이언트의 부담을 줄이게 되면 사용자들은 언제 어디서든 해당 구조의 프로그램을 이용할 수 있을 것이다. 하지만 클라이언트 기반이 되게 되는 경우 특히 응용 프로그램을 설치해서 비중이 많아진다면 그 경우는 매번 설치를 해야 하는 번거로움이 있거나 데이터를 많이 차지할 수도 있다. 클라이언트.. 더보기
클라이언트 and 서버 그리고 WAS, DB서버 클라이언트는 우리가 보고 있는 컴퓨터, 스마트폰이 클라이언트이다. 클라이언트는 손님이기도 하고, 요청자이기도 하다. 엄밀하게 말하면 컴퓨터나 스마트폰이 클라이언트는 아니다. 그 운영체제 내에서 클라이언트로 동작되는 것들이 클라이언트이다. 클라이언트로 동작된다는 것은 요청자 역할을 하는 것이다. 그리고 서버로부터 응답을 받아서 화면에 결과를 보여준다. 대표적인 것이 브라우저인 인터넷 익스플로러이다. 스마트폰의 대부분의 앱은 클라이언트이다. 서버로부터 응답을 받아서 보여준다. 서버와 클라어인트 구도라는 것은 이렇게 서버에서 응답을 해주고, 클라이언트에서 응답을 받아서 보여주는 구조인 것이다. 클라이언트는 컴퓨터 같은 경우는 설치하기도 한다. 카카오톡 앱도 PC버전이 나와서 설치하여 사용할 수가 있다. 컴퓨터.. 더보기
건축물의 구조 설계 같은 시스템 아키텍쳐 시스템 아키텍쳐는 시스템의 서버들의 구성 모습이다. 구조라고 말할 수도 있다. 시스템 구성도로 표현을 하기도 한다. 서버간 연결하는 구성도만을 얘기하는 것은 아니고 좀더 깊은 내용까지 아키텍쳐라고 할 수 있다. 예를 들면 어떤 소프트웨어로 구성을 할지에 대한 것도 아키텍쳐라고 할 수 있다. 이렇게 아키텍쳐를 전문으로 구성하고 설계하는 사람들을 아키텍트라고 한다. 왠지 아키텍트라고 하면 산출물이나 내용을 말하는거 같긴 합니다만, 역할자를 말한다. 시스템 아키텍쳐는 시스템의 기능이나 성능 면에서 중요한 의미가 있다. 어떤 아키텍쳐를 가지냐에 따라서 확장이 용이할 수도 있고, 반대로 어려울 수도 있다. 따로는 SOF(Single of Failure)라고 해서 실패 포인트를 가질 수도 있다. 이러한 것을 보완해.. 더보기
정보시스템 감리의 실제적인 업무 내용 정보시스템에 있어서 감리 영역은 시스템이 잘 구축되어 있는지 점검하는 것이다. 그 기준은 설계 문서가 될 것이다. 설계 대로 구축이 되어 있는지 측면이 구현이 잘되었다고 할 수 있다. 설계도 확인을 해야 한다. 요구사항 대비 요구사항이 반영이 잘되었는지를 봐야 한다. 요구사항이 설계에 반영이 되고, 실제 구현이 잘되었는지까지 봐야 한다. 그리고 구현체가 문제는 없는지를 봐야 한다. 결국 다리를 건축했다고 하면 감리는 이 다리가 원래 설계 목적에 맞게 잘 만들어졌는지 봐야 한다. 안전점검을 하듯이 감리를 하는 것은 시스템이 잘 운영될 수 있게 만들어졌는지 체크를 해보는 것이다. 이론적으로는 그러하고, 현실적인 대부분의 시스템 감리는 일주일 정도의 시간을 가지고 한다. 주로 산출물 리뷰 및 인터뷰로 진행이 .. 더보기
운영 수준 정의 - SLA 서비스 레벨 동의라고 해석되어지는데, 이는 IT 계약 할 때 운영을 맡게 되는 경우 그 시스템이 어느 정도 영속성을 가지고, 장애는 어느 정도까지 허용된다라고 하는 운영의 수준에 대한 부분의 협의 내용이다. 여기에는 서비스가 잘되면 어떤 보상을 주고, 서비스가 특정 시간 이상 안될 수에는 벌금을 물겠다는 내용이 포함된다. 수행 업체는 그 책임을 어느정도를 져야 하는데, 그 책임을 지고 운영을 하겠다는 것을 말로만 하는 것이 아니라 실제 부속계약으로 금전적 내용을 포함한다. 대표적인 것이 서비스 가용율이다. 서버를 운영한다고 해도 대부분은 서버위에 동작되고 있는 서비스가 중요하다. 이 서비스가 얼마나 중단 없이 서비스를 하는 가가 운영 수행사가 책임 져야 할 내용일 것이다. 서비스 가용율은 관련된 수행 내.. 더보기
ITIL은 IT운영의 베스트 사례 모음 ITIL은 IT 운영에 대한 베스트 사례 모음이다. IT를 운영을 할 때보면 구축할 때보다 더욱 체계를 잡기가 어렵다. 구축할 때는 보통 기획을 하고, 설계를 하고, 설계된 대로 구현을 하고 테스트를 한다. 이것이 곧 프로세스이자. 방법론이자. 실제 하는 일이 된다. 쉽게 말해 목표가 명확하다는 뜻이다. 그런데, 운영을 하라고 하면 목표라는 것을 잡기가 어렵다. 그렇다고 장애가 나고 문제만 해결하는 것으로만 운영이라고 한다면 문제에 쫒겨 다니기 바쁘거나 할 일이 없어서 뒹굴거리느라 루즈하다고 할 수도 있다. 시스템 그냥 두면 돌아가는 것을 뭐하는 것이냐는 소리를 들을 수도 있다. 사실 소방서에서 소방차를 관리하고, 소방관들이 불을 끄기 위해서 또는 인명을 구조하기 위해서 준비하는 시간은 불이 나지 않고 .. 더보기
소프트웨어 유지보수도 중요하다. 유지보수라는 것은 구축된 시스템을 운영 및 관리해주는 것이다. 사실 이미 구축된 시스템이라면 많은 일손이 안들수도 있다. 잘 돌아가기만 하면 될 것이다. 물론 B2C 서비스의 경우 상황은 다를 수 있다. 앞서 얘기한 것도 있지만, 린 개발방법론이라든가 DevOps를 한다면 유지보수라는 측면보다는 지속 개발이라는 것이 맞을 것이다. 계속된 요구가 있고, 개선 사항이 있을 것이다. 운영 중에도 개발을 많이 한다. 기존 시스템들은 대개 1.0, 2.0 이런식의 버전을 구분하고, 고도화 프로젝트등을 진행해서 기존 시스템을 사용하다가 어느 순간에 개편 내지 대체를 한다. 하지만 이런 서비스라든가 최근 시스템들은 지속적인 기능 업그레이드 내지는 개발을 한다. 기존과 같은 유지보수이든 지속 개발 관점의 유지보수이든 .. 더보기