간혹 어떤 프로그램 설치 시에 내 우분투 리눅스의 버전을 확인이 필요할 때가 있다.

자주 사용하지 않아 잊어버릴 수 있기에 정리해 둔다.

Ubuntu 버전 확인 방법

1. at /etc/issue

 

 

2. lsb_releaseA -a

 

3. cat /etc/*release(2번의 파일 직접 접근 방법)

 

 

Ubuntu 비트 확인 방법

uname -m

x86_64 (64비트인 경우)
i686 (32비트인 경우)

 

'#시스템관리 > 리눅스' 카테고리의 다른 글

RHEL 구독 등록 방법 (예정)  (0) 2025.11.23
Ubuntu에 자바 설치  (0) 2020.11.26

"최근 10년사이 3050세대 사이서 건망증 진단 건수가 증가했다" 오쿠무라메모리 클리닉을 운영하는 오쿠무라 아유무(奥村歩) 원장은 노년층이 아닌 한창 일할 중년층에서도 건망증 환자가 급증했다고 최근 일본경제신문 인터뷰를 통해 밝혔다.

오쿠무라 아유무 오쿠무라메모리 클리닉 원장. / 오쿠무라메모리클리닉 갈무리

오쿠무라 원장은 30~50대 건망증 환자 증가 원인을 스마트폰과 PC로 지목했다. 기기사용 빈도가 높아져 문자·사진·동영상 등 정보과다로 인해 뇌에 피로가 쌓이는 ‘뇌 과로’가 원인이라는 것이다.

그에 따르면 뇌는 시각·청각·후각·미각·촉각 등을 통해 정보를 입력받고, 전두엽에서 정보를 저장할지 버릴지 정보선택처리가 이루어지고, 이를 바탕으로 말과 행동으로 출력하게 된다.

"입력되는 정보량이 많아지면 우리의 뇌가 쓰레기더미처럼 처리하지 못한 정보가 범람하게 된다"는 것이 그의 주장이다.

에다가와 요시쿠니(枝川義邦) 와세다대학 뇌신경과학 전문 교수에 따르면 정보 정리를 담당하는 전두엽 속 전두전야(前頭前野)는 의사결정, 기억, 감정을 관리·조종한다. 정보과다로 뇌과로에 빠지면 전두전야의 기능이 저하되고, 이로 인해 사람의 단순한 실수가 늘어나고 기억력 저하가 발생된다. 사람이 신경질적으로 변하기도, 의욕과 흥미가 발생하지 않는 문제도 생긴다.

에다가와 교수는 이런 문제는 초기 치매 등 인지장애 증상을 불러일으킨다고 경고한다. PC로 업무를 처리하고, 일과 가사를 병행처리하는 와중에 쉬는 시간에 까지 스마트폰으로 SNS를 보거나 게임을 즐기는 사람은 주의가 필요하다는 지적이다.

오쿠무라 원장은 "TV를 보면서 스마트폰을 만지는 행위는 뇌에 과도한 스트레스를 준다"고 경고했다. 그는 뇌 과로를 개선하고 예방하기 위해서는 전두엽이 부드럽게 정보처리를 할 수 있는 상태를 만드는 것이 중요하다고 제시했다.

오쿠무라 원장은 뇌 과로를 막기 위해서 ▲스마트폰 사용 시간을 줄여야 된다고 말한다. 화장실이나 욕실, 침실에서 스마트폰을 가급적 사용하지 않는 것을 권했다.

그는 ▲멍 때리는 시간을 늘리라고 조언한다. 조깅·걷기·골프 등 운동을 통해 뇌를 쉬게하는게 중요하다고 지적했다.

오쿠무라 원장은 ▲충분한 수면도 뇌 휴식에 도움이 된다고 말했다. 업무 중 15분쯤의 낮잠, 의자에 앉아 5분쯤 눈을 감도 호흡하는 것도 뇌 과로를 막는 효과적인 방법이라고 전했다.


오쿠무라 원장은 현재 자신이 뇌 과로 상태인지 알아볼 수 있는 방법을 공유했다. 아래 항목 중 3개 이상 해당되면 뇌 과로 가능성이 높다고 밝혔다.

▲스마트폰을 항상 만지고 있다 ▲일과 가사 구분이 어려워졌다 ▲항상 바쁘다 ▲단순한 실수가 늘었다 ▲잠이 잘 오지 않는다 ▲물건을 어디뒀는지 잘 생각나지 않는 때가 늘었다 ▲신경질과 화를 내는 일이 많아졌다 ▲의욕과 흥미가 생기지 않는다.



출처 : http://it.chosun.com/site/data/html_dir/2020/02/29/2020022900819.html

 

3050세대 디지털치매 증가, 스마트폰·PC 사용률↑ 원인

"최근 10년사이 3050세대 사이서 건망증 진단 건수가 증가했다" 오쿠무라메모리 클리닉을 운영하는 오쿠무라 아유무(奥村歩) 원장은 노년층이 아..

it.chosun.com

 

느낀 점:

한창 공부를 병행하면서 유튜브도 수시로 많이 봤었을 때가 있다. 이전과 다르게 습득한 지식이 기억이 이상하리만큼 생각이 안 나서 원인을 심각하게 고민했던 적이 있다. 나이를 먹어서 그런가.. 아니면 습관이 잘 못된 것인가..

나에게는 2가지 문제점이 있었다. 첫째, 휴대폰에 자투리 시간을 빼앗겨 결국 복습을 소홀히 한 점. 두 번째, 휴대폰 특히, 유튜브를 엄청 많이 봤다는 것이다. 많이 보면 하루에 5시간 이상은 봤던 것 같다. 지금은 취업 준비로 인해 자의 반 타의 반으로 휴대폰 사용 시간이 줄었지만, 그때 당시보다 훨씬 기억력이 개선됐다. 그래서 이와 같은 주장은 나의 경험에 의해 어느 정도 신빙성있다고 생각한다.

 

그리고 이를 개선하는 습관으로 '멍 때리기'를 추천하고 있다. 예전에 어떤 기사를 통해서 멍 때리기는 사람을 멍청하게 만든다라는 내용을 본 적있다. 그래서 머리에 과부하가 와도, 멍 때리지 않으려고 노력했다. 하지만 다양한 멍때리기 캠페인과 효과가 증명되면서 멍 때리기 습관도 평소에 자주 하고 있다.

 

하루의 업무를 효율적으로 사용하기 위해 나의 뇌를 효율적으로 사용하는 방법에 대해 호기심을 가지고 있다. 왜냐.. 하루 종일 일과 관련된 공부만 할 순 없기 때문이다. 나는 세상에 일 외에도 사람이 성장할 수 있는 루트는 다양하다는 것을 알기 때문에, 시간과 머리를 효율적으로 사용하여 삶의 질을 높이고 싶다. 

읽기 전 클라우드를 왜 사용하는지 생각해보자.

클라우드의 핵심, 가상화와 클라우드 관리 스택

 

프라이빗 클라우드와 온프레미스의 가장 큰 차이점

프라이빗 클라우드와 온프레미스의 가장 큰 차이점은 클라우드의 핵심 능력을 보유하고 있는지 여부다. 클라우드의 핵심 능력은 '신속함'이다. 기업의 서비스에 사용자가 몰리면 프라이빗 클라우드는 해당 서비스를 위한 인프라를 증설해 빠르게 서비스를 안정화시킬 수 있다. 반면 온프레미스는 이것이 대단히 어렵다. 인프라를 새로 주문하고 이를 설치해 서비스에 연결할 때까지(보통 1~2주) 서비스를 안정시킬 수 없다.

 

클라우드의 핵심 기술1 - 가상화

이러한 신속함을 갖추기 위해 프라이빗 클라우드는 두 가지 핵심 능력을 갖추고 있어야 한다. 첫 번째는 '가상화'다. 가상화는 클라우드를 지탱하는 핵심 기술이다. 가상화란 컴퓨팅 자원(resource)의 추상화를 의미하는 것으로 물리적인 하드웨어 자원을 논리적인 단위로 나누고 통합하여 자원을 활용할 수 있게 해주는 기술이다. 즉, 가상의 네트워크 장비, 서버, 스토리지 등을 생성한 후 이를 조합해 가상의 인프라(가상머신)를 만들고 여기에 운영체제를 설치하고 소프트웨어와 서비스를 구동하게 되는 것이다.

 

가상화의 효과

가상머신 위에 설치된 운영체제와 소프트웨어는 한 대의 인프라에서 실행되는 것이 아니다. 수 십 대의 실제 인프라가 각자의 능력을 조금씩 각출해서 가상머신을 만든 후 운영체제와 소프트웨어를 실행하는 것이다. 가상화 솔루션은 이렇게 각출한 능력을 조합해 가상머신이 기존 인프라와 동일한 능력을 발휘할 수 있도록 하고 있다. 인프라가 고장 나면 서비스도 함께 중단되는 온프레미스와 달리 가상화를 통해 생성된 가상머신은 지탱하는 여러 인프라 가운데 일부가 고장 나더라도 바로 다른 인프라에서 능력을 각출해오기 때문에 아무런 문제없이 소프트웨어를 실행하고 서비스를 제공할 수 있다.

 

기업의 인프라 가상화를 실현 방법 - 가상화 솔루션

가상화 솔루션은 크게 특정 기업이 개발하고 관리하는 상용 솔루션인 VM웨어(VM웨어), 하이퍼-V(마이크로소프트)와 오픈소스 기반의 솔루션인 젠(시트릭스), KVM(레드햇) 등이 존재한다. 기업은 이런 여러 가상화 솔루션 가운데 하나를 구매해서 데이터 센터와 인프라 가상화를 진행할 수 있다.

 

 

 

클라우드의 핵심 기술2 - 클라우드 관리 스택

두 번째는 '클라우드 관리 스택'이다. 가상화 기술을 통해 데이터 센터나 인프라의 가상화를 완료했다고 하더라도 이를 바로 프라이빗 클라우드라고 할 수는 없다. 가상화는 본래 인프라에 문제가 발생해도 서비스가 중단되지 않도록 하는 안정성 확보용 기술이었기 때문이다. 이렇게 가상화된 인프라 속에서 가상머신을 자유롭게 생성하거나 제거할 수 있어야 프라이빗 클라우드라고 할 수 있다. 이를 위해 가상머신을 관리할 수 있는 클라우드 관리 스택이 함께 필요하다.

 

클라우드 관리 스택 실현 방법 2가지

기업이 클라우드 관리 스택을 확보하는 방법은 크게 두 가지다. 상용화된 클라우드 관리 스택을 구매해 이를 기업의 상황에 맞게 변경하거나, 기업이 직접 클라우드 관리 스택을 개발하는 것이다.

 

클라우드 관리 스택 판매 사례

클라우드 관리 스택 구매는 크게 특정 기업의 기술을 이용하는 것과 오픈소스를 활용하는 것으로 나눌 수 있다. 마이크로소프트, IBM 등은 퍼블릭 클라우드를 제공하는 업체이지만, 동시에 프라이빗 클라우드를 구축하길 원하는 기업을 위해 클라우드 관리 스택 판매도 함께 진행하는 업체이기도 하다. 마이크로소프트의 경우 퍼블릭 클라우드 '애저'에서 활용하고 있는 기술을 활용해 클라우드 관리 스택 '애저 스택'을 개발한 후 이를 시중에 판매하고 있다. IBM도 마찬가지다. IBM 클라우드(소프트레이어+블루믹스)에서 활용하고 있는 기술을 활용해 클라우드 관리 스택 'IBM 클라우드 프라이빗'을 만들어서 판매를 시작했다.

 

오픈 소스 기반의 클라우드 관리 스택의 대표적인 사례로 '오픈 스택'과 '클라우드 스택'을 들 수 있다. 오픈 스택은 오픈 스택 재단에서, 클라우드 스택은 아파치 재단에서 개발을 주도하는 오픈소스 기반의 클라우드 관리 스택이다. 다만 오픈 스택의 경우 개발의 상당 부분을 레드햇에서 진행하고 있어, 프로젝트의 실질적인 주인은 레드햇이라고 해도 과언이 아니다.

즉, 기업은 데이터 센터와 인프라의 가상화를 완료한 후 애저 스택, IBM 클라우드 프라이빗, 오픈 스택, 클라우드 스택 등을 적용해 프라이빗 클라우드 환경을 구축할 수 있다.

 

클라우드 관리스택 직접 개발 사례

이렇게 상용화된 클라우드 관리 스택을 이용하지 않고 기업이 직접 클라우드 관리 스택을 개발한 경우도 있다. 대표적인 사례가 바로 퍼블릭 클라우드 사업자들이다. 아마존웹서비스, 마이크로소프트, 구글, IBM, 네이버 비즈니스 플랫폼 등은 자사 클라우드 서비스에 적용된 클라우드 관리 스택을 모두 자체 개발했다.

 

기업이 퍼블릭만을 사용하지 않고 프라이빗 클라우드를 구축하는 이유

그렇다면 기업은 왜 빠르고 편리하게 이용할 수 있는 퍼블릭 클라우드를 두고 프라이빗 클라우드 환경 자체 구축에 나서는 것일까? 역설적이지만, 프라이빗 클라우드 구축에 나서는 기업들의 궁극적인 목표는 퍼블릭 클라우드 사업자가 되는 것이다. 프라이빗 클라우드를 구축해서 회사와 계열사의 서비스를 운영해 클라우드 역량을 확보한 후 이를 바탕으로 퍼블릭 클라우드 사업에 진출하려는 것이 프라이빗 클라우드를 구축하는 기업들의 본심이다.

퍼블릭 클라우드 사업은 4차 산업혁명 시대의 핵심 기술이고, 21세기의 은행이며, 동시에 황금알을 낳는 거위다. 아마존웹서비스, 마이크로소프트, 구글, IBM, 알리바바 등 주요 클라우드 사업자는 매 분기 퍼블릭 클라우드 사업에서 엄청난 매출과 영업 이익을 거두고 있다. 이들은 이러한 영업이익과 기술을 바탕으로 전 세계 시가총액 10위권 내에 이름을 올리고 있다.

때문에 많은 기업들이 퍼블릭 클라우드 시장을 두고 군침을 흘리고 있다. 하지만 프라이빗 클라우드를 구축한 기업 가운데 실제로 퍼블릭 클라우드 사업을 시작할 수 있었던 기업은 극히 드물다. 퍼블릭 클라우드를 제공하려면 단순히 가상화와 클라우드 관리 스택을 도입하는 것을 넘어서 이를 활용해 안정적으로 클라우드 서비스를 제공할 수 있는 기술과 노하우까지 필요하기 때문이다. (이 기술과 노하우야말로 아마존웹서비스, 마이크로소프트, 구글, IBM 등의 핵심 경쟁력이기도 하다) 기업 내부와 관계사에서만 쓰는 서비스(프라이빗 클라우드) 라면 문제가 발생해도 빠르게 봉합할 수 있지만, 외부 기업(고객)이 이용하는 서비스(퍼블릭 클라우드) 라면 사소한 문제도 치명적으로 번질 수밖에 없다.

 

프라이빗에서 퍼블릭으로의 성공적인 전환 사례

프라이빗에서 퍼블릭으로 성공적으로 전환한 사례는 알리바바 클라우드(오픈 스택 + 알리바바 자체 기술, 단 현재는 많은 개량을 거쳐 오픈 스택이라기보다는 알리바바의 자체 클라우드 관리 스택이라고 부르는 게 옳다)와 네이버 비즈니스 플랫폼(자체 기술 기반 클라우드 관리 스택) 정도를 꼽을 수 있다.

 

네이버의 경우 지난 2005년 인프라의 가상화를 완료했고, 2012년 프라이빗 클라우드 서비스를 개시했다. 이를 바탕으로 올해 초 퍼블릭 클라우드 상용화를 꾀할 수 있었다. 국내에서 가장 앞선 하드웨어, 소프트웨어 기술을 보유하고 있다고 평가받는 네이버도 퍼블릭 클라우드 상용화를 위해 13년이라는 시간을 투자한 것이다.

 

 

물론 전 세계 모든 기업을 대상으로 서비스를 제공하는 대규모 퍼블릭 클라우드 대신 특정한 목표를 가지고 개발되는 소규모 퍼블릭 클라우드의 경우 프라이빗에서 퍼블릭으로 전환하는 경우가 점점 늘어나고 있다. 호스팅 사업자에서 클라우드 사업자로 변한 업체들이 대표적인 사례다. 예를 들어 베스핀 글로벌의 경우 애저 스택을 활용해 퍼블릭 클라우드를 구축한 후 G 클라우드(관공서용 클라우드) 사업에 진출할 계획이다.

 

 

본 내용 출처:https://it.donga.com/27139/

 

잘 나가는 기업들만 사용한다는 '프라이빗 클라우드'는 무엇일까 | IT동아

잘 나가는 기업들만 사용한다는 '프라이빗 클라우드'는 무엇일까 강일용 2017-11-24 [IT동아 강일용 기자] 클라우드는 그 서비스 형태에 따라 퍼블릭 클라우드, 하이브리드 클라우드, 프라이빗 클라우드 등 세 가지로 나눌 수 있다. '퍼블릭 클라우드(Public Cloud)'란 외부 클라우드 사업자가 제공하는 서비스를 통해 클라우드를 이용하는 것으로, 우리가 가장 흔히 접할 수 있는 서비스 형태다. 서비스를 위한 모든 인프라를 클라우드에서 제공받는 것

it.donga.com

참고 자료:http://terms.tta.or.kr/dictionary/dictionaryView.do?word_seq=059741-2

 

TTA정보통신용어사전

한국정보통신기술협회(TTA)는 정보통신 기술 발전과 타 분야와의 기술 융합에 따라 무수히 생성되는 정보통신용어를 해설하고 표준화하여, 전문가뿐만 아니라 비전문가들도 올바르게 활용할 수 있도록 정보통신용어사전을 서비스하고 있습니다. PC 또는 스마트폰으로 웹에 직접 접속하시거나 모바일 앱 마켓에서 정보통신용어사전 앱을 내려 받아 이용하실 수 있습니다.

terms.tta.or.kr

추상적인 표현은 내용의 흐름을 해치지 않는 선에서 TTA를 참조하여 명확한 뜻으로 대체(배경색:)하였습니다.

 

 

 

클라우드의 컴퓨팅의 진화

글의 목적: 클라우드 서비스의 진화를 통해 IaaS, PaaS, SaaS, FaaS가 어떠한 목적을 달성하기 위해 출현했는지 이해합니다.

 

클라우드 컴퓨팅의 가장 중요한 가치: 규모 확장에 대한 신속하고 효율적인 대응

확장의 기본단위, 그리고 추상화 방식의 변화에 따라 클라우드도 점차 진화하였다. 이러한 진화를 통해 새로운 애플리케이션이나 서비스를 시작하고, 또 서비스 확장에 따라 규모를 확장하는 것 또한 용이해졌다. "용이해 졌다"라는 의미는 컴퓨팅 기반 즉 인프라스트럭처 구축 및 운용과 관련된 전문적인 역량이 부족해도 규모 확장에 대한 요구사항을 충분히 커버할 수 있음을 의미한다. 개발과 운영이 뚜렷한 절차적 구분 없이 물 흐르듯이 이루어지는 DevOps가 본격화 된 것이다.

 

IaaS의 목적: 서버, 저장장치, 네트워크 등의 인프라 제공

 

초기 데이터센터에서의 대응방식은 하드웨어 서버를 증설한 후 확장이 필요한 서비스를 새로운 서버에 설치하여 서비스 요청을 여러 물리적 서버로 분산시키는 것이다. 이 후 서버 가상화 기술이 도입되며 규모의 확장은 물리 서버의 확장이 아니라 가상 서버의 확장으로 대응하게 된다. 즉, 별개의 운영체제가 돌아가는 각각의 가상서버를 필요에 따라 생성함으로써 하드웨어 설치에 따른 시간과 비용을 절약할 수 있게 되었다. IaaS(Infra as a Service)가 이에 해당하며, 클라우드 서비스에서 제공하는 가장 기본적인 서비스이다. 아직까지는 클라우드를 활용하는 많은 기업이 IaaS 를 주로 활용하고 있다.


SaaS의 목적: 사용자가 필요로 하는 소프트웨어를 인터넷상에서 이용하는 클라우드 서비스.

 

서비스형 소프트웨어(SaaS)는 소프트웨어 유통 방식의 근본적인 변화를 설명하는 개념으로, 공급 업체가 하나의 플랫폼을 이용해 다수의 고객에게 소프트웨어 서비스를 제공하고, 사용자는 이용한 만큼 돈을 지불한다. 전통적 소프트웨어 비즈니스 모델과 비교할 때 SaaS의 가장 큰 차이점은 제품 소유의 여부이다. 기존 기업용 소프트웨어는 기업 내부의 서버 등 장비에 저장해 이용한다는 점에서 고객이 소유권을 갖고 있었지만, SaaS는 소프트웨어가 제품이 아닌 서비스, 즉 빌려 쓰는 모델이라는 점에서 기존 라이선스 모델과는 확연히 구분된다. SaaS는 기업이 새로운 소프트웨어 기능을 구매하는 데 드는 비용을 대폭 줄여 주며, 일정 기간 동안 사용량 기반으로 비용을 지급함으로써 인프라 투자와 관리 부담을 피할 수 있게 한다. 대표적인 것으로 세일즈포스닷컴(Salesforce.com)을 들 수 있다.


PaaS의 목적: IaaS와 함께 사용자가 소프트웨어를 개발할 수 있는 클라우드 컴퓨팅 플랫폼 제공.

 

클라우드 서비스에 대한 수요와 기대가 높아지면서 단순 인프라를 제공하는 것을 넘어 애플리케이션에서 필요한 다양한 기능들을 클라우드가 제공하는 추세로 발전하였다. SaaS의 개념을 개발 플랫폼에도 확장한 방식이다. 인프라만 제공되는 경우, 클라우드 사용자가 개발환경, 데이터베이스, 웹서버 등과 같은 필수적인 기능들을 직접 구축/설치해야 했으나, 이젠 공통적으로 많이 쓰이는 기능들은 클라우드가 기본적으로 제공하여 그 위에 사용자가 필요로 하는 핵심 기능만 직접 구축하는 단계로 발전했다. 클라우드의 핵심 가치가 효율적인 인프라 제공에서 다양하고 편리한 플랫폼을 제공하는 것으로 진화하게 된 것이다. 이러한 서비스 형태가 PaaS(Platform as a Service)에 해당한다.

 

서비스 사업자는 서비스형 플랫폼(PaaS)을 통해 서비스 구성품인 컴파일 언어, 웹 프로그램, 제작 툴,데이터베이스  인터페이스, 과금 모듈 등을 제공하고, 개발자는 클라우드 플랫폼상에서 데이터베이스와 애플리케이션 서버, 파일 시스템과 관련한 솔루션 등 미들웨어까지 확장된 자원을 활용하여 새로운 애플리케이션을 만들어 사용할 수 있다.

 

아마존 AWS, 마이크로소프트 애저(Azure), 구글 클라우드 플랫폼과 같은 대형 퍼블릭 클라우드 서비스가 PaaS 를 지향하는 것으로 볼 수 있다. 구체적으로, 구글사의 앱 엔진(Google App Engine) 서비스가 대표적이다.


FaaS(Functions as a Service=Serverless)의 목적: 애플리케이션 개발자에게 함수(function) 단위의 소스코드를 포함하여 애플리케이션의 개발, 실행, 관리 등에 필요한 모든 환경을 갖춘 플랫폼을 제공하는 클라우드 컴퓨팅 서비스

 

IaaS와 PaaS를 거치면서 클라우드에서 제공하는 자원을 좀 더 편리하고 신속하게 활용할 수 있게 되었다. 새로운 서비스를 시작할 때 필요한 인프라 자원을 손쉽게 획득하고, 다양한 플랫폼 기능들을 활용한 서비스 구현도 용이해 졌다. 사용자 애플리케이션이 클라우드에서 실행되는 동안 소요되는 자원에 대한 사용비용만 클라우드 서비스 제공자에게 지불하면 된다.

 

한편, FaaS 플랫폼에서는 애플리케이션 개발에 필요한 프로그램, 네트워크, 스토리지 등 기반 환경을 모두 서비스하기 때문에, 개발자는 컴퓨터 서버(가상서버, 웹서버 등)를 따로 구축하거나 운영 체계(OS), 메모리 등 자원(resource)을 추가·관리할 필요가 없다. 그리고 소스 코드를 함수(function) 단위로 제공하여 개발자는 필요한 함수를 찾아 사용하면 된다.
즉, 개발자는 FaaS에 접속하여 서비스되는 함수를 이용하여 프로그램 코드만 작성하면 된다. 이에 FaaS를 서버가 없는 컴퓨팅(serverless computing)이라고도 한다.
FaaS 이용료는 플랫폼상에서만 제공되는 함수(function) 구동(호출) 횟수 또는 시간에 따라 청구된다.
아마존 AWS(Amazon Web Services) 람다(Lambda)에서 처음 FaaS를 제공하였고, 구글 클라우드 펑션(Google Cloud functions), 마이크로소프트 애저 펑션(MicrosoftAzure Functions) 등이 FaaS를 제공한다.

 

 

 

 

본 내용 출처:

클라우드 컴퓨팅 동향 및 금융산업에서의 시사점

https://www.digieco.co.kr/KTData/Board/FILE/PDF/%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C%20%EC%BB%B4%ED%93%A8%ED%8C%85%20%EB%8F%99%ED%96%A5%20%EB%B0%8F%20%EA%B8%88%EC%9C%B5%EC%82%B0%EC%97%85%EC%97%90%EC%84%9C%EC%9D%98%20%EC%8B%9C%EC%82%AC%EC%A0%90202001081578460550894.pdf?

 

참고 자료:

TTA http://terms.tta.or.kr/main.do

 

TTA정보통신용어사전

한국정보통신기술협회(TTA)는 정보통신 기술 발전과 타 분야와의 기술 융합에 따라 무수히 생성되는 정보통신용어를 해설하고 표준화하여, 전문가뿐만 아니라 비전문가들도 올바르게 활용할 수 있도록 정보통신용어사전을 서비스하고 있습니다. PC 또는 스마트폰으로 웹에 직접 접속하시거나 모바일 앱 마켓에서 정보통신용어사전 앱을 내려 받아 이용하실 수 있습니다.

terms.tta.or.kr

필자가 쓰는 Spring에 대한 설명 방향은 Spring framework(이하, Spring)를 사용한 예제 코드를 통해 스프링의 주요 철학과 기능의 이해를 돕는 것입니다.

 

학습 포인트

  • 실제 코드를 보며 스프링 프레임워크에 대해 소개합니다. 이를 통해 스프링 프레임워크가 개발자에게 주는 가치를 이해합니다.
  • 이 내용만으로 Spring을 사용한 개발에 대한 자신감이 상승하진 않는다.

1. 강의 소개 및 프로젝트 세팅

a. 프로젝트 에러 해결

 

2. Inversion Of Control(IoC)

a. IoC 소개

b. IoC 컨테이너

c. 빈(bean)

d. 의존성 주입(Dependency Injection)

 

3. Aspect Oriedted Programming

a. AOP 소개

b. AOP 적용 예제

 

4. Portable Service Abstraction(PSA)

a. PSA 소개

b. 스프링 트랜잭션

c. 캐시

d. 웹 MVC

 

 

 

백기선 개발자의 자료를 참고하였으며, 이외에도 이름있는 사이트를 참고해 작성하여 오류를 최대한 줄이려고 노력했습니다.

#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int N, K, L;
int map[102][102];	// 1, 1부터 N, N까지 주의
int vis[102][102];
vector<pair<int, char>> infor;
int dr[4] = { -1, 0, 1, 0 };	//방향 정보 0:북 1: 동 2: 남 3: 서
int dc[4] = { 0, 1, 0, -1 };
bool fin;	//벽 부딪혔는 지 체크
int state = 1;					//방향 정보 0:북 1: 동 2: 남 3: 서
int cnt;	//초
int idx;	//방향 변환 정보 인덱스
int len = 1;
queue < pair<int, int>> tail;	//발자취 정보 : front가 꼬리
void dfs(int r, int c) {
	if (idx < L) {		// idx를 지속적으로 높이면 아래 배열 참조할 때 참조에러
		if (cnt == infor[idx].first) {
			if (infor[idx].second == 'L') {
				state = (state - 1) % 4;	// -1 % 4 = -1  (3을 의도)
				if (state < 0)				//음수일 때, 따로 처리
					state += 4;
			}
			
			else if(infor[idx].second == 'D')
				state = (state + 1) % 4;
			idx++;
		}
	}

	int nr = r + dr[state];
	int nc = c + dc[state];
	if (nr <= 0 || nc <= 0 || nr > N || nc > N || vis[nr][nc]) {	//벽 부딪치거나 자기 몸에 닿을 때
		fin = true;
		cnt++;
		return;
	}
	if (map[nr][nc] == 1) { //사과 있으면
		vis[nr][nc] = 1;	//앞으로 전진
		map[nr][nc] = 0;	//사과 먹기
		tail.push({ nr, nc });	//발자취 추가
		cnt++;				//초 증가
		len++;				//몸 길이 증가
		dfs(nr, nc);
	}
	else {	//사과 없으면(독립적이므로 if, else)

		tail.push({ nr, nc });	//발자취 추가
		if (len < tail.size()) {	// 원래 길이보다 길어진다면
			vis[tail.front().first][tail.front().second] = 0;	//꼬리 없애기
			tail.pop();		// 벡터에서 삭제
		}
		vis[nr][nc] = 1;	//앞으로 전진
		cnt++;				//초 증가
		dfs(nr, nc);
	}
}
int main() {
	cin >> N >> K;
	int a, b;
	for (int i = 0; i < K; i++) {
		cin >> a >> b;
		map[a][b] = 1;	//사과 위치
	}
	cin >> L;
	char c;
	for (int i = 0; i < L; i++) {
		cin >> a >> c;
		infor.push_back({ a, c });	// 방향 변환 정보
	}
	tail.push({ 1,1 });
	vis[1][1] = 1;
	dfs(1, 1);
	cout << cnt << endl;

}

1. 방향 변환 정보의 X는 누적된 시간

  - 초를 세면서 방향 변환 정보에서 현재 idx가 가리키는 X값과 같아지면 state를 변경

  - ※ idx 계속 더하면 if문에서 지속적으로 조건 확인하기 때문에 벡터 크기를 초과한 셀을 방문 하면 에러가 발생

 

2. 4 방향을 탐색하는 게 아니라, 상태 유지를 하면서 전진해야 함 (state변수 이용)

  - 90도 방향 전환은 +,- 와 %로 가능 (단, %가 음수를 처리하지 못하므로 음수일 땐 더하기 처리해주어야 함)

 

3. 발자취 추적은 queue 하나로 가능

  - 나아가면서 추가하고 길이 유지하면서 front로 꼬리를 자를 수 있음

컴퓨터 네트워크의 구성요소

1) 송신자: 데이터를 보내는 장치

2) 수신자: 데이터를 수신하는 장치

3) 메시지: 데이터

4) 전송 매체: 장치 사이 연결한 것

5) 프로토콜: 송신자와 수신자가 서로 데이터 통신을 하기 위한 규칙



4가지 네트워크 구성형태 개요

가장 일반적인 것은 star형이다. 허브가 네트워크 중앙에 위치하여 다른 노드들을 연결한 형태로 한 링크가 끊어져 작동하지 않아도 다른 링크들에게 영향을 주지 않는다는 장점이 있다. 

하지만 통신량이 많은 경우 전송이 지연된다는 단점이 있다.


두 번째 형태는 bus형으로 모든 노드들이 일자형의 케이블에 연결된 구조이다. 케이블에 연결된 하나의 노드가 전송을 하면 그것이 브로드캐스트가 되어 모든 노드들이 수신이 가능하다. 설치가 간단하다.

하지만 장비의 수가 많아지면 네트워크의 성능이 저하된다.


세 번째 형태는 tree형으로 제어가 간단하고 확장하기 쉽다.

하지만 병목현상이 발생할 수 있다.


마지막으로 ring형은 모든 노드들이 하나의 링에 순차적으로 연결된 것으로 구조가 단순하여 설치하기 용이하고 장애 발생 시 복구가 빠른 장점이 있다.

하지만 전체 네트워크를 사용할 수 없다는 게 단점이다.


1) star 형

- 허브가 네트워크 중앙에 위치하고 다른 모든 노드들을 연결

- 설치비용 저렴, 중압 집중적=>유지보수, 확장 용이

- 링크간 독립적 => failure 영향x, 노드 증가 용이

- 중앙 제어장치에 장애가 발생하면 네트워크 전체가 마비

- 각 노드가 중앙 허브와 연결되어야 하므로 다른 접속 형태보다 많은 케이블 연결이 필요

- 데이터 통신양 많으면 전송 지연



2) bus 형

- 모든 네트워크 노드 및 주변 장치들이 파이브와 같은 일자형 케이블에 연결된 형태

- 모든 노드는 하나의 케이블에 연결되어 있고 케이블의 시작과 끝에는 terminator 장치를 사용해 신호가 케이블로 돌아오는 것을 막음

- 하나의 노드가 데이터 전송을 하면 케이블에 연결된 다른 모든 노드에 브로드캐스트

- 연결된 노드들은 데이터의 수신측 주소를 확인하여 수신 여부를 결정

- 설치 간단, 케이블 비용 저렴

- 장비 수 많아지면 네트워크 성능 저하

- 중앙 케이블 고장나면 네트워크 전체 마비



3) tree 형

- 제어 간단, 네트워크 확장 용이

- 중앙에 트래픽이 집중되어 병목현상 발생

- 중앙 전송제어 자치가 다운되면 전체 네트워크 마비



4) ring형 

- 모든 컴퓨터를 하나의 링에 순차적으로 연결

- 하나의 노드에서 전송한 데이터는 원을 따라 한 방향으로 보내지고 수신자가 아닌 노드는 신호를 재생하여 전송하므로 bus형태와 다르게 잡음에 강하고 전송 도중 오류를 줄일 수 있음

-수신자 노드가 데이터를 수신하면 링에서 그 데이터를 제거

- 네트워크에 연결된 노드 중 하나라도 고장 나면 네트워크 전체가 마비

- 구조가 단순, 장애 발생 시 복구 빠름

- 링을 제어하는 절차가 복잡하여 새로운 장비를 연결하려면 링을 절단하고 장비를 추가해야 함

'#시스템관리 > 네트워크' 카테고리의 다른 글

04. 무선 LAN과 네트워크 연결장치  (0) 2021.07.24
3.LAN 매체와 유선 LAN  (0) 2021.07.23
2.스위칭과 다중접속 프로토콜  (0) 2021.07.23
1. 네트워크 개념  (0) 2021.04.24
VPN의 정의와 구성요소  (0) 2019.02.23

VPN : Virtual Private Network (가상 사설망)


정의: 

- 공중망(주로, 인터넷)을 통해 가상으로 구현된(확장시킨) 사설 네트워크

- 인터넷망을 전용선처럼 사용할 수 있도록 특수통신체계와 암호화기법을 제공하는 서비스


효과:

1) 기존의 공중망을 통한 가상망 구성 가능

=> 유연한 통신망 조정/관리

=>통신망 주문생산 형태 제공 가능


2) 망 구축 및 운용 경제성

=>전용회선(l/l)에 의한 사설망 구성보다 구축비용이 저렴하고 복잡함 해소


3) 자료유로운 사적인 주소지정 또는 번호계획 가능


아이디어:

- VPN 모든 회사들이 저마다 개별적으로 회선을 임차하는 것보다 공중망을 공유함으로써 비용은 낮추면서도 전용회선과 거의 동등한 서비스를 제공하려는 아이디어에서 출발



구축 시 고려사항:

- 보안성 (데이터를 암호화하는 보안기술이 뒷받침 필수)

- 상호운용성

- 확장성

- 가용성

- 성능




'#시스템관리 > 네트워크' 카테고리의 다른 글

04. 무선 LAN과 네트워크 연결장치  (0) 2021.07.24
3.LAN 매체와 유선 LAN  (0) 2021.07.23
2.스위칭과 다중접속 프로토콜  (0) 2021.07.23
1. 네트워크 개념  (0) 2021.04.24
네트워크 구성형식  (0) 2019.02.23

DAG(Direct Acyclic Graph)


- Driver program에 의해 시작된 데이터 실행 스타일은 DAG 스타일로 그래프를 작성한다.

- 여기서 정점은 RDD를 나타내며, transformation은 간선으로 표시된다.

- action이 수행될 때까지는 스파크 클러스터의 컴퓨팅 노드에서 실행 자체가 시작되지 않는다. 그럼에도 불구하고, 이 작업을 시작하기 전에 driver program은 실행 그래프(DAG)와 코드 블록(as a domain-specific script or file)을 클러스터로 보내고 컴퓨팅 노드 각각은 클러스터 매니저 노드로부터 복사본을 수신한다.

스파크에서 데이터 참조 개념을 구현한 RDD를 이해해야 새로운 컴퓨팅 패러다임을 이해할 수 있다.


결과를 먼저 말하면, RDD를 통해 대규모로 쉽게 데이터를 처리할 수 있게 됐다.


일단 생성되면 변경될 수 없으며, 실패하면 스파크 엔진이 작업을 반복하려고 시도할 것이라는 점에서 RDD는 복원력 있는 방식으로 내결함성을 제공한다.


- 일단 파티션 작업이 생성되면, RDD는 파티션을 통해 클러스터에서 자동적으로 분산된다. RDD는 또한 다른 형태로 빠르고 견고하게 변형될 수 있기 때문에 입력 데이터셋을 가지고 더많은 작업을 할 수 있게 도와준다.

-RDD는 병렬로 덤프될 수 있고, 논리적으로 상호 관련 있거나 계산상 동일한 애플리케이션에서 공유될 수 있다.



입력 RDD와 관련 작업을 하기 위해 스파크 엔진에서는 data pointer(즉 참조)와 input data 자체를 구별하는 경계선이 필요하다.

기본적으로 driver program은 데이터를 보유하지 않지만, cluster의 원격 컴퓨팅 노드에 데이터가 실제로 위치한 데이터 참조는 보유한다.


데이터 처리를 좀더 빠르고 쉽게 하기 위해 스파크는 RDD에서 수행되는 변환(transformation)과 액션(action) 이라는 두 가지 유형의 작업을 지원한다.


transformation: 기존 데이터셋에서 새로운 데이터셋을 생성한다.

action: 원격 컴퓨팅 노드에 입력 데이터셋을 연산한 후 driver program으로 값을 반환한다.




스파크가 지원하는 transformation 연산에는 두 가지 유형이 있다.

- narrow/wide transformation

narrow - : 데이터 혼합이 불필요

wide - : data shuffling의 여러 파티션에서 데이터를 공통 노드로 가져오기 위해 입력 데이터셋을 더 많이 변경해야 한다.


action은 DAG 스타일로서 실행을 트리거해 transformation으로부터 RDD 계산의 최종 결과를 driver program으로 반환한다.

하지만 이 구현된 결과는 사실 데이터 객체의 중간 변환 결과를 포함해 저장 영역에 기록되고 최종 결과를 반환한다.

+ Recent posts