“나는 왜 잠을 못 자는 지 모르겠어!”
이런 고민으로 밤을 하얗게 밝히는 사람들이 있다. 아무리 생각해도 잠이 안 올 이유가 없는데 잠을 못 자니 참으로 답답하기만 하다. 잠을 못 잘 만한 심각한 문제가 있는 것도 아닌데 잠이 안 오니 어찌해야 할 바를 모른다.

우리 주변에는 잠을 못 자는 사람들이 참 많다. 각종 걱정거리에 둘러싸여 살고 있는 주부들부터 대중들의 반응에 예민한 유명인들까지… 지위나 연령 고하를 막론하고 불면증 환자들이 차고 넘친다. 어찌 보면 잠은 몸과 마음의 평온한 정도를 측정하는 가장 민감한 잣대일지도 모른다. 몸이 아프면 통증 때문에 잠을 못 자고, 걱정거리가 있으면 그걸 생각하느라 또 잠을 자지 못한다.

불면증 환자의 전형적인 모습

불면증은 이런 저런 이유로 잠을 한 두 번 못 자면서 시작된다. 잠을 못 잔 결과, 그 다음날 업무를 제대로 못 하게 되고, 머리는 멍하고 몸은 천근만근 무거워진다. 그렇게 하루 이틀을 보내고 나면 밤이 오는 것이 두렵다. 또 못 자고 밤새 뒤척이면 어떻게 하나 하는 두려움이 생긴다. 이런 두려움이 반복되다 보면, 그 다음부터는 처음에 잠을 못 자게 한 원인이 해결되어도 잠을 못 자게 된다. 즉, 습관적으로 잠을 못 자는 상태가 되는 것이다.

잠을 못 자는 상태를 견디기가 힘들어서 불면증 환자는 스스로 여러 가지 방안을 강구해 보기도 한다. 술을 마시고 잠이 든 경험을 떠올리고 술을 마셔보기도 한다. 하지만 술은 처음에만 조금 도움이 될 뿐, 시간이 지나면 술을 마셔도 잠을 못 잔다. 다양한 민간요법을 시도해 보지만 크게 도움이 안 된다. 그래서 약국에서 수면유도제를 사먹거나 병원에서 수면제를 처방 받아 복용한다. 약을 먹으면 처음에는 잠이 온다. 그러나 약에도 내성이 생겨 더 많은 약을 먹어야 하고, 약을 먹고 자더라도 그 다음날 머리가 무겁고 기억력도 떨어진다. 그래서 이제는 약을 계속 먹어야 하나 말아야 하나 하는 고민으로 밤에 자지 못 한다. 이것이 전형적인 불면증 환자의 모습이다.

특히 불면증은 우울증, 불안증 등의 정신적인 문제와 밀접한 관련이 있다. 불면증은 정신적인 문제가 원인이 되어 생기기도 하고, 이미 있는 정신증을 더욱 악화시키기도 한다. 불면증은 우리 정신의 안정이 깨어져 있음을 나타내는 지표가 되기도 한다. 증상이 오래되면 기분도 우울해지고 잠을 못 자는 것에 대한 스트레스로 우울증, 불안증을 더 심하게 한다. 그러므로 불면 증상이 3주 이상 지속될 땐 꼭 의료진의 전문적인 도움을 받아야 한다.

불면증을 초기에 잡으려면…

불면증 초기에는 특히, 정신적 스트레스가 있는 경우에는 수면제가 도움이 된다. 수면제는 이런 경우에 단기간 사용하도록 만들어진 약이다.

그러나 불면증이 3개월 이상 오래되면 만성불면증이 된다. 이 경우 약물을 복용하는 것이 근본적인 해결책이 되지 못한다. 불면증 환자는 잠에 대해 지나친 공포를 가지고 있고 잠을 어떻게 통제해야 할 지 모르는 상태가 된 사람으로, 불면증 환자의 뇌는 잠을 자야 할 시간에 잠자는 신호를 만들어내지 못하는 것이다. 이런 경우에는 잠에 대해 환자가 가지고 있는 지나친 공포를 줄여주어야 하고, 잠을 통제할 수 있는 방법을 가르쳐 주어야 한다. 그리고 환자의 뇌가 적절한 시간에 잠이 오는 신호를 만들어낼 수 있도록 해야 한다.
이렇게 환자의 수면과 관련된 문제들을 근본적으로 바꾸어주는 치료가 불면증 인지행동치료이다. 잠과 관련된 잘못된 생각과 태도, 행동을 바꾸어주는 비약물치료이다

