Javascript 스터디 – 000 회기, 그리고 다시 정리

줄여서 js라고 하던데.. 만난 건 엄청 오래전이다. 근데 내가 쓸 때의 js는 진짜 그냥 웹 페이지를 동적으로만 만들어주고 하는 데 이용하던 스크립트 중 하나였다. 거의 2006~2008년부터 만나기 시작해서 알게 된 녀석인데….

이 때 이용자들은 알 것이다. 사이트가 동적으로 움직일 수 있다는 것만으로도 자바가 엄청나게 각광받고, js가 그 자리 안에서 조금씩 발전하고 있는데 각종 알 수 없는 warning 띄우고 할 때에 보면 꼭 이녀석이 난리치고 있던 것도 있고… 뭔가 html 코드 안에서 난잡하게 돌아가고 그런 것들. 그리고 사이트 느리게 만드는 주범 중 하나였고… (그때 뭐 알고 했나.) 그러면서 브라우저끼리 호환도 잘 안되던 과거가 있질 않나… 거기에 더해서 웹 사이트에서 복잡한 기능을 넣고 하질 않았기 때문에 js 코드들도 간단했기 때문에 js 하는 것 = 그냥 왕초보 이런 느낌이었던 시절이다.

근데 지금 와서 웹 하는 데 보면 죄다 js가 기본으로 깔려간다. 웹 클라이언트에서 js 빼고 이야기 못할 정도다. 언어 자체의 성능도 발전하고 jit도 도입되면서 실행 속도도 엄청 빠른 편이다.

게다가 요즘 웹 개발이 주를 이루고 그에 따라 엄청 복잡해지면서 수요도 엄청 늘고, 나같은 임베디드 하던 인간들도 최소한의 설정 작업 만드는 것도 이젠 웹 베이스로 만들어 줘야 하는데 이런 곳에서도 어느정도 알아는 둬야 협업이 된다. 그래서 요즘 웹 관련된 내용을 하나하나 다시 볼려고 한다.

왜 안해봤어요? – 해볼 기회가 없었는데요?

되게 당연한 질문과 당연한 대답인데… 이상하게 들릴 때가 있다.

개발자 채용 시장에서나 그냥 잡소리 하다보면 이상하게 한번씩 나오는 말이다.

난 임베디드만 주로 했던 녀석이라 솔직히 웹을 건드릴 일이 없다. 그래서 웹쪽은 지원도 안했는데, 웹은 왜 안했냐고 물어보는 사람들이 간간히 있다. 대부분 개발 모르는 사람들이다.

옛날에는 진짜 임베디드에서 웹 페이지 넣는 거라고 해봤자 php 넣고 돌아갈 수준의 정말 작은 웹 서버 갖고 제어 컨트롤러 만들던 게 대부분이었다. 요즘은 그렇게는 안한다. 돌리는 하드웨어가 좋은 경우가 많아서 말이지.

요즘에 들어와서야 config 관련 작업들을 웹 인터페이스로 제공해 주는 곳들이 많으니 그런 곳들 좀 이용해야 한다면 나도 좀 해보지 않을까?

개발자와 건강 – 06. 키보드로 손가락이 망가질 수 있다고요? 네. 가능합니다.

키보드로 손가락 망가지는 거 진짜 많이 겪을 수 있는데, 이게 망가지기 쉬운 요소가 너무 많습니다. 그래서 키보드 선택할 때 진짜 고민 많이 해야 하는데… 그렇지 않은 것들이 많네요.

이게 말이 되는 소리냐 할 수 있겠지만… 본인의 키보드 타이핑 습관에 대해서 한번 진지하게 생각해야 합니다.

손목 위치나 손복 받침대 등으로 해서 손목이나 손 위치에 대해서 교정을 했다고 하는데도 손이 아프다, 그러면 보통 타이핑 하는 감각이 지금 쓰는 키보드랑 안맞아서 그럴 수 있습니다.

사실 키 입력의 손가락 관련해서는 그렇게 크게 문제가 될 일은 없습니다. 일반적으로 많이 이용하는 맴브레인의 경우에는 상당히 부드럽게 키가 입력되기 때문에 키 입력에 그렇게 큰 힘이 들어가는 것이 아니기 때문입니다.

