1년만에 컴퓨터 프로그램 개발자인 Drew******* 가 한국에 놀러 왔다.


그는 영국 생활을 정리하고 고향인 호주로 가기 위해 잠시 한국에 들른 것이다.


그와 얘기를 하면서 나이들어 프로그램 개발자로 살아 남는다는 것은 한국이나 영국이나 호주나 쉽지 않다는걸 알게됐다. 그동안 막연하게 외국은 한국보다 좋은 환경일 것이라 짐작만 했는데 꼭 그렇지만은 않은것 같았다.



한국은 coding 조기 교육이 한참 유행이라는 얘기가 오고 가다가 아이에게 코딩 조기 교육을 시킬거냐고 물어 봤더니 조기 교육은 안 시킨단다.  그말에는 나도 전적으로 동감한다.  

나중에 흥미가 있어서 알려달라고 하면 가르쳐 주겠지만 하고 싶지도 않은 아이에게 강제하는건 안 좋은 것 같다.


마치 그 얘기를 나누던 곳이 집이라. 

Drew******가 요즘 자기가 가지고 놀고 있는걸 보여주겠다고 하더니 자기 가방에서 뭔가를 꺼낸다.




그것은 BBC에서 만든 MICRO:BIT (마이크로 비트) 다.


뭐에 쓰는 물건인고?
딱 봐도 아두이노 같은 마이크로 컨트롤러 인데. 


시연을 해주겠다고 해서 



내 맥북을 켜고 USB에 MICRO BIT 를 연결한다





