« Previous : 1 : 2 : 3 : 4 : 5 : ... 35 : Next »

의료 영상 분석의 개요



4차 산업혁명 시대에서 인공지능은 다양한 분야에서 쓰이고 있고, 그중 의료 영역 내에서도 적용 범위가 확대되어 가고 있습니다. 영상 이미지로 정상 유무를 판정하거나 병리 영상 데이터 분석에 쓰이는 판독보조, 음성 인식 의무기록이나 생체 신호 모니터링과 같은 진료보조, 유전체 데이터 분석 기반의 신약개발 등 인공 지능 기반의 의료 진단 기술이 개발되고 있으며, 특히 의료 영상 판독 분야에서 인공지능이 매우 유용하게 쓰이고 있습니다.
 
병원에서 다루어지는 영상 이미지는 모두 디지털 이미지로, 영상의학과 전문의들이 이 디지털 이미지를 직접 보며 판단하는 아날로그적 방식에 인공지능이 들어오면서 영상 판독 시간이 5분에서 20초로 줄어들거나 두 명 중 한 명의 전문의를 대체할 수 있는 수준에 이르게 되었습니다.
이런 의료 영상 분석의 발전을 가능하게 만든 핵심 요소는 의료 영상 처리 기술과 딥러닝입니다. 딥러닝의 적용은 기존에 사용해오던 기계학습의 효율을 넘어 전문의에 따르거나 이를 넘어서는 결과들이 등장하면서 큰 반향을 일으킨 바가 있습니다.
이번 글에서는 본격적으로 의료 영상 분석을 하기에 앞서 일반 영상과 달리 의료 영상이 가지는 특성들을 알아보고, 의료 영상 처리 및 분석 기술에 대해 전반적으로 알아보며 워밍업을 해보도록 하겠습니다.



Image Acquisition


우선 이미지를 얻는 원리에 대해서 간단히 알아봅시다.
카메라의 기본 원리는 Light source로부터 빛을 쏘아서 어떤 물체에 닿으면 특정 빛이 반사되고, 이 반사된 빛을 센서로 취득해서 전기신호로 바꿔주면 명암차이로 영상이 만들어지게 됩니다. 카메라는 light source가 가시광선이고 이를 취득할 수 있는 CCD, CMOS 센서를 쓰는 데 반해, 적외선을 쏘고 이를 detection 할 수 있는 센서를 놓으면 적외선 카메라, X-ray 신호를 주고 이를 detection 할 수 있는 센서를 놓으면 X-ray 시스템이 됩니다.


[Fig. 1] Electromagnetic spectrum
 

그럼 light source에 따른 다양한 의료 영상 데이터에 대해 살펴보겠습니다.

가시광선을 이용한 의료 영상 :

  • Endoscopy (내시경) : 위, 장 내시경 검사 시 사용하는 것으로, 내시경 앞부분에 light source와 CCD 센서가 모두 있어서 영상으로 보여줍니다.
  • Microscopy (현미경) : 조직 검사 시 현미경의 접안렌즈, 대물렌즈를 이용해 작은 물체를 크게 확대해서 보여줍니다.

방사선을 이용한 의료 영상 :

  • X-ray : X-tube에서 light source를 내보내고 몸을 통과하는데, 각 부위 조직의 투과된 x-ray intensity 차이로 영상을 만들어냅니다.
  • CT (Computed Tomography) : 인체의 단면 주위를 돌며 다각도에서 x-ray 영상을 찍고, 여러 장의 2D x-ray 이미지를 합쳐 한 장의 3D 영상 이미지로 만듭니다. 수 초 내로 짧은 시간 안에 3D 영상을 얻을 수 있지만, 방사선에 노출되고 조영제를 사용하여 몸 밖으로 배출이 잘 안 될 수 있다는 것이 단점입니다
  • PET (positron emission tomography) : 양전자를 방출하는 방사성 의약품(방사성 포도당)을 몸에 주입 후, 인체의 360도에서 이를 detection 후, 3D 영상 이미지로 만듭니다. 포도당 대사는 암세포에서 비정상적으로 높으므로 PET에서 밝게 나와 암 조기진단에 유용하게 쓰입니다. 신진대사를 볼 수 있어 조기진단이 가능하지만, 방사선을 몸에 주입하고 비싸다는 단점이 있습니다.

자기장을 이용한 의료 영상 :

  • MRI (Magnetic Resonance Imaging) : light source는 아니지만, 자기장을 걸어주어 몸 안의 수소 원자들이 근육, 지방 등 tissue에 따라 도는 속도의 차이를 바탕으로 3D 영상을 만듭니다. 방사선 노출이 없어 몸에 유해하지 않고, brain처럼 soft tissue들을 잘 구분해서 볼 수 있으나, 비싸고, 찍을 때 소음이 나며, 영상을 얻는 데 시간이 오래 걸리는 단점이 있습니다.

이 밖에 심장, 태아 검사를 위한 초음파나 망막 단층검사를 하기 위한 근적외선을 이용한 영상 등이 있습니다.


Digital Image Acquisition

이렇게 찍은 영상들은 디지털화를 하는데요, 격자로 쪼개서 화소들의 이차원 배열로 표현하는 sampling, 각 화소의 컬러 범위를 결정하는 quantization을 거칩니다.

[Fig. 2] Digital image acquisition process

이때, 디지털화된 이미지는 다음의 요소들로 표현합니다.

  • Resolution : Sampling이 이루어지는 매트릭스 갯수 (이미지 사이즈)
  • Intensity : 각 sampling point (2D에서는 pixel, 3D에서는 voxel) 에서의 값
  • Gray level : quantization의 단계 (보통 0~255까지 256레벨)
 
 

 
PACS (Picture Archiving and Communication System)

그렇다면 이 디지털 이미지가 병원 시스템에서 어떻게 동작할까요? 영상 장비에서 얻은 디지털 의료 영상 이미지는 병원의 PACS 서버로 전송되고, 의사들이 client system을 이용해서 영상을 띄워서 봅니다.
 

[Fig. 3] PACS system

여기서 PACS는 의료 영상 저장 전송 시스템을 말하며, 디지털 영상 이미지를 DICOM이라는 국제표준 규약에 맞게 저장, 가공, 전송하는 시스템입니다. DICOM으로 저장될 때 판독결과와 진료기록이 추가될 수 있고, 네트워크를 통해서 병원 내외의 단말로 전송할 수 있습니다.

DICOM (Digital Imaging and Communications in Medicine)

그럼 의료 영상을 다루기 위해 DICOM에 대해 더 살펴보겠습니다. DICOM은 의료용 기기에서 디지털 영상 표현과 통신에 사용되는 표준을 총칭하는 말로 북미방사선학회(RSNA)에서 1990년대에 정한 국제 표준입니다. 의료 빅데이터를 분석할 때 데이터를 표준화하고 정제하는 것이 어려운데, 여러 분야 중 그나마 영상 분석이 수월한 것은 이 DICOM 국제 규약에 의해 표준화 돼있기 때문일 것입니다.
하나의 DICOM single format (.dcm)은 기본적으로 header와 image 정보가 있습니다.

  • Header
    • header에는 태그별로 환자 정보, 영상 취득 날짜 등 부가적인 meta 정보를 담고 있습니다. 주로 참고할 만한 태그로 (0008,~)에는 modality 및 study에 대한 정보, (0010,~)에는 환자 정보, (0028,~)은 dimensions 및 scale 등 이미지 정보들을 담고 있습니다.
    • (0028,~) 이미지 정보 예시로는 3차원 이미지의 x,y,z가 몇 개의 voxel로 구성되어 있는지 나타내는 dimensions, 한 voxel의 x,y,z가 각각 몇 mm인지 나타내는 voxel spacing, 영상마다 보기에 최적화된 pixel 범위 기준인 window center, window width 등이 있습니다.
    • 이 header 정보들은 이미지에서 필요부분을 추출할 때 기준방향과 pixel 및 voxel의 실제크기 등 변환 연산에 필요한 정보로 이용되고, 이런 정보들을 바탕으로 이미지들의 voxel spacing을 맞춰야 유의미한 분석이 됩니다.


[Fig. 4] 프리웨어인 Sante DICOM Viewer 프로그램을 이용하여 본 한 장의 DICOM 파일의 header 정보


  • Image data
    • 압축된 비트맵(bitmap) 또는 압축되지 않은 형식(jpeg, gif..)의 이미지 정보를 담고 있습니다. 이미지 매트릭스에 한 pixel마다 intensity 값이 있습니다.
 



[Fig. 5] 프리웨어인 Sante DICOM Viewer 프로그램을 이용하여 본 한 장의 DICOM 파일 이미지



