2018년 4월 8일 일요일

독서 기록 - [NL 현대사] 외 다섯 권

이번에는 비교적 가벼운 책 위주로 독서를 하였다. 물론 'NL 현대사(강철 서신에서 뉴라이트까지)'는 예외였다. 닉 보스트롬의 <슈퍼인텔리전스>는 잘 읽히지를 않아서 일단은 대출 기간을 연장한 상태이다.


출퇴근 15분 철학

  • 일상에서 소통에 필요한 가벼운 철학을 만나다
  • 오가와 히토시 지음, 박재현 옮김
한국의 일상 생활에서 철학은 이미 자취를 감춘지 오래이다. '한국 철학'은커녕 철학적 사고·논의 및 토론 자체가 없는 사회이므로. 모든 것들이 개인차원의 생존과 정치, 얄팍한 대중문화에 매몰되 있다고 생각한다. 

왜 우리는 불평등을 감수하는가

  • 가진 것마저 빼앗기는 나에게 던지는 질문
  • 지그문트 바우만 지음, 안규남 옮김

The Big Shift(빅 시프트)

  • 100세 시대 중년 이후 이생의 재구성
  • 마크 프리드먼 지음, 한주형·이형종 옮김
중년 아니면 노년이라는 전통적인 연령대 사이에 독특한 특징과 욕구가 있는 인생 단계가 존재한다. 자녀가 독립을 한 이후부터 건강이 나빠져서 타인에게 절대적으로 의존해야 하는 시기 사이는 의외로 넓으며 새로운 의미를 부여해야 하는 시기이다. 이를 third age, 인생 제3막, 인생 제3장, 두 번째 성인기, 제2성인기, 인생 제4막, 중간 코스, 중년기, 후기 중년기, '인생의 두 번째 장면' 등 수많은 용어들이 혼재하고 있다(114쪽). 이 시기를 가치있게 보내기 위해 어떤 생각을 갖고 준비를 해야 하는지를 서술한 책이다. '백미러를 보면서 앞길을 예측하는' 방식으로 이 시기를 준비해서는 안된다. 더이상 노년은 젊은 세대에게 짐이 되는 세대라고 생각해서는 안된다.

슬로 이즈 뷰티풀

  • 슬로 라이프를 제창한 쓰지 신이치 교수의 '느림' 미학
  • 쓰지 신이치 지음, 권희정 옮김

NL 현대사

  • 강철 서신에서 뉴라이트까지
  • 박찬수 지음(한겨레 신문 박찬수 글 모음 링크)
나는 80년대에 대학 생활을 하였지만 당시 억압된 한국의 정치적 상황 하에서 고뇌하고 투쟁했던 선배 및 동료 학생들에게 적극적으로 동조하지 못하였다는 점에 대하여 늘 마음의 빚을 지고 있다고 생각한다. 그 빚을 갚기 위해서는 현실 정치에 대해여 무관심하지 말아야 한다는 것 말고도 가까운 현대사에 대한 정확한 지식을 갖는 것이 중요하다. 당시 학생운동 정파 중 큰 비중을 차지하는 NL(National Liberation, 쉽게 말하여 요즘 '주사파'니 '종북' 정도로 불리는)의 발생과 발전, 몰락, 기성 정치체제로의 편입 및 뉴라이트로의 전환을 서술한 책이다. 이른바 '강철 서신'을 통해서 NL계열 운동을 촉발한 김영환이 비중있게 다루어졌다. 이번에 읽은 책 중에서 몰랐던 사실을 가장 많이 알게 해 준 책이다.

아미리 종활 사진관(소설)

  • 아시자와 요 지음, 이영미 옮김
종활(終活)이란 인생을 마무리짓기 위한 활동을 의미한다. 아미리 사진관은 영정 사진을 전문으로 촬영하는 곳으로서 종활을 도와준다는 것이 특징이다. 이 소설에서는 영정 사진은 난치병 등으로 죽음에 임박한 사람만이 장례식을 미리 준비하기 위해 찍는다는 통념을 벗어나게 해 준다. 영정 사진을 둘러싼 미스테리를 풀어나가는 몇 개의 에피소드로 구성되어 결국은 따뜻한 가족애를 느끼게 하는 소설이었다. 종종 접하는 일본 영화나 소설과 비슷한 정서를 품은 책이다.

