제주는 갑작스레 쌀쌀해져 긴 옷을 입고 다니고 해가 지면 더 쌀쌀해져 외투가 없으면 더욱 몸을 추스리게 되는, 진정 가을이 되었다. 그래서 그런지 밤중에 그냥 자기엔 아쉬운 생각이 들어 영화를 찾아 보게 되었다. 그 영화가 바로 <세 얼간이>와 <소셜 네트워크>.

두 영화는 등장인물도 묘하게 유사한 점이 많았으며 모두 교훈적으로 보게 되어 많은 생각을 할 수 있었다. <세 얼간이>는 란초와 두 친구가 인도 최고의 엔지니어링 대학인 ICE에서 벌어지는 일련의 사건과, 그 주변에 담겨진 이야기를 보여주는 영화다. 란초는 각 두 친구가 진정한 목표를 향해 달려갈 수 있도록 도와주었고 란초 스스로도 인도 최고의 엔지니어가 된다.

<소셜 네트워크>는 마크 주커버그의 이야기로 페이스북이 어떻게 시작되었고 진행되고 있는지 보여주는 영화다. 여자친구와의 이별을 술 마시고 놀아서 푼 것이 아니라 개발에 전력을 쏟았고 그 결과 페이스북이 나왔다는 식으로 이야기를 풀었는데 이권 다툼을 누군가 좋아하는 사람 때문에 나타난 것처럼 잘 미화하지 않았나 싶다.

두 영화에서 나오는 두 천재는 내면에 집중하느냐 혹은 관계에 집중하느냐. 두가지 방식을 통해 결론에 도달한다. 알 이즈 웰 이라고 자신의 마음을 속이며 모든 일이 생각하기 나름이라는 관점으로 접근하기도 하고, 본인 앞을 지나가는 기회를 정확히 포착해 잡아가는 방식으로 나아가기도 한다. 어느 하나가 우세하다고 말할 수 없겠지만, 살아가며 두 천재의 모습에서 어느 하나의 모습을 선택해야 할 때가 있고, 어느 한쪽에 편중된 것이 아닌, 양자의 기로에서 늘 때에 맞게 선택해야 하지 않나 생각이 든다.

수년간 회원가입용 메일로 사용해던 계정이 갑작스레 휴면으로 전환되어 곤란을 좀 겪고 있습니다. 간만에 스팸 비우러 로그인 하는데 휴면이라 하길래 그냥 쉽게 풀리겠지 생각했는데 그게 아니더군요. 최근에 갱신한 신용정보야 보기 쉽도록 다른 계정을 대표로 걸어둔 상태지만 항공사 마일리지나 몇 중요한 정보는 이전에 사용하던 메일에 연결되어 있어 조금은 곤란한 상태가 되고 말았네요. 회원가입 시 늘상 사용해오던 이메일이었는데 이런 사태를 겪게 될지는 생각도 못했습니다.

국내 포털에서 제공하던 이메일이었다면 주민등록번호를 기준으로 찾거나 휴대폰, 공인인증서, 하다못해 신분증 팩스로 보내기라도 해서 되찾을 수 있을텐데 해당 계정은 hotmail이라 본인임을 증명하기 위해선 자주 메일을 주고 받았던 사람이나 메일함의 이름 등 이메일 사용 패턴에 대한 실질적인 검증이 되어야만 된다고 합니다. 회원가입 용으로 사용하던 터라 스팸만 잔뜩 있고 중요한 메일은 그닥 없어 가끔 들어가 비워주는 정도의 소비 형태로는 사실상 검증하기 불가능하다고 봐야겠죠.

이를 통해 개인 정보와는 느슨한 형태의 서비스들에 대해 다시 생각해보게 되었습니다. 최근 보안 이슈를 통해 알 수 있듯 개인 정보와 결속이 강한 서비스들이 지속적인 크래킹의 대상이 되고 있어 점점 개인 정보와의 결속은 약해지고 있습니다. 하지만 개인의 삶에는 SNS라는 형태로 더욱 다가서게 되었습니다. 그렇다면 위와 같이 비밀번호를 분실하거나 (최악의 경우) 크래킹을 통해 비밀번호가 변경된 경우 되찾기 위한 도구로는 email 하나 밖에 존재하지 않습니다. 위 hotmail의 사례와는 다르게 개인에 대한 정보가 다 노출되어 있기 때문에 스스로에 대한 검증이 어렵습니다. 그렇다면 결국 계정이 방치되거나 누군가에 의해 도용(SNS의 누적된 정보를 기반으로 동일 인물처럼 행세할 수도 있습니다!) 당하게 된다면 정말 곤란하겠죠. 정보결속은 약해졌지만 생활결속은 강해지면서 기존의 인증체계에 대한 문제점도 재인식해봐야 할 시점입니다.

