본문 바로가기

전체 글

(171)
[리뷰] 효율적 개발로 이끄는 파이썬 실천 기술 ● 제이펍 리뷰어 활동을 위해서 도서를 제공받고 작성한 리뷰입니다. 일단 입문서는 절대 아닙니다. '파이썬 코딩도장' 정도 수준의 기본서를 1회독 이상 하신분들에게 권장하고 싶습니다. 내용은 굉장히 유용합니다. 제가 유용하게 느낀 부분들을 하나씩 얘기해보겠습니다. 어떤 내용이 유용하고 중급서의 면모를 보여주는가? '실전적'이고 중요한 내용의 "언급" 및 간결한 설명 파이썬 초급 수준을 넘어가면 if a is None: 과 같은 조건문을 다시 보게 되고, 조건문에 대해서 헷갈리게 되는 시점이 옵니다. (저는 초반에 그랬습니다) 무엇이 true인지 타입에 따라서 헷갈린 적이 있었습니다. 이 책은 그 부분을 다뤄줍니다. 이렇게 책에서 이러한 부분을 다룬 책은 잘 없는 거 같았습니다. 개인적으로 중요하고 기본이..
Python 생성자(__new__)에 대한 고찰 "클래스 속성과 메서드"는 예전에 다른 포스팅에서 잠시 다룬적 있지만 이번에는 "생성자"에 포커스를 맞춰서 정리해보겠습니다. 파이썬에서 클래스 만들 때, self 라고 하는 "인스턴스화 될때의 레퍼런스"를 갖고 있는 매개변수를 넣어줍니다. 그런데, "self 고찰"포스팅 마지막 부분에 self 를 꼭 넣어줘서 인스턴스 메서드나 속성에 접근하는거 이외에 클래스 자체에도 접근할 수 있게끔 클래스 속성이나 클래스 메서드도 있다라고 얘기를 했습니다. 이 때, 생성자라는 개념을 알아야 하는데요. 생성자는 정적 메서드(static method)이고 첫 번째 매개변수는 cls , 즉 클래스 객체를 받아서 처리합니다. 생성자는 아무 것도 하지 않는 인스턴스 객체를 생성만 합니다. 인스턴스 내의 속성은 초기화에서 처리하..
Python self 에 대한 고찰 클래스 내부에 정의된 함수인 메서드의 첫번째 인자는 self 를 넣는 기초 예제가 많습니다. self는 예전에 포스팅에서 잠깐 다룬적 있지만, 자세히 다루지 않았기에 이번 포스팅에서 조금 자세히 self 만 다뤄보려고 합니다. 보통 클래스 안에 메서드를 작성하고 그 안에 첫 번째 인자는 self 를 작성하도록 배웁니다. self 가 첫번째 인자로 들어가 있지 않은 메서드는 (아래 사진에 나오는) 에러가 발생합니다. 위 코드에서 메서드를 호출한 결과를 보면 화면에 정상적으로 'second, function 2'가 출력됩니다. function02 메서드의 첫 번째 인자는 self지만 호출할 때는 아무것도 전달하지 않는 이유는 첫 번째 인자인 self에 대한 값은 파이썬이 자동으로 넘겨주기 때문입니다. 그렇다..
Python 고정 위치 인자, 가변 위치 인자, 고정 키워드 인자, 가변 키워드 인자 에 대한 고찰 지금부터 정리하는 것은 저의 사견입니다. 틀린 부분이 있음을 주의해주세요! 있다면, 댓글로 알려주시면 정말 감사하겠습니다! 파이썬 함수 관련 글에서 "고정" 인자라는 표현은 쓰는 곳이 있고 안 쓰는 곳이 있다. 이 의미는 사실 이미 어딘가에 포함된 의미이고 어찌보면 당연하게 "내장된" 의미라고 생각해서 이에 대한 설명은 자세히 안하는 곳이 더 많은 것 같다. 나와 같이 "고정 인자" 라는 표현을 어딘가에서 봤을 수 있는데 명확히 정리하고 싶은 "정리충"을 위해 굳이 이 글에서 정리해보고자 한다. 우선, 파이썬에서 함수를 정의할 때, 매개변수를 정의할 때, 인자의 갯수가 정해져있는 것(고정)과 정해져있지 않은 것(가변)으로 나뉜다. -> (글쓴이 생각) 좀 더 정확하게는 "고정"의 뜻은 반드시 인자로 전달..
몽고DB 완벽 가이드(3판) 서평 국내에 MongoDB에 대한 최신 기본서가 없는 상황에서 나온 책이라서 굉장히 반갑다. Part 1에서는 mongodb 에 대한 기본적인 사용법, 도큐먼트 생성하고 삭제하는 법, 기본적인 쿼리문 등을 다룬다. RDB에서의 CRUD 를 공부한다 생각하면 될 것 같다. Part 2 에서는 인덱싱과 컬렉션 유형, 집계 프레임워크 , 트랜잭션을 공부한다. 개발자라면 Part2 까지 꼼꼼하게 공부하면 많은 도움이 될 것이다. Part3 부터는 서버 관리자에게 적합한 내용이다. Part3 의 첫 내용이 "복제셋"인데 이는 이름처럼 데이터의 동일한 복사본을 여러 서버상에서 보관하는 방법 및 서비스를 배포할 때 권장되는 부분입니다. 복제셋의 변경,모니터링 등 복제 셋의 설정과 구성 요소를 공부할 수 있습니다. 그 다음..
[리뷰] 처음 배우는 쉘 스크립트 본 리뷰는 한빛미디어의 도서 서평단 를 통해 무상으로 도서를 증정 받고 작성된 리뷰입니다. 회사에서 인공지능 관련 리서치 업무를 맡으면서 리눅스를 사용한지 1년정도 됐습니다. 몇가지 사용하는 터미널 명령어만 기억하고 있다보니, 쉘 스크립트로 뭔가를 작성하는건 그때그때마다 주먹구구식으로 했었습니다. 우분투 책을 보면 기본적이고 자주사용하는 명령어들을 자주 정리해주는 챕터가 있긴하지만 뭔가 아쉬웠습니다. 아무래도 우분투 운영체제를 이해하기 위한 책이다보니 그런 것 같다고 생각했습니다. 이 부분만 전문적으로 다루는 책이 없을까 싶었는데 최근 이 책이 출간된 걸 보고 굉장히 반가웠습니다. 좋았던 부분은 2장에서 기초 문법을 다루는 데 '예약변수및환경변수' 파트입니다. 파이썬을 자주 사용하다보니 회사에서 처음 셋..
[서평] 자바스크립트는 모든 곳에 존재한다 우선, 자바스크립트 개발자라면 목차를 보고 이 책을 볼 지 말지 정하면 될 것 같다. 중급 개발자라고 말한 이유는 이 책에서는 node.js , react, react native, graphQL 등이 모두 등장한다. 자바스크립트 중급 개발자라면 이 부분을 모두 경험했을 것이다. 그렇기에, 중급 개발자라면 꽤 읽어볼만한 내용들이 많고, 예전에 만났던 에러나 기존에 했던 방식에서 좀 더 나은 방식 등을 알 수 있다. 책 내용은 예제를 따라하면서 웹을 제작하고 응용 및 배포까지 할 수 있다. 약간의 쿡북 및 강의 모음 같은 느낌같은 책이다. GraphQL 은 구글링을 통해서만 공부해봣는데 이 책에서 다루니 굉장히 반가웠고, 정리가 되었다. 이외에도 여러 경험을 갖춘 개발자라면 내가 했던 부분의 아쉬웠거나 좀..
실전 대비 C 알고리즘 인터뷰 리뷰 c언어로 알고리즘 공부하면서 코딩테스트까지 빡세게 준비한다면 이 책을 추천해주고 싶습니다. 외서라서 그런지, 바로 본론으로 들어갑니다. 코딩테스트를 위한 알고리즘에 대한 기본 개념들을 책의 초장부터 바로 설명합니다. 문법 설명은 일절 없고, 바로 복잡도에 대한 설명을 하면서 간단한 문제들을 풀면서 복잡도에 대해 설명합니다. 예를 들어, 최대-최소 배열 문제에서 2가지 해결책을 제시하면서 복잡도의 크기가 어떻게 되는지 이야기해줍니다. 2장에서는 알고리즘 문제를 풀기 위한 접근법을 다룹니다. 문제를 어떻게 간단하게 만드고, 어떤 자료구조가 적합한 지 생각해야 함을 얘기해줍니다 또, 복잡도를 어떻게 계산해야 할 지 초안을 그렸다면 이제 코딩에 들어갑니다. 3장에서는 자료 구조들에 대해 간단하게 설명합니다. 자..
자바 개발자를 위한 97가지 제안 리뷰 에세이 형식의 이 책의 가장 큰 장점은 처음부터 끝까지 이어서 읽어 볼 필요가 없다는 부분인 것 같다. 차례에서 관심이 가는 주제부터 찾아보는게 이 책을 더 흥미 있게 한다. 또한 각 주제에 대한 에세이는 보통 2페이지 분량이기 때문에 읽을 때 크게 부담 되지도 않는다. 개인적으로 초급 개발자들이 읽는다면 그렇게 와닿지 않는 내용도 많을 것 같다. 그러나 중급 이상의 개발자들은 읽어 보면 좋은 내용들이 많다. 가장 먼저 읽어본 부분은 '자주 릴리스하면 위험을 줄일 수 있다'라는 주제이다. 최근 업무를 하면서 릴리스 할 때마다 매번 예상치 못한 장애가 발생하여 더욱 눈이 간 것 같다. 릴리스 할 때마다 장애가 발생하니 릴리스 주기를 오히려 더 길게 가져가는데, 이 주제에서는 이럴 경우 더 큰 문제가 생길 ..
fabric 이용하여 ubuntu 에 mecab 한 번에 설치하기 설치 프로젝트의 소스는 아래에 있습니다. github.com/JangDaehyuk/mecab_install_fabric JangDaehyuk/mecab_install_fabric install mecab with fabric library. Contribute to JangDaehyuk/mecab_install_fabric development by creating an account on GitHub. github.com fabric 을 이용하여 mecab 설치를 한 번에 합니다. 설치환경은 ubuntu 18.04 입니다. 우선 설치하기 전 상태입니다. 현재 konlpy도 설치가 안되어 있습니다. 가상환경을 만들어 보겠습니다. 가상환경 내부에 fabric3 라이브러리를 설치하였습니다. 프로젝트에서 re..
ubuntu anaconda (base) 자동 활성화 해제 , virtualenv 세팅 리눅스 ubuntu 18.04 기준으로 설명합니다. anaconda를 설치하면 터미널을 열었을 때, (base) 라고 뜨면서 자동으로 anaconda 가 실행되버립니다. anaconda는 파이썬을 기반으로 한 데이터 사이언스를 위한 종합패키지들이 잘 들어있는 하나의 큰 패키지이자 환경 관리자 라고 생각합니다. anaconda는 python에서 가장 일반적인 데이터 과학 패키지들이 많이 들어가 있기에 '컴퓨터공학'을 전공하거나 하지 않고, 데이터분석이나 머신러닝 등을 공부할 때 '아나콘다'를 설치해서 많이 해결합니다. 처음에는 편하지만, 나중에 '아나콘다'기반으로 작업 환경을 구축하거나 세팅해버리면 나중에 파이썬으로 개발을 할 때 조금 귀찮거나 번거로워 지는 일이 있습니다. 보통 파이썬 개발자들은 cond..
밑바닥부터 시작하는 딥러닝3 리뷰하기 밑바닥부터 시작하는 딥러닝3을 리뷰해보겠습니다. 1,2권을 이어서 이젠 모델 구현쪽에 포커스를 맞춘다고 생각했었는데, 3권은 '프레임워크를 직접 만드는' 내용들입니다. 책의 도입부에서 체이너를 기초로 파이토치의 설계를 덧씌웟으며, 텐서플로 2.0부터는 이 설계 방식을 기본 모드로 채택한다고 합니다. 즉, 프레임워크가 어떤식으로 만들어지는지 공부할 수 있는 기회라고 생각합니다. 5가지 목표를 향해서 총 60단계에 달하는 스텝으로 한 단계 한 단계 그 과정을 제대로 이해해서 진행한다고 하면 쉬운 여정은 아닙니다. 우선, 1,2권을 제대로 한 번 정독을 실습까지 마쳤다면 3권을 읽는데 큰 무리는 없다고 생각합니다. 프레임워크를 만들 때 고려해야하는 변수와 이에 해당하는 값, 함수 심지어 메모리 관리까지 다룹니..