2018년 4월 6일 금요일

MetaWRAP - whole metagenome shotgun sequencing 분석을 위한 파이프라인

Whole genome shotgun(WGS) sequencing의 두번째 단어인 genome을 metagenome으로 바꾸면 whole metagenom(ic) shotgun(WMS) sequencing이 된다. 요즘 유행하는 어법을 따른다면 좀 더 인기있는 단어인 microbiome을 쓰고 싶은 욕구가 생긴다. 내가 알기로는 원래 microbiome에는 '집합적인 게놈'이란 의미가 없었는데 약간 변질이 되고 말았다. 하지만 '활성 슬러지 메타게놈'이라는 표현은 있지만 '활성 슬러지 마이크로바이옴'이라고는 아직 쓰지 않는 것 같다.

Microbiome이라는 용어의 유래에 대해서는 microBEnet에 조나단 아이센이 2015년에 올린 글("What does the term microbiome mean? And where did it come from? A bit of a surprise ..", 링크)을 읽어보라.

나는 20년 가까이 (bacterial) isolate genome의 분석에만 집중해 왔다. 16S rRNA 기반의 메타게놈 연구가 주변에서 시작될 때 여기에까지 활동 영역을 미리 넓히지 못한 것이 늘 아쉽다. 자기 데이터가 없는 상황에서는 아무리 공부를 하려 해도  진도가 잘 나가지 않는다. 그러는 사이에 어제 소개했듯이 Qiime 2가 나오고 말았다.

2년쯤 전에 충북대학교 이성근 교수를 통해서 WGS sequencing analysis를 해보는 것이 어떻냐는 제안을 받고 관심을 갖고는 있었다. 당시 소개받은 논문은 Mads Albertsen(웹사이트 링크)가 제1저자였던 "Genome sequences of rare, uncultured bacteria obtained by differential coverage binning of multiple metagenomes(Nature Biotechnology 2013 PubMed)"였다. 이 연구에서의 핵심 개념은 마치 마이크로어레이 실험처럼 변동을 준 조건과 주지 않은 조건(여기에서는 hot phenol) 활성 슬러지를 구성하는 미생물 전체 유전체를 분리하여 조립을 한 뒤 4가지의 데이터(tetranucleotide frequency, %GC, length, essential single copy gene)를 이용하여 scaffold를 시각화하고, 이를 잘 골라내어 개별 유전체를 구성한다는 것이었다. 저작권 문제로 논문의 그림을 여기에 직접 싣지는 못하겠다. 일단 설명은 이렇게 간결하게 하였지만 supplementary material을 받아서 한번씩 따라하는 것도 쉽지 않다. 솔직히 고백하건대 assembly 이후 R을 집중적으로 사용하여 그림을 그리고 테두리를 쳐서 bin을 골라내는 후반부 작업까지는 아직 진도가 나가지 않았다.

현재 덴마트 Aalbog University에 재직하고 있는 Albertson의 웹사이트를 방문하니 community 분석을 위한 훌륭한 R 패키지를 개발하여 보급하고 있었다(링크).

WMS sequence analysis에는 아직 '이것이 진리이다!'라고 할만한 독점적인 도구가 없다. 게다가 결과의 시각화 역시 일반 연구자에게는 어려운 문제이다. Metagenome에서 건져낸 개별 유전체를 시각화하기 좋은 방법이 없을까? 작년 초부터 다루기 시작한 광합성 세균 Microcystis의 미생물 콘소시엄을 시퀀싱한 자료를 재건하는 것이 나의 직면한 과제이기 때문이다. 구글을 뒤지다가 bioXriv에 소개된 MetaWRAP(논문, GitHub)이 눈에 뜨였다. 논문의 제목은 "MetaWRP - a flexible pipeline for genome-resolved metagenomic data analysis"이다. GitHub에 그림이 있으니 소개하기에도 부담이 없다. 튜토리얼을 둘러본다면 전체적인 흐름이 어떻게 되는지를 파악할 수 있을 것이다.

출처: https://github.com/bxlab/metaWRAP
출처: https://github.com/bxlab/metaWRAP/blob/master/Usage_tutorial.md

