웹 디자인, 이렇게 하면 되나요? - HTML & CSS로 깔끔하게 구현하는 93가지 웹 디자인 레시피 이렇게 하면 되나요?
고바야시 마사유키 지음, 김모세 옮김 / 제이펍 / 2022년 11월
평점 :
장바구니담기


일본 쪽 기술·전문 서적은 두 번 다시 안 사기로 다짐했는데, 표지 그림이 예쁘고 제목의 노림수가 나의 폐부를 찔러 세 번 다시 구매하고 말았다. 내 웹사이트를 만들어 관리하고 있는데, CSS 쪽은 잼병이라 항상 고민이 많았다. 막 여러 속성을 결합하면 ‘오오, 이걸 포토샵이 아니라 CSS로 만들 수 있다고?’라는 생각이 드는 결과물이 나오지만, 내 머리는 그런 걸 생각할 줄 몰랐다.


이러한 사정이 있어 구매하긴 했어도 기대는 크지 않았다. 일찍이 일본 서적에 여러 번 데였으니. 그런 마음가짐으로 가볍게 펼쳤다. 결과는 기대 이상! 포토샵만 된다고 생각한 기술이 CSS 코드로 적혀 있어 너무 신기했다.


나는 매번 구글에 검색해서 마음에 드는 디자인 코드만 ctrl + c, v만 했다. 내 사이트는 CSS 코드 적기가 싫어서 PostCSS 라이브러리인 Tailwind CSS로 디자인했다. 혹은 mui 같은 라이브러리를 쓰거나. 거의 대부분 해결되지만, 가끔 없는 부분이 있어 스스로 만들어야 했다. 그럴 때마다 낮은 CSS 코드 이해도는 물론, 영 감이 없는 디자인이 문제였다.


만약 나와 같은 문제를 겪는 사람이 있다면, 보조 도구로 이 책이 큰 도움이 될 것 같다. 이미지, 텍스트, 버튼, 레이아웃, 폼, 마지막에는 SEO 조언까지. 무엇보다  처음부터 끝까지 읽어야 하는 책이 아니라는 점이 아주 큰 강점이다. 필요한 디자인 및 기능이 있을 때만 그 부분을 펼쳐 참고하면 된다.


웹 디자인 고수들이라면 어떨지 모르겠지만, 초보 개발자에게는 아주 유용한 책이다. 이 책을 참고해서 내 웹사이트 UI를 좀 더 예쁘게 꾸밀 수 있을 거 같아 매우 기대된다.


댓글(0) 먼댓글(0) 좋아요(2)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
1일 1로그 100일 완성 IT 지식 - 하드웨어, 소프트웨어, 통신, 데이터, 4가지 IT 근육으로 디지털 문해력 기르기
브라이언 W. 커니핸 지음, 하성창 옮김 / 인사이트 / 2022년 1월
평점 :
장바구니담기


참 길었던 독서였다. 52일 동안 이 책에 갇혀 지냈다. 제목이 ‘100일 완성’이니 절반 시간만에 완독한 내가 결코 느린 속도는 아니지만, 괴로움은 어찌할 수가 없었다. 다른 책들이 어찌나 재미있어 보이던지…….


물론 이 책도 처음에는 흥미로웠다. 순수 문과생에서 개발자로 전환하려고 하면서 내게 부족한 CS(Computer Science) 지식을 조금이나마 채울 수 있을까, 하는 마음에 읽기 시작했다. 기초적인 지식부터 시작해 아는 내용이 나오니 친근했지만, 읽으면 읽을수록 대부분 아는 내용이다 보니 재미가 떨어졌다. 여기에는 그간 공부한 《정보처리산업기사》 탓이 컸다. 수험서로 본 내용이 많았기 때문이다. 좋게 생각하면 이런 공부하는 사람에게 보조 서적으로 도움이 될 것도 같다.


너무 오랜 기간 걸쳐 읽은 탓에 내용이 가물가물하지만, 기억에 남은 내용은 개인 보안과 프라이버시에 관한 것이었다. 우리가 SNS 등을 무료로 이용한다고 생각하지만, 따지고 보면 이용의 대가로 개인 정보를 제공하고 있다. SNS 기업에 제공된 개인 정보는 타깃 광고나 그런 류의 기업에 재판매될 가능성이 있다. 이러한 부분을 어떻게 대처해야 할지 등은 지금의 시대에 주요한 화두 중 하나다. 내가 SNS를 최소한으로 이용하는 이유이기도 하다. 그래도 엄청 뿌리고 다녔겠지만. 앞으로 좀 조심할 영역이라고 생각한다.