불러주는 사이트(http://makecode.microbit.org)에 접속한다. 

앗 스크레치 프로그램 처럼 블럭으로 코딩을 할 수 있는 화면이다.


어 근데 이건 웹 페이지인데

웹에서 바로 프로그램밍을 할 수 있나?





간단히 예제를 불러와 micro bit 에 다운로드하니 뒷면 LED에 하트 모양이 출력된다.

(사실 이부분은 내가 직접 눌렀지만, 약간의 음주 후라서 어떤 메뉴을 어떤 순서대로 눌렀는지 잘 기억이 안난다)


Drew******는 이런 교육 프로그램을 만들어서 업로드하는 일종의 재능 기부 같은 것도 회사 업무로 인정해 준다고 했다. (내가 해석을 제대로 했는지 모르지만~)

진심 부러웠다. 누구는 없는 시간 쪼개서 취미나 학습으로 하는 것을 업무시간에 돈 받고 할 수 있다니.


그에 대한 답례로 나는 micro bit와 거의 비슷한 아두이노와 각종 모듈들을 보여주고 라즈베리파이3도 보여줬더니 무슨 용도로 사용하냐고 한다.  

Tomcat, MariaDB 깔아서 개발용 JAVA WAS 용도로 사용하고 있다고 했다.



한국에서 많이 쓰는 C++, C#, .net, java 외 듣도 보도 못한 각종 프로그램밍 언어를 섭렵한 Drew******에게는 이정도는 얘들 장난일지도...


어디가서 난 개발자라고 하지 말아야겠다. 

그냥 java spring, C#, ASP.net, php 조금 하는 전산 사무직이라고 하자. ㅠ.ㅠ




Micro bit(마이크로 비트) 는 icBanq 에서 팔고 있기는 한데 아직 한국에 많이 보급되지는 않은것 같다.

나중에 여건이 되면 자세히 소개해 보도록 하겠다.





  • 제목 : Clean Code 클린 코드 애자일 소프트웨어 장인 정신 (Program Programming Programmer)
  • 출판사 : 인사이트
  • 저자 : 로버트 C. 마틴
  • 옮김 : 박재호, 이해영




프로그램이 뭔지 코딩이란 어떻게 하는것이 좋은 건지 처음부터 다시보기 살펴보기 위해서 오늘(2019년 3월 31일) 펼쳐든 책인데 1장의 깨끗한 코드 내용이 너무 감명 깊어서 약 1페이지 반 분량을 인용해 본다.


내가 나쁜 코드들을 계속 생산하여 내 코드를 열어본 다른 개발자가 욕을 하고 있지는 않나 반성하며 책을 읽어나가고 있다!


요약 인용도 고려해봤으나 미천한 글 재주로 저자의 의도를 해칠 수 있어 원문을 그대로 인용한다. 

왜 이 책을 읽어야 되는지는 아주 잘 설명 하고 있으니 구입해서 읽어 보도록 하자




1장, 깨끗한 코드 중(p4 ~ p6)

...... (중략)



나쁜 코드로 치르는 대가


  2-3년 넘게 프로그램을 짰다면 남들이 저질러놓은 쓰레기 코드로 고생한 경험이 있으리라.  코드가 하도 엉망이라 프로젝트 진도가 안 나가는 경험도 있으리라.  나쁜 코드는 개발 속도를 크게 떨어뜨린다.  프로젝트 초반에는 번개처럼 나가다가 1-2년만에 굼뱅이처럼 기어가는 팀도 많다.  코드를 고칠 때마다 엉뚱한 곳에서 문제가 생긴다.  간단한 변경은 없다.   매번 얽히고설킨 코드를 '해독'해서 얽힌고설킨 코드를 더한다.  시간이 지나면서 쓰레기 더미는 점점 높아지고 깊어지고 커진다.  청소할 방법이 없다.  불가항력이다.


  나쁜 코드가 쌓일수록 팀 생산성은 떨어진다.  그러다가 마침내 0에 근접한다.  생산성이 떨어지면 관리층은 나름대로 복구를 시도한다.  어떻게?  생산성을 중가시키려는 희망을 품고 프로젝트에 인력을 추가로 투입한다.  하지만 새 인력은 시스템 설계에 대한 조예가 깊지 않다.  설계 의도에 맞는 변경과 설계 의도에 반하는 변경을 구분하지 못한다.  게다가 새 인력과 팀은 생산성을 눞여야 한다는 극심한 압력에 시달린다.  그래서 결국은 나쁜 코드를 더 많이 양산한다.  덕택에 생산성은 더더욱 떨어져 거의 0이 된다.



원대한 재설계의 꿈


  마침내 팀이 반기를 든다. 그들은 이처럼 협오스러운 코드로는 더 이상 일하지 못하겠다며 관리층에게 재설계를 요구한다.  관리층은 재설계에 자원을 쏟아붓기 싫지만 생산성이 바닥이라는 사실을 부인할 도리가 없다.  결국은 팀이 요구하는 대로 원대한 재설계를 허락한다.


  새로운 타이거 팀이 구성된다.  모두가 타이거 팀에 합류하고 싶어한다.  새로운 프로젝트니까.  처음부터 시작해 진정으로 아름다운 작품을 창조할 기회니까.  하지만 가장 유능하고 똑똑한 사람들만 타이거 팀으로 차출된다.   나머지는 계속해서 현재 시스템을 유지보수한다.


  이제 두 팀이 경주를 시작한다.  타이거 팀은 기존 시스템 기능을 모두 제공하는 새 시스템을 내놓아야 한다.  그뿐만이 아니다.  그동안 기존 시스템에 가해지는 변경도 모두 따라잡아야 한다.  새 시스템이 기존 시스템 기능을 100% 제공하지 않는 한 관리층은 기존 시스템을 대체하지 않을 테니까.


  때때로 경주는 아주 오랫동안 이어진다.  10년이 넘게 걸리는 경우도 보았다.  새 시스템이 기존 시스템을 따라잡을 즈음이면 초창기 타이거 팀원들은 모두 팀을 떠났고 새로운 팀원들이 새 시스템을 설계하자고 나선다.  왜? 현재 시스템이 너무 엉망이라서.


  방금 한 이야기를 일부라도 겪었다면 시간을 들여 깨끗한 코드를 만드는 노력이 비용을 절감하는 방법일 뿐만 아니라 전문가로서 살아남는 길이라는 사실을 인정하리라.


오픈소스 소스라고 무조건 무료로 사용할 수 있는것은 아닙니다.

그래서 라이선스 Open-source license 의 종류와 중요사항에 대해 간략히 알아 보도록 하겠습니다. 보다 상세한 내용은 해당 라이선스 정책을 확인하기 바랍니다

 License

내용 

 GPL 2.0

- 해당 라이선스의 소프트웨어를 일부 활용, 소스 수정, 소프트웨어 연결 한 경우 소프트웨어 소스 코드를 공개해야 함

- 배포 목적이 아닌 경우 소프트웨어 소스코드 공개 의무 없음

- 소프트웨어 배포의 경우 저작권 표시, 보증 책임이 없다는 표시, GPL 명시

- 특허를 구현한 프로그램은 특허 사용료를 받을 수 없음

- GPL소스코드 공개의무는 소프트웨어 배포시에만 해당하면 배포를 하지않고 서비스만 하는 경우는 GPL 의무사항이 발상하지 않습니다.

예) MySQL을 호스팅 업체에서 서버에 설치하고 호스팅 받는 업체가 사용하는 것은 GPL 위반 사항이 아닙니다.