불면증은 초기에 잡아야 한다. 즉, 쉽게 잠들지 못할 때 이런 불면증이 만성화되어 약물치료와 인지행동치료라는 전문적인 치료를 받아야 하는 상태로 발전되지 않도록 조절하는 것이 우선이다. 불면증상이 있을 때, 스스로 노력해서 잠이 더 나빠지지 않도록 하려면 ‘수면위생(sleep hygiene)'을 잘 지키는 것이 된다. 수면위생이란 잠을 자기 위해 지켜야 할 일련의 생활습관을 말하는데, 구체적으로 다음과 같은 것들이 있다.

첫째, 카페인을 함유하고 있는 음료와 식품을 점심 이후에는 섭취하지 않는다. 불면증이 있는 사람들 중에는 낮 동안 피로감을 줄이기 위해 습관적으로 카페인을 섭취하는 경우가 있다.

둘째, 낮에 가볍게 운동하는 것이 좋다. 어느 정도 신체적 피로가 있어야 잠이 잘 오기 때문이다. 특히 몸보다 뇌를 지나치게 많이 쓰며 살아가는 현대인들은 운동을 통해 정신과 몸의 균형을 맞추는 것이 필요하다.

셋째, 잠이 오지 않는다고 술을 마시는 것은 피해야 한다. 술은 일시적으로 잠을 오게 하지만, 술이 깨면서 잠도 깬다. 결국 더 못 자게 만든다.

넷째, 잠이 오지 않을 땐 이부자리를 박차고 나와야 한다. 잠을 자지 않는 상태에서 억지로 잠자리에 오랫동안 누워있으면 수면리듬이 흐트러지면서 잠을 더 못 자게 된다. 이때 독서나 가벼운 목욕 등의 다른 활동을 해 보다가 잠이 오는 기미가 보이면 다시 잠을 청하는 것이 좋다.

다섯째, 잠들기 전에 과식하거나 물을 많이 마시는 것을 피한다. 위에 부담이 되어서 숙면을 취하기 힘들어진다.

여섯째, 낮잠을 삼간다. 수면리듬이 깨져 밤에 잠을 자는 데 방해가 될 수 있다. 꼭 낮잠을 자야 한다면 20분 정도가 적당하다.

일곱째, 낮에 야외에서 햇빛을 쬐는 것이 좋다. 밝은 빛에 노출되는 시간이 길면, 몸에서 세로토닌이라는 호르몬이 분비되어 낮 동안 완전히 깨어 있게 된다. 그 결과, 상대적으로 밤에 깊게 잠이 든다. 특히 적당한 햇볕 노출은 수면유도물질인 멜라토닌을 밤에 더 잘 분비되게 하여 숙면을 취할 수 있게 해 준다.



'이것저것 > 정보' 카테고리의 다른 글

박근혜 독방 구조  (0) 2017.10.18
서현역 스킬업 스크린야구장  (1) 2017.10.17
vert.x 란?  (0) 2017.10.11
OLED와 LCD의 차이점  (0) 2017.10.11
평창 올림픽 관람료 정리  (0) 2017.09.22


'이것저것 > 재미 & 이슈' 카테고리의 다른 글

귀여운 고양이 움짤  (0) 2017.10.25
[재미있는 사진] 남편몰래 바람피는 방법  (0) 2017.10.13
재미있는 사진  (0) 2017.10.13
재미있는 움짤[움짤모음]  (0) 2017.09.26
재미있는 사진[우울할때]  (0) 2017.09.26


내 주차 자리에 다른차 있음 그냥 다른데 대로 먼저 올라가봐야 할듯....ㅋㅋ



'이것저것 > 재미 & 이슈' 카테고리의 다른 글

귀여운 고양이 움짤  (0) 2017.10.25
다스 과연 진실은 뭘까?? 패러디  (0) 2017.10.16
재미있는 사진  (0) 2017.10.13
재미있는 움짤[움짤모음]  (0) 2017.09.26
재미있는 사진[우울할때]  (0) 2017.09.26

결혼율이 떨어지는 이유



정신 나간애


좀벌레같은것들