이외에 Nifti (nii) 등 다른 포맷들이 있는데, 파일이 두 개로 나누어져 있는 경우 영상 정보와 헤더 정보가 따로 있습니다. (예시: Analyze (hdr/img), Raw data (mhd/raw))

 


 
의료영상을 시각화하여 확인하기 위해서는 다음과 같은 도구를 이용합니다. 간단한 사용방법과 직관적인 사용자 Interface를 갖고 있는 Sante DICOM Viewer, segmentation을 잘 그려주는 것이 장점인 ITK-snap, 병리 영상 분석에 최적화된 Qupath, 이 밖에 MITK, MRICron, 3D Sicer, ImageJ 등을 활용합니다.
 


[Fig. 6] ITK-SNAP 을 이용한 brain MRI
 
그림과 같이 ITK-SNAP를 이용했을 때 3차원 상에서 이미지를 보고 헤더 정보도 별도로 확인할 수 있습니다. Contrast를 조절해서 특정 영역만 보는 등 기본적인 이미지 프로세싱을 서포트하고, 원하는 영역을 segmentation 해서 여러 장을 그리면 쌓아서 3D volume 이미지로 볼 수 있습니다.

3D 영상은 3가지 방향에서 볼 수 있는데, top-down 방식의 axial 뷰, 몸을 left-right로 나누는 sagittal 뷰, anterior-posterior로 나누는 coronal 뷰가 있습니다.
 

[Fig. 7] Image reconstruction planes


 
 
의료 영상은 일반 영상과 확실히 다른 특징들을 보입니다. 그러므로 분석 시 고려해야 할 사항들이 있는데요, 몇 가지를 나열해 보자면 다음과 같습니다.
의료 영상은 대량의 데이터를 얻기 힘들고, 지도학습에 필요한 레이블 정보를 얻는 것은 더욱 어렵습니다. PACS 시스템을 이용해서 병원마다 많은 영상 데이터는 있지만, 제도적, 사회적 이슈로 인해 데이터 접근이 쉽지 않고, 병변의 위치를 레이블링하는 것도 숙련된 전문의의 판독이 필요한데 PACS에서 얻는 영상들은 레이블링이 되어있지 않은 경우가 많으므로 필요한 데이터 자원을 최소화하면서 좋은 성능을 기대할 수 있는 방법론의 개발이 중요합니다.
또한, 3D 영상이 많고 영상의 크기가 상당히 큽니다. 2015년 이미지넷 대회에서 1위를 차지한 영상 분류에서 기준 영상은 짧은 변 기준으로 최대 640픽셀 크기를 입력으로 받았는데, 흉부 X ray영상은 한 변이 2,000픽셀 이상이고 유방촬영영상은 4,000픽셀이 넘으며, 병리 영상은 10만 픽셀보다 큰 경우가 대부분입니다. 연산 능력을 감당할 수 있는 환경이 필요한 것뿐만 아니라 이를 효율적으로 처리할 수 있는 알고리즘의 개발이 필요합니다. 그리고 객체의 크기가 상대적으로 굉장히 작은 경우가 많기 때문에 이를 잘 검출할 수 있는 기술도 필요로 합니다.
이 밖에 같은 질병의 같은 조직 영상이라도 나이에 대한 보정이 필요하고, 영상 이미지 외에도 성별, 흡연, 음주여부 등의 기타 정보들을 분류 분석에 사용하기도 합니다.
 
 

 
의료 영상 데이터를 이용한 여러 분석 중 4가지 문제를 간단히 살펴보겠습니다.
Classification
전형적인 computer vision 문제로, 영상 이미지를 보고 정상인지 환자인지 분류합니다. 보통 의료 영상 분석은 분류하는 것이 주목적입니다.
Segmentation
영상에서 organ(장기)나 nodule(결절)과 같이 관심 있는 특정 영역을 추출합니다. intensity값으로만 구분하는 thresholding, 시작점과 비슷한 값을 assign해 나가는 “seeded” region growing 등 다양한 방법이 있습니다.
Enhancement
영상에 noise가 있거나 해상도가 낮은 경우 영상 퀄리티를 높이는 방법입니다. Intensity의 분포를 가지고 value를 바꿔주는 histogram processing, pixel 주변을 보고 블러를 통해 노이즈를 감소하는 smoothing 및 영상의 edge 부분을 강조하는 sharpening과 같은 spatial filtering이 있습니다.
Registration
각기 다른 영상들을 모았을 때 비교할 수 있게 잘 맞춰주는 방법입니다. 파노라마나 시차를 두고 영상을 취득했을 때 이미지를 합침으로 이미지가 이어진다거나 차이점을 볼 수 있게 하는 방식입니다.
 
 

 
의료 영상 분석을 위해서 기계학습은 지난 몇십 년간 매우 유용하게 사용됐고, 가장 보편적인 용도 중 하나가 병변 또는 장기와 같은 대상을 병변 또는 비병변, 악성 또는 양성종양처럼 특정 부류로 분류하는 것이었습니다. 이때, 기계학습은 특징 입력을 통해 클래스(암 또는 비암) 분류를 위한 최적의 경계를 설정하고, 새로운 미지의 객체(병변)가 속한 클래스를 찾는 데 쓰였습니다. 마치 동그랗고 주먹보다 작은 특정 사이즈에 노란 형광 빛을 가진 특징을 가진 것이 테니스공이라고 분류하듯이요. 그런데 이것은 병을 못 찾거나 오진을 만들어내며 문제점이 많았었습니다. 이후, 딥러닝이 도입되면서부터 이미지 입력을 통해 분류 성능이 월등히 좋아지고 인간의 영상 인식 수준을 넘어서는 결과를 보이기도 하였습니다. 그냥 처음부터 테니스공 이미지를 보여주고 학습을 시키는 것이지요.
 

[Fig. 8] 딥러닝 도입 전후 기계학습
 
딥러닝이 도입된 이후 기계학습은 분할(segmentation), 수작업 특징 추출(handcrafted feature extraction) 및 특징 선택(feature selection) 단계가 필요하지 않고, 분할 오류나 비효율적인 기능을 피하면서 end-to-end 머신러닝 패러다임을 제공합니다. 이때 대표적으로 쓰이는 모델이 CNN(convolutional neural network)이고, 최근에는 GAN (generative adversarial network)도 활발하게 적용되고 있습니다. 서로 다른 영역의 영상 간의 번역이나 변환에 사용되며 시간과 비용을 단축하거나 판독의 정확도를 향상하는데도 활용이 되고 있습니다.
 
 

 
이상 의료 영상 분석을 하기 위해 기본적으로 알아야 할 배경 지식과 전반적인 개념에 대해서 살펴보았습니다. 현재 환자의 CT영상을 통해 코로나 19로 인한 폐렴 병변을 정량화하는 등 국내외에서 인공지능 기반의 많은 의료 영상 분석 소프트웨어들이 개발 및 활용되고 있습니다. 향후 의료 영상과 유전체 정보를 통합하여 분석함으로써 질병의 조기진단 및 예후 예측, 환자들의 삶의 질 향상을 가능케 하리라 봅니다. 이 글에서 딥러닝 알고리즘이나 수식 등 분석에 대해 깊이 다루지는 않았지만, 의료 영상 분석을 시작하는데 앞서 기본 내용을 이해하는 데 도움이 되길 바라며 글을 마칩니다.
 
 

 

Posted by 人Co

2020/09/27 18:26 2020/09/27 18:26
Response
No Trackback , No Comment
RSS :
https://www.insilicogen.com/blog/rss/response/358

페토의 역설


암은 우리나라 사망 원인 1위인 질병입니다. 보건복지부의 통계에 따르면 암 발생률은 꾸준히 증가하는 추세입니다. 물론, 환자의 5년 생존율도 꾸준히 증가하는 추세이고 조기 발견하는 경우 70% 이상 완치가 가능하다고 하지만, 암은 여전히 무서운 질병입니다.
 
암의 발병 원인은 다양하지만, 세포의 돌연변이 누적이 주원인인 것으로 알려졌습니다. 정상 세포는 세포 주기에 따라 일정한 기간이 지나거나 돌연변이가 누적되면 사멸하게 됩니다. 암세포의 경우 정상 세포와는 달리 누적된 돌연변이에 의해 세포로서 기능하지 못하면서도 사멸하지 않고 지속해서 증식합니다. 이 과정에서 정상 세포를 밀어내고 다른 세포들이 사용해야 할 영양분을 흡수하면서 신체에 문제를 일으킵니다. 영양분 흡수가 쉽지 않으면 자체적으로 혈관을 생성(Angiogenesis)해서 영양분을 수급하는데, 이러한 혈관은 암 전이를 쉽게 하는 역할을 하기도 합니다.
암은 세포의 돌연변이 누적으로 발병하기 때문에 이론상으로 모든 생물이 암에 걸릴 수 있습니다. 심지어 기생충에게도 암이 발병하며, 수천만 년 전 지구에 생존했던 공룡의 화석에서도 암에 걸렸던 흔적이 발견되기도 합니다.