- 대표적 SW : MySQL, MySQL Connector, MariaDB

 GPL 3.0

- 라이선스 제품을 특정 제품에 포함할 경우 설치 정보를 제공해야 함

 LGPL

- GPL라이선스를 완화한 형태

- LGPL 라이브러리에 응응프로그램을 링크시킬 경우 소프트웨어 소스 공개 의무 없음

- 대표적 SW : MariaDB Connector

 BSD

- 소스 수정 및 재배포를 할 수 있으며 상업적으로 이용해도 된다. 

- 2차 저작물 소스 코드 공개 의무 없음
단, 해당 오픈 소스나 라이브러리에 대한 저작권을 표시해야 한다.

 Apache

- 소스 수정 및 재배포를 할 수 있으며 상업적으로 이용해도 된다. 

- 2차 저작물 소스코드 공개 의무 없음
단, 해당 오픈 소스나 라이브러리에 대한 저작권을 표시해야 한다. (소스 변경 시 그에 대한 내용을 알려줘야 한다.)

 MIT

- 소스 수정 및 재배포를 할 수 있으며 상업적으로 이용해도 된다.
단, 해당 오픈 소스나 라이브러리에 대한 저작권을 표시해야 한다.



2016년 말 오라클의 Java SE 상용화 이슈가 있어서 조사한 것 정리 해봅니다.


토막 상식 : 오라클이란?

오라클(Oracle)은 DBMS 시장에서 부동의 1위 제품인 ‘오라클’을 만드는 회사로 데이터베이스 전문 기업입니다.


이게 뭐! 어쨌다고?

데이터베이스(Data Base) 시장은 이렇습니다.

대부분이 큰 회사에서 사용하는 대형 시장은 Oracle(오라클)이 시장을 장악하고 있습니다.

중, 대형 시장은 MS(마이크로 소프트) 사의 MsSQL(엠에스 에스큐엘 또는 SQL Server라고도 함)이 시장을 확대하고 있습니다.

그리고 중, 소형 시장은 무료인 MySQL(마이 에스큐엘)이 버티고 있습니다. 


MySQL은 현재 오라클 소유이니 전세계 데이터베이스 시장을 독점 장악하고 있다고 할 수 있습니다.

DBMS 시장에서 오라클의 경쟁 상대라고는 MsSQL 밖에 없을 정도로 오라클의 영향력은 막강합니다.



오라클과 선 마이크로 시스템 관계?

2009년 4월 21일 오라클은 서버와 Java로 유명한 선 마이크로 시스템(이하 '선')을 헐값이 74억 달러(당시 한화 약 9조 8000억원)에 부채를 제외하고 54억 달러를 지불하고 인수합니다.


선은 하드웨어인 서버와 스토리지에 강점을 가지고 있었지만 소프트웨어 시장에도 무시못할 여러가지 기술 라이선스를 가지고 있었습니다.  선이 가지고 있던 대표적인 것 몇 개만 들어 보도록 하겠습니다.

개발자가 아니라도 한번씩은 들어봤을 프로그램 언어 Java(자바), 통합 개발툴인 NetBeans (이클립스에 밀렸지만), OS인 솔라리스, 무료 DBMS인 MySQL,  MS 오피스에 대적하려는 OpenOffice 등이 있었습니다.


하지만 이중에 돈이 되는 서비스는 없는게 경영난으로 이어졌고 IBM과 M&A 협상을 하다가 갑자기 오라클에 팔리게 되었습니다.  아무래도 이미 H/W를 가지고 있던 IBM보다는 H/W를 탐내는 오라클이 시너지 효과가 더 좋았겠죠.


이렇게 선 마이크로 시스템이 가지고 있던 오프 소스 프로젝트들과 라이선스들이 고스란히 오라클로 넘어 가게 되고 오라클은 선이 가지고 있던 제품들을 그대로 유지하겠다고 발표합니다.  하지만 오라클화(기존 제품 개발 보다는 상업적 판매 및 이익 실현이 가능한 제품으로 변경)를 가속하는 과정에서 기존 개발자들과 트러블이 발생합니다.