요즘 sns 유행이라는데요?



vert.x는 무엇이 좋은가?


vert.x는 현재 가장 뜨겁게 부상하고 있는 서버 프레임워크입니다. 모든 서버 프레임워크가 그렇듯이 고성능과 다양한 프로토콜 지원을 장점으로 내세우고 있습니다. vert.x는 여기서 한 발 더 나아가 서버 네트워크 환경을 구축하고 운영하는 환경까지도 고려하고 있습니다. 즉, vert.x는 하나의 '서버 프로세스 데몬'을 제작하는 것뿐만 아니라, 클러스터링 환경에서 동작하는 여러 서버 프로세스 데몬을 제작하는 방법에 대한 고민까지 담고 있습니다.

그렇기 때문에 vert.x가 어떤 방식으로 고성능을 내고 있는지, 어떤 네트워크 환경을 고려하고 있는지 충분히 시간을 들여 알아볼 가치가 있다고 할 수 있습니다.

vert.x의 철학

vert.x는 Node.js로부터 영향을 받은 프로젝트다. vert.x는 Node.js처럼 Event-based 프로그래밍 모델을 제공하는 서버 프레임워크다. 그렇기 때문에 vert.x의 API는 Node.js와 매우 유사하다. 둘 모두 비동기 형태의 API를 제공한다.

Node.js는 JavaScript로 만들어졌지만, vert.x는 Java로 제작되었다. 하지만 vert.x를 Node.js의 Java 버전이라고 이해하기에는 무리가 있다. vert.x가 Node.js로부터 영향을 받은 것은 사실이지만, vert.x는 Node.js와 다른 고유한 철학을 가지고 있기 때문이다.

대표적인 vert.x의 설계 철학을 정리하면 다음과 같다.

  • Polyglot - 여러 언어 지원 
    vert.x 자체는 Java로 작성되었지만, vert.x를 사용하기 위해 반드시 Java를 사용할 필요는 없다. Java나 Groovy 같이 JVM 동작을 전제로 한 언어 뿐만 아니라 Ruby나 Python, 심지어 JavaScript로도 vert.x를 이용할 수 있다. JavaScript로 꼭 서버 애플리케이션을 만들어야 한다면, Node.js만이 유일한 대안이 아니게 되는 것이다. 향후 Scala와 Closure도 지원할 계획이다.
  • Super Simple Concurrency model 
    vert.x로 서버 애플리케이션을 작성할 때, 사용자는 싱글 스레드 애플리케이션을 작성하듯 코드를 작성해도 괜찮다. vert.x는 사용자가 작성한 코드가 동일한 스레드에서만 실행됨을 보장해서 더 이상 synchronized나 volatile 같은 동기화를 위한 locking 처리를 신경 쓰지 않아도 된다. Node.js에서는 JavaScript 실행 엔진 자체가 멀티 스레드를 지원하지 않으므로 모든 CPU 코어를 활용하려면 같은 JavaScript 프로그램을 여러 개 실행해야 했다. 하지만 vert.x에서는 하나의 프로세스만 가동해도 CPU 코어 개수에 맞춰 멀티 스레드가 생성될 수 있다. 멀티 스레드와 관련된 작업은 vert.x가 하고, 사용자는 비즈니스 로직 구현에 집중할 수 있게 한 것이다.
  • Event Bus 제공 
    도입 부분에서 설명했듯이 vert.x의 목표는 '하나의 서버 프로세스 데몬'을 만드는 것에 그치지 않는다. vert.x로 만든 여러 서버 프로그램이 서로 원활하게 통신하게 하는 것까지도 목표에 두고 있다. 이를 위해 vert.x는 Event Bus를 제공한다. Point to Point나 Pub/Sub 같은 MQ 기능을 사용할 수 있다(Event Bus 기능을 제공하기 위해 vert.x는 Hazelcast라는 IMDG를 사용한다). 이런 Event Bus가 있기 때문에 서로 다른 언어로 작성된 서버 애플리케이션이 용이하게 통신할 수 있다.
  • Module System & Public Module Repository 
    vert.x에는 모듈 시스템이라는 것이 있다. 모듈 시스템은 일종의 컴포넌트로 이해할 수 있다. vert.x로 만든 서버 애플리케이션 프로젝트 자체를 모듈화한 것이다. 이런 방식으로 재사용성을 도모한다. 이렇게 만들어진 모듈은 Public Module Repository에 등록할 수 있다. Public Module Repository를 통해 모듈을 공유할 수 있는 것이다.