1977년, 영국의 통계학자이자 역학자인 리차드 페토는 흥미로운 연구 결과를 발표합니다. 리차드 페토는 세포의 돌연변이 누적으로 암이 발병하는 거라면, 생물의 사이즈가 크고 수명이 길수록 암 발병률이 높을 것이라는 가설을 세웁니다.
본인의 가설을 바탕으로 실제 사람과 쥐의 암 발생률에 관한 연구를 합니다. 사람과 쥐는 세포 수는 약 1,000배, 수명은 30배 정도 차이가 나기 때문에, 암 발생률도 양의 상관관계 (positive correlation) 가 있을 것으로 예측했습니다. 그는 쥐나 사람이나 암 발생률은 비슷하다는 것을 발견함으로써 그의 가설이 틀렸음을 알게 됩니다. 이러한 현상을 발견한 페토는 이를 “페토의 역설 (Peto’s paradox)” 라고 명명합니다.
그는 이 현상을 인간이 신체 사이즈가 커지고 수명이 늘어나는 방향으로 진화하는 과정에서 암 발생을 억제하는 메커니즘 또한 함께 진화했기 때문일 것이라고 설명합니다.

[Fig. 1] 페토의 역설 요약

위 [Fig. 1] 이미지와 같이 종 내(intra-species)에서는 신체 질량이 암 발병률과 관계가 있는 것으로 보이지만, 종 간(inter-species)에서는 그렇지 않다는 것이 밝혀졌습니다. 이후 많은 연구진이 페토의 역설에 힘을 실어주는 연구 결과를 발표합니다.
 
가장 대표적인 예는 2015년에 발표된 Schiffman 연구진의 연구결과입니다. 2015년 유타 대학교의 Schiffman 교수 연구진들이 San Diego 동물원의 쥐, 코끼리 등을 포함한 36종의 포유동물을 부검해서 암에 의한 사망률을 조사합니다. 이들은 종간 신체 크기나 수명 등은 암 발병률과 통계적으로 상관관계가 없음을 발표합니다.
 

 
[Fig. 2] 36개의 포유동물의 암 발병률

위 그래프를 통해 종의 수명이나 크기는 암 발병률과 상관관계가 없음을 확인할 수 있습니다. 더불어, 암 발생률이 낮은 다른 종의 암 억제 메커니즘을 밝혀내는 연구도 활발하게 이루어지고 있습니다. 대표적으로 암 발생률이 5% 내외로 알려진 코끼리가 있습니다. 앞서 언급된 Schiffman 교수 연구진과 시카고대학교 Lynch 교수의 연구진이 2015년에 발표한 두 연구 결과에 의하면 코끼리는 암 억제 유전자로 알려진 TP53 유전자를 사람보다 더 많이 보유한 것으로 밝혀졌습니다.
 
포유류 대부분이 보유하고 있는 TP53 유전자는 사람의 경우 유전자가 하나이지만, 코끼리의 경우 20개를 가진 것으로 확인되었습니다.
TP53 유전자는 DNA가 손상된 세포의 복구나 세포자살을 유도하는 역할을 하는 것으로 알려졌습니다. 실제, Li-Fraumei syndrome(LFS) 라는 질병은 TP53 유전자 결함에 의해 발병하게 되는데, 이 환자의 경우 각종 암에 걸릴 확률이 매우 높습니다. 코끼리의 TP53 유전자의 경우 손상 세포의 복구보다는 손상 세포를 소멸시키는 메커니즘에 적극적으로 관여하는 것으로 알려졌습니다.

2018년, 시카고 대학의 Lynch 교수 연구진은 코끼리가 가지는 또 다른 항암 메커니즘을 밝혀냅니다. 코끼리에서 특이적으로 발현하는 LIA 6 라는 유전자입니다. 이 유전자도 TP53 유전자에 의해 활성화되어 DNA가 손상된 세포 사멸을 유도하는 유전자로 밝혀져 있습니다. 연구진은 이 유전자를 좀비 유전자라고 칭하는데, 수천만 년 전까지 위유전자(pseudogene)로 존재하던 LIF 유전자 중 하나인 LIF6 유전자가 진화과정 중 발생한 변이 때문에 TP53 유전자로 인해 활성화되었기 때문입니다.
 

[Fig. 3] 코끼리의 LIF6 유전자의 세포자살 유도 메커니즘

이외에도 암에 거의 걸리지 않는 것으로 알려진 벌거숭이두더지쥐나 고래 등도 주요 연구 대상 중 하나입니다. 두 종 모두 노화 정복을 위해 연구하는 연구자들 사이에서 주목받는 종이기도 합니다.
 


 
현대 의학이 발달하면서, 조기 발견 시 완치율도 높고 환자의 5년 생존율도 꾸준히 증가하고 있습니다. 하지만 현재까지 암은 여전히 무서운 질병 중 하나입니다.

일부 연구자들은 여전히 이 이론에 의문을 품고 있지만, 페토의 역설은 오늘날 암을 정복하기 위한 하나의 방향으로 받아들여지고 있습니다. 구글 자회사인 캘리코 사에서는 현재 생명연장 프로젝트에서 벌거숭이 두더지쥐에 관한 연구를 진행 중이고, 코끼리의 항암 메커니즘을 밝혀냈던 두 연구자는 이를 응용하여 코끼리의 항암 단백질을 이용한 암 치료제 개발을 위한 신생기업 기업을 세웠습니다.

사람 이외의 동물들에 대한 항암 메커니즘에 관한 연구들은 여전히 시작단계이고, 밝혀진 부분보다는 밝혀져야 할 부분들이 많겠지만, 언젠가 이 연구들이 성과를 보는 날을 기대해 봅니다.




  • Viviane Caliier, 2019, Solving Peto’s Paradox to better understand cancer. PNAS.
  • Marc Tollis et at., 2017. Peto’s Paradox: how has evolution solved the problem of cancer prevention?. BMC Biology.
  • Lisa et al., 2016. Potential Mechanisms for Cancer Resistance in Elephants and Comparative Cellular Response to DNA Damage in Humans. JAMA
  • 박수경, “[캔서앤서 A to Z] 암, 정체가 뭐지? 왜 생기는거지?”, <CANCER ANSWER>
  • 엄남석, “코끼리에게서 암 정복 길을 찾다.. ‘좀비유전자’ 규명”, <연합뉴스>

작성자 : BS실 박서우 주임개발자

Posted by 人Co

2020/09/14 00:05 2020/09/14 00:05
Response
No Trackback , No Comment
RSS :
https://www.insilicogen.com/blog/rss/response/357

 
행정안전부는 2020년 7월 30일부로 전자정부 웹사이트 품질관리 지침(행정안전부 고시 제2020-38호(2020. 7. 30., 전부개정))을 개정했습니다. 전자정부 웹사이트 품질관리를 한마디로 정의한다면 행정/공공기관의 웹사이트를 국민이 이용하고자 할 때 이용에 대한 불편을 해소하고 편리성을 높이고자 웹사이트에 대한 품질관리 원칙 및 종합적인 품질관리 기준을 마련한다고 할 수 있습니다.
 

오늘 블로그는 행정안전부 (이하, 행안부)에서 2020년 7월에 개정한 정부 웹사이트의 품질관리 원칙 및 품질관리 기준을 자세히 살펴보도록 하겠습니다.


''전자정부 웹사이트 품질관리 지침이 개정되기 이전에도 전자정부서비스 호환성 준수지침(개정 2017. 12.29.행정안전부고시제2017- 26호)(개정 2017. 12.29.행정안전부고시제2017- 26호)이 있었습니다. 이 지침의 경우, 웹표준 준수, 비표준 제거 및 웹 호환성 확보 등 다양한 웹 브라우저 이용 지원에만 내용이 집중되었습니다.

이제 사용자 이용 측면에서 더욱 현실적인 법안이 개정되었으니 행정/공공기관의 웹사이트 이용 시에 불편함 없이 더 편리하게 이용할 수 있다고 예상해 보면서 실질적으로 어떤 내용이 개정되었는지 확인해 보겠습니다.