오라클화 과정에서 유명했던 오픈 소스 프로젝트들이 어떻게 되었는지 끝이 안 좋은 예를 몇가지만 들도록 하겠습니다. 좋은 쪽이든 나쁜 쪽이든 현재 진행형인 프로젝트들이 어떻게 될지는 더 지켜 봐야 합니다.



1. 오라클과 선 마이크로 시스템의 OpenOffice

1) 선의 오픈 프로젝트였던 OpenOffice를 오라클이 관리 시작
2) 오라클 관리에 반기를 든 OpenOffice 개발자들 이탈하여 LibreOffice 출시
3) 이에 오라클은 공익성이란 명분으로 2011년 6월 OpenOffice를 아파치 재단에 양도
4) 개발자들 다 빠진 상태에서 프로그램 업데이트가 안되어 아파치 재단에서 2017년 프로젝트 종료 예정


2. 오라클과 선 마이크로 시스템의 MySQL


1) MySQL은 오픈 소스인 GPL 라이선스와 상용 MySQL 라이선스로 이중 라이선스 적용

2) GPL 라이선스 초과시는 상용 프로그램 구매하여 사용(저가의 프로그램 가격, 지원 서비스 별도 구매 가능)

3) 오라클과 개발지침 의견 차이로 MySQL 창업자이자 핵심 개발자가 이탈하여 MariaDB 출시

4) 오라클 인수 후 상용 버전 가격 인상(프로그램만 구매 불가)

5) 현재 MySQL 개발 답보 상태, MariaDB는 개발 지속 및 커뮤니티 활성화됨

6) 무료 버전인 MySQL CE 라이선스가 언제 바뀔지 알 수 없음



3. 오라클과 선 마이크로 시스템의 Java


1) 오라클과 구글은 안드로이드에 자바 API 사용료로 법정 분쟁 중 (2016년 5월 구글에 유리한 판결, 오라클 항소 예정)

2) 오라클이 2016년부터 Java SE Advenced Desktop과 Java SE Advenced & Suite 라이선스 위반 사용자 추적 및 과금 시작.

3) Java SE 버전은 현재까지는 무료이고 유료화가 쉽지 않겠지만 Oracle License의 불확실성이 여전히 존재함.


매년 오라클 디비의 유지보수 계약을 강제하고 가격을 올리는 오라클의 라이선스 정책 어디까지 믿고 사용해야 될까요?

2주전 부터 주말마다 조금씩 만들던 안드로이드 앱을 오늘(2016년 12월 11일)  google play store 에 등록했습니다.


처음이라 쉬운걸로 간단한 '부가세 계산기' 하나 만들어 봤죠.

디자이너 없이 만들다 보니 화면이 별로지만 그래도 여러번에 걸쳐 수정해서 처음보다는 많이 개선된 디자인 입니다. 혹시, 디자인 재능기부 하실분 연락 주세요.


앱 개발에 도움 주신 분들 다시 한번 감사합니다.

최종 목표인 IOT 앱까지 함께 가 봅시다.


이라이더가 최초로 만든 앱 다운로드 하기


구글 play store 다운로드




 



웹에서 사용할수 있는 데이터 그리드, 차트, 트리를 구성할 수 있는 UI 툴입니다.

RIA(Rich Internet Application) 제품도 있고 jQuery plugin 제품도 있는데 유명하고 잘 사용한것 위주로 정리해봅니다.

순서는 이라이더 맘대로 좀 더 정이 가거나 유명한 것이 먼저 오도록 했지만 '랜덤'이라고 씁니다.

목록에 있는 정도면 국내에서 쓰는 대부분의 제품에 해당 할거라고 감히 추축해봅니다.


기능과 가격은 홈페이지 공개있는 자료를 바탕으로 작성했으나 잘못된 부분이 있으면 '이라이더 공지사항'에 있는 연락처로 자료를 보내주시면 수정하도록 하겠습니다.


 

1. 요구조건
  1). Flash와 ActiveX 를 사용하는 제품은 탈락
  2). javascript 를 사용해야함
  3). 자연스럽게 html 5, css 를 사용하는 제품만 남겠죠
  4). jQuery 선호

 