물론 최선의 방법은 비밀번호를 잘 유지관리하여 분실하지 않는 것이 중요하겠습니다. 머릿속에 적어두세요.

기존에 전반적인 업무를 보고 있던 사람이 퇴사하게 되어 얼떨결에 모든 업무가 저에게로 떠밀려와 일주일 내내 10시 이후(밤입니다. 밤!)에 퇴근하니 결국 일요일(주6일입니다..) 되어서 몸살이 났네요. 하루종일 골골대다 이제야 좀 멀쩡한 상태가 되어 머리는 멍한데 글 읽기엔 눈에 들어오지 않아 글이라도 쓰려고 컴퓨터를 켰습니다.

아무리 어려운 일이 있더라도 더 열심히 하면 되지, 내가 여기서 배우는 것이 더 많다고 생각하며 경험을 늘린다에 집중하고 지냈는데 지난 반 년을 되돌아보니 내 커리어라고 내세울 만큼 한 일도 없을 뿐더러 내 스스로 내적인 성장도 크게 느껴지지 않아 상실감이 컸습니다.

시간이 갈수록 내 담당만 늘어나서 최근 들어서는 웹퍼블리싱부터 각종 수정건, 프로그램 개발 및 신규 서버 관리, 기존 호스팅 관리, 각종 제출서류 작성 및 클라이언트 응대, 인터넷 안되요, 컴퓨터 안되요 처리까지. 아침에 출근해서 밤 11시까지 일하고 집에 들어와 누워보면 오늘 뭐했나 생각도 들고.

불평불만 하지 말자. 늘 상황에서 최선을 다해 배울 줄 알아야 한다고 생각했었는데 요즘 그 원동력도 점점 잦아들고 힘들어지고. 이제 앞으로 다시 달려야 하는데 말이죠. 그래서 더욱 복학이나 편입에 대해 깊이 생각하게 되고. 마음만 더 급해지고 있습니다.

이제 또 시작되는 한 주. 다시 최선을 다해야겠습니다.

httpd -k restart

