태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

이제 출판 작업도 마무리 단계로 들어갑니다. 마지막 소스 정리만 하면 끝날 것 같네요. 그 동안도 육아/직장/출판 세가지를 병행하느라 너무 힘들고 피곤했는데 하나가 이제 마무리 되니 마음이 조금 안정되네요. 이제 육아/직장/블로그(공부)를 하고 싶은데 잘 할 수 있으려나 모르겠네요.


직장에서 C++로 개발을 하다보니 진성 C맨이었던 제게 최근 C++ 표준도 새로 공부해야 할 대상이 되어있네요. 그러니 C++을 더 공부하면서 익히는 내용들도 블로그로 정리하고 싶네요. C++11도 바뀐게 많이 있던데 C++14까지 공부하려니 공부할게 너무 많아서 라이브러리에서 책 하나 대여 신청했습니다. 그거 공부하면서 유익한 내용들과 실제로 부딪치면서 알게되는 노하우들을 블로그글로 쓸 수 있으면 좋겠습니다.


최근에 회사에서 운영환경 개선 작업을 하면서 아무도 하려고 하지 않을 헤더파일 정리를 나서서 하겠다고 한 뒤 엄청 공부하고 있습니다. Forward declaration에 대해서 조금 더 파보기도 했지만 최근에 가장 놀랐(?)던 내용은


typedef struct {
} myType_t;


등과 같이 사용하거나 typedef를 쓰던 것들이 C++에서는 그냥


struct myType_t {
};


로도 된다는거... typedef 때문에 forward declaration을 어떻게 정리해야 하나 고민하다가 이러한 정말 별거 아닌 것들에도 놀라게 되네요. 자바스크립트도 그렇고 C++도 그렇고 옛날과 비교하면 사용하는 방식이 표준이 새로 나오면서 옛날과는 달리 엄청 많이 발달 되었고 지금도 계속 변해가고 있는 것을 느낍니다. 10년 전에도 개발자는 끊임없는 자기계발과 공부가 필요하다고 했는데, 지금은 그 계발해야하는 속도가 10배는 된 것 같네요.


요즘은 그래서 쏟아져 나오는 자바스크립트 프레임워크들을 보면서 서로 좋다고 우기고 있는 것을 보면 피곤해지기도 하네요. 그래도 지금 포지션은 대격변하고 있는 자바스크립트가 아니라 C++이라서 최신 경향을 쫓아가는게 버겁지는 않으리라 생각합니다. 공부 열심히 해서 나중에 속깊은 C++을 시리즈로 써봐야 하나 2~3년 쯤 뒤에 조금 더 실력을 키우고 고민해봐야겠습니다.


여기서는 일하면서도 영어도 계속 대화하는게 답답해서 점심 때에는 한국사람들끼리 모여서 밥 먹는데, 역시 모국어의 편안함은 이루 말할 수 없습니다. 외국애들하고는 매니저 이외에 출퇴근 시간에 잠깐 만났을 때 빼고는 개인적인 이야기를 한적이 한번도 없는 것 같네요. 그런데 오늘은 한 친구가 대뜸 말을 거네요.


Joe: "Samsung or SKT?"

저: ??


핸드폰 이야기하는건가 싶었는데, 제가 예전에 모니터 한쪽에 롤드컵을 틀어놓고 보는 것을 보고 내일 모레 롤드컵 결승전 결과 예측을 물어보더라고요. 저는 SKT가 이길 것 같지만 삼성이 이기면 재미있을 것 같다고는 했지만, 사실 전 KT팬... 눈물이 나네요.. 삼성이 KT 이기고 롤드컵 갔으니 삼성이 우승해야죠. 이 친구는 LCK에서 삼성은 결승도 못갔는데 롤드컵에서 결승 갔다면서 놀라더라고요. 저는 그 말을 듣고 또 눈물이 났지만요(KT 내년엔 롤드컵 가자ㅠ). 아무튼 내일모레 생중계는 못보겠지만 월요일에 스포당하지 않은체 회사에서 봐야겠습니다.


근황은 다른것보다 소소한 팁을 던지기에 참 좋은 것 같네요. 현재 계속 작성 중인 글만 세개지만, 최근 소소한 팁들이 너무 많아서 근황 글을 조금 더 써야하나 싶기도 하네요. 여기서는 git을 활발하게 사용하니 git에 맞춰서 프롬프트를 수정했는데 이 프롬프트가 없으면 어느새 너무 불편해서 콘솔 작업을 못하겠더라고요. 그래서 제가 맥북에서 쓰고 있는 프롬프트를 소개합니다. (*OSX 이외에서는 테스트 안 해봤습니다)

function get_git_dirty_color { local DIRTY_COLOR="$(tput setaf 2)" # Green local CHANGES=$(git diff --shortstat 2> /dev/null | tail -n1) if [[ $CHANGES != "" ]]; then DIRTY_COLOR="$(tput setaf 1)" # Red is dirty fi echo "$DIRTY_COLOR" } function get_git_basename { local REPO_NAME=$(basename `git rev-parse --show-toplevel 2> /dev/null` 2> /dev/null) if [[ ! -z $REPO_NAME ]]; then echo "$REPO_NAME" fi } function get_git_branch { local BRANCH=$(git branch 2> /dev/null | grep -m 1 '* ' | awk '{print $2}') if [[ ! -z $BRANCH ]]; then echo "$BRANCH" fi } function get_git_delim { # check if in the git repository if git rev-parse --git-dir > /dev/null 2>&1; then echo "/" else echo "-" fi } function get_git_stash { local STASH_COUNT=$(git stash list -n 100 2> /dev/null | wc -l | sed 's/^[ \t]*//') if [[ $STASH_COUNT -gt 0 ]]; then echo ":($STASH_COUNT)" fi } export PS1="\[$(tput setaf 3)\]\u\[$(tput setaf 4)\]@MBP15\[$(tput setaf 7)\]:\w \[\$(get_git_dirty_color)\][\[$(tput setaf 3)\]\$(get_git_basename)\[\$(get_git_dirty_color)\]\$(get_git_delim)\$(get_git_branch)\$(get_git_stash)]\[$(tput sgr0)\] $ "


git을 사용하는 경우 튜닝해서 사용하면 좋은 것 같습니다. 저는 어느새 이 프롬프트가 없으면 정말 너무나 불편해서 안되겠더라고요. 그런데 에러처리는 빠뜨린 부분이 있어서 vim에서 :sh로 빠져나오게 되면 에러 메세지가 뜨니까 추가하시면 좋을 겁니다. 느낌 자체는 대략 이런 느낌이네요.



현재 repository 이름과 branch, dirty한지, stash가 있는지 여부를 보여주도록 하였습니다. 조금이라도 .bash_profile을 작게 만드려고, 색을 어떻게 하면 될까 고민과 고생하면서 거의 일주일 동안 이렇게 저렇게 시도 했던 것 같네요. 결국 포기하고 PS1=하나의 아주 긴(...) 문자열이 되었지만 일단 이렇게 사용하는게 큰 불편함은 없고, 아직 Terminal에서늬 줄 바꿈이 조금 어색한 부분과 vim에서 :sh로 나왔을 때의 오류 메세지 문제는 남아 있는데 그 부분을 빼면 당분간은 이 프롬프트로 정착할 것 같습니다. 나중에 최종 정착하게 되면 따로 팁 글 하나로 정리하도록 하겠습니다.



저작자 표시 비영리 동일 조건 변경 허락
신고

이 글을 공유하세요.

Tag ,
질문이나 의견을 댓글로 달아 주세요

티스토리 툴바