2. UI tool 또는 grid 비교

 번호

제품명 

사이트 

라이선스

기타 

1

nexacro platform

www.tobesoft.co.kr

유료
서버 core당 라이선스 (도메인 제한없음)

html5 지원, 고가, 기술지원 잘됨, 국내 SI 에서 많이 사용

- grid, tree 지원 / chart 없음

2

AXISJwww.axisj.com

무료 (LGPL v2)

- grid, tree, chart 지원

3

ExtJS

www.sencha.com

일부 무료,
유료

RIA 툴, 다 좋은데 배우기 좀 어렵고  버전별 차이 있음, 가격도 이 정도면 저렴

- grid, tree, chart 지원

4

realgrid

www.realgrid.com

유료

- grid, tree 지원 / chart 없음

5

rMate

www.riamore.net

유료

서버당 라이선스, 비교적 저렴

- grid, tree, map 별도로 판매

6

kendo UI

www.telerik.com/kendo-ui

유료

- grid, tree, chart, editor 지원

7

jqGrid

www.trirand.com/blog/

4.7까지 MIT,
4.7.1 부터 무료, 유료

 4.7.1 부터 비영리 무료, 
그 외 유료
- grid 지원 / tree, chart 없음

8

WebSquare

www.inswave.com

유료

- grid, tree, chart 지원

9

jQuery Table Sorter

www.tablesorter.com/docs/

무료 (MIT or GPL)


10

SlickGrid github.com/mleibman/SlickGrid/wiki 무료 (MIT)  

- jqGrid 가 재확인 중 무료에서 4.7.1버전 부터 상업용 유료로 변경되어 수정했습니다. (2016-9-28 수요일)

 


3. chart 비교

 번호

제품명 

사이트 

라이선스

기타 

1

rMate

www.riamore.net

유료

서버당 라이선스, 비교적 저렴

- grid, tree, map 별도로 판매

2

chart

www.chartjs.org

무료 (MIT)


3

JqPlot

www.jqplot.com

무료 (MIT or GPL v2) 

4

Morris

morrisjs.github.io/morris.js

무료 (BSD) 

5

xChart

tenxer.github.io/xcharts

무료 (MIT) 

6

sigmajs

sigmajs.org

무료 (MIT)

 

7

HighCharts

www.highcharts.com

유료

1 developer : USD 590
5 developer : USD 2,655
10 developer : USD 5,020

8

Fusion Charts

www.fusioncharts.com

유료

1 developer : USD 199
Team : USD 999
Enterprise : USD 1,999
Enterprise plus : USD 3,299

9

jscharts

www.jscharts.com

유료

1 domain, commercial : USD 79
2 domain, commercial : USD 119
5 domain, commercial : USD 169

10

google chartdevelopers.google.com/chart무료 (Apache 2)

11

canvasjs

canvasjs.com

유료

developer license, non support
1 developer : USD 399
Team (5 dev) : USD 999
unlimited : USD 1,999



그리고 차트부분은 잘 정리한 자료가 있어서 링크 겁니다.
http://codegeekz.com/best-jquery-chart-libraries-for-building-interactive-charts/

 

윈도우 부팅시 맥북 키보드, 트랙패드 사용법

 

부팅시 OS 선택 : 전원 ON 후 바로 ALT 키를 계속 누르고 있으면 OS 선택 화면(MAC OS, WINDOWS)에서 좌우 화살표키()로 선택후 엔터

기본 부팅 OS 변경은 윈도우 하단 시스템 트레이 시계 왼쪽에 부트캠프(bootcamp) 설정에서 기본 부팅을 윈도우나 맥OS 로 변경하면 됨 (OS 부팅시는 환경설정 > 부트캠프에서 변경)

 

윈도우 부팅시 맥북 키보드 맵핑  (USB에 윈도우용 키보드를 연결시 기존과 동일하게 사용할 수 있음)

윈도우 키보드

맥북 키보드

용도

Window 윈도우

Apple 또는 command 애플, 커맨드

 

Alt      알트

option   옵션

 

Ctrl     컨트롤

ctrl 또는 control   컨트롤

 

Enter    앤터

return    리턴

다음줄로 이동

/

오른쪽 Apple 또는 command

원래 오른쪽 option

한자

시스템 트레이에서 漢 클릭