문제는 기계식 키보드가 요즘 널리 보급되고, 체리사의 스위치 관련 특허가 풀리면서 여러모로 키보드 종류가 엄청나게 쏟아지고 있고, 누구나 쉽게 기계식 키보드를 이용하면서 다양한 형태의 제품에서 자기한테 맞는 형태인지 아닌지를 봐야 될 필요가 좀 많이 생겼습니다. 그전까지는 기계식 키보드가 좀 매니아의 영역이었고, 무접점 키보드도 가격이 엄청 비쌌기 때문에 그렇게까지 이용하고 그런 사람들이 적었습니다만, 요즘은 확실히 기계식 키보드 많이 쓰면서 좀 타자 습관들이 다양하게 되어서 문제가 되는 경우가 있더군요.

특히 자기는 컨트롤 할 수도 없는 높은 키압을 이용하는 것이 버릇이 되다보니 일반적인 키보드를 입력할 때에 세게 치는 버릇이 생기는 사람들이 많아졌습니다. 그래서 그냥 훅훅 들어가는 키보드에서도 세게 치고, 본인이 집에서나 평소에 쓰는 키보드도 키압이 높은 형태로 쓸 테니 누르는 데 힘이 들어가고, 그리고 그 키압을 견뎌야 해서 보강판 들어있는 것들을 이용할텐데 그걸 통해서 받아들여지는 반동도 무시못할껍니다.

이게 누적되면 나중에 손가락이 쑤시는 경험을 하게 됩니다. 특히 요즘, 같은 클릭(청축)이라고 해도 제조사마다 여러모로 차이가 나서 미묘하게 사람 감각을 다르게 해주는 녀석들이 많이 나와서 손이 잘 적응되지 못하고 하다가 그냥 세게 치는 습관들이 많이 생기나봅니다. 키보드는 부드럽게 칠 수 있으면 충분합니다.

개발자와 건강 – 05. 키보드에 대한 선택도 고민해야 되나? 손목 보호편

키보드 관련해서는 좀 여러모로 사람들이 반응을 많이 할 수 있는 주제이긴 한데… 써야 할 때에 써야 겠다. 왜냐면 키보드 관련해서는건강에 대해서 주의해야 할 요소가 있는데 일단 손목 보호와 손가락 보호쪽이군요. 일단은 가장 신경 안쓰는 거 같은 손목 보호부터 시작하려고 합니다.

키보드로 장시간 타이핑하는데 있어서 손목 나가는 건 굉장히 아픈 요소가 됩니다. 나가는 게 손목만 나가냐? 아뇨. 손가락도 나가고 심지어 팔도 나갑니다. 근데 이건 요인이 너무 많네요. 작게는 키보드 환경부터 시작해서 크게는 의자나 자세 전반적인 거 전부 다… 진짜 복잡합니다.

근데 키보드 관련해서 나오는 건강 문제로 보면 정말 간단하게 해결할 수 있는 것입니다. 키보드를 정면 중앙에 배치해서 이용하고, 손바닥이나 손목이 닿지 않도록 하여 손목을 되도록 직선으로 유지하여 타이핑 하는 것입니다.

되도록 직선으로 두고 치라는 것이 중요한 것이, 손목 꺾인 채로 계속해서 손가락이 움직이는 작업을 하기 때문에 그게 그대로 문제가 많이 됩니다. 힘줄 관련된 것도 그렇고, 손목 자체가 꺾여있는 것도 그렇고….

거기다가 요즘 기계식 키보드 많이 쓰고 있는데, 기계식 키보드들이 생각보다 그냥 기본적으로 키보드가 두껍습니다. 스위치들이 들어가 있어야 하니깐요. 그런 상태에서그냥 책상에 손목 두고 치는 경우에 그대로 손목 꺾인채로 쓰게 되고 합니다. 근데 그걸 그냥 잘 모르는 채로 그냥 두는 경우도 많고, 키 타이핑 때문에 키보드 각도를 엘레베이션 해서 점점 올라가게 해두고 하다보니 여러모로 손목이 그냥 꺾일 수 있습니다. 얇은 키보드를 이용하라고 하는 사람들도 많은데, 그럴 수 없다면 환경을 만들어야겠죠?