참고) Netty와 vert.x의 관계

vert.x의 성능을 논하기 전에 Netty와 vert.x의 관계를 정리할 필요가 있다. vert.x는 Netty를 사용한다. 즉, 다중 I/O 처리에 Netty를 사용한다. 그렇기 때문에 vert.x와 Netty의 성능 차이를 확인하는 것은 무의미하다. 
vert.x는 Netty와는 다른 독자적인 API와 기능을 제공하는 다른 목적의 서버 프레임워크다. Netty는 로우레벨 수준의 I/O를 다룰 수 있는 프레임워크고, vert.x는 그보다는 하이레벨 영역을 다룬다.

Node.js와의 성능 비교

vert.x가 제공하는 기능이 Node.js와는 다르더라도 둘 사이의 성능을 비교하는 것은 충분히 의미 있는 일이다. 그림1과 그림2는 vert.x(Java, Ruby, Groovy)와 Node.js의 성능을 비교한 자료다(출처).

그림 1은 HTTP 서버를 만들고 200/OK 응답만을 주었을 때의 성능을 비교한 결과다. 그림 2는 72 바이트 크기의 정적 HTML 파일을 응답 결과로 제공하는 경우에 성능을 비교한 결과다. vert.x 제작자가 밝힌 성능이고 스스로도 엄격한 환경에서 실시한 테스트가 아니므로 상대적인 성능 격차에만 주목하는 것이 좋을 것으로 보인다.

vert.x1

그림 1 200/OK 응답만 주었을 때의 성능 비교

vert.x2

그림 2 72바이트 크기의 정적 파일 제공 성능 비교

주목할만한 점은 Node.js보다 vert.x-JavaScript의 성능이 좋다는 것이다. 이 성능 비교 결과가 신뢰성이 매우 높다고 하더라도, 단순히 Node.js에 비해 vert.x가 낫다고 말하기는 어려울 수 있다. Node.js는 Socket.io와 같은 훌륭한 모델을 제공하고 있을 뿐만 아니라, 많은 레퍼런스를 확보하고 있기 때문이다.

vert.x 용어들

vert.x는 vert.x만의 고유 용어를 정의하거나, 일반적인 용어를 vert.x에서 다시 정의해서 사용하기도 한다. vert.x를 잘 이해하려면 vert.x가 정의한 용어를 잘 이해해야 한다. vert.x에서 사용하는 대표적인 용어를 정리해 보았다.

Verticle

vert.x에서 배치(deploy)의 기본 단위다. Java의 경우라면 main 메서드가 있는 클래스가 된다. Verticle은 또한 main 메서드에서 참조되는 다른 스크립트를 포함할 수 있다. .jar 파일이나 리소스를 포함할 수 있다. 애플리케이션은 하나의 Verticle로 이루어질 수도 있고, event bus를 통해 서로 통신하는 여러 개의 Verticle로 이루어질 수도 있다. Java로 생각하면 독립적으로 실행 가능한 Class 또는 .jar 파일로 이해할 수 있겠다.

vert.x 인스턴스

Verticle은 vert.x 인스턴스 안에서 실행되고, vert.x 인스턴스는 자신의 JVM 인스턴스 안에서 실행된다. 단일 vert.x 인스턴스 안에서는 동시에 실행되는 많은 Verticle이 존재할 수 있다. 각각의 Verticle은 고유의 클래스 로더를 가질 수 있다. 이로 인해 Verticle 간에 스태틱 멤버, 글로벌 변수 등을 통한 직접적인 상호작용을 막을 수 있다. 네트워크상의 여러 호스트에서 동시에 많은 vert.x 인스턴스가 실행될 수 있고 event bus를 형성해서 vert.x 인스턴스 간에 클러스터링되도록 설정할 수 있다.

동시성(concurrency)

Verticle 인스턴스는 항상 동일한 스레드에서 실행됨이 보장된다. 모든 코드를 단일 스레드 동작 형태로 개발할 수 있기 때문에, vert.x를 사용하는 개발자에게 개발하기 편한 환경을 제공하는 것이라 할 수 있다. 게다가 레이스 컨디션이나 데드락이 발생하지 않게 할 수도 있다.