MetaWRAP은 raw sequencing read에서 출발하여 metagenomic bin 구성 및 그 분석까지를 수행할 수 있는 파이프라인이다. 널리 쓰이는 소프트웨어와 라이브러리 약 150 종을 묶어서 Biocond 패키지로 배포하므로 설치가 매우 쉽다. 가장 핵심이라 할 수 있는 binning에서는 metaBAT2, MaxBin2 및 CONCOCT를 사용한다. 마침 Bioconda에 관심을 갖기 시작하였는데 이를 이용한 유용한 도구가 줄줄이 나타났으니(어제 소개한 Qiime 2 역시 Bioconda 패키지로 배포) 반갑지 않을 수 없다. 프로그램 설치를 마치고 지금은 데이터베이스를 받는 중이다. Configuration이 끝나면 실제 데이터를 가지고 즐거운 탐색을 해 봐야 되겠다.

2018년 4월 5일 목요일

paste 명령어의 색다른 사용법

실습용 자료를 읽어보다가 fastq 파일을 fasta로 전환하는 매우 독특한 명령어를 발견하였다. 바로 paste를 쓰는 것이다. paste는 텍스트 파일을 컬럼 단위로 붙이는 명령어라고 생각하고 있었는데 실제 매뉴얼을 확인하면 "paste - merge lines of file"라는 설명이 나온다.

paste - - - - < file.fq | cut -f 1,2 | sed 's/^@/>/' | tr "\t" "\n" > file.fa

바로 이것이 file.fa를 file.fa로 바꾸는 명령어이다. paste - - - - < file.fq에서는 file.fq가 줄 단위로 분해되어 다음과 같이 표준 출력으로 내보낸다.

line1 line2 line3 line4
line5 line6 line7 line8
...

'- - - -'는 네 줄 단위씩을 끊어서 하나의 라인에 병합하여 나타냄을 의미한다. 기본 delimiter는 탭인데 바꿀 수 있다. 3, 6, 9...번째 줄만을 출력하고 싶다면 awk 'NR%3==0' file이라고 하면 되지만, 세번째 줄까지를 연이어 하나의 라인으로 출력하고 또 그 다음 세번째 줄을 연이어 출력하는 일을 반복하려면 paste - - - < file이라 해야 하는 것이다.

이렇게 전환된 상태에서 첫번째 및 두번째 컬럼은 서열의 ID와 서열에 해당한다. 이를 fasta로 전환하기 위하여 >를 삽입하고 @는 제거하면서 동시에 줄바꿈을 하는 것이 나머지 과정이다. 그러나 fastq2fasta.pl 스크립트보다는 꽤 느리다. C로 짜여진 seqtk seq 프로그램보다는 더욱 느릴 것이다.

다음 링크를 읽어보면 paste의 고급 사용법이 친절하게 설명되어 있다.

Linux paste command good examples & uses

awk와 sed가 텍스트 파일을 조작하는 매우 단순하고도 멋진 방법을 제공하는데, 여기에 paste, cut, uniq 및 comm 등도 한 몫을 함을 잊지 말도록 하자.

QIIME 2?

공개형 community sequencing data의 분석 도구인 Qiime(논문 링크)을 좀 공부해보려고 tutorial project GitHub에서 파일을 받은뒤 테스트 스크립트를 돌렸다. 파이어폭스로 결과 파일을 점검하는데 2018년 1월 1일부터 Qiime 2가 출시되어 이전 버전은 더 이상 서포트가 되지 않는다는 것이다.
생각해보니 Nature Methods에 논문이 나온 것이 2010년이니 대대적인 업그레이드가 이루어질 때도 되었다. 지난 며칠 동안 BioConda를 공부하면서 설치한 Qiime은 1.9.1이다. 프로그램 실행 방식과 인터페이스가 아주 크게 바뀌었다. 예전에는 그다지 파이썬 스크립트를 개별적으로 실행하는 방식이었는데, 이제는 Qiime 2 command-line interface(q2cli)에서 체계적으로 명령어를 입력하도록 바뀌었다. 즉 요즘 흔히 쓰이는 포맷인 qiime info, qiime alignment ... 을 따르게 된 것이다.


아직 BioConda 채널에는 정식으로 등록이 되질 않아서 설치방법은 약간 다르다.

wget https://data.qiime2.org/distro/core/qiime2-2018.2-py35-linux-conda.yml
conda env create -n qiime2-2018.2 --file qiime2-2018.2-py35-linux-conda.yml
# OPTIONAL CLEANUP
rm qiime2-2018.2-py35-linux-conda.yml

