개발자 블로그로 살아남기

개발자 블로그로 살아남기

개발자 블로그로 살아남기라는 주제에 대해서 글을 써볼려고 합니다.

블로그 개설하기

티스토리, jekyll, word press, naver 블로그 그래도 개발자면 github 페이지를 통해서 자신만의 블로그를 구축하는게 좋아 보입니다. 정답은 아닙니다. 티스토리같은 경우는 SEO 최적화가 되어있기 때문에 간편하게 이용할 수 있지만 아무래도 개발자 특성상 자기만의 무언가(?)를 만들고 싶어하는 사람들이기 때문에…

블로그를 개설할때는 뭔가 대단한 목표가 있어야 한다고 생각하는 분들도 계실것 같습니다. 블로그로 수익을 내야지, 개발 블로그로 유명해야지, 이직하기 위해서 블로그를 해야지.

글쎄 그런 거창한 목표도 좋지만, 그냥 약간의 관종끼(?)정도 내가쓴글을 누군가가 봐서 도움이 된다라는 이타적인 마음(?)이런 아주 작은 마음에서 시작하는 것도 나쁘지 않다고 생각합니다. 시작이 가벼워야지 그래야 부담이 없고 계속 이어나갈 수 있지, 뭔가 대단한 세상에 엄청난 임팩트를 주겠다. 그렇게 시작하면 한글자도 쓰기도 힘들어지고, 무엇보다도 지속하기 힘들어지니까요.

그냥 만드세요!

자신의 업무환경 구축

자! 이제 블로그를 만들었으면, 블로그 글을 어디에서 꾸준하게 쓸수 있을지 어떤 환경들을 갖춰야 하는지 고민해 봅시다. 매일 꾸준하게 자신의 블로그를 관리한다는 건 절대 쉬운일이 아닙니다. 하루는 열심히 포스팅을 해도 그걸 몇일 몇년씩 유지하기란 보통 쉬운일은 아닙니다. 그렇게 하기위해서는 자신만의 업무환경이 반드시 구축되어 있어야 합니다.

저 같은 경우도, 회사 컴퓨터에 개인 프로젝트, 개인 블로그 프로젝트를 import하고 업무 시간이 종료하고, 회사 컴퓨터로 블로그 포스팅을 할려고 했는데, 회사에서 작업했던 여러가지 창들이 그대로 떠 있고, 그 상태에서 새로운 창들을 열고, 내 프로젝트를 다시 열고 하는 context switching이 굉장히 심하게 일어납니다. 그 과정에서 에너지도 소비도 많이 되고, 그래서 원래 가지고 있던 맥북 13인치로 switching 합니다. 개인적인 컴퓨터 이고, 회사 컴퓨터 맥북프로16인치 보다는 성능은 떨어져도, 항상 Typora (마크다운 에디터), 몇개의 google chrome 창을 항상 켜놨습니다. (google search console, google analytics). 그래서 그냥 회사 업무가 끝나면 제 컴퓨터를 모니터에 연결 하면 -> 새로운 작업환경이 나타납니다. 그 어떤것도 셋팅할 필요가 없죠. 그럼 바로 글쓸 준비가 이미 되어있습니다. 주제같은거는 Mac Note로 수시로 동기화 되기 때문에 어딜가든지 아이디어를 적어놓기만 하면, 글감 소재가 되니까요!

어떤 주제로 쓸까?

그럼 어떤 글을 쓸수 있을까요? 개발자니까, 기술, 경험했던것에 대한 생각, 자신이 읽었던 책, 자신이 경험했던 회사 생활, 등등 많은 것들을 쓸 수 있습니다. 처음에는 당연히 기술적인것 튜토리얼 같은걸 저도 작성했는데, 언젠가 누군가의 블로그를 그냥 베끼는 느낌이고 내가 소화한 내용이 아니라 cope & paste 만 하는 제 자신을 보고 몇차례 그만 두기도 했지만, 다시 새롭게 시작했습니다. 그래서 이전에 작성했던 글이 매우 부끄럽지만, 그것도 하나의 배우는 과정이라고 생각합니다. 그래서 그 이후로는 내가 소화하지 않은 글들은 최대한 자제할려고 하고, 내가 정말 내 언어로 소화한 것들에 대해서만 작성하려고 합니다. 100% 완벽한 글은 존재하지 않는 것 같습니다. 전보다 더 나아지기 위해서 자신의 글을 Keyword, google analytics를 통해서 모니터링 하면서 무엇이 부족한지 스스로 점검해 보는게 가장 좋지 않을까 생각합니다.

그래서 주제는 이것저것 그냥 써보세요! 기술적인 튜토리얼을 작성하게 되면, 미래의 자신에게 반드시 도움이 될꺼고 (그걸 이미 경험해 봤으니까. toy project로) 그리고 회사에 가서도 기술 문서를 작성하면서 부담이 없어 질수도 있을 거고, 그러면 그 일이 더 쉬어지겠죠?