Event-based Programming Model

vert.x는 Node.js 프레임워크와 비슷하게 Event-based 프로그래밍 모델을 제공한다. vert.x로 서버 프로그래밍을 할 때 개발해야 하는 코드의 대부분은 이벤트 핸들러에 관한 것이다. 예를 들어, TCP 소켓으로부터 데이터를 수신하기 위해 핸들러를 설정하는 것이나 데이터가 도착할 때 호출될 핸들러를 제작하는 것이다. 이외에도 'Event bus에서 메시지를 수신할 때', 'HTTP 메시지를 수신할 때', '커넥션이 종료되었을 때', '타이머가 종료 되었을 때' 알림을 받기 원한다면 핸들러를 작성하면 된다.

Event Loops

vert.x 인스턴스는 내부적으로 스레드 풀을 관리한다. vert.x는 가급적 스레드 풀의 개수를 CPU 코어 수와 일치할 수 있게 한다.

그리고 이 각각의 스레드에서는 Event Loop를 실행한다. Event Loop란 확인해야 할 이벤트를 루프(loop)를 돌면서 확인하는 것이다. 가령 소켓에 읽을 데이터가 있거나, 어떤 타이머에 이벤트가 발생했는지 확인하는 것과 같은 것들이다. 루프를 돌다가 처리해야 할 이벤트가 있다면, 해당 핸들러를 호출하는 방식으로 vert.x가 동작한다(물론 이때 핸들러 처리 시간이 길다거나 블로킹 I/O가 있다거나 할 때는 별도의 작업이 필요하다. 다음 게시글에서 소개할 예정이다.).

Message Passing

Verticle 간의 통신은 Event Bus를 이용한다. Verticle을 actor라고 생각하면, Message Passing은 Erlang 프로그래밍 언어에서 유명해진 actor 모델과 유사하다. vert.x 서버에서는 많은 Verticle 인스턴스 생성 및 이들 간의 message passing을 통해 Verticle 코드에 대한 멀티 스레드 실행이 없이도 사용 가능한 코어에 맞게 시스템 확장이 가능하다.

Shared data

Message passing이 매우 유용하긴 하지만 모든 종류의 애플리케이션 동시성 상황에서 최고의 접근 방법은 아니다. 캐시가 대표적인 예다. 어떤 캐시를 어느 하나의 Verticle만 가지고 있다면 매우 비효율적이 된다. 이 캐시가 다른 Verticle에도 필요한 내용이라면 Verticle이 각각 같은 내용의 캐시 데이터를 관리하여야 하기 때문이다.

그렇기 때문에 vert.x는 전역에서 접근할 수 있는 방법을 제공한다. 바로 Shared Map이다. 그리고 Verticle 사이에서는 오직 불변(immutable) 데이터만 공유되게 하고 있다.

vert.x Core

이름 그대로 vert.x의 핵심 기능이다. Verticle에서 직접적으로 호출될 수 있는 기능은 모두 이 Core에 담겨있다. 당연하게 이 Core는 vert.x가 지원하는 프로그래밍 언어 API에서 접근할 수 있다.

vert.x 아키텍처

vert.x의 대략적인 아키텍처는 다음 그림과 같다.

vert.x3

그림 3 vert.x 아키텍처(원본 출처)

vert.x의 기본 실행 단위는 Verticle이고 동시에 여러 Verticle이 하나의 vert.x 인스턴스에서 실행될 수 있다. Verticle은 Event-Loop 스레드에서 실행된다. 하나의 호스트는 물론 네트워크상의 다른 여러 호스트에서 여러 vert.x 인스턴스가 실행될 수 있는데, 이때 Verticle이나 Module 간에는 Event Bus를 통해 통신할 수 있다.

요약하면, vert.x 애플리케이션은 Verticle 또는 Module 의 조합으로 이루어지며 이들 간의 통신은 Event Bus를 사용한다.

vert.x 프로젝트 구조

다음 그림은 github의 vert.x 페이지에서 소스 코드를 복제(clone)해 Eclipse에서 본 vert.x 프로젝트 구조다.

vert.x4

그림 4 vert.x 소스 트리

전체적인 구성을 살펴보면 다음과 같다.

  • 핵심 library인 vertx-core
  • 배포 및 라이프사이클을 관리하는 vertx-platform
  • Core Java API를 다른 언어로 노출하는 vert-lang