그러니 손복 받침대(팜레스트)를 꼭, 반드시 써야 합니다. 특히 기계식 키보드는 기계식 키보드를 위해서 팜레스트가 두껍게 나와있는 것들이 있는데 그런 것들이 확실히 좋습니다. 맴브레인용으로 나와있는 낮은 팜레스트를 기계식 키보드 앞에 이용하면 별 차이 없습니다. 높이가 낮아서 제대로 받쳐주질 못하거든요.

근데 이런 내용보다 더 찾게 된다면 인체공학 키보드를 찾아야 합니다. 키보드가 좌우로 나눠져 있고 그런 것들이 대체 뭔 효과가 있을까 싶겠지만, 생각보다 효과 엄청 좋습니다. 팜레스트 일체형에다가 각도와 방향이 생각보다 편하게 되어있어서 오랫동안 이용할 수 있는 형태입니다. 생긴건 이상해 보여도 생각보다 정말 오랫동안 칠 수 있습니다.

다음에는 손가락 관련된 이야기를 좀 해보겠습니다.

개발자와 건강 – 04. 건강 생각하면 되도록 노트북 환경에서 장시간 개발하지 말았으면 좋겠습니다.

노트북이 참 좋은 녀석인 건 맞습니다. 언제 어디서나 들고 다니면서 일을 할 수 있게 해주는 만능의 도구죠. 연락까지 메신저로 시도 때도 없이 연락하면 완벽한… (….)

근데, 그 휴대성을 위해서 여러모로 희생하는 것들이 많아서 장시간 붙잡아야 한다고 하면 노트북 환경에서는 좀 안했으면 좋겠습니다. 건강상의 문제에 영향이 있는 것들이 많아서요.

아니면 노트북 환경이라 하더라도 좀 환경을 그나마 개선해서 이용하는 과정을 곁들이는 거이 중요할 거 같습니다.

노트북 받침대를 두고 모니터 눈높이를 좀 더 올려주세요. 이건 모니터 고르는 내용에도 설명을 했는데, 진짜 모니터 위치랑 눈높이 위치를 맞춰서 하는 것이 정말 중요합니다. 그게 눈도 눈인데 목이랑 그 주변 근육까지도 영향을 줍니다. 계속 긴장되어서 피곤한 자세로 있게 되는 겁니다.

이게 노트북에도 그대로 영향을 미칩니다. 가뜩이나 노트북은 책상에 올려놓고 나면 화면의 위치는 고정된 것이나 다름이 없기 때문에 자세가 더 안좋아질 수 있습니다. 이게 좀 간단한 작업이면 모를까, 장시간 작업하면 진짜 자세 무너집니다. 그래서 노트북 받침대에 올려둬서 노트북의 화면을좀 더 위쪽으로 해서 눈높이와 같이 해주는 것이 좋습니다. 그렇게 하면서 동시에 좀 더 멀리 둬서 거리도 두면서 작업하면 편하게 할 수 있습니다.

근데 이러고 나면 또 이럴꺼죠. 그러면 키보드 타이핑 하기 힘든데요? 이럴 분들 꼭 있죠.

네, 키보드 마우스 사세요. 제발 사세요. 꼭 사서 이용하세요. 개발자들 괜히 백팩 메고 다니는 거 아닙니다. 그 안에 노트북이랑 키보드, 마우스, 노트북 스탠드 얇고 가벼운 거 갖고 다니고 하면 백팩 말고는 답이 없는 겁니다. 아니면 가방용으로 차를 끌고 다니면 됩니다. ㅡㅅㅡ

작업하는 곳에 혹시 외부 모니터를 연결해서 이용할 수 있다면 외부 모니터를 연결해서 이용하는 것도 추천합니다. 노트북 화면 사이즈보단 모니터 사이즈가 더 크니깐요. 크고 편한 모니터를 이용하는 것이 더 좋은 선택일 수 있는 것이죠.