위 커맨드를 사용해서 httpd를 재시작해줬는데 오늘 봤더니 CBand에 기록된 트래픽도 초기화 되더군요. 깜짝 놀랐습니다 ;ㅅ; 검색해보니… graceful이란게 있더군요. (http://httpd.apache.org/docs/2.0/ko/stopping.html) httpd.conf가 변경될 때는 서버의 연속성을 유지하며 재시작(이 표현이 적절한지 모르겠습니다만) 하기 위해서는 아래와 같이 하시면 되겠습니다.

httpd -k graceful

오늘이 말복, 마지막 더위라고 지나가니 선선한 날씨가 반깁니다. 이번 가을 좋은 날씨에 집중해서 좋은 성과를 남겨야지 하는 마음이 생기네요. 남은 한 해의 목표를 정하고 다시 시작하는 기분으로, 2011년을 보람차게 마무리했단 글을 남길 수 있도록 노력해야겠습니다.

  • 워드프로세서, 컴퓨터활용능력 실기 응시하기
  • 토익 2회 응시 및 800점대 진입하기
  • ruby 습득하기
  • 인문서 5권 읽고 독후감 쓰기
  • 일기 꾸준히 쓰기

일상생활을 바꾸지 않는 한 인생은 바뀌지 않는다. – 마이크 머독

연재할 듯 글을 시작했으나 연재하지 않고 있습니다. (…)


이름 이쁜 프로그래밍 언어 루비. 루비 온 레일즈가 각광 받는데 궁금해서 전부터 배우고 싶었던 언어였고, 휴가를 이용해 배워보려고.

루비를 일단 설치해야 하는데 RoR이 최종 목표이므로 RoR 사이트(http://rubyonrails.org/)에서 win32 installer를 다운받아 설치하였다.

cmd를 시작 > 실행 해서 ruby를 실행하면 시스템변수로 선언이 안되어 있기에 당연히 안되고 그 설정 부분을 찾다찾다 보니까 별도의 설정이 아니라 Start Command prompt with Ruby를 이용해서 사용하면 되는 것이었다. 그것도 모르고 삽질을 ;ㅅ;

몇분 만에 블로그 만들기라는 이름으로 유명했던 RoR 튜토리얼 보고 해보려다가 rake db에 막혀서(sqlite3이 기본 db인데 어떻게 연결해야 하는지도 모르겠고;;) 루비 20분 가이드(http://www.ruby-lang.org/ko/documentation/quickstart/) 먼저 봤다. 베이직 언어 비슷한 느낌이 들지만 상당히 간편하고 개발 언어의 장점을 모아놓은 느낌. 뭐 튜토리얼 보고서 그런걸 한번에 알 순 없지만;;

20분 가이드의 결과물.

#!/usr/bin/env ruby

class MegaGreeter
  attr_accessor :names

  # Create the object
  def initialize(names = "World")
    @names = names
  end

  # Say hi to everybody
  def say_hi
    if @names.nil?
      puts "..."
    elsif @names.respond_to?("each")

      # @names is a list of some kind, iterate!
      @names.each do |name|
        puts "Hello #{name}!"
      end
    else
    puts "Hello #{@names}!"
    end
  end

  # Say bye to everybody
  def say_bye
    if @names.nil?
      puts "..."
    elsif @names.respond_to?("join")
      # Join the list elements with commas
      # 독특한 처리 방식, 값이 여럿(array인진 모르겠음;) 들어있으면 join이란 method가 생성
      # 이게 뭐 루비가 가지는 특성인 모양.
      puts "Goodbye #{@names.join(", ")}.  Come back soon!"
    else
      puts "Goodbye #{@names}.  Come back soon!"
    end
  end

end

if __FILE__ == $0
  mg = MegaGreeter.new
  mg.say_hi
  mg.say_bye

  # Change name to be "Zeke"
  mg.names = "Zeke"
  mg.say_hi
  mg.say_bye

  # Change the name to an array of names
  mg.names = ["Albert", "Brenda", "Charles",
    "Dave", "Englebert"]
  mg.say_hi
  mg.say_bye

  # Change to nil
  mg.names = nil
  mg.say_hi
  mg.say_bye
end

cafe24에서 서버호스팅을 결제한 후 세팅한 과정에 대한 글로 기본적인 세팅 과정에 대해 기록했다.

cafe24에서 서버호스팅 구입 시 안내에는 centOS, ubuntu, fedora 등 원하는 OS로 설치해준다고 하여 Ubuntu server로 신청했지만, 실제 설치 시 차후 기술 지원은 CentOS 이외에는 어렵다는 이야기에 CentOS로 진행했다.

기본적으로 Cafe24에서 웹서비스를 바로 운용할 수 있도록 세팅을 해준 상태로 설치해주기 때문에 데몬만 실행해주면 바로 사용할 수 있다.

# sudo -u apache /home/apache/bin/httpd -k start</pre>

트래픽, 접속량 등을 제어하기 위한 throttle을 설치하려 했지만 apache2.x을 지원하지 않아 대신 CBand를 설치했다. CBand는 apxs를 요구하는데 httpd-devel에 포함되어 있다.

# yum -y install httpd-devel
# wget http://dembol.org/downloads/cband/mod-cband-0.9.7.5.tgz
# tar xfz mod-cband-0.9.7.5.tgz
# cd mod-cband-0.9.7.5
# ./configure --with-apxs=/usr/sbin/apxs
# make
# make install

CBand 설치는 아파치 2.x 에서의 트래픽 제한 글을 참고했다.

네임서버의 경우 dnsever를 사용하는 것을 권장한다. 직접 설치하고자 한다면 How to config BIND 9 for Linux를 참고해 설치하면 된다.

각각의 계정을 생성해주고 아파치에 설정, 데이터베이스를 생성, 주소를 연결하는 등의 처리를 위한 쉘 스크립트다.

#!/bin/bash

# 계정 생성을 자동으로 처리합니다.
# 1. 서버 아이디 생성 (useradd) / 비밀번호
# 2. /home/에 디렉토리 생성, chmod, chown 설정
# 3. /home/$account/public_html 기본 파일 복사
# 4. 도메인이 있다면
#   /etc/named.conf 추가
# 5. /home/apache/conf/extra/httpd-vhosts.conf 에 해당 계정 virtualhost 추가 (도메인과 서브도메인)
# 6. 데이터베이스 추가

homedir="/home"
httpd="/home/apache/bin/httpd -k"
mysql="/home/mysql/bin/mysql -u root -p"
httpdown="apache"
htdocs="public_html"
namedconf="/etc/named.conf"
zone="standard.zone"
domain="localdomain.localname"
conf="/home/apache/conf/extra/httpd-vhosts-account.conf"

echo "계정 생성을 자동으로 처리합니다."

funcacc () {

    while [ ! $account ]
    do
        echo -n "### 계정을 입력하세요 : "
        read account

        if [ ! $account ]; then
            echo ">>> 계정명을 넣어 주시기 바랍니다."
            unset account
        elif (( $(cat /etc/passwd |grep -c "^$account:") > 0 )) ;then
            echo ">>> 계정이 이미 존재합니다. 다시 입력바랍니다 "
            unset account
        fi
    done

    while [ ! $password ]
    do
        echo -n "### 비밀번호를 입력하세요 : "
        read password

        if [ ! $password ]; then
            echo ">>> 비밀번호를 넣어 주시기 바랍니다."
        fi
    done

    echo -n "### 도메인을 입력하세요 (없으면 그냥 엔터) : "
    read yourdomain

    echo "계정은 $account 입니다."
    echo "비밀번호는 $password 입니다."

}

funcacc

# 계정 생성 /home/$account
useradd $account -s "/bin/bash" -d "$homedir/$account"

# 계정 비밀번호 설정
echo $password | passwd $account --stdin

# 홈디렉토리 권한 설정
chown "$account"."$httpdown" "$homedir/$account"
chmod 711 "$homedir/$account"
echo "initdate  $(date +%Y-%m-%d\ %H:%M)" >> $homedir/$account/.userinfo

# public_html 생성
if [ $htdocs ] && [ ! -d "$homedir/$account/$htdocs" ] ; then
    mkdir "$homedir/$account/$htdocs"
                chown "$account"."$account" "$homedir/$account/$htdocs"
    chmod 711 "$homedir/$account/$htdocs"
fi

#named 추가
if [ $yourdomain ] ; then
    echo "zone \"$yourdomain\" IN {type master;         file \"$zone\"; };" >/tmp/named.conf
    cat /tmp/named.conf >> $namedconf
    /usr/sbin/rndc -p 953 reload
fi

# /home/apache/conf/extra/httpd-vhosts.conf 에 해당 계정 virtualhost 추가 (도메인과 서브도메인)

echo
echo > /tmp/hosting
echo "### 등록일: $dat 계정명: $account ###" >> /tmp/hosting
echo "<VirtualHost *:80>" >> /tmp/hosting

echo "  DocumentRoot $homedir/$account/$htdocs" >> /tmp/hosting

# 개인 도메인의 유무
if [ ! $yourdomain ]; then
    echo "  ServerName $account.domain.co.kr" >> /tmp/hosting
    echo "  ServerAlias www.$account.domain.co.kr" >> /tmp/hosting
else
    echo "  ServerName www.$yourdomain" >> /tmp/hosting
    echo "  ServerAlias $yourdomain $account.domain.co.kr www.$account.domain.co.kr" >> /tmp/hosting
fi
echo "  CBandLimit 1Gi " >> /tmp/hosting
echo "  CBandPeriod 1D " >> /tmp/hosting 

# 로그 파일 셋팅
if [ ! $yourdomain ]; then
        echo "  ErrorLog logs/$account.$domain-error_log" >> /tmp/hosting
        echo "  CustomLog logs/$account.$domain-access_log combined" >> /tmp/hosting
else
    echo "  ErrorLog logs/$yourdomain-error_log" >> /tmp/hosting
    echo "  CustomLog logs/$yourdomain-access_log combined" >> /tmp/hosting
fi

echo "</VirtualHost>" >> /tmp/hosting

echo ">>> 다음 내용이 $conf 에 등록되었습니다"
echo "=================================================="
cat /tmp/hosting
echo "=================================================="

cat /tmp/hosting >> $conf

# $httpd restart
# restart로 재시작하면 cband가 리셋되버리는 문제점이...
$httpd graceful

# 데이터베이스 설정

dbname="$account"

if [ $dbname ]; then
    echo dbname is $dbname
    pass=$password
    echo "dbpasswd is $pass"

    echo "create database $dbname;" > /tmp/dbadd.sql
    echo "grant all privileges on $dbname.* to $account@localhost identified by '${pass}';" >> /tmp/dbadd.sql
    chmod 700 /tmp/dbadd.sql
    echo
    echo ">>> 다음 sql 문이 실행됩니다"
    echo
    echo "=================================================="
    cat /tmp/dbadd.sql
    echo "=================================================="
    echo
    echo ">>> 디비가 다음과 같이 추가후 검색되었습니다.(해당디비가 나오면 정상추가)"
    echo ">>> rt 데이터베이스 비밀번호를 입력해주세요."
    $mysql mysql < /tmp/dbadd.sql
    rm -rf /tmp/dbadd.sql
fi

rm -rf /tmp/hosting
rm -rf /tmp/dbadd.sql

echo "세팅이 완료되었습니다."

위와 같이 쉘로 직접 작업하는 것은 여러가지 문제가 발생할 소지가 있기 때문에 가능하다면 Cpanel, Webmin 과 같은 관리도구를 설치해 사용하는 것을 권장한다.

사무실 이사를 했다.

좁은 사무실 내에 인원이 많아지다보니 무질서한 커뮤니케이션 또한 잦아져 온전히 업무에 집중하기 어렵다는 판단 하에 사무실을 분리하기로 결정했다.

제주큐브 사무실 이사 전 모습

비도 오고 그래서 이사하기에 좋은 날씨는 아니었지만 짐을 내릴 땐 날씨가 괜찮아 다행이었다. 원래 카페를 운영하고자 했던 장소라서 인테리어가 이미 되어 있어 마치 카페와 같은 분위기의 사무실이 되었다. 단점은 지하라는 점.1

이전 사무실에서 대표님의 개발 정책은 거의 애자일에 가까웠다. 매일 아침 회의와 함께 누구든지 의견을 개진할 수 있도록 유도하는 분위기, 그 흐름이 끊기지 않도록 오픈된 공간, 그 연장선에서 개발자와 클라이언트가 직접 대면해 당일 모든 수정을 끝내는 유지보수 정책은 고객들에게 강한 인상으로 남게 되었고 그 방식 자체가 회사의 마케팅 방식 중 하나로 자리를 잡았다.

물론 이 정책은 프로그래머, 디자이너, 플래셔, 퍼블리셔가 각각 한 명일 때 유효한 방식이었고 인원수가 늘어감에 따라 (또는 직책의 수가 늘어남에 따라) 여러가지 문제가 나타났다. 예로, 해당 유지보수 내용이 하위 직책의 인원에 떠넘기기 식으로 넘어오기도 하고, 퇴직자의 공백을 모든 직원이 책임 회피를 하는 등의 문제2도 발생하기도 했다. 중간 관리자의 부재의 문제도 있었지만 규모가 커지면 큰 규모에 맞는 프로세스를 구축하거나 부분별로 나눠 소규모를 지속적으로 유지하는 등의 방법으로 해소하는게 바람직하지 않았나 생각이 든다.

개발자에게 어떤 공간이, 어떤 인원이 가장 효율 높고 불편함이 없을까. 환경적인 요소, 제도적인 요소 등 다각적으로 고민해봐야 한다.

Footnotes

  1. 지하에 사무실을 구해서는 안된다는 사실을 알게 되었다.

  2. 어쩌면 당연한 문제.

한 달 여 프로젝트를 맡아 개발했던 웹사이트가 있었다. 회사에서 투입된 인력으로도 상당한 규모의 프로젝트였고 나는 개발 담당자로 개발 미팅도 내 주도 하에 이루어졌다. 개발이 완료되어 최종 납품하는 순간에 클라이언트는 기획 전반의 변경을 요구하였고 그에 따른 금액적 소요는 모두 자신이 부담하겠다고 말했다. 유지보수 계약에 따라 꾸준히 오는 수정사항에 대해 모두 처리해주고 있었으며 기획의 변경으로 발생하는 내용에 대해서는 추가 금액을 청구했는데 해당 금액이 크다고 느꼈나보다. 그래서 다른 업체를 알아보고는 그쪽이 우리가 청구한 부분에 반도 안되는 가격에 처리해주겠다고 해서 그쪽으로 유지보수를 옮기겠다고 해 사실상 우리 회사와의 관계는 끝을 맺었다.

클라이언트가 요구하는 부분은 수정 요구를 했을 때 바로 처리되었으면 하는 부분이었는데 회사의 일정도 있고 그에 따라 조율되는 부분을 이해해주지 않았다. 그래서 떠나는 거라면 납득을 안할 수가 없다. 그정도의 기획과 개발이 들어가는 사이트라면 자체적인 개발진을 꾸려야  했던 수준이었다.

어제 그 클라이언트에게서 전화가 왔다. 개발이 안된 부분이 있다고 성질을 내더라. 들어보니 무슨 sms 발송과 관련된 부분이 개발되지 않았다고. 우리가 사용하는 솔루션에 기본적으로 들어있는 부분에다 회원가입 시 문자인증 등의 내용이 있어 모듈은 모두 탑재되어 있는 상황이었다. 기획의 변경으로 탑재할 위치가 달라져야 했었던 내용이라 그 기획대로 변경할 때 같이 적용해주면 되는 부분이었다. 그런데 대뜸 전화와서 하는 말이 기능이 개발되지 않았다고 하니 황당했다. 어처구니가 없지만 설명하다보니 그쪽 개발자인가 전화를 바꿔주었는데 나를 바로 긁었다. 대뜸 높은 사람을 바꾸란다. 왜냐고 하니까 내가 자기 설명을 못알아듣는 것 같단다. 내가 개발담당자라고 하니까 개발한 사람이 왜 말을 못알아듣냐고 한다. 그러고서 하는 말이 가관이었다.

이거 보니까 그누보드 오픈소스로 만드셨네요. 오픈소스로 개발하는 개발자도 개발자라고 할 수 있습니까?

그 얘기 듣고 욱해서 뭐라 할까 하다가 그냥 대표님한테 전화를 넘겼다. 하루가 지나니 전후상황 다 잊혀지고 그 말만 계속 머릿속을 맴돌고 있다. 나도 개발자일까? 오픈소스를 활용하고 있으면 개발자가 아니란 걸까? 사실 더 따지고 들지 못하고 욱한 것은 아직 내가 그릇이 작은 탓도 있고, 어쩌면 마음 한 켠에 내가 아직 학문적인 기반이 얕은 개발을 하고 있다는 부분이 마음에 걸렸기 때문인지도 모르겠다.

자성의 시간은 이쯤으로 하고. 오픈소스는 개발자에게 어떤 의미일까?

덧. 오픈소스로 개발한다고 개발자가 아니라고 하는 그 사람은 도대체 뭘 어떻게 개발하고 있는지 궁금하다. 그 사람은 개발자라서 O/S도 직접 개발해서 컴퓨터를 하고 있을지도 모를 일이니까.

예전에 비해 확연히 제주의 날씨는 극단적으로 변했습니다. 제주보다 더 남쪽의 나라로 가본적이 없어서 단언하기 힘들지만 학술적으로 배웠던 아열대 기후의 모습이 아닌가 합니다. 맑은, 파란 하늘에 흰 구름과 (확연히 다른) 먹구름이 떠 있는가 하면 햇볕 나는데 비가 내리기도 하고. 해무가 몇 주 동안 밤엔 섬으로 올라오고 낮엔 바다로 내려가는 현상도 계속 되었고 푄 현상으로 한라산을 넘어온 고온 다습한 바람이 제주시에 계속 되었습니다. 습해서 불쾌지수가 상당히 높았던 몇 주였습니다. 그 이후로는 장마로 들어서 엄청나게 뜨거운 날 아니면 엄청난 비가 쏟아지고 있습니다. 이제 진정한 의미로 남국의 섬이 되가는게 아닌가 합니다. 환경이 변한다는 것이 그리 좋은 일은 아닌데 말이죠. 지구 규모의 환경 변화에 일부인지는 좀더 지켜봐야겠습니다.

색상을 바꿔요

눈에 편한 색상을 골라보세요 :)

Darkreader 플러그인으로 선택한 색상이 제대로 표시되지 않을 수 있습니다.