나는 뭔가 기술적인거는 너무나 큰 챌린지다. 그렇게 느낀다면, 일기처럼 자신의 경험담을 써보는 것도 좋은것 같습니다. 저도 약간 에세이나 이런 분야를 좋아하기때문에 딱딱한 기술이야기 (사실은 잘 모르기 때문에) 보다는 이런 개인적인 경험을 이야기 하는 게 더 Fit이 맞는 것 같습니다. 하지만 이것도 저것도 뭐가 좋은지 모르겠다면 그냥 아무거나 써보고 일단 시작하다 보면 자신이 어떤 부분이 더 잘 맞는지 알게되지 않을까요?

목표와 보상

역시나 목표와 보상 그리고 내적동기 이 삼각형이 제대로 이뤄지지 않으면 지속가능하지 않는 것 같습니다. 저도 몇년째 블로그를 썻다 지웠다. 엎었다 다시 시작했다를 매번 반복했습니다. 그만큼 뭔가 유명하지 않은, 댓가가 없는 것들을 지속하기는 정말 힘든것 같습니다. 여러분들도 토이 프로젝트 시작했다가, 아니면 기술 스터디 진행했지만 제대로 끝나지 못하고 매번 애매하게 끝났던 경험들이 있을 겁니다. 그건 자신이 의지가 부족해서, 모자라서 그런건 아닌것 같고, 그냥 적절한 목표와 보상, 그리고 동기부여가 부족했던 것 같습니다. 그래서 블로그를 통해서 목표를 세워야 할 것 같습니다.

누군가는 글을 쓴다는 행위 자체를 정말 좋아하는 분들도 있을 것 같습니다. 조용히 자기가 좋아하는 노래를 들으면서 글에 몰두하면서 자신의 머릿속에 있는 것들을 글로써 한글자 한글짜 꾹꾹 눌러서 자신의 의견을 담담하게 써내려가는데서 희열을 느낀다면 이만한 내적동기부여, 보상이 이만한 즐거움이 없을것 같습니다.

네. 대부분은 그렇지 않겠죠? 근데 사실. 유명해질려고, 돈을 벌려고(광고수익), 이런 걸로 목표를 잡고 시작하면 글쎄요. 결과로써 성공할 수도 있지만(그게 쉽다는 이야기는 아닙니다.) 그렇지만 그런 목적을 두게 되면 그 과정이 즐겁지 않은것 같습니다. 정말 내가 이야기 하고 싶은 글이 아니라, 형식적인 사람들이 많이 찾는 키워드로만 글을 쓰게 되면, 너무 인간적이지 않지 않나요? 그런 생각도 해봅니다.

그래서 그 과정이 즐거운 목표와 거기서 얻어지는 참된 보상?을 찾으면 될것 같습니다. 좀 어려운 부분인것 같습니다.

모니터링

글을 쓰고 포스팅만 하면 땡? 일까요?

거기서 그치면 안됩니다. 내가 했던 이야기가 누군가에게 잘못 오해를 불러 일으킬수도 있고, 잘못된 정보를 전해줄수도 있고, 또는 내가 쓰는 글이 google 에 제대로 인덱싱이 되지 않는다면 (다른 분들에게 읽히지 않는다면) 내가 하는 일이(글을쓰는게) 꽤나 힘이 빠질 수 있습니다. 결국 누군가를 만족하기위해서 글을 쓰는 건 아니지만 그래도 누군가 대중/청중은 있어야 하니까요. google anyalstic나 google search console과 연결을 시켜놓고, 어떤 키워드로 유입이되고, 어떤 게시글들을 많이 보는지 파악하는것도 꽤나 재밌는 부분인것 같습니다. 그렇게 자신이 올린 글들에서 조금씩 수정하면서 그런 피드백들을 적극 활용해보는게 좋습니다. 그래야 다음에 더 좋은 포맷으로 글을 쓸수 있는 요령이 생기니까요

성공과 그리고 경험

블로그를 해서 글을 써서 조회수가 많이 나오면 성공이고 그렇지 않으면 실패인가요?