마침 유럽에서 열렀던 metagenome analysis workshop에서 배포한 qiime 파이프라인을 따라하면서 공부하려는 참이었는데 qiime 2가 나오고 말았으니 이를 어떻게 해야 할까? Qiime 1을 이제는 전혀 몰라도 되는 것일까? Qiime 1에서도 쓰였던 "Moving Pictures" 데이터셋(Moving pictures of the human microbiome. Genome Biol. 2011 PubMed)을 이용하는 Qiime 2 튜토리얼에는 qiime 1과 비교하여 친절하게 설명을 해 놓았으니 이를 따라서 실습하면 두 버전 간의 차이를 쉽게 이해할 수 있을 것이다. 새로운 버전에서는 fecal microbiota transplantation(FMT) study와 Atacama soil microbiome 등 새로운 실습를 이용한 설명도 제공한다.

Qiime 2에서는 sequence quality control을 위하여 DADA2와 Deblur 등을 플러그인 형태로 적용하여 사용할 수 있는 것도 특징이다.

튜토리얼을 대략 훑어본 후 qiime 2를 사용하는 것이 훨씬 낫겠다는 결론을 내렸다. 시대가 바뀌었다면 이를 따라야 하지 않겠는가.

2018년 4월 4일 수요일

Bioconda의 혼란을 극복해 나가기

Bioconda를 이용하여 여러 프로그램을 깔면서 느꼈던 혼란은 어쩌면 나의 무지에서 비롯된 것인지도 모른다. 지웠다 깔았다를 반복하면서 새 리눅스 서버의 패키지 관리 체계를 나름대로 다음과 같이 확정하기로 마음을 먹었다.