프로젝트 빌드(build) 시스템으로는 Ant와 Maven의 장점을 갖췄다는 Gradle를 사용한다.

vert.x 설치 및 간단한 예제 실행

vert.x를 사용하려면 반드시 JDK7이 필요하다. vert.x는 JDK7에 있는 invokeDynamic을 사용하기 때문이다.

vert.x는 매우 간단하게 설치할 수 있다. https://github.com/purplefox/vert.x/downloads 에서 압축된 설치 파일을 원하는 위치에 다운로드해 압축을 푼 다음, bin 디렉터리를 PATH 환경 변수에 추가하면 설치를 완료할 수 있다. 커맨드 창에서 vertx version을 실행해 버전 정보가 제대로 나오면 설치가 성공한 것이다.

이제는 "Hello World!"를 출력하는 간단한 웹 서버를 JavaScript로 작성하고 실행해 보자. 다음과 같이 코드를 작성한 후 server.js로 저장한다. Node.js 코드와 거의 흡사한 형식이다.

load('vertx.js');

vertx.createHttpServer().requestHandler(function(req) {  
    req.response.end("Hello World!");
}).listen(8080, 'localhost');

생성한 server.js 애플리케이션을 다음과 같이 vert.x 명령어로 실행한다.

%> vertx run server.js

브라우저를 열고 http://localhost:8080 에 접속해 "Hello World!" 메시지를 볼 수 있으면 성공이다.

다른 언어로 작성 된 예제를 살펴보자. 다음은 Java로 작성한 예제다. 정적 파일을 읽어 HTTP 응답으로 제공하는 웹 서버를 작성해 본 것이다.

Vertx vertx = Vertx.newVertx();  
vertx.createHttpServer().requestHandler(new Handler() {  
    public void handle(HttpServerRequest req) {
        String file = req.path.equals("/") ? "index.html" : req.path;
        req.response.sendFile("webroot/" + file);
    }
}).listen(8080);

다음은 Groovy로 작성한 코드로 앞의 Java로 작성한 예제와 같은 기능을 한다.

def vertx = Vertx.newVertx()  
vertx.createHttpServer().requestHandler { req ->  
    def file = req.uri == "/" ? "index.html" : req.uri
    req.response.sendFile "webroot/$file"
}.listen(8080)

NHN과 vert.x

NHN의 플랫폼 개발 부서에는 vert.x가 정식으로 릴리스되기 전부터 개발 과정을 지켜보고 있었다. vert.x의 가능성을 높이 샀기 때문이다. 그리고 2012년 6월부터 메인 개발자인 Tim Fox와 교류하여 vert.x를 발전시켜 나갈 수 있도록 논의를 진행하고 있다. 예를 들어, Socket.io는 Node.js에서만 사용할 수 있었는데, 이를 vert.x에서도 Java로 사용할 수 있게 포팅 작업을 진행했고 현재 개발이 완료된 상태다. 다음은 github의 vert.x 레파지토리에 있는 pull request 요청 링크다.

산출물인 socket.io vert.x 모듈은 현재 개발 중인 RTCS 2.0 버전(vert.x + Socket.io)에 사용될 예정이다.

Node.js가 지금처럼 활성화된 것은 Socket.io 덕분이었는데, vert.x에서 Socket.io를 사용할 수 있다면 vert.x 또한 많은 사용 사례가 생길 것으로 예상한다. 또한 이 socket.io vertx 모듈을 임베디드 라이브러리 형태로 사용하면 Java 기반의 애플리케이션에서도 socket.io를 사용할 수 있게 된다는 점에서 의미가 있다 하겠다.

참고) RTCS 란?

RTCS(Real Time Communication System)는 NHN의 Real Time Web 개발 플랫폼으로, 브라우저와 서버 간에 실시간으로 메시지를 전달할 수 있게 도와주는 플랫폼이다. RTCS는 현재 야구9단, 미투데이 채팅, 밴드(BAND) 채팅에 적용되어 있다.

마치며

vert.x는 2012년 5월에 첫 버전이 나왔다. 2009년에 첫 버전이 나온 Node.js에 비하면 역사가 매우 짧다고 할 수 있다. 그렇기 때문에 아직 레퍼런스가 많지 않다. 하지만 vert.x는 VMware의 든든한 후원을 받고 있고 Cloud Foundry에서 구동할 수 있기 때문에, 앞으로 많은 레퍼런스가 확보될 것으로 보인다.