정말 피할 수 없는 경우를 위해서 이런 이야기를 했지만, 장시간으로 이용한다면 될 수 있으면 PC를 보급해주는 것이 더 좋은 것인데… 뭐 노트북이라는 녀석 특유의 장점이 있기 때문에 작업 환경 그렇게 주는 걸 뭐 어떻게 하냐고 하면 뭐라고 말을 못하겠네요. 근데 될 수 있으면 장시간 작업은 피하시고, 가끔씩 쉬면서 해주세요. 노트북 작업이 일단 건강에 좋냐고물으면 아닌 건 맞습니다.

개발자와 건강 – 03. 모니터 고를 때 피해야 할 것들

요즘 모니터 너무 잘나와서 피해야 할 거 있을까 싶기도 한데… 실제로 있습니다.

일단 모니터 높이 조절 안되는 모니터 피해야 합니다. 아니면 제발 모니터 높이를 눈높이에 맞춰서 쓸 것을 권장합니다. 눈높이랑 모니터 높이 맞춰줄 수 있어야 합니다. 모니터를 내려다가 보게되면 목 굽고 목 주변 근육 굳고 자세 꼬이고 해서 난리나기 딱 좋습니다. vesa 홀이 있는 모니터에요? 하면 그냥 사서 모니터 암이나 별도의 스탠드 연결해서 조절하면서 쓰면 됩니다.

모니터 해상도? 뭐 좋은 거 쓰세요. 대신에 좋은 거 쓰는 대신 폰트 사이즈나 화면에 아이콘 작게 나오는 거 그냥 그러려니 하고 쓰는 건 아닙니다. 눈에 피로 문제가 생각 이상으로 축적됩니다.

모니터 그리고 제발 멀리 두세요. 가까이서 보려고 하는 걸로도 거북목 되기 쉬운 것도 있지만, 가까이서 보는 걸로도 눈에 피로가 장난 아니게 쌓입니다. 그러면 멀리서도 잘 보이는 모니터 쓰려면 어떤 거 써야 할까요? 크고 좋은 거 쓰세요.

모니터 밝기도 생각보다 중요합니다. 선명하게 본답시고 밝게 보는데, 눈 엄청 피곤해집니다. 사무용으로 편하게 보는 모니터랑 게이밍 모니터랑 생각 이상으로 밝기 차이도 보여주곤 하는데, 나중에 눈 작살나는 요인 중 하나가 됩니다. OSD에서 밝기나 선명도 조절해서 편하게 볼 수 있는 설정이 되는 녀석이 좋습니다.

그리고 글레어라고해서 빛이 반사되어 비치는 모니터가 있는데, 이런 것들은 눈에 피로감을 증가시켜 줍니다. 글레어로 하면 선명하니 어쩌니 하는데, 디자인 작업도 아닌데 뭐 이런 거 있을 필요 없습니다.

이렇게 보면 별 거 아닌 거 같은 엘지의 그냥 베이직한 모니터가 나오는 경우가 많습니다. 그래도 상관 없습니다. 어차피 하루종일 모니터만 보다보면 그냥 망가지는 거, 빨리 망가지냐 천천히 망가지냐를 권할 뿐입니다.

그 밖에도 좋은 모니터들 많이 있긴 할 것입니다. 게이밍 모니터가 안좋다 뭐 그런 소리도 아닙니다. 하지만… 세세한 세팅 되는 편한 모니터 찾을 수 있길 바랍니다. 모니터 생각보다 바꿀 일도 없이 오래 씁니다.

개발자와 건강 – 02. 작은 폰트 사이즈 피해라 제발

이번에는 내가 이렇게 시작하는데 이유가 있다. 폰트 사이즈 관련해서 여러모로 젊은 개발자들이나 학생들은 작게 보이는 거에 별 생각 없이 이용하고 있을 것인데, 결론부터 먼저 말하면 제발 바꿔라.