R과 R Studio는 yum을 이용하여 설치한다. 참조한 사이트는 "How to Install R / R Studio on CentOS 7"였다. 다음으로는 관리자 권한으로 Anaconda2-5.1.0을 설치하였다. 처음에는 Anaconda3-5.1.0을 몇차례 설치하였었지만 파이썬 2.7을 기본으로 하는 것이 가장 바람직하다는 결론을 내린 것이다. 설치 루트는 로컬 하드디스크(보통 /opt/anaconda#)가 아니라 일부러 NFS로 마운트한 공용 공간을 택하였다. 나중에 이를 공유하고 있는 다른 컴퓨터에서도 쉽게 접근이 가능하게 만들기 위함이다.

Anaconda가 제공하는 파이썬 및 bioconda로 설치한 응용프로그램을 이용하려면 다음 명령어 한 줄이면 족하다. /data를 공유하는 다른 컴퓨터에서 로그인을 해도 마찬가지이다. 단, 아나콘다 루트는 관리자가 쓸 수 있는 공간(/data/anaconda2)에 위치하므로 패키지 및 환경 관리를 위해서는 관리자 권한으로 실시해야 한다.

$ PATH=/data/anaconda2/bin:$PATH

다음으로는 파이썬 3.5를 기반으로 하는 새로운 환경인 py35를 생성하였다.

# conda create -n py35 python=3.5

파이썬 3.5 이상이 필요한 프로그램들은 여기에서 설치하면 된다.

# source activate py35
(py35) # conda install roary
(py35) # source deactivate
#

원래 시스템에서 제공하는 Perl이 있었고 BioPerl도 내가 깔아 두었었지만 bioconda에서 환경 및 패키지를 설치하면서 각자 새로 깔아버리는 것은 어쩔 도리가 없다. 다음은 세균의 rRNA 예측기인 Barrnap(GitHub link)에서 설명하는 프로그램 설치법이다. 이제는 conda와 Homebrew·Linuxbrew라는 패키지 관리 시스템을 이용하는 것이 대세로 자리잡은 것 같다. 물론 Galaxy를 빼먹어서는 안될 것이다.


더군다나 Bioconda에서 배포하는 패키지는 docker 환경에서 적재할 수 있는(용어를 정확하게 선택했는지 자신이 없다) 콘테이너를 제공한다. 여기에는 BioContainer라는 재미난 이름이 붙었다. 이제 일반 사용자가 생명정보분석용 응용프로그램을 설치하는데 어려움을 겪는 일은 점점 줄어들 것으로 보인다.

Bioconda를 이용하여 패키지를 설치할 때 가장 주의할 점은 파이썬 인터프리터에 대한 의존성이 있는지를 잘 확인하여 필요하다면 py35 환경 안에서 설치하는 것이다. 그리고 설치 과정에서 이미 설치된 패키지를 업/다운그레이드하면서 건드리는 경우가 있는데, 이때에 이전에 설치한 패키지의 실행에 영향을 미치지 않는지도 눈여겨보아야 할 것이다.

2018년 4월 3일 화요일

(비닐) 쓰레기 대란의 지속 가능한 해결책은 없을까

우리나라에서는 합성수지 필름으로 만들어진 포장재를 통틀어서 '비닐'이라고 부른다. 영미권에서는 그 의미가 좀 다르다. 화학적으로 vinyl기를 가진 화학물질을 부를 때 쓰는 것이 ;비닐'의 가장 정확한 용법일 것이다. 예를 들자면 polyvinyl chloride(PVC)이다. 또 다른 뜻으로는 합성수지로 만들어진 레코드판을 뜻한다.

중국이 비닐 쓰레기 수입을 대폭 줄이면서 수도권에서는 난리가 났었다. 우리가 배출하는 재활용 쓰레기가 국내에서 처리되지 않고 중국에 팔렸다는 것은 전혀 모르던 사실이었다. 중국도 환경 문제에 관심을 갖기 시작하면서 '쓰레기'의 수입을 중단하게 된 것이다.

[BBC] '비닐 대란'에 대해 당신이 알아야 할 3가지

우리나라만 쓰레기 처리를 중국에 의존한 것이 아니었다. 이 뉴스에 의하면 영국은 2012년부터 폐플라스틱의 2/3를 중국과 홍콩에, 아일랜드의 경우 폐플라스틱의 95%를 중국에 수출해 왔다고 한다. 중국에서는 이를 수입하여 재처리를 거쳐 뭔가 내다 팔 수 있는 물건을 만들어 왔을 것이다. 그러나 이렇게 하여 얻는 경제적 이득보다 자국 환경 악화에 의한 손실이 이제는 더 크다고 판단한 것임에 틀림없다.

이번 비닐 쓰레기 대란 뉴스를 접하면서 고전 경제학의 비교우위론이 떠올랐다. 각 나라에서 경쟁력이 있는 물건을 만드는데 집중을 하고, 그 물건을 서로 사고 팔면서 모두가 이익을 얻을 수 있다는 이론이다. 위키백과를 찾아보니 절대적인 우위에 있지 않더라도 수출을 통해 상호 이익을 얻을 수 있다고 설명하였다.

그러면 과거에 식민지로서 커피나 사탕수수를 재배하여 선진국에 수출하던 나라 - 지배 국가에 의한 강제적인 산업 재편이었을 것이 당연하다 - 는 계속 커피와 사탕수수 농사에 몰두해야 하는가? 이로 인하여 자립 가능한 경제 구조를 이루는 것이 애초에 불가능해졌고 토지의 활용도 역시 바람직하지 않은 쪽으로 기울어졌다. 그러면 이를 쓰레기의 수출입에 대입하여 생각해보면 어떨까? 현재까지 통용되는 방법으로 국내의 쓰레기 처리업자(수출업자)와 중국의 쓰레기 수입업자는 어느 정도의 이익을 보았을 것이다. 그러나 이번 쓰레기 문제는 중국의 업자가 더욱 양질의 쓰레기를 다른 나라에서 싼 가격에 살 수 있게 되어서 한국의 것을 사지 않겠다고 한 것이 아니다. 중국 정부가 환경 문제에 관심을 가지면서 막은 것이다. 여기에 대하여 왜 서로가 이익을 볼 수 있는 자유로운 무역을 막느냐고 항의할 수 있을까? 쓰레기를 수출입하는 경제구조는 외부효과가 너무 크다고 보는 것이 타당할 것이다.

그러면 이런 상상을 해 보자. 쓰레기를 해외에 파는 것이 아니라 돈과 함께 넘기는 것이다. 만약 우리나라가 아주 돈이 많다면(그리고 약간 부도덕하다면) 가난한 나라에 대해서 이런 제안을 할 수도 있을 것이다. 그러나 이러한 제안을 받아들이는 나라는 당장의 돈 몇푼 때문에 자기 나라의 소중한 국토를 회생 불가능한 상태로 만들게 될지도 모른다.

탄소 배출량처럼 쓰레기 배출량을 각 사람마다 제한하는 시나리오도 생각해 보았다. 영화 <인 타임>이 연상되는 상황이다. 쓰레기를 배출할 수 있는 권한을 정부로부터 구입을 한다. 돈이 많은 사람은 많은 쓰레게를 버려도 되지만, 가난한 사람은 그것도 불가능하다. 결국은 몰래 버리거나, 자기 집에 쓰레기를 계속 쌓아두는 일이 생길 것이다. 연 1톤의 쓰레기를 배출하는 권리를 10만원에 공식적으로 구입할 수 있다고 하자. 이것이 암시장에서 할인되어 8만원에 팔릴 수도 있다. 이걸 구입한 사람은 10만원이 아니라 8만원에 연 1톤의 쓰레기를 버릴 자격을 얻는다. 아니면 이런 상황도 가능하다. 가난한 사람에게 '돈 10만원을 줄테니 내 쓰레기 20톤을 떠안지 않겠소?' 가난한 사람은 돈이 생겨서 좋고, 돈 많은 사람은 적은 비용에 더 많은 쓰레기를 처분할 수 있어서 좋다. 하지만 가난한 사람의 집은 쓰레기로 엉망이 될 것이 자명하다.

그 어떤 시나리오도 아름답지 못하다. 쓰레기는 쓰레기일 뿐이고, 경제적 이익이 조금 발생한다고 해서 국경을 넘어가는 것은 옳지 못하다. 그리고 일회용으로 만들어진 포장재를 재활용하기 위해 세척하는 것도 많은 에너지를 소비하는 일이다. 가장 바람직한 해결책은 쓰레기 발생량 자체를 줄여야 한다는 것이다. 식품 포장 비닐, 냉동식품 보관용 스티로폼, 테이크아웃 커피잔, 택배 포장 박스.... 이제는 지속 가능한 방법을 생각해 봐야 한다.

생각보다 까다로운 bioconda

Anaconda(Anaconda3-5.1.0-Linux-x86_64)를 사용하여 python만 관리를 하려다가 bioconda를 이용하여 여러 생명정보분석 프로그램을 까는 것이 대단히 편리할 것이라는 판단이 들어서 며칠간에 거쳐서 테스트를 하였다. 특히 의존성이 많은 프로그램은 동반된 라이브러리와 다른 프로그램까지 알아서 설치해 주니 여간 편한 것이 아니었다.

그런데 환경(-n myenv로 설정되는 conda environment)을 고정한 상태에서 몇 가지 프로그램을 깔아보니 공통적으로 쓰이는 프로그램들을 의존성에 따라서 업그레이했다가 또 다운그레이드했다가를 반복하는 것이 아닌가. 그리고 이미 시스템에 설치된 프로그램까지 다시 내려받아 깔고 있다. 구체적인 예를 들어보자. Conda로 Roary를 설치하였더니 Perl 5.22.0.1을 덩달아 내려받는다. 하지만 이미 시스템에는 Perl 5.16.3이 존재한다. 아마도 Roary 패키지에서 정의된 필수 프로그램은 시스템이 이미 존재하는지의 여부와 관계없이 그대로 깔게 만든 것 같다. Linuxbrew는 어떻게 행동하는지 알아보지는 않았다.

그러는 과정에서 R이 뒤죽박죽이 되면서 실행 시 에러가 발생하고 말았다. 일단 R은 yum을 통해서 설치하는 것으로 바꾸어 놓았다.

그러면 패키지 하나에 대해서 환경을 각각 설정하면 될 것이 아니냐고 생각할 수도 있다. 실제로 해보니 perl/python interpreter 등 기본적이 도구들이 매 환경마다 다른 위치에 반복하여 깔리는 것이 아닌가. 저장공간 입장에서는 매우 비효율적이다.

다시 Linuxbrew를 적극 활용할까 하는 생각이 슬슬 들고 있다.

설치 과정을 철저히 기록함과 동시에 일관성 있는 운용 정책을 수립할 때라고 믿는다. Roary 같이 의존성이 큰 bioconda 패키지를 하나 깔아놓고, 다른 것을을 설치하면서 서로 충돌하는 것은 없는지를 살펴봐야 되겠다.