IT 관련 지식이 부족하다고 생각하거나 기본적은 교양을 쌓고 싶다면 일독을 권한다. 가볍게 읽지는 못하겠지만, 제목대로 하루 1개의 소챕터씩 100일에 걸쳐 읽으면 부담스럽지는 않을 듯하다. 물론 나처럼 기억에 남는 게 거의 없겠지만. ㅋㅋ




댓글(0) 먼댓글(0) 좋아요(2)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
[eBook] 오늘부터 개발자 - 비전공자를 위한 개발자 취업 입문 개론
김병욱 지음 / 천그루숲 / 2021년 11월
평점 :
장바구니담기


ICT 교육을 수료한 지도 벌써 3개월이 지났다. 빅데이터 과정을 배우면서 딥 러닝을 공부했고, 인공지능 개발자를 꿈꿨지만, 구글링을 해보니 학위라는 벽이 꽤 높았다. 나는 만년 문과생에 이제 막 배웠으니 비빌 깜냥이 못 되어 포기했다. 어차피 내 노트북으로는 제대로 된 학습도 못 시키니 차라리 잘 된 일이라고 여겼다.


한 동안 현타를 느끼며 다른 길을 고민해봤지만, 여전히 코딩이 재밌었다. 프로그램 하나 제대로 만들 줄 아는 것은 없어도 참고서의 코드를 입력하며 돌아가는 로직 보는 재미가 쏠쏠했다. 코딩 테스트 공부 역시 퀴즈 같은 느낌이라 매일 고민하는 맛도 좋았다. 그러나 이런 취미로는 개발자가 될 수 없으니 각 잡고 공부해야 할 필요성을 느꼈다. 지친 심신에 위로도 좀 필요했고.


그러다 우연히 『오늘부터 개발자』의 저자 인터뷰 기사를 봤다. 포트폴리오 고민으로 검색하던 도중이었다. 저자는 오프라인으로 쌀을 팔다가 개발의 필요성을 느꼈고, 부트캠프를 통해 백엔드 기술을 배워 6개월 만에 취업했다고 했다. 링크를 타고 들어간 그의 포트폴리오를 보니 존경심이 절로 일었다. 이 정도는 해야 취업이 되는 구나, 라는 현실도 자각했다.


아무튼, 한탄을 섞느라 이 책을 읽게 된 계기가 길어졌는데, 딱 내가 원하는 스타일의 책이었다. 개발 직무의 현실과 각 분야에 대한 세세한 설명, 비전공자에 대한 응원까지. 덕분에 마음을 다잡고 다시금 개발 공부에 임할 수 있었다.


※ 방향을 확실히 하자


개발자의 종류는 엄청 다양하겠지만, 책에서는 웹 서비스로 한정해서 설명한다. 클라이언트(사용자)의 화면을 만드는 ‘프론트엔드 개발자’, 서버(운영자)를 개발하는 ‘백엔드 개발’, 서비스의 안정을 위해 개발과 운영을 함께 관리하는 ‘데브옵스 개발자’, 수집된 데이터를 처리하는 ‘데이터 사이언티스트’. 저자는 이중에서 자신이 하고자 하는 직무를 확실히 정하라고 충고한다. 그래야 배워야 할 프로그래밍 언어가 명확해지고 방향이 확실하기 때문에 개발자가 되기 위해 방황하는 시간을 줄일 수 있다.


직무를 정했다 해도 현실을 알아야 한다. 내가 ICT 교육에 관심을 가졌을 때, 언론에서는 ‘개발 직군이 취업 잘 된다’, ‘개발자는 연봉이 세다’ 등의 기사를 남발했다. 그러나 멘토 역시 이러한 내용에 부정적이었고, 저자도 같은 말을 한다. 실제로 취업 사이트의 개발 직군 연봉을 찾아봐도 평범하다. 하지만 일의 양도 그러하다고 할 수는 없다. 우리가 쓰는 앱이나 접속하는 홈페이지 등에 문제가 생기면 곧장 해결해야 하는 게 개발자다. 버그는 어디서 어떻게 터질 지 모르니 항시 대기 상태여야 할 수도 있다. 그럼에도 개발자는 자신의 역량만큼 연봉 협상의 가능성이 높아진다. 즉, 실력이 좋으면 처음에는 낮아도 곧 높아진다는 것이다.