결과를 생각하면 성공이고 그 반대는 실패겠지만, 과정을 생각한다면 성공이든, 실패든 뭐든 다 경험입니다. 그 경험이 반드시 내 삶을 살아가는데 도움이 된다고 생각하는 자세가 중요한거지, 매번 성공으로 만드는건 그리 중요하지 않은것 같습니다. 조금 살아보니까 중요한건, 매번 실행할 수 있는 마음가짐, 그걸 아무렇지 않게 도전하고 용기 있게 바로 시작하는 사람이 (그런 태도를) 가진 사람들이 정말 많은 시도를 통해서 다양한 경험들을 할 수 있고, 그런 다양한 경험들로 인생을 채워나가다 보면 좋은 순간들이 온다고 생각합니다. 그러니까, 매일 좋은 경험들을 쌓는다고 생각하면서 블로그를, 자신만의 언어로, 자신의 글을 써 나가는 건 매우 의미있는 일이라고 생각합니다. 시작은 개발자로 발을 들여놨기 때문에 개발 블로그를 시작해야 한다는 무언의 압박으로 시작할수는 있어도 정말 끝까지 자신의 브랜딩을 하면서 블로그를 운영해 보길 바랍니다. 저도 그 과정에 있는 사람이기 때문에 끝을 알 수 는 없지만, 그 과정에서 즐겁게 재밌게 글을 쓰려고 합니다!

부족한 글 끝까지 읽어주셔서 감사합니다!

2038년 문제에 대해서 알고 있나요?

개발하다가 MySQL DB에 DATETIME 날짜형식을 저장하는 이야기 하다가, UTC 이야기 하다가. UTC의 2038년 문제가 발생 할 수 있다고 지금이 2020년이니까 18년이면 금방 다가올것이다. 뭐 이런이야기를 하다가, 대충 들어서 알고 있는데, 왜 발생하는지 명확하게 몰라서 Wiki좀 찾아봤습니다.

자세히 보기

Git PR(Pull Reuqest) 하는 방법 (feat. GitFlow)

오늘은 현업에서 여러명이 동시에 프로젝트 작업을 할때 유용한 PullRequest 하는 방법에 대해서 알아보도록 하겠습니다. 사실 혼자만 프로젝트를 진행하게 되면, 은근 이런것들에 대한 개념이 없을 수도 있어서 생각난 김에 적습니다.

Pull Request는 뭘까요?

Pull Request 줄여서 PR이라고 하고, PR은 자신이 작성한 코드를 Remote 원격지에 자기가 작업한 브랜치로 push를 하고, 해당 작업 브랜치를 merge하고 싶은 대상이 되는 branch로 PR을 날립니다. 그러면 Reviewer들이 코드 리뷰를 하고, 최종적으로 Leader가 Confirm하게 되면 내가 작성한 소스가 merge하고 싶은 대상이 되는 branch로 merge가 됩니다.

주로 Open Source를 활동하는 분들이 자신이 관심있어 하는 Project를 Fork를 떠서 작업하고, PR를 날려서, 해당 오픈소스 프로젝트에 Contributor가 되는 방식입니다.

자세히 보기

SpringBoot RabbitMQ 연동하기

이번시간에는 오픈소스 메세지 브로커인 RabbitMQ를 로컬에 설치하고, Spring Boot 프로젝트를 이용해서 간단하게 메세지를 전송하고, Listening 하는 샘플 프로젝트를 만들어보도록 하겠습니다.!!

자세히 보기

AWS Lambda 튜토리얼

AWS 람다 서비스는 serverless로 서버에 대한 운영을 AWS Lambda 서비스로 제공한다. 기존의 프로그래밍과 다른 방식은 상태값을 유지하지 못하는 stateless이고, 매번 lambda function이 호출되는 것이 비동기이기 때문에 그런것들을 생각하면서 프로그래밍 해야 한다.~

자세히 보기

[Spring Cloud] feign 기본 사용 방법

Spring Cloud feign에 대해서 알아보자. feign은 ~체하다 라는 뜻으로, netflix에서 개발한 일종의 restTemplate와 비슷하다고 본다.
비교적 쉬운 설정으로 비즈니스 로직에만 집중할 수 있다는 장점이 있다.

자세히 보기

개발자 컴퓨터 초기 셋팅

주기적으로 업데이트 예정!

예전에 포맷하고 맥 다시 설치하면서 올렸던 내용인데, 새롭게 정리해서 다시 공유 합니다. 제가 주로 개발할때 쓰는 프로그램 및 플러그인들을 모아봤습니다.

자세히 보기

[Spring Cloud] spring cloud config 간단 예제

MSA 시스템 특성상 여러개의 프로젝트를 관리하고 띄우다 보면, configuration 정보가 이곳저곳에 흩어져 있다보니까, 변경사항을 한눈에 파악하기가 힘들다.
그래서 spring cloud config 라는 프로젝트가 나왔다.

자세히 보기

CompletableFuture 사용방법

Future 인터페이스는 java5부터 java.util.concurrency 패키지에서 비동기의 결과값을 받는 용도로 사용했다. 하지만 비동기의 결과값을 조합하거나, error를 핸들링할 수가 없었다.

자바8부터 CompletableFuture 인터페이스가 소개되었고, Future 인터페이스를 구현함과 동시에 CompletionStage 인터페이스를 구현한다. CompletionStage는 비동기 연산 Step을 제공해서 계속 체이닝 형태로 조합이 가능하다.

자세히 보기