이건 개발 관련된 것 뿐 아니라 다른 곳에서도 마찬가지인데 화면이 작을수록, 글씨가 작을수록 눈 건강에 나쁜 영향을 끼친다고 하는 것이 안과 의사들의 거의 공통적인 내용이다. 안과질환이 없는 사람들을 대상으로 해서 하는데도 각막이나 결막 결손, 눈물막 파괴, 각종 조절근점 관련해서도 여러 이야기 나오는데, 눈 피로도 증가가 수치적으로 나오는 결과들이 많이 보인다.

그러면 이렇게 말하는 애들이 있더라. 전 모니터 큰거 쓰는데요? 4K 쓰는데요? 그렇게 쓰면서 거기서 보이는 글씨가 작아서 그거 집중해서 보면 화면 은 커도 글씨 작은 거에 속하는 거 아니냐? 라고 반문하면 할 말이 없을텐데 그런 건 생각도 안한다. 4K로 쓴다고 해도, 그걸 그냥 그대로 100%로 표시하면 밀도가 높아진 만큼 그만큼 작은 사이즈를 보여주는 거 아니겠냐. 표현이 부드럽기 때문에 더 좋은 모니터를 쓰고 싶은 건 알겠지만 그거랑 달리 표시는 그만큼 작아진 거 그대로 보고 있으면 피곤한 건 마찬가지다. 개발하면서 봐야 하는 건 이미지나 영상이 아니라 코드라는 형태의 글씨다. 글씨 작게 놓고 보는 거 확실히 눈에도 안좋고, 그걸 보기 위해서 모니터랑 거리가 가깝거나 자세도 거북목이나 이상한 자세로 되고 그러는 거 뻔하다.

그런 분들이 나중에 한 30 중반 넘어가면 이상하게 눈 이상을 호소하는 개발자 분들 있는데, 혹시 환경이 그런 환경으로 오랫동안 있었는지 함 체크해보자. 노안이 오거나 그러는 게 아니라 그냥 그 피로도로 인해서 안구가 버티질 못하는 거다. 그런 분들 대부분 안압이 올라가서 힘들어하시는 분들이 엄청 많이 존재한다.

이런 안좋은 자세나 현상을 막기 위해서 폰트 사이즈를 늘리는 작업을 한다. 폰트 사이즈가 보통 9,10pt로 되어있는 경우가 많은데, IDE 설정에 폰트 설정이 있다. 바꿔라. 나는 최소 14pt부터 시작한다.

아니면 표시되는 배율을 높여라. 고해상도 노트북들이 좀 많아지면서 요즘 기본으로 나오는 노트북들 같은 경우에 표시 비율이 150% 이렇게 처음부터 나오는 노트북들이 존재한다. 이걸 100%로 돌려보면 진짜 엄청 작아지는 걸 볼 수 있는데, 제조사들이 바보가 아니다. 100%로 하면 보기 힘드니깐 일부러 그렇게 설정해서 내놓는 것이다.

이런 이야기는 모니터 관련된 이야기 하면서 해야 하는데, 모니터 관련해서는 모니터 자체만을 이야기 하고 싶다.

개발자와 건강 – 01. 다시 시작

이걸 다시 쓸 생각을 하다니라고 하겠지만…. 중요한 것이다.

이 블로그를 시작할 때에는 이미 내가 낮에는 대학 다니면서 밤에는 회사 일을 하고 그러던 시절이다. 잠은 뭐 거의 안자거나 수업중에 좀 졸… 지도 못했네. 수업 안듣고 뒤에서 임베디드 컨트롤러 들고 다니면서 직접 개발하고 그랬던 시절이니깐.

그러면서 여러모로 작업하고, 대학 내부에 연구실에 작업장 만들고 이런 저런 작업하면서도 뭐 그랬지만, 건강 관련해서는 진짜 중요하다. 그냥 젋을 때, 어릴 때에 별거아닌 것처럼 했떤 것들이 솔직히 나중에 엄청나게 부담되고 그러더라.

그러면서 입원도 해보고, 건강 땜에 회사에서도 짤려복, 불이익 당해보고, 병원비랑 약값만 매년 백만 단위 쓰고 그러면.. 싫어도 챙기게 된다. (어떤 개발 유튜버분은 정형외과랑 한의원에 물리치료로 몇십만원 쓰고 후회한다고 하시던데, 가격대가 너무 귀여우시다. 난 꾸준히 십몇년을 연간 백만단위로 나가는데. ㅠㅠ)

하여간, 개발자와 건강은 정말 정말 중요한 이야기이고, 계속해서 꾸준히 나오는 이야기이기도 해서 한번은 정리를 좀 해보고 싶었다. 내 나름대로의 문제라던가, 주위에서 들은 문제라던가 해서 하나하나 정리하고 싶은 것이 많다. 그래서 아마 이거 관련해서는 없애진 않을 거 같다.

001 – Octave의 설치

https://octave.org 에서 다운로드 받을 수 있다.

윈도우는 전용 인스톨러로, 리눅스와 맥은 각각의 설치 위키를 보고 참조하면 된다. 맥은 homebrew로 설치하면 간단하다. 리눅스는 꼭 위키에 나온대로 설치하는 것이 좋다. 난 이용하기 좋은 윈도우 기준으로 설치에 관련된 몇 가지 이야기만 하겠다. 설치법은 쉬워서 헤멜 일도 없고…

윈도우의 경우, 설치가 이렇게 둘로 되어있다. 32비트 운영체제는 요즘 나오지 않기 때문에 아예 아래에 별도로 설명하고 있는데, 그냥 무시하겠다.

64비트 운영체제여도 두 가지 버전이 존재한다. 일반 버전과 64비트 선형대수 처리가 가능한 버전이다. 설명에도 적혀있듯 최소 32G 이상의 메모리와 함께 이용해야 한다. 그에 맞는 조건이나 연산이 필요한 경우에 컴퓨터 사양을 맞춰서 설졍하면 된다. (근데 아마 램만 64G는 있어야 원활할 것이다.)

설치 방법은 별도로 옵션을 선택하는 것이 없기 때문에 그냥 바로 다음, 다음으로도 쉽게 설치가 가능하다.

다음 글에서는 화면 구성과 함께 간단한 연산과 스크립트 코드 작성을 시작하겠다.

GNU Octave 가장 기초부터 적어보자

나는 대학 다니면서도, 대학원 다니면서도 MATLAB을 썼었다. 그냥 대학에 있으면서 사용할 수 있는 버전을 받아서 쓰고, 다들 그렇게 쓰고 있다보니 자연스럽게 MATLAB을 쓰고 있을 것이다. 그리고 그렇게 이용된 수치 해석 자료로 논문내고 그럴 것이고…

근데, 사회 나가거나 그러면 저거 참 쓰기 힘들다. 라이센스 문제나 가격이나 뭐 여러모로… 사줄 수 있는 회사나 연구실이면 상관 없겠는데 그거 아니면 생각보다 많이 못쓰게 된다.

그럴 꺼면 그냥 Octave를 처음부터 쓸 수 있으면 그게 더 좋은 거 아닌가 하는 생각을 엄청 하는데… 취급이 그냥 대용품은 대용품일 것이다 하고 마는 사람들이 생각보다 많았다. 의외로 문법 호환도 미묘하게 안되는 것도 있고, 각종 호환성 관련해서 몇몇 문제도 있고 하다보니깐…

아, 그리고 퍼포먼스 느린 게 생각 이상으로 실무에서 발목 잡는 건 이해한다. 근데 그런 곳은 이미 알아서 MATLAB 사서 쓰고 있을 것이다. ㅠㅠ

근데 생각보다 유전 알고리즘, 이미지 분석 패키지는 상당히 쓰기 좋은 녀석들도 있기도 하고, 공짜로 이용할 수 있는 만큼 오히려 시작을 이걸로 해야 한다고 보는 시각도 좀 있다. 그래야지 패키지를 개발할 수 있을 정도가 되어서 패키지쪽에도 많은 기능들이 더 늘어나 주고 하면 더더욱 좋은 것이니깐…

그래서 일단 이런 걸로 쓸 줄 안다는 것부터 깔고 가고 싶었다. 그리고 나조차도 이쪽은 문외한이라서… 같이 시작한다는 느낌으로 해보고 싶었다. 그래서 가장 기초부터 적어보려고 한다.