그러기 위해서는 꾸준한 공부와 연구가 필요하다. 내가 코딩에 재미를 느낀 부분도 바로 이 부분이었다. 프로젝트 당시 몇 날 며칠 에러만 나던 코드가 정상 작동할 때의 쾌감! 그 몇 줄을 위해 밤을 지새며 구글링하고 함수와 라이브러리를 연구했다. 지금도 전에는 내가 몰랐던 언어의 기능을 공부하면서 재미를 이어가고 있으니, 나 같은 사람에게는 개발자가 천직일 수도 있다.


※개발자가 되는 방법


개발 공부는 당장 시작하되, 작은 규모 꾸준히 지속해라. 저자의 말을 요약하자면 이렇다. 격하게 동의하는 발언이다. 개발 공부는 시험이 따로 있는 게 아니니 자격증 공부하듯이 하는 건 그다지 효율이 좋지 않다. 내 경험에 의하면, 에러에만 구글링으로 몇 시간을 쏟을 수도 있고, 매일 10시간씩 코드를 보고 있으면 화면을 때려 부수고 싶을 때도 잦았다. 시간 여유가 많다면 가능한 일이겠지만, 아니라면 꾸준히 배우면서 익숙해지는 게 중요한 것 같다.


배우는 방법도 가지각색이다. 책에서는 개발자 부트캠프, 국비지원 학원, 온라인 강의 등을 소개한다. 구글링이나 해당 언어의 도큐먼트, 유튜브, 혹은 시중에 판매하는 책도 방법이 될 수 있다. 나는 이중 국비지원 학원에서 진행한 ICT 교육을 받았는데, 사실 멋모르고 들어간 거라 좋은지 나쁜지 몰랐다. 지금 와서 생각하면, 커리큘럼은 개떡 같았지만 내가 코딩에 재미 붙였고 프로그래밍 언어에 대한 기본 개념을 익혔으니 독학을 이어갈 수 있다는 점에서 괜찮은 정도다. 자기관리가 철저하다면 온라인 강의나 독학으로 배우면 될 것이고, 시간과 경제적 여유가 있다면 부트캠프나 국비지원 학원 등을 노려보면 좋을 것 같다. 버티는 거야 개인의 몫이고.


개발자를 준비하면서부터 코딩 테스트 공부와 개인 프로젝트를 병행하면 좋다고 한다. 또 그날그날 공부한 내용을 기록하는 블로그를 하나 만드는 것도 추천한다. 전자는 취업을 위한 대비이고, 후자는 취업이든 개인 공부든 도움이 엄청 된다. 보통 문과생 비전공자는 프로그래밍 로직을 어려워한다는데 나는 그다지 어려움을 못 느꼈다. 프로그래밍 로직이 글쓰기 로직과 비슷한 점도 있었지만, 처음 배우는 당시에 나는 그날 배운 내용을 블로그에 매일 기록했었다. 아마 코드 이해력은 그때 확 상승한 것 같다.


추가로 깃허브를 이용해 매일 공부 파일을 업로드하면서 잔디밭을 가꾸는 것도 추천한다. 대부분 현직자들도 이야기하는데, 개발에 대한 개인 열정을 엿보는 지표가 된다고 말한다. 나도 듬성듬성한 잔디를 빽빽이 심으려고 노력하고 있다.


이 외에도 면접 준비나 기업 선택 고려 사항 등을 안내한다. 개발자가 되고 싶은 비전공자라면, 혹은 그쪽으로 고민하는 사람이라면 일독을 권한다. 세상 모든 개발자 지망생 파이팅이다!


댓글(0) 먼댓글(0) 좋아요(4)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
GAN 첫걸음 - 파이토치 신경망 입문부터 연예인 얼굴 생성까지
타리크 라시드 지음, 고락윤 옮김 / 한빛미디어 / 2021년 3월
평점 :
절판


지난 IT 교육 내 팀 프로젝트로 ‘CNN’을 다루면서 신경망에 대한 관심이 부쩍 늘었다. 물론 하나도 제대로 못 다루는 나지만, 여기저기 호기심이 생기는 건 어쩔 수 없는 노릇. 흥미가 꺼지기 전에 궁금했던 GAN에 손을 댔다.