[Fig.1] 조문별 주요 내용
(https://www.mois.go.kr/cmm/fms/FileDown.do?atchFileId=FILE_00095282LdKk50g&fileSn=0)

전자정부 웹사이트 품질관리 지침 각 조항의 주요 내용을 정리한 표입니다. 지침의 주요 내용은 크게 웹사이트 품질관리 원칙, 품질관리계획, 품질 진단 및 개선 3가지입니다. 웹표준, 호환성, 접근성, 개방성, 접속성, 편의성, 신뢰성, 유사중복방지 등 품질관리 원칙을 명시하였고, 품질관리계획을 위해 웹사이트 품질관리자를 지정하고 교육할 수 있으며, 행정기관 등은 자체 품질진단 시행, 행안부는 주요 웹사이트 품질진단 시행을 할 수 있습니다.


(기존 지침: 전자정부 서비스 호환성 준수 지침), (개정 지침: 전자정부 웹사이트 품질관리 지침)

[Fig.2] 신구조문대비 전자정부 웹사이트 품질진단 기준
(https://www.mois.go.kr/frt/bbs/type001/commonSelectBoardArticle.do;jsessionid=AQw96T0UD5HJ9fIAOCcvVtnS.node50?bbsId=BBSMSTR_000000000016&nttId=79056)

신구조문대비 전자정부 웹사이트 품질진단 기준을 정리한 표입니다. 전자정부 웹사이트 품질관리 지침 내 별표를 보면 전자정부 웹사이트 품질진단 기준이 있습니다. 이 부분은 품질관리 원칙(호환성, 접근성, 개방성, 접속성, 편의성, 효율성, 신뢰성)에 대한 진단 지표와 진단 내용을 보여주고 있습니다. 기존 지침(전자정부서비스 호환성 준수지침)에는 전자정보서비스 웹 호환성 진단표, 전자정보서비스, 전자정보서비스 모바일 웹 호환성 진단표 두 가지로만 간단하게 되어 있었는데, 더욱 상세하게 세분화하여 품질진단 기준을 마련했음을 알 수 있습니다.

이렇듯, 행정/공공기관의 웹사이트 품질관리 기준은 다양해지고 명확해져서 앞으로 국민이 사용하게 될 때는 편하게 이용할 수 있을 것 같다는 생각이 듭니다.

끝으로 정보화 사업을 수행하는 수행업체 입장에서 한 가지 의문점은, 행정/공공기관에서 나라장터에 웹사이트 구축과 관련된 사업을 공고하게 될 때 위와 같은 품질관리에 대한 요구사항이 많아질 것으로 예상하는데 품질관리 관련된 요구사항은 산출내역에 어떻게 반영되는지 궁금했습니다. 현재 소프트웨어사업 대가산정 가이드(2020. KOSA)를 보면 보정계수 산정 부분에는 품질관리에 관한 내용은 없기 때문입니다.(Fig.3. 참조) 그래서, 국내 SW사업의 품질을 향상하기 위하여 소프트웨어 대가산정 가이드에도 품질관리 지침을 반영한 가이드라인을 제시하는 것이 객관적인 대가산정을 유도하는데 도움이 될 것으로 생각합니다.

[Fig.3] SW사업 대가산정 가이드 2020 개정판(137페이지)
 
 
 
 
 

 

Posted by 人Co

2020/08/30 21:54 2020/08/30 21:54
Response
No Trackback , No Comment
RSS :
https://www.insilicogen.com/blog/rss/response/356



역사를 보면, 인류는 어떤 상황 속에서도 교육을 항상 지속하여 왔습니다.
그러한 교육에 대한 열정이 있었기에 현재의 문명을 이룰 수 있었다고 생각합니다.

COVID-19 상황이 지속되는 가운데 (주)인실리코젠은 철저한 방역지침을 준수하며, 생물정보 인재양성 프로그램을 진행하였습니다. 7월 6일부터 8월 14일까지 6주간 진행된 프로그램의 생생한 후기 함께 보겠습니다.





























작성 : 人CoINTERNSHIP 제11기 수료생
이가희, 이솔휘, 이주연, 진종현, 황성경

Posted by 人Co

2020/08/26 09:00 2020/08/26 09:00
, , , , , , , ,
Response
No Trackback , No Comment
RSS :
https://www.insilicogen.com/blog/rss/response/355

크롬 개발자도구의 숨은 팁 알아보기



웹 기반 관련 업무에 종사하시는 분들은 개발자 도구가 친숙하실거로 생각합니다. Elements 탭에서 CSS를 확인하거나 Console 탭에서 출력된 결과물을 확인하기도 합니다. 저도 웹 개발을 하면서 스크립트 디버깅을 하는 경우가 있는데 그럴 때마다 조금 불편하다는 생각을 하게 되었습니다. 그래서 개발자 도구 꿀팁에 대해 알아보게 되었고 여러분들에게 개발자 도구에서 잘 알려지지 않은 기능을 공유해보려고 합니다.
 
 

 
개발자 도구가 생소하신 분들을 위해 크롬 개발자 도구에 대해 설명하겠습니다. 구글에서 만든 웹 브라우저인 크롬에는 개발을 도와주는 다양한 도구가 기본적으로 제공되는데 이를 개발자도구라고 합니다. 웹 페이지는 많은 요소로 이루어져 있고 이 요소들은 각각 그림, 글, 입력 폼 등 다양한 형태로 존재하게 됩니다. 개발자 도구는 개발자들이 이러한 요소들을 확인하거나 디버깅할 때 자주 사용됩니다.
 

개발자 도구 실행은

  • F12
  • Ctrl + Shift + i

로 실행할 수 있고 아래 사진처럼 [도구 더보기 > 개발자 도구] 를 클릭해서 실행할 수도 있습니다.

[Fig.1] Opening DevTools from Chrome`s main menu (https://developers.google.com/web/tools/chrome-devtools/open)

개발자 도구를 실행하게 되면 여러 가지 패널이 보일 텐데 각 패널의 간략한 특징은 아래와 같습니다.

[Fig.2] DevTools screen

  • Elements : html/CSS 상태 확인
  • Console : 콘솔 (변수 정보를 확인하고 오류 메시지 표시)
  • Sources : 스크립트 디버깅 (break point 지정 및 변수 모니터링 등)
  • Network : 브라우저에서 발생하는 통신 상태
  • Performance(예전 Timeline패널) : 성능 측정
  • Memory(예전 Profiles 패널) : 메모리 사용 형태를 작성하고 누수 탐색.
  • Application(예전 Resources 패널) : 쿠키 및 스토리지 등의 내용 수집
  • Audits : 페이지를 분석하고 최적화를 위한 팁 나열
  • Security : Mixed content 이슈, 인증서 문제 등을 디버깅


 

[Fig.3] Console log

Console 패널에서 호출 결과를 확인하기 위해 위의 그림처럼 출력하는 경우가 많이 있습니다. 이때 결과로 나온 Object를 복사하고 싶다면 어떻게 할까요? 보통 그냥 drag 해서 선택한 다음 Ctrl + c, Ctrl + v 로 복사하는데 이러면 나중에 다시 정리해야 하고 결과값이 많은 Object의 경우 하나하나 펼쳐주지 않으면 [...]이 복사 될 수 있습니다. 이런 불편함을 없애주는 copy이라는 메소드가 있는데 이 메소드를 사용하면 객체가 클립보드에 저장됩니다. 하지만 변수에 담기지 않은 상태, 즉 이미 로깅된 객체는 copy에 바로 담을 수 없고 변수로 지정을 해줘야 합니다.

예시


1. 내가 지정하고 싶은 객채에 오른쪽 마우스를 클릭 후 Store as global variable 선택


 [Fig.4] Select 'Store as global variable'

2. 선택하면 global 영역에 임시 변수로 저장됨

[Fig.5] Save variable

3. 생성된 임시변수를 사용해서 copy메소드 실행

[Fig.6] Copy method

그러면 객체가 복사됩니다.

 


프론트앤드에서 데이터를 얻기 위해 백앤드로 XHR 요청을 보냅니다. 이때 내가 원하는 XHR을 한 번 더 요청하고 싶다면 새로고침을 하는 방법도 있겠지만, 더 쉬운 방법을 알려드리겠습니다.

[Fig.7] Example replay XHR

개발자 도구에서 Network 패널을 선택 후 원하는 XHR요청을 오른쪽 마우스로 클릭하면 Replay XHR이 나오는데 이를 선택하면 해당 XHR을 재요청하게 됩니다.
 
 

 
화면 일부를 캡처하는 것은 이미 여러 가지 툴들이 존재하고 있습니다. 하지만 다음 작업은 웬만한 프로그램으로는 힘듭니다.
  • 스크롤 아래 보이지 않는 부분을 포함하여 웹 페이지에 있는 모든 것의 스크린 샷
  • DOM 요소의 내용을 정확하게 캡처

이런 작업들은 운영체제에 제공되는 스크린 샷 도구로 해결할 수 없지만 개발자 도구에선 해결할 수 있습니다.

시작하기 전에 Command 메뉴를 소개하겠습니다. 리눅스에 셸(Shell)이 있듯이 크롬에는 Command 메뉴가 있습니다. Command 메뉴를 사용하면 명령어를 입력해 Chrome을 조작할 수 있습니다.

Command 메뉴는 개발자 도구를 연 후

  • Ctrl + Shift + p

를 통해 열 수 있고, 아래 버튼을 클릭하여 열 수도 있습니다.


[Fig.8] Opening command from Chrome`s main menu
 
Command 메뉴를 열게 되면 아래 그림과 같이 다양한 명령어들이 있습니다.
 

[Fig.9] Command function
 

제가 Command 메뉴를 설명해 드린 이유는 Command 명령어를 통해 스크린 샷을 할 수 있기 때문입니다.
이제 다시 본론으로 돌아와 스크린 샷에 대해 말해보겠습니다.

1. 스크린 샷 하고자 하는 웹 페이지를 엽니다. 그리고 개발자 도구를 열고 Command 메뉴를 실행합니다.

2. 그런 다음 명령어 screenshot을 입력합니다. 그러면 screenshot에 관련된 여러 명령이 아래에 나오게 됩니다.

[Fig.10] screenshot step 2

3. Capture full size screenshot을 선택하게 되면 현재 페이지의 전체 스크린 샷을 얻을 수 있습니다.

[Fig.11] screenshot 결과물

마찬가지로 DOM 요소의 스크린 샷을 만들려면 스크린 샷 도구를 사용할 수 있지만, 요소를 정확하게 캡처하는 게 쉽지 않습니다. 이때는 Capture node screenshot 명령어를 실행하면 원하는 요소만 선택하여 캡처할 수 있습니다.

1. Elements 패널에서 원하는 요소를 선택합니다.

[Fig.12] Node screenshot step 1

2. 선택한 후 Command 탭을 열어 screenshot 명령어를 입력합니다. 그중 Capture node screenshot 을 선택하면 요소가 저장됩니다.

[Fig.13] Node screenshot 결과물

 


크롬 확장프로그램인 Awesome Screenshot도 전체 스크린 샷을 지원합니다. Awesome Screenshot은 녹화, 공유, 스크린 샷 등의 기능을 제공하는 데 스크린 샷에 텍스트, 주석, 라인, 화살표 및 모양을 캡처한 이미지에 직접 추가할 수 있는 기능이 있습니다.
Awesome Screenshot을 사용하기 위해서는 우선 확장 프로그램을 추가해야 합니다. Awesone Screenshot은 https://www.awesomescreenshot.com/ 에서 무료로 추가할 수 있습니다. 추가한 뒤에는 오른쪽 위에 확장 프로그램을 선택하면 아래 메뉴가 나옵니다.

 

[Fig.14] awesome screenshot 메뉴

  • Visible Part : 현재 보이는 전체화면을 캡처
  • Full Page : 스크롤 아래 보이지 않는 부분을 포함한 전체화면 캡처
  • Selected Area : 선택한 영역을 캡처
  • Visible Part after Delay : 옵션에 따라 3초, 5초 후 캡처
  • Entire Screen & App Window : 화면 공유

  • Annotate Local & Clipboard Image : 내 컴퓨터의 이미지를 편집기로 불러옴

캡처한 뒤에는 바로 여러 도구를 추가할 수 있는 화면으로 넘어가게 됩니다. 무료로 제공되는 부분은 화살표, 도구, 텍스트 등 빨간색 상자 부분이고 등급을 업그레이드하면 노란색 상자 부분의 도구들을 사용할 수 있습니다.

[Fig.15] awesome screenshot 도구

확장 프로그램을 추가하고 싶지 않으신 분, 요소 캡처를 원하시는 분께는 개발자 도구를 이용하는 걸 추천해 드리고 시간 지연 옵션을 원하시는 분, 캡처 후 여러 가지 모양을 직접 추가하시고 싶으신 분들에게는 Awesome Screenshot을 추천해 드립니다.

 


크롬 개발자 도구에서 디버깅을 하다 보면 특정 위치로 이동하기 위해 원하는 위치에 breakpoint를 설정하고 next로 넘어가는 경우가 많이 있습니다. 긴 함수에서도 여러 값을 보기 위해 이러한 방법을 사용하는데 이런 경우 나중에 원치 않아도 걸리게 되어 시간이 지체되고 다시 해체해야 하는 번거로움이 있습니다. 이때 사용하는 기능이 Continue to here입니다. 디버깅 중 원하는 코드 위에 마우스 오른쪽 버튼을 클릭하면 Continue to here 이 있는데 이 기능을 사용하면 breakpoint를 설정하지 않아도 원하는 위치로 이동할 수 있어서 나중에 breakpoint에 걸리지 않고 다시 해체할 필요도 없습니다. 다만 breakpoint가 걸린 함수 내에서만 이동할 수 있습니다.

[Fig.16] Continue to here

만약 특정 이벤트가 발생하는 시점에 호출되는 함수를 알 수 있다면?? 아마 좀 더 디버깅을 쉽게 할 수 있을 것입니다. 개발자 도구에서는 이렇게 이벤트가 발생하는 시점에 break point를 걸 수 있는 기능을 제공하는데 이게 바로 Source 패널에 있는 Event Listener Breakpoints입니다.

[Fig.17] Event Listener Breakpoints

위와 같이 click을 선택하면 click 이벤트가 발생하였을 때 해당 함수에 break point가 걸리게 됩니다. 하지만 문제는 대부분 라이브러리를 사용하기 때문에 아래와 같이 라이브러리 코드에서 멈추게 되는데


[Fig.18] debug

그러면 next 버튼을 계속 눌러줘야 하는 번거로움이 있습니다. 이때 원하는 파일을 디버깅에서 제외하는 기능이 Blackbox입니다. 설정 > Blackboxing > Add pattern... 을 눌러 라이브러리를 등록하게 되면 디버깅을 할 때 해당 라이브러리 코드는 디버깅 대상에서 제외되게 됩니다.


[Fig.19] Framework Blackboxing





이번엔 console 명령어에 대해 알아보겠습니다. 저를 포함한 많은 분께서 console.log()를 가장 많이 사용하실 텐데 console에는 다양한 명령어가 존재하고 있습니다. 이 글에서는 배열을 table로 console 창에 보여주는 법을 알려드리겠습니다. Console창에 console.table([배열객체]) 혹은 table([배열객체]) 를 해주시면 됩니다. 그러면 아래와 같이 예쁘게 결과가 나오게 됩니다.


[Fig.20] console.table()

이미 Console 창에 출력된 결과를 table로 보여주고 싶다면 앞서 알려드린 방법처럼 global 변수에 담은 뒤 사용하시면 됩니다.




Elements 패널에서 간단하게 CSS를 수정해본 경험 다들 있으실 겁니다 개발자 도구에서는 스타일을 쉽게 테스트하기 위해 Elements 패널에서 CSS 수정뿐만 아니라 가상 클래스를 작동시켜 테스트할 수 있습니다. Element 패널에 styles 아래 :hov를 클릭하면 여러 이벤트가 있는데 각각의 이벤트마다 적용된 CSS를 확인, 수정할 수 있습니다.



[Fig.21] Trigger class

또 CSS 스타일을 디버깅할 때, 요소를 숨겨야 할 때도 간혹 있습니다. 이때는 요소를 선택한 뒤 키보드의 H 키를 누르면 요소를 빠르게 숨길 수 있습니다.
 

[Fig.22] ‘H키를 이용한 빠른 요소 숨기기 예시

크롬 개발자 도구의 흰 바탕색이 소스 보기 부담스럽고 눈이 쉽게 피로해지는 분들 있으실 겁니다. 이를 위해 크롬에서는 색상 반전 기능을 제공하고 있습니다.

1. 개발자 도구를 열어 설정을 실행합니다.

[Fig.23] 개발자도구 설정메뉴

2. Performances 메뉴를 선택 후 Appearance 아래에 Theme을 Dark로 변경합니다.

[Fig.24] Theme 변경

3. 다음과 같이 Dark Theme로 변경됩니다.

[Fig.25] Dark Theme

또 Dock의 위치를 원하는 곳으로 변경할 수 있는데 분리, 왼쪽, 아래쪽, 오른쪽 순으로 변경할 수 있습니다. 저는 듀얼모니터를 쓸 때 개발자 모드를 분리해서 사용하곤 하는데 여러분들은 개발하는 화면에 맞게, 취향이나 편의에 따라 원하는 Dock 위치를 바꿔가며 사용하시면 좋을 것 같습니다.

[Fig.26] Dock 위치 변경

 


지금까지 알아두면 편리한 잘 알려지지 않은 기능에 대해 살펴보았습니다. 제가 설명한 기능 외에도 크롬 개발자 도구에서는 다양한 기능을 제공하고 있고 Google에서 제공하는 개발자 도구 공식 매뉴얼(https://developers.google.com/web/tools/chrome-devtools)에 설명이 잘 되어 있으니 이번 기회에 다른 기능들에 관해서 관심 두고 공부하셔서 개발의 질을 높이는 데 도움이 되었으면 좋겠습니다. 감사합니다.

 




작성자 : 대전지사 도선아 개발자

Posted by 人Co

2020/08/17 01:50 2020/08/17 01:50
Response
No Trackback , No Comment
RSS :
https://www.insilicogen.com/blog/rss/response/354

[Webinar] 제5회 유전체 데이터 분석 교육

Posted by 人Co

2020/08/07 14:34 2020/08/07 14:34
Response
No Trackback , No Comment
RSS :
https://www.insilicogen.com/blog/rss/response/353

[채용공고] BI 분석 담당자 채용



(주)인실리코젠은 국내에서 생산되는 바이오 데이터의 60% 이상을 가공하고 저장하는 데에 기여하고 있습니다. 방대한 데이터와의 지속적인 커뮤니케이션은 우리의 발걸음을 데이터모델링, 머신러닝, 그리고, 딥러닝을 기본으로 하는 AI로 향하게 만들었습니다. insilico 상에서 질병의 원인과 솔루션을 찾고, 새로운 기능의 종자를 발굴하고, 개개인에게 맞는 데이터 식품을 만드는 첨단 기술을 구현해내면서 인공지능 기술의 단초를 만들어냈습니다.

AI로 대표되는 바이오의 미래는 지난 시간 방대한 데이터를 다루고 이해해보지 못한 그룹은
다가설 수 없는 먼발치의 가상현실일 뿐입니다.

저희 人Co는 20년 가까운 시간 동안 생물정보 외길을 변함없이 걸어왔습니다. 앞으로의 Bioinformatics는 AI의 도움을 받아 지금껏 만나보지 못한 insilico 상의 변화를 만들어낼 것입니다.

이러한 변화와 혁신의 무대 위에서 함께할 인재를 모십니다. 늘 새로운 꿈을 꾸며 무한한 도전정신을 가진 분들과 같이하고 싶습니다.


[채용분야]

BI 분석 담당자
- 지역 및 인원 : 본사(용인) 0명(신입, 경력), 지사(대전) 0명(신입)
- 담당업무 : 유전체 분석, 전사체 분석
- 자격요건 : 생물정보학 또는 생물학 관련 전공자(석사 이상),
프로그래밍 가능자(Python, Perl, R 택 1)
- 우대사항 : 생물정보 데이터 분석 경력 2년 이상, NGS 데이터 분석 경험자,
연구 논문 작성 가능자, 영어 능통자



[전형절차]

1. 서류전형(2020.07.27 ~ 2020.08.16)
     - 입사지원서(당사양식)
     - 서류전형 합격자에게만 1차 면접 요청(이메일 통지)

2. 실무자 면접 - 1차(2020.08.03 ~ 2020.08.21)
     - 자기소개(경력포함) 포트폴리오(PDF, 5분 분량)
     - 1차 면접 합격자에게만 2차 면접 요청(이메일 통지)

3. 임원 면접 - 2차(2020.08.17 ~ 2020.08.21)
     - 2차 면접 합격자에게만 3차 추가서류 제출 요청(이메일 통지)

4. 추가서류 제출 - 3차(2020.08.24 ~ 2020.08.28)
     - 하단 제출서류 참고

5. 최종합격 통보(2020.08.31 예정) - 입사예정일(2020.09.07)



[채용형태]
신입(인턴 3개월 계약 포함), 경력(경력에 따라 수습계약 포함)


[근무환경]
- 근무제 : 주 5일 근무
- 복리후생 : 4대 보험, 퇴직연금 및 성과급, 유연근무제 (장기근속자)
- 휴가제 : 연차, 경조휴가, 충전휴가(장기근속자)
- 지원 : 경조사비, 주차비, 교육훈련비, 도서 등 지원


[접수방법]
서류제출방법 : E-mail 첨부 제출 (ms@insilicogen.com)


[제출서류]
1) 서류전형 시
 ① 자사 입사지원서 : 파일명 `입사지원서_성명_지원분야.docx`로 저장
 ② 개인정보 이용 동의서 포함

 


2) 1차 면접전형 시(서류전형 합격자에게만 1차 면접 요청_이메일 통지)
 공통 : 포트폴리오(PDF) 제출 및 발표(자기소개 및 경력 위주 내용, 5분 이내)

3) 3차 서류 제출(2차 면접 합격자에게만 3차 추가서류 제출 요청_이메일 통지)
 ① 공통 : 건강검진확인서 및 병력확인서 제출
 ② 경력지원 시
  - 전 근무지의 근로자 원천징수 영수증(퇴사연도, 직전연도)
  - 고용보험이력확인서 : 고용보험 사이트에서 발급 가능

Posted by 人Co

2020/07/24 17:18 2020/07/24 17:18
Response
No Trackback , No Comment
RSS :
https://www.insilicogen.com/blog/rss/response/352


전 세계 COVID-19 확진자가 1,000만 명을 넘어선 지금, 일일 확진자 수의 상승세와 함께 한국에서도 COVID-19는 재유행 국면을 맞고 있습니다. FDA에서는 아직 백신과 치료제가 없다고 공표하였고, 의료진의 처방 이외의 약품에 주의하라고 권고하고 있습니다.
SARS-CoV-2를 잘 이해하기 위해, 이들이 인간의 숙주 단백질에 어떤 영향을 미치는지 예측된 생물학적 네트워크를 확인할 수 있는 웹사이트인 Coronavirus Network Explorer를 소개합니다.
Coronavirus Network Explorer는 SARS-CoV-2가 숙주 세포에 어떤 영향을 미치는지 보여주는 생물학적 네트워크를 살펴볼 수 있는 웹페이지입니다(Fig.1). 생물/의학 문헌의 증거를 바탕으로, 이 네트워크들은 대규모 지식 그래프 및 머신러닝을 사용하여 선택된 생물학적 과정, 질병 또는 경로에 대한 유전자 및 약물 영향을 예측합니다. 지금부터 Coronavirus Network Explorer를 소개하려고 하며, Fig.1에서의 위치(좌측/우측 등)를 기준으로 설명하고자 합니다.
최근 Gorden 외 연구진은 친화 정제-질량 분석법(AP-MS)을 통한 스크리닝으로 SARS-CoV-2 바이러스 단백질과 상호작용하는 인간 숙주 단백질을 확인하였습니다(출처 : Gordon et al., 2020. Nature.). COVID-19에 대비하여 잠재적으로 사용할 수 있는 약물을 확인하기 위해 숙주 단백질은 기능적으로 특징지어지고, 기존 약물 표적에 대해 스크리닝 되었습니다(Fig.2). 생물/의학 문헌에서 얻은 지식 데이터베이스인 QIAGEN Knowledge Base와 머신러닝이 결합한 IPA를 바탕으로(출처 : Krämer et al., 2013. Bioinformatics.), Gorden 외 연구진의 연구결과인 SARS-CoV-2와 숙주 단백질과의 상호 작용 정보를 바이러스 감염에 의해 영향을 받는 생물학적 기능 또는 질병에 연결되어 네트워크가 구성되었습니다.
Coronavirus Network Explorer에서 분석할 수 있는 것은 크게 다음과 같습니다.
  • SARS-CoV-2가 숙주에 미치는 영향을 설명하는 네트워크 탐색
  • 설정한 조건에서 유전자의 예측된 활동 패턴 표시
  • 바이러스의 효력에 영향을 줄 것으로 예상하는 약물의 잠재적 표적 유전자를 식별
Coronavirus Network Explorer의 구성을 자세히 살펴보도록 하겠습니다.
Coronavirus Network Explorer는 좌측 패널의 조정을 통해 원하는 네트워크를 도출하게 됩니다. 사용자가 원하는 설정을 할 수 있는 부분(빨간색)과 네트워크의 촉진/억제에 관련된 설명(파란색), 그리고 각 노드의 색에 대한 설명이 있는 부분(초록색)으로 나뉘게 됩니다(Fig.3).
Select Network 패널에서는 SARS-CoV-2와 인간의 단백질이 연관되어 있다고 예측된 네트워크들을 확인할 수 있습니다(Fig.4).
앞서 말씀드린 두 패널 아래에는 숙주 단백질과 상호 작용하는 바이러스 단백질에 의해 현재 보고 있는 해당 network가 촉진/억제되는 것으로 추측되는 결과라는 것을 알려줍니다(Fig.6, 파란색). 또한, 기존 약물 표적 유전자를 표시할 것인지의 여부와(빨간색) 억제/활성으로 추론되는 네트워크상 구성 노드의 표시 및 존재하는 약물 표적을 확인할 수 있습니다(초록색).
화면 가운데 영역은 각 패널에서 설정한 네트워크를 보여줍니다(Fig.7). Fig.7은 예시로, "Replication of coronavirus"라는 네트워크 정보입니다. 노드마다 생김새가 다른 것을 볼 수 있는데, Show Legend 버튼을 클릭하면 이 노드들이 어떤 기능을 하는지 확인할 수 있습니다. 노드들은 클릭 후 드래그를 통해 이동시킬 수 있습니다.
노드를 클릭하면 해당 노드에 관련된 정보를 화면 우측 영역에서 확인할 수 있습니다(Fig.8). 해당 영역에서 유전자 정보(왼쪽), 기존 약물 표적 단백질의 경우 약물 리스트를 볼 수 있습니다(오른쪽). Fig.8은 Replication of coronavirus 네트워크상의 CHRNA3 노드를 클릭한 결과입니다. IPA 사용자들은 더 자세한 유전자 정보와 약물 정보를 링크 클릭으로 확인할 수 있습니다.
이처럼 SARS-CoV-2의 단백질과 인간의 단백질이 상호작용하는 정보를 바탕으로, 어떤 네트워크들이 활성/억제될 것인지 예측된 결과를 Coronavirus Network Explorer를 통해 확인하는 방법을 알아보았습니다. 현재 COVID-19 관련 연구를 위하여 무료로 사용할 수 있으므로 치료제 개발에 도움이 되길 바라며, 하루빨리 연구가 진척되어 이 사태가 안정화되었으면 합니다.



  1. Gorden et al., 2020. A SARS-CoV-2 Protein Interaction Map Reveals Targets for Drug Repurposing. Nature, Online ahead of print. https://www.nature.com/articles/s41586-020-2286-9
  2. Krämer et al., 2013. Causal analysis approaches in Ingenuity Pathway Analysis. Bioinformatics, 30(4):523–530. https://academic.oup.com/bioinformatics/article/30/4/523/202720

작성 : insilico Lab 김형민 컨설턴트

Posted by 人Co

2020/07/17 12:48 2020/07/17 12:48
Response
No Trackback , No Comment
RSS :
https://www.insilicogen.com/blog/rss/response/351




오늘 블로그 주제는 과거 2016년 구글 Google I/O 에서 소개된 웹 기술 프로그레시브 웹앱(Progressive Web Apps)을 다루어 보고자 합니다.

구글에서는 프로그레시브 웹앱(이하 PWA)을 최고의 웹과 최고의 앱을 결합한 경험으로 정의하고 있는데요, 브라우저를 처음 방문하는 사용자에게 유용하며, 별도의 설치를 요구하지 않습니다. 이러한 PWA라는 웹 기술이 탄생하게 된 배경과 자세한 내용을 차근차근 알아가 보도록 하겠습니다.




과학기술정보통신부에서 발표한 '2019년 인터넷이용실태조사' 결과를 보면, 우리나라 가구의 인터넷 접속률은 99.7%로 거의 모든 가구에서 인터넷을 접속하고, 접속 가구는 와이파이(100%), 모바일 인터넷(94.9%) 등 무선방식을 통해 주로 접속하는 것으로 나타났습니다. 
 

 
2007년 아이폰이 처음 등장한 후 스마트기기 보급률은 급속히 증가했고 이동통신 기술의 발전으로 통신서비스의 중심이 데스크톱에서 모바일로 이동하는 등 2016년을 기점으로 모바일 시장 점유율이 데스크톱을 넘어서게 됐습니다. 데스크톱 뿐만 아니라 스마트폰, 태블릿, 심지어 TV에서도 웹에 접속할 수 있는 환경이 만들어짐으로써 언제 어디서나 정보로의 접근이 가능해졌습니다.
 

[Flg.2] Desktop vs Mobile Market Share Worldwide

웹(Web)에 접근할 수 있는 기기의 폭이 넓어진 만큼, 다양한 기기에 대응하기 위해 유연한 너비와 유연한 이미지, 미디어 쿼리를 이용해서 기기 사이즈에 맞추어 레이아웃을 재구성하는 반응형 웹(Responsive Web) 기술이 보편화하였습니다.
 
그러나 그림에서 보듯이 모바일 환경에서는 대부분의 사람이 웹(Web)보다는 앱(App)에서 더 많은 시간을 보낸다는 것을 알 수 있습니다. 모바일 환경에서 웹보다 앱을 더 선호하는 이유는 앱이 웹보다는 더 빠르고 편하며 사용성이 좋기 때문입니다.


[Flg.3] Share of time spent on Mobile: App vs Web




2015년에 구글 크롬의 엔지니어 알렉스 러셀(Alex Russel)이 자신의 블로그에 'Progressive Web Apps: Escaping Tabs Without Losing Our Soul' 라는 제목의 글을 통해 차세대 웹의 개념, 즉 웹은 웹인데 점진적으로 앱 수준으로 근접해가는 웹이라는 개념의 아이디어를 제공했습니다. 그리고 이듬해 Google I/O(개발자 콘퍼런스) 2016에서 PWA를 미래의 웹 기술로 소개합니다.
비록 웹이지만 데스크톱이나 모바일에서 설치가 가능하고 앱과 유사한 사용자 환경을 제공해주며 하이브리드앱(Hybrid App)과 비교했을 때 보다 간편하게 설치와 개발을 할 수 있고 무엇보다 검색이 가능합니다. 앱과 유사한 경험을 지원하기 위해 푸쉬알림(Push Notification), 설치(Install), 오프라인 실행(Offline Access) 등의 기능도 지원합니다.
PWA에 대한 설명에서 가장 자주 등장하는 단어는 'App like'와 'Natively' 이지만 링크(URL)로 공유가 가능한 웹 페이지입니다. 즉, PWA는 다음 그림과 같이 앱(App)이 가지고 있는 높은 품질(Capability)과 웹(Web)의 넓은 도달 범위(Reach)를 결합한 개발 형태입니다.
 

[Flg.4] 앱과 웹, 프로그레시브 웹의 기능 및 도달 범위,



 
  • 반응형(Responsive) 기기에 따라 레이아웃을 자동으로 조정하는 등 다양한 플랫폼과 여러 기기에서 동일한 사용자 경험(UX)을 제공해줍니다.
  • 연결 독립적(Reliable) 로컬 기기의 캐시를 활용하여 오프라인이나 불안한 네트워크에서도 실행할 수 있습니다.
  • 재참여 가능(Engageble) 브라우저가 닫혀 있더라도 푸쉬 알람(Push Notification)을 보낼 수 있어서 재방문율을 높여줍니다.
  • 안전성(Safe) HTTPS 통신으로 제공되므로 기존 웹 대비 안전합니다.
  • 설치 가능한 경험 제공(Installable) 앱스토어를 찾지 않아도 브라우저에서 바로 빠르고 간단히 홈스크린에 앱을 둘 수 있습니다.
  • 검색을 통해 발견 가능(Search) 구글, 네이버 등 포털 검색 결과에 노출됩니다.
  • 링크 연결 가능 링크(URL)를 통해 손쉽게 공유할 수 있습니다.
  • 즉각적인 업데이트
  • 경량
 
 


  • 로딩 속도와 성능이 다소 떨어집니다.
  • 일부 플랫폼에 제한이 있습니다.
  • 크롬, 오페라, 파이어폭스에서는 동작하지만, 사파리 브라우저에서 지원되지 않습니다.
  • 아이폰에서 푸시알림을 보낼 수 없고 Siri와 통합할 수 없는 등 일부 기기에서 기본 기능에 제한이 있습니다.
  • 지오 펜싱, 지문 스캐닝, NFC, Bluetooth 및 고급 카메라 기능과 같은 장치 기본 기능을 지원하지 못합니다.
  • PWA를 사용하려면 인터넷에 액세스해야 하므로 배터리 수명을 더 빨리 소모합니다.




PWA는 최신 웹 기능을 활용합니다.
  • 웹 메니페스트(Web App Manifest) 브라우저가 웹 앱을 설치할 때 그리고 홈 화면에서 웹 앱을 적절히 표현하는 데 필요한 정보 등을 담고 있습니다.
  • 서비스 워커(Service Worker) 브라우저가 백그라운드에서 실행하는 스크립트로, 웹페이지와는 별개로 작동하며, 푸시 알림(Push Notification, Android Chrome 한정) 및 백그라운드 동기화(Background Sync, Android Chrome 한정)와 같은 기능 등 웹페이지 또는 사용자 상호작용이 필요하지 않은 기능에 대해 지원합니다.
  • 반응형 웹(Responsive Web) 현재 사용되는 대부분의 반응형 웹 기술들을 사용합니다.




앱을 다운로드하지 않고 웹주소를 클릭해 앱과 유사한 서비스를 이용하게 해주는 PWA 장점을 살려 여행, 유통, 뉴스 분야에 활용도가 높을 것으로 보입니다. 핀터레스트(Pinterest), 알리바바(Alibaba), 트위터 라이트(Twitter Lite) 등 PWA 도입으로 접속 시간은 상승하고, 이탈률은 감소하는 등 유의미한 결과를 얻는 많은 사례를 볼 수 있습니다.
  • 핀터레스트(Pinterest)
    • 평균 접속 시간이 40% 증가하였고 사용자 생성 광고 수익이 44% 증가, 핵심 사용자 참여율이 60% 증가하였다고 보고하고 있습니다.
    • 안드로이드 및 아이폰 앱과 비교하면 9.6MB 및 56MB에 비해 150KB로 매우 가볍습니다.
 


[Flag. 5] PWA Pinterest
 

 
현재 구글을 주축으로 마이크로소프트(MS), 모질라(Mozilla), 오페라(Opera) 등이 동참하고 있고 대부분의 안드로이드 기기에서는 PWA를 완벽하게 지원하지만 아쉽게도 iOS 기기에서는 여전히 제한적입니다.
그럼에도 불구하고 우리나라에서도 대표적 쇼핑몰 플랫폼 CAFE24가 PWA를 적용한 '스마트웹 앱'을 출시하는 등 점점 많은 전자 상거래 사이트에 PWA를 적용해서 구현하고 있습니다. 이는 앱을 개발하는데 드는 비용 대비 비교적 적은 자원으로 높은 효율을 기대하는 것을 목표로 하는 전자 상거래 사이트에 대안이 될 수 있기 때문입니다.
(주)인실리코젠의 자회사인 (주)디이프 에서도 현재 서비스중인 아이푸드진 앱을 개발할 당시 여러 기술들 중 하나로 PWA도 함께 고려한 바 있습니다. 비록 네이티브 앱의 기능을 충분히 활용하고 호환성에서 높은 점수를 얻은 플러터(Flutter)가 채택되었지만, 사용자 친화적인 앱을 만드는데 이제 더 이상 웹 기술을 포기할 필요가 없어졌습니다. PWA가 아직 완벽하지 않지만, iOS나 안드로이드 같은 플랫폼 전용 폐쇄적인 앱에 비해 유연하고 개방적이어서 플랫폼에 종속되지 않는 웹의 특성으로 볼 때 PWA의 더 큰 성장을 기대해봅니다.
 



작성 : FED 팀 김태영 선임 개발자
 

Posted by 人Co

2020/07/04 18:42 2020/07/04 18:42
Response
No Trackback , No Comment
RSS :
https://www.insilicogen.com/blog/rss/response/350

[Fig.1] 인실리코젠 IX팀
(출처:(주)인실리코젠)

올해 인실리코젠의 Descign(Design+Science+Management)팀 명칭이 IX팀으로 개편되었습니다. IX는 다양한 기술을 통합(Integration)하여 상호작용(Interaction)적인 서비스와 혁신적인(Innovation) 사용자 경험을 디자인하는 부서로 변화하였습니다. 금일 준비한 포스트도 부서의 방향성과 어울리는 콘텐츠로 준비하였습니다.

사용성 테스트의 니즈

[Fig.2] Usability Testing Illustration

편리한 시스템과 서비스를 디자인할 때 필요한 요소 중 하나는 사용성 테스팅(Usability Testing) 입니다. 테스팅은 예측하지 못했던 문제나 유저(User)들의 어려움을 찾아낼 수 있도록 도와주는 데 큰 역할을 합니다. 그럼 언제 사용성 테스트를 진행하는 것이 좋을까요? 일반적으로 디자인(기획) 단계에서 구상한 아이디어를 프로토타입 하여 진행합니다. 테스트 과정 중에 문제를 미리 발견하여 기업이 투여 시간과 비용적인 손실을 최소화할 수 있게 도와주기 때문입니다. 현재 이를 도와주는 다양한 테스팅 방법들이 존재합니다. 그중 Wizard of Oz(WOZ) 테스팅 기법을 소개해 드리려 합니다.

Wizard of Oz(WOZ) 테스팅은 어떤 건가요?


[Fig.3] Wizard of Oz Film

누구나 한 번쯤은 오즈의 마법사(Wizard of OZ) 영화를 보셨을 것입니다. 이쯤 되면 테스팅 방법과 오즈의 마법사 스토리와의 연관성에 대해 궁금증이 생기실 듯합니다. 극 중 마법사인 오즈는 자신의 진짜 모습(서커스에서 마술하는 사람)을 복화술로 숨기고 엄청난 대마법사인 것처럼 모두를 속입니다. 마법사 오즈처럼 Wizard of Oz 테스팅도 사용자들이 실제 개발되지 않은 서비스를 실존하는 서비스처럼 착각하게 하여 테스팅을 진행하는 방법입니다. 아래 IBM의 ‘The listening type writer’ 일러스트 이미지를 보시면 조금 더 이해가 되실 겁니다. 사용자가 컴퓨터 마이크에 “Dear Henry”라고 말을 하면 커튼 뒤에 또 다른 사람(wizard)이 직접 사용자의 말을 듣고 타이핑을 해줍니다. 이를 모르는 사용자로서는 컴퓨터가 출력해주었다고 생각하며 편리한 기능이라고 생각할 것입니다.

[Fig.4] Wizard of Oz Prototyping

어떻게 활용되나요?

WOZ 방법론은 가설을 빠르게 검증할 수 없는 AI(인공지능) 프로젝트에서 많이 활용되며 데이터가 없거나 기술이 완벽하지 않은 상황에서도 테스트를 진행할 수 있습니다. 또한, 시스템에 대한 사용자의 반응을 확인하며 반복적인 테스트를 통해 사용자 경험을 점진적으로 발전시킬 수 있습니다. 테스팅을 진행하기 전 명심해야 할 부분은 얻고자 하는 인사이트가 무엇인지 결정하는 것과 테스트 시 사용자들이 느끼기에 그럴듯하게(Believable) 프로토타입을 제작해야 합니다. 그리고 너무 복잡한 인터페이스 보다는 간단한 형태의 기능을 테스트하는 것이 효율적입니다.

인실리코젠에서는 생물정보를 활용하여 다양한 시스템을 개발하고 있습니다. 사용자 친화적이며 효율적으로 서비스를 디자인 및 개발을 하기 위하여 WOZ 방법론에 대해 알아보았습니다. 향후 직접 프로젝트에 적용해본 후 그 효과나 장단점에 대해서 알려드리겠습니다.

출처

[Reference 1] "Wizard of Oz testing – a method of testing a system that does not yet exist.", 2020년 6월 10일 접속, https://www.simpleusability.com/inspiration/2018/08/wizard-of-oz-testing-a-method-of-testing-a-system-that-does-not-yet-exist/

[Reference 2] "Making the machine believable: Wizard of Oz-ing AI applications.", 2020년 6월 12일 접속, https://uxdesign.cc/making-the-machine-believable-wizard-of-oz-ing-ai-applications-293cfbb0f244

[Reference 3] "[인공지능 in IT] 인공지능 UX 디자인 – 디자인 프로세스로 사용자 경험 설계하기.", 2020년 6월 12일 접속, https://www.donga.com/news/article/all/20190515/95530568/1

작성 : IX Team 김지인 주임 UX/UI 디자이너

Posted by 人Co

2020/06/22 14:14 2020/06/22 14:14
, , , ,
Response
No Trackback , No Comment
RSS :
https://www.insilicogen.com/blog/rss/response/349



« Previous : 1 : 2 : 3 : 4 : 5 : ... 35 : Next »