출처 : http://d2.naver.com/helloworld/163784

'이것저것 > 정보' 카테고리의 다른 글

서현역 스킬업 스크린야구장  (1) 2017.10.17
불면증 극복  (0) 2017.10.17
OLED와 LCD의 차이점  (0) 2017.10.11
평창 올림픽 관람료 정리  (0) 2017.09.22
원두 종류 10가지  (0) 2017.09.08

OLED와 LCD의 차이점 
이전 아이폰과 새로운 아이폰 8과 8 플러스에서 사용된 것과 같은 LCD 화면은 화면이 켜져 있을 때마다 일정한 흰색 조명을 생성하는, 화면 자체 크기만큼의 패널인 백라이트를 기반으로 제작된다.

일련의 편광판과 필터가 백라이트 앞에 겹쳐져 빛을 제어하고 화면에 표시되는 이미지를 생성한다. 거의 20년 동안 평면 패널 디스플레이를 지배해 온 기술이지만 백라이트를 유지하는 데에는 많은 전력이 필요한데, 이는 휴대용 기기에서 결정적인 단점으로 작용한다.

반면 OLED는 백라이트를 완전히 없앴다. 각각의 개별 픽셀에는 전류가 흐를 때 형광을 발산하는 극소량의 유기 물질이 있어 픽셀이 직접 빛을 생성한다. 또한 픽셀 단위로 밝기를 제어할 수도 있다.

OLED의 이점 
디스플레이는 일반적으로 백라이트로 인해 전화기에서 가장 많은 전력을 소비하는 구성 요소다. 이를 제거함으로써 아이폰은 더 많은 전력을 효율적으로 사용할 수 있게 됨에 따라 사용자에게는 아주 좋은 소식이다.

소비 전력 절감이 OLED의 유일한 이점이 아니다. 백라이트를 제거하면 전체 디스플레이 모듈이 더 얇아지게 되는데, 이는 스마트폰에서 아주 중요한 사항이다. 애플은 여분의 공간을 사용해 하드웨어 자체를 더 얇게 만들거나 좀 더 많은 배터리 용량을 추가할 수 있다.

중요한 것은 이미지인데, OLED는 생동감 있는 색상을 표현하고 검정색은 더 짙어지고 흰색은 더 밝아졌으며, 명암비가 높아져 대부분의 사람들이 LCD보다 월등함을 느낄 수 있다.

원문보기: 
http://www.itworld.co.kr/news/106373#csidxbc64714cc4f41b4af001011e8bdee62 

'이것저것 > 정보' 카테고리의 다른 글

불면증 극복  (0) 2017.10.17
vert.x 란?  (0) 2017.10.11
평창 올림픽 관람료 정리  (0) 2017.09.22
원두 종류 10가지  (0) 2017.09.08
[iphone8] 아이폰8 스펙  (0) 2017.09.07




















'이것저것 > 재미 & 이슈' 카테고리의 다른 글

재미있는 사진  (0) 2017.10.13
재미있는 움짤[움짤모음]  (0) 2017.09.26
[최신] 재미있는 사진 ^^  (0) 2017.09.22
재미난 사진 이것저것~  (0) 2017.09.22
재미있는 움짤 모음  (0) 2017.09.22

평창 올림픽 입장료 라고 하네요.....가격이 후덜덜하네요...

서민들은 구경하지 말라는 거죠?????








'이것저것 > 정보' 카테고리의 다른 글

vert.x 란?  (0) 2017.10.11
OLED와 LCD의 차이점  (0) 2017.10.11
원두 종류 10가지  (0) 2017.09.08
[iphone8] 아이폰8 스펙  (0) 2017.09.07
자동차 리스 렌트 구매 비교  (0) 2017.09.07


'이것저것 > 재미 & 이슈' 카테고리의 다른 글

재미있는 사진  (0) 2017.10.13
재미있는 움짤[움짤모음]  (0) 2017.09.26
재미있는 사진[우울할때]  (0) 2017.09.26
재미난 사진 이것저것~  (0) 2017.09.22
재미있는 움짤 모음  (0) 2017.09.22

+ Recent posts