제목 그대로 생성적 적대 신경망(Generative Adversarial Network)의 기초 개념을 잡기에 좋다. 더불어 내 경우에 무지성으로 그냥 사용했던 활성 함수나 손실 함수에 대한 지식도 배울 수 있었다. 예를 들면, 레이어층 쌓은 후 무조건 ReLU를 사용했다. 그냥 그러려니 싶었던 것. 그것이 기울기를 유지하기 위함인 줄은 전혀 몰랐다. 또, 이진 분류일 때는 손실 함수를 Binary Cross Entropy를 썼다. 단순히 Binary가 들어가서 이진 분류에 사용한 것이다. 결과적으로는 잘한 선택이었지만, 내 무지함에 참 부끄러워졌다. Binary Cross Entropy는 정답이 아닌 것에 벌점을 더 부과하여 정확도를 높인다고 한다.


책의 코드를 따라가면서 학습 결과를 보는 것도 재밌었다. MNIST는 그저 그랬지만, CelebA 자료를 사용한 GAN은 흥미진진했다. Epochs에 따라 점점 선명해지는 게 마냥 신기했다. 


처음에는 그냥 도트 같더니 최종적으로 배운 코드에서는 얼추 사람의 형태가 나타났다. 그럼에도 한참 부족한 부분이 많지만. 더 학습시키면 결과가 나아질지 모르나, 시간이 너무 오래 걸리고 내 노트북이 힘들어해서 포기했다. 8 epochs 돌리는 데 5시간 23분이 걸리니 말 다했지. ‘기계 학습’ 때마다 좋은 하드웨어에 대한 갈망이 점점 커진다.


GAN에 대해 찍먹하기에 괜찮았다. 하지만 모르는 용어도 꽤 많아서 저자의 전작인 『신경망 첫걸음』도 한 번 볼 예정이다. 신경망에 대한 이해도가 높아졌으면 좋겠다.


댓글(0) 먼댓글(0) 좋아요(3)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
만화로 배우는 블록체인
윤진 지음, 이솔 그림 / 웨일북 / 2018년 7월
평점 :
장바구니담기


코인 시장이 미쳐 날뛰고 있다. ‘너무 비싼 거 아니야?’라고 할 때 들어가거나 그래도 너무 비싼 거 아니야?’라고 할 때 들어가거나 언제까지 오르진 않겠지.’라고 할 때 들어갔어야 했다. 혹은 저번 폭락장 때 역시 거품이었군.’이라며 팔짱 끼고 안심할 때 들어갔어야 했다. 아무튼, 코인 시장은 마법의 콩나무 마냥 하늘을 뚫으러 가는 중이다.

 

쫄보인 나는 코인장이 그렇게 화려하더라도 투자 생각이 들지 않는다. 암호화폐의 핵심인 블록체인을 전혀 모르기 때문에, 코인의 가치가 무엇인지도 알 수가 없다. 투자의 척도가 없다 보니 섣불리 들어가는 것이 망설여진다. 주식마저 우량주와 인덱스 ETF로 구성하고, 위험 자산과 안전자산을 70:30으로 맞춘 내가 어찌 코인을 투자하겠는가. 그냥 허튼 욕심 접고 차근차근 블록체인을 알아가는 게 순서라는 생각이 들었다.

 

아무래도 모르는 개념을 처음 접근한다면 내용이 쉬워야 공부를 지속할 동기가 유지된다. 내 수준에는 만화로 보는 블록체인이 가장 알맞았다. 개념과 과정을 웹툰으로 소개해주고, 어려운 용어나 특정 인물 등 컷으로 표현 불가능한 부분은 따로 글을 정리해두었다. 나 같은 초보자가 접근하기에 최적의 책이 아닌가 싶다. 그럼에도 불구하고 제대로 이해하지 못한 것 같지만, 내 나름대로 정리해보려고 한다.

 

블록체인

 

어떤 자료가 하나 있다면 조작이 매우 쉽다. 조작된 내용은 주인이 썼는지, 타인이 썼는지 알기도 어렵다. 하지만 원본을 가진 사람이 많이 늘어난다면 자료 하나의 조작으로는 누군가를 속일 수 없다. 블록체인은 이러한 원본을 블록으로 만들어 수많은 이용자에게 전한다. 새로운 자료가 블록으로 등장하면 둘 사이를 잇는 암호화된 체인이 걸리는데, 이 암호를 풀면 보상으로 코인을 받는다. 예를 들어, ‘비트코인은 이런 식으로 거래장부 암호를 해독하면 얻게 되고, 이 과정을 채굴이라고 표현한다. 비트코인은 총 2,100만 개까지만 채굴할 수 있다. 얼마 전까지는 암호를 하나 풀 때마다 12.5개를 받았으나, 최근에는 너무 많이 풀려 반으로 줄어들었다.

 