원래 오른쪽 ctrl

Backspace 백스페이스

delete    딜리트

커서 왼쪽 문자 삭제

Delete 딜리트

Fn + delete  펑션 + 딜리트

커서 오른쪽 문자 삭제

PrtScn 프린트스크린

Fn + Shift + F11

화면 캡쳐 (전체)

Alt + PrtScn

option + Fn + Shift + F11

화면 캡쳐 (활성창: 선택창)

PgUp 페이지 업

Fn + 화살표 상

다음 페이지로 이동

PgDn 페이지 다운

Fn + 화살표 하

이전 페이지로 이동

Home

Fn + 화살표 왼쪽

커서 줄 왼쪽 끝으로 이동

End   엔드

Fn + → 화살표 오른쪽

커서 줄 오른쪽 끝으로 이동

Insert 인서트

Fn + enter

 

Scroll Lock 스크롤 락

Fn + Shift + F12

 

Pause

Fn + esc

일시 정지 / 멈춤

Num Lock 넘버 락

Fn + F6

숫자 키보드 잠금

 

 

 

 

윈도우 부팅시 맥북 트렉패드 사용법 (USB에 마우스를 연결시 기존과 동일하게 사용할 수 있음)

기존 마우스 기능

트랙패드 조작법

커서 이동

한 손가락으로 드래그

왼쪽 버튼

한 손가락으로 클릭 또는 트랙패드 밑의 버튼 클릭

오른쪽 버튼

두 손가락으로 클릭 (맥은 오른쪽 버튼이 없음)

상하 스크롤 (휠 상하 회전)

두 손가락으로 상하 드래그

좌우 스크롤

두 손가락으로 좌우 드래그

 

 

 

OS 부팅시 맥북 키보드, 트랙패드 사용법

 

부팅시 OS 선택 : 전원 ON 후 바로 ALT 키를 계속 누르고 있으면 OS 선택 화면(MAC OS, WINDOWS)에서 좌우 화살표키()로 선택후 엔터

기본 부팅 OS 변경은 윈도우 하단 시스템 트레이 시계 왼쪽에 부트캠프(bootcamp) 설정에서 기본 부팅을 윈도우나 맥OS 로 변경하면 됨 (OS 부팅시는 환경설정 > 부트캠프에서 변경)

 

OS 부팅시 맥북 키보드 기능

윈도우 기능

맥북 기능

용도

Alt      알트

option   옵션

 

Ctrl     컨트롤

Apple 또는 command 애플, 커맨드

 

Enter    앤터

return    리턴

다음줄로 이동

/

Apple 또는 command + space bar

 

한자

 

 

Backspace 백스페이스

delete    딜리트

커서 왼쪽 문자 삭제

Delete 딜리트

Fn + delete  펑션 + 딜리트

커서 오른쪽 문자 삭제

PrtScn 프린트스크린

Apple + Shift + 3

화면 캡쳐 파일저장 (전체 화면)

Alt + PrtScn

Apple + Shift + 4 + space

화면 캡쳐 파일저장 (윈도우 선택)

 

Apple + Shift + 4

화면 캡쳐 파일저장 (영역 선택)

 

Apple + Shift + control + 3

화면 캡쳐 클립보드저장 (전체 화면)

 

Apple + Shift + control + 4

화면 캡쳐 클립보드저장 (영역 선택)

PgUp 페이지 업

Fn + 화살표 상

다음 페이지로 이동

PgDn 페이지 다운

Fn + 화살표 하

이전 페이지로 이동

Home

Fn + 화살표 왼쪽

커서 줄 왼쪽 끝으로 이동

End   엔드

Fn + → 화살표 오른쪽

커서 줄 오른쪽 끝으로 이동

 

 

 

 

OS 부팅시 트렉패드 사용법 (USB에 마우스를 연결시 기존과 동일하게 사용할 수 있음)

기존 마우스 기능

트랙패드 조작법

커서 이동

한 손가락으로 드래그

왼쪽 버튼

한 손가락으로 클릭 또는 트랙패드 밑의 버튼 클릭

오른쪽 버튼

두 손가락으로 클릭 (맥은 오른쪽 버튼이 없음)

상하 스크롤 (휠 상하 회전)

두 손가락으로 상하 드래그

좌우 스크롤

두 손가락으로 좌우 드래그

 

+ Recent posts