블록체인의 또 다른 장점은 시스템 유지가 거의 영원불멸이라는 것이다. 블록체인 이용자들은 채굴하는 동안 컴퓨터를 켜놓을 수밖에 없다. 수많은 이용자의 컴퓨터가 동작하는 한 블록체인 시스템은 막을 내리지 않는다. 지구종말 급으로 전력이 끊겨 마지막 단 하나의 컴퓨터가 종료될 때까지 말이다.

 

용어

 

코인을 얻는 방식에는 여러 가지가 있다. 위에서 언급한 암호 푸는 방식은 PoW라고 한다. Proof of work의 약자로, 작업 증명이라는 뜻이다. 모든 채굴 코인은 PoW 방식이다. 암호에는 해시라는 값이 할당된다. 해시는 무의미한 문자와 숫자 조합의 나열이어서 인간의 속도로는 풀 수가 없다. 그 때문에 채굴기라는 프로그램을 무한정 돌려 암호가 풀리기를 기다린다. 해시값을 맞추면 암호가 풀리면서 코인이 지급된다. 채굴된 양에 비례해서 난도가 상승하는 것은 당연지사.

 

PoS(Proof of Stake, 지분 증명) 방식은 코인 보유량에 따라 블록 생산자가 될 확률을 조정한다는데, 사실 뭔 소린지 잘 모르겠다. 블록 생산자의 이점이 뭘까? 나중에 다른 책을 통해서 공부해야 할 내용인 듯하다. PoI(Proof of Importance, 중요도 증명)블록체인에 블록을 추가할 수 있는 자격을 부여하는 시스템(p.153)’이며 코인 사용량, 보유량 등 여러 변수로 블록체인 기여도를 파악하는 방식이다. 이것 역시 잘 모르겠다. PoSPoIPoW에 비해 직관적이지가 않아서 이 책으로는 이해하는 데 한계가 있다. 그냥 이런 게 있다는 내용만 알고 넘어가야겠다.

 

블록체인을 공부하는 이유

 

블록체인과 암호화폐 개념을 내가 이해하지 못하는 이유는 분명하다. 관심도 없었고, 찾아보지도 않았기 때문이다. 문외한인 내가 블록체인에 관심을 가진 계기는 개발자 교육 때문이었다(코인 투자에는 아직도 관심이 1도 없다.).

 

강사님이 말씀하시길, JAVA가 처음 나왔을 때 기존 개발자들은 고개를 갸웃했다고 한다. 유용한 거 같긴 한데, 당시의 하드웨어로는 생산성이 너무 비효율적이었다. 내 기억으로 2002년에 구매한 삼성 컴퓨터 하드 용량은 약 40MB였다. 이런 상황이니 운영 체제 위에 설치한 가상 머신에서 돌아가는 JAVA가 힘을 내기란 힘들었다. 그러나 시대가 변하고 하드웨어가 비약적으로 발전하면서 JAVA는 국민 프로그래밍 언어가 되었다.

 

블록체인을 말하는데 JAVA가 왜 나오느냐. 상황이 비슷하기 때문이다. 블록체인이라는 개념은 아주 혁신적인 반면, 그것을 이용하는 하드웨어는 비실비실하다. 그래픽카드 대란 사태만 봐도 알 수 있지 않은가. 그러나 concept가 확실하면 하드웨어는 언젠가 따라오게 되어 있다. JAVA처럼 말이다. 블록체인 기술이 흔해지기 전에 미리 공부하고 알아두면 블록체인 시대가 도래했을 때 도태되지 않을 수 있다.

 

단순히 코인 대박을 노리는 게 아니라, 그 코인에 확실한 가치를 부여하여 안정성을 찾기 위해서 블록체인을 공부해야 한다. 블록체인 개념을 모르면 코인 투자가 성립되질 않는다.

 

비록 책의 내용을 제대로 이해하지는 못했으나 블록체인 공부에 물꼬를 튼 셈이다. 대세가 되어가는 새로운 분야에 발을 들일 수 있게 해준 것만으로도 이 책의 가치는 5점 만점에 5점을 줘도 되지 않을까? 몇 번 더 읽어 보고 다른 책으로 넘어가야지.

 

P.S. - 더 쉽게 읽으려고 Why 시리즈 『암호화폐와 블록체인도 구매했다. 그래도 어렵다.


댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo