history

기본적으로 1000개의 사용했던 명령어들을 보는 명령어입니다.

$ history

history1

$ history n

n개만큼의 기록만 봅니다.

$ history -d n

n번의 기록을 지웁니다.

$ history -c

전체기록을 지웁니다.


history 같은 경우는 아주 간단해서 따로 포스팅할 이유는 없었는데 포스팅을 하게 된 이유는 사실 !때문입니다.

!는 가장 최근에 실행시킨 명령어를 실행시켜 줍니다.

$ !n

history 상의 n번 명령어를 실행시킵니다.
이걸 모를 때는 hitory로 조회한 명령어를 짧으면 직접 보고 치고 길면 copy&paste 해서 사용했는데 history와 같이 사용하면 이전 사용했던 명령을 쉽게 사용 가능합니다.

추가적으로

$ !!

마지막 명령어를 실행시켜 줍니다. 방향 키를 위로 한번 올린 다음 엔터를 치는 것 중 더 마음에 드는 걸 사용하시면 될 것 같습니다.

$ !명령어

마지막으로 사용한 해당 명령어를 실행시켜 줍니다.

간단한 예시로 ls -a, ls -l, clear 순으로 실행했다면

  • !! : clear 실행
  • !ls : ls -l 실행

쉘을 사용하다 보면 각자 자신만의 버릇이 있는 경우들이 있는데 저 같은 경우는 clear로 빈번하게 화면을 비어줘서 history를 자주 사용하게 되는데 !를 알게 되고서는 굉장히 유용하게 사용하고 있답니다. :)

autowired로 의존성을 주입하는 세 가지 방법

기존에는 Autowired를 필드에서만 사용 할 수 있는줄 알았는데 최근 회사의 수석님과 백기선님의 스프링 강의를 통해 생성자 및 메서드를 통해서도 주입할 수 있다는 것을 알게 되었습니다.

필드, 생성자, 메서드에 Autowired를 사용하는 방법을 알아보도록 하겠습니다.

필드

@Controller
class OwnerController {

    @Autowired
    private OwnerRepository owners;

}

일반적으로 많이 사용하는 방식입니다.


생성자

@Controller
class OwnerController {

    private OwnerRepository owners;

    public OwnerController(OwnerRepository clinicService) {
        this.owners = clinicService;
    }
}

생성자가 하나 일 때는 Autowired를 생략할 수 있습니다. 만약 생성자가 두 개 이상이라면

@Controller
class OwnerController {

    private OwnerRepository owners;

    @Autowired
    public OwnerController(OwnerRepository clinicService) {
        this.owners = clinicService;
    }

    public OwnerController(){
    }
}

의존성을 주입할 생성자에 Autowired를 달아 주시면 됩니다.

참고로 생성자를 통해 의존성을 주입해주는 것이기 때문에 변수를 private final로 선언할 수도 있습니다.(실제 예제로 사용한 샘플 코드가 privagte final로 되어있습니다.)


setter

@Controller
class OwnerController {

    private OwnerRepository owners;

    @Autowired
    public void setOwners(OwnerRepository owners) {
        this.owners = owners;
    }
}

사실 setter메서드가 아니라도 가능합니다.

@Controller
class OwnerController {

    private OwnerRepository owners;

    @Autowired
    public void test(OwnerRepository owners) {
        this.owners = owners;
    }
}

이처럼 전혀 다른 메서드명을 사용해도 owners에 제대로 된 빈이 주입됩니다.
다만 값 설정 때는 setter를 쓰는 게 다른 개발자 및 미래의 자신을 위해 좋은 방법이라고 생각합니다.


무엇을 사용해야 하나?

정답은 없습니다. 개인적으로는 생성자를 통해 의존성을 주입하는 것이 가장 나은 방법이라고 생각합니다. 거기서도 하나의 생성자를 통해 Autowired가 없는 경우가 가장 좋은 것 같습니다. 그렇게 생각하는 두 가지 이유는 스프링에 대한 의존성이 줄어든다는 것, 그로 인해 테스트하기 쉬워진다는 것입니다. 하지만 조심해야 할 것은 필드를 통해 주입하는 방법만 알고 있는 사람이 보면 알 수 없는 코드가 되어 버릴 수도 있다는 점과 가장 좋은 컨벤션은 팀이 합의한 컨벤션이란 걸 잊지 않으시길 바랍니다!


참고 자료

예제로 사용한 코드는 스프링부트 샘플 애플리케이션이며 원래는 하나의 생성자를 통해 Autowired 없이 주입하는 방식으로 구현되어 있습니다. 또한, owners가 final로 선언되어 있으나 필드, 메서드에 Autowired를 사용하기 위해 final을 제거하고 진행하였습니다.

리눅스

$ netstat -nap | grep 8080

$ netstat -nap | grep LISTEN | grep 8080

$ lsof -i TCP:8080

8080 위치에 확인하려는 포트 번호를 입력하면 됩니다.
netstat 같은 경우는 두 가지를 적어뒀는데 LISTEN 상태만 확인을 하려면 두 번째 것을 사용하시면 됩니다.

  • netstat 옵션

    -n, --numeric            don't resolve names
    -a, --all, --listening   display all sockets (default: connected)
    -p, --programs           display PID/Program name for sockets
    
  • lsof 옵션

    -i select IPv[46] files
    

추가로 lsoflist open files를 의미합니다.


Mac OS

$ lsof -i TCP:8080

맥의 경우 netstatp옵션이 없기 때문에 lsof를 이용하시면 됩니다.


윈도우

$ netstat -nao | findstr 8080

o 옵션 : 리눅스의 p 옵션처럼 pid 출력

findstr : grep을 생각하면 된다

윈도우의 경우 리눅스에서의 명령어를 기억한 다음 o 옵션과 findstr만 기억하면 됩니다.

grep -v

ps -ef | grep java

이처럼 명령어를 사용하면 아래와 같이 grep java까지 결과로 함께 출력됩니다.

grep1

마음에도 안 들지만 경우에 따라서는 나오지 않아야 할 수도 있습니다.

이럴 때는 -v 옵션을 사용하여 grep이라는 특정 문자열은 제외하면 됩니다.

ps -ef | grep -v grep | grep java

grep2

위처럼 grep에 대한 결과는 빠진다.

v옵션에 대한 help, man으로 설명을 보면 아래와 같다.

grep –help

-v, –invert-match : select non-matching lines

man grep

-v, –invert-match : Invert the sense of matching, to select non-matching lines.

굿바이 2018

18년도 열심히 살았다. 하지만 17년보다는 아니다. 그 얘기는 좀 더 노력할 수 있었다는 말이다. 나태해지지 말자고 스스로를 경계했는데 그러지 못했던 게 사실이다. 다행인 건 나 자신이 그걸 깨닫고 다신 그러지 않도록 노력한다는 점이다.

18년 회고를 작성하기 앞서 작년 회고를 다시 읽어 봤는데 확실히 독기가 빠졌다. 당시의 나를 생각하면서 많은 생각을 해 볼 수 있었다. 그런 점에서 회고가 나한테 많은 도움을 주기 때문에 이번에도 작성하기로 했다. 작년을 돌아보면서 스스로의 방향성을 다지려고 한다.

회고 : [명사] 1. 뒤를 돌아다봄. 2. 지나간 일을 돌이켜 생각함. (출처: 네이버 어학사전)
회고의 목표는 작년을 돌아보면서 성취했는지가 아니라 어떠한 방향으로 가고 있는지 스스로를 돌아보고자 한다.

취업을 하면 주의하고자 했던 점이 있다. 흔히 말하는 “end가 아닌 and”로서 취업을 끝이라고 생각하지 말고 꾸준히 학습하자였다. 그러한 생각은 했지만, 취업 전 불행한 천국(창천향로님의 브런치)이라는 글을 보고 더욱 강하게 생각했다.

하지만 돌이켜 보면 한동안 취업이라는 성과에 안주했었다.

그래도 스스로를 위로해 보자면 오랜만에 만난 친구들이 공통적으로 했던 말이 “우리 길냥이 많이 변했네”였다. 대학원생들도 그 얘기를 하는 거 보면 나름 열심히 살고 있긴 한가보다.

2018년 한일

1. 코드스쿼드 & 취업(1~4월)

  • 자바 백엔드 과정을 2월 중순에 마무리하고 4월에 취업을 하여 직장을 다녔다. 구직 활동 기간이 굉장히 길게 느껴졌는데 지금 생각하면 두 달 정도 밖에 안되는 짧은 기간이다. 그 짧은 기간에 많이 조급했었던 것 같다. 주변에서 조급해 하지 말고 길게 보라고 했었지만, 대학 졸업 이후 많은 서류 광탈 과정을 거치면서 취직에 대한 두려움을 가지고 있었고, 30이라는 적지 않은 나이와 졸업 후 2년이라는 공백기 때문에 불안했다. 지금이라면 조급해 하지 않겠지만, 취업 후 직장을 다닌다는 지금의 경험이 없이 다시 돌아가면 다시 불안해할 것 같다.

  • 길게 봤으면 하는 아쉬움이 없는 건 아니지만 크게 후회하진 않는다. 직장을 구하면서 기준으로 삼은 두 가지 있는데 그중에 하나는 온전히 지켰고, 나머지 하나는 절반이지만 지켜지고 있다는 점에서 충분히 성공했다고 본다.

2. 취직 반년(4~10월)

  • 신입으로 회사를 다니면서 5월에서 8월 말까지 3명의 신입으로 구성된 팀으로 사내 그룹웨어 중 일부를 개편했다. 셋 다 신입이다 보니 우여곡절이 있었는데 이 시기를 통해 타부서와 커뮤니케이션하는 방법, 일정 관리, 요구 사항(특히 계속 변하는…) 등등 개발이 아니라 회사에서 일하는 법을 배울 수 있었다.

  • 5월 말부터 매일 야근을 했었다. 당시엔 의욕만 넘치고 무지에 의해 무리하게 일정을 말했고, 빠르게 만드는 게 중요하다고 생각했었다. 당연히 빠르게 만드는 게 중요하지만 혼자서 일하는 것이 아니기 때문에 더욱 중요한 건 계산 가능한, 제어가 가능한 프로젝트가 되기 위해서 정확한 일정 산출이 더 중요하다고 생각된다. 그래야 협업하는 다른 개발자, 타부서의 일도 진행이 가능하기 때문에.. (다른 중요한 사항들도 있지만)

  • 아쉬운 점들이야 많지만 개발에서 아쉬웠던 건 테스트 코드를 중반까지는 잘 만들다가 DB에 의존도가 높아지는 순간 솔직히 포기를 해 버렸다. 만약 그때 포기를 하지 않았다면 후반부 작업과 유지 보수가 더 쉬웠을 것이다. 현재는 다른 프로젝트를 진행 중이라 직장인이라는 타이틀에 맞춰 현재 업무에 집중하고 있지만 기회가 될 때 개선하고자 한다.

3. 이후(10~12월)

  • 앞서 말한 프로젝트가 끝나고 다른 프로젝트에 참여를 하면서 야근이 많이 줄어들었다. 4월에 샀던 플스4로 두 번째 게임을 했던 걸로 기억한다.(아마 라스트 오브 어스) 게임을 한 것 자체는 문제가 없다고 생각하지만 그게 자연스러운 일상이 되어 가고 있었다는 게 문제였다. 스스로가 나태해져 가고 있었다. 그런 느낌을 받고 있던 찰나에 클린 코더를 읽게 되었는데 망치로 머리를 얻어맞는 느낌을 받았다. 앞서 진행한 프로젝트가 순탄하지 못했던 이유, 내가 지금 해야 할 것들 등등 정말 많은 걸 깨달을 수 있었다.

    그때부터 다시 퇴근 후 집이 아닌 카페를 가고 있다. 나는 클린코더에서 말하는 전문가가 되고 싶은 거지 취업을 하고 싶은 게 아니다. 물론 취업도 하고 싶지만 결승점이 아니다. 잠시의 휴식도 필요하지만 그 휴식에 물들고 있었다. 다시 독기를 품을 때라고 생각했다. 장거리 마라톤을 해야 하기 때문에 일상을 정비했다. 물론 게임도 간간이 즐기고 있다 :)

예상은 했지만 하고 싶은 공부와 회사에서 필요해진 부분에 대한 공부가 갈릴 때가 있다. 당연히 필요해진 지식도 공부를 하고 싶지만 전자에 더 욕심이 나는 경우가 많다. 직장인으로 회사 일에 책임을 지어야 한다는 점에서 후자를 우선순위로 생각한다. 하지만 이런 상황을 개선할 방법이 없을까 고민된다.

그외 1 - 지킬 블로그, TIL 작성

  • 블로그는 깊이 있는 내용보다는 당장의 문제를 해결하는 간단한 포스팅 위주로 운영했다. 몇 가지 이유가 있는데 솔직히 지식적인 부분을 총족 시켜 줄만한 글을 작성하기 위한 노력과 시간을 쏟지 않았다.

    아직까지는 많은 시간을 블로그 포스팅에 뺏기고 싶지 않았다. 포스팅을 하면서 많은 공부가 되고 챙겨 갈 수 있는 지식이 많은 건 알지만 깊이가 아니라 많은 것들을 보고 싶다는 욕심이 더 컸다. 게다가 간단한 지식들을 작성하면서 포스팅에 익숙해지자는 생각과 당장 도움이 될 수 있는 간단한 내용으로 사람들한테 도움을 주고 싶었다. 또한 남이 아니라 내가 다시 찾아볼 것들이나, 잊지 않으려고 작성하는 점도 있다.

  • 일일커밋은 멈췄다. 취업 후 2개월 정도는 일일커밋보다는 일에 집중하는 게 목표라 계획된 부분이다.

    커밋

    다만 그 이후 멈춰 있는 건 계획에 없었다… 그 기간이 길어지니까 앞전의 꽉 찬 잔디와 비교돼서 더 안 하게 됐다. 현재는 일일커밋이 아니라 일요일엔 하나의 글을 포스팅하는 걸 목표로 한다. 가능하면 이후 일일커밋은 블로그 글이 아니라 토이 프로젝트나 코드 작성으로 채우려고 한다. 단, 일일커밋이 목표가 되는 게 아닌 목표로 정한 바를 지속시키는 수단으로 지키고자 하기 때문에 조급히 시작하려는 생각은 없다. 주객전도되지 않고자 한다.

그외 2 - 세미나, 컨퍼런스 참여

  • 제2회 네이버 오픈소스 세미나

    오픈소스에 대한 관심으로 참석했다. 문서를 잘 관리하는 것도 쉽지 않기 때문에 문서 수정 pr도 도움이 된다는 말에 용기를 얻어 스카우터에 잘못된 링크를 수정하는(사실 오타수정..) pr을 보냈고, 머지가 됐다!! 작은 일이지만 신기하고 뿌듯했다.

    오픈소스에 pr을 보낸다는 언덕을 넘고 보니 오픈소스에 pr을 보내는데 자신감이 생겼다. 현재는 오픈소스 컨트리뷰트보다는 학습을 하고 싶은 욕구가 더 크지만 나중엔 코드로 컨트리뷰트 하는 걸 도전하려고 한다. 발표 자료

  • 코드스쿼드 해커톤

    첫 참여한 해커톤으로 하루 모여서 같이 머리 맞대고 만드는다는 게 즐거운 경험이었다. 같은 팀원 얘기로는 다른 해커톤이랑은 분위기가 다르다고 하셨는데, 다른 해커톤도 기회가 되면 참석해야겠다. 다만 아이디어의 부제로 주제를 늦게 잡는 바람에 결과물은 아쉬웠다.

  • Deview2018

    첫 데뷰 참석! 아쉽게도 확 관심가는 주제가 없어서 나쁘지는 않앗지만 좋았다고도 말할 수 없을 것 같다. 이후 관심 가는 주제가 없다면 컨퍼런스는 참여 안 하기로 마음먹었다.(특히 그게 평일이라면 더더욱)

  • 클린코드 작성 및 설계 개선을 위한 TDD기반의 코드 리팩토링 워크샵

    삼성에스디에스 주관의 워크샵으로 1, 2회를 참석했다. 코드스쿼드에서 포비를 통해 배웠던 TDD, 리팩토링에 대해서 포비가 아닌 다른 사람의 설명을 보고 싶어 참석했다. 철학은 배제되고, 왜 테스트 코드가 필요한지조차 설명 없이 이클립스를 통한 기계적인 리팩토링 기법을 설명했다. 1회 때 피드백 이후 2회 때는 개선된 걸 보면 이후엔 더 좋아졌을 것 같다.

되돌아보니 올해 참여한 행사들은 작년보다는 아쉬웠다. 그래도 행사들을 참석한다는 것 자체가 재밌기도 하고, 내가 원하던 것과 행사의 취지가 안 맞았던 것에 대해서는 그런 부분을 판단하는 눈이 좀 더 생기지 않았나 싶다.


잘한 것들

1. 18년도의 규칙

취업 전

  • 2~3시 경기창조경제혁신센터 10시, 2~3시 카페 8~9시 집을 다니며 공부를 했다. 장소를 두 군데로 간 이유는 환경에 변화를 줌으로써 지치는 걸 방지하는 편이다. 특히나 시끄러운 카페에서도 집중하는데 문제없는 편이다.

최근

  • 5~8월에 잦은 야근을 하고 보니 집을 가면 늦은 시간이기도 하고 무언가를 해도 공부가 아닌 필요한 자료를 찾다가 잤다. 프로젝트가 끝난 이후 집에서 공부했지만 제대로 하진 않았다. 그러다 클린코더라는 책을 보고서는 자신을 돌아보게 됐다.

    하루 세 시간의 공부를 하지 않으려면 안 해도 된다. 다만 자신을 전문가라고 말하지 마라.

    아직은 전문가라고 생각을 하진 않지만 나 자신을 다시 한번 상기하게 됐다. 당장은 꾸준히 무언가를 해야겠다는 생각으로 규칙을 정해 나갔다.

    첫째, 8~9시에 판교에 도착하면 카페를 갔다가 10시 반까지는 있는다.
    (주말은 최소 4시에 나가서 8시 전후까지는 있는다)
    10-7라 판교에 도착하면 8~9시가 되고 자주 가는 카페는 10시 반까지 영업을 한다. 정해진 시간에 규칙적으로 공부를 해서 해당 시간엔 공부를 하는 게 자연스러운 일상으로 만들기 위함이다. 9시 이후 카페를 가면 짧은 시간이라 늦은 만큼 일을 더 하고 왔기 때문에 자신한테 휴식을 제공하는 편이다. 그래도 좀 더 보고 싶은 게 있으면 그럴 땐 집에서 본다. 그건 어디까지 자유롭게 결정한다. 마찬가지로 카페에 있다 집을 갔어도 더 볼지 말지는 편하게 결정을 한다.

    둘째, 가능하면 약속은 당일 잡지 말자.
    직장인이 되고 당일 약속까지는 아니어도 퇴근 전까지 약속대로 만날지 못 만날지 알 수 없는 날들이 여럿 생겨서 쉽지는 않은 날도 있지만 최대한 급약속은 만들려고 하지 않는다. 계획했던 공부 계획이 꼬여버린다. 약속도 미리 결정되어 있으면 그에 따라 공부 일정도 미리 조율이 가능하다.

    셋째, 주로 할 공부 말고 집중이 덜 될 때 볼 것들도 생각해 둔다.
    2~4시간 학습을 하면 온전히 집중될 때도 있지만 아닐 때도 있다. 그럴 때 가볍게 볼 내용도 미리 생각해둬야 온전히 낭비되는 시간이 줄어든다. 최소한으로 할 딴짓들도 미리 생각해 둔다. (예를 들면 개발 관련 페이스북 페이지라든지, 블로그 글)

    넷째, 집은 쉬는 공간이다. 학습과 쉬는 공간을 분리하자
    공간을 매우 중요하게 생각한다. 공부를 하는 장소, 쉬는 장소가 정해져 있다면 공부를 해야 할 장소에선 공부에 집중할 수 있고 딴짓도 그만큼 적게 한다. 거꾸로 집에서 주로 공부를 하게 된다면 집에서 쉴 때 공부를 해야 된다는 죄책감을 느낄 수도 있다.

    어느 장소에 들어감으로써 해당 행동을 하는 트리거를 심는 거라고 볼 수도 있다. 시간을 상세히 정한 이유도 마찬가지다 해당 시간엔 공부를 하고 그 시간이 지나면 공부를 안 해도 마음 편히 쉴 수 있다.

    다섯째, 지나친 욕심을 내지 않는다.
    지나친 욕심은 많은 실패를 가져온다. 하고 싶은 게 많다는 건 그만큼 해야 할게 많다는 얘기다. 적더라도 하나씩 목표를 이루는 게 차근차근 성취감을 느끼며 지치지 않을 수 있는 방법이다. 이 부분은 포비한테 조언 받은 방법을 활용한다. 하고 싶은 것이 늘어나면 기술 부채로 생각하고 현재 할 것은 그중에서 가장 하고 싶거나 해야 할 것을 진행한다. 다만 기술 부채 목록에 일정 이상 많아지면 가능하면 관심사를 늘리지 않는다.

    가능하면 계획하에 움직이는 걸 좋아한다.(무계획을 계획으로 삼기도 한다) 학습만을 생각하진 않는다. 쉬고 싶을 때나 게임이 하고 싶으면 미리 언제 할지 생각하고 하는 편이다.

    약속 없는 평일 열시 반, 주말 여덟시 반 이후 집에서 무엇을 할지는 규칙에 안 넣었다. 이유는 그 시간에 무엇을 해도 죄책감을 받지 않고 편히 하기 위해서다. 학습을 더 하거나 집에서 편히 쉴 수 있다. 즉, 마음대로 쉼표를 찍을 수 있는 개인 시간으로 활용한다. 많은 시간을 학습에 투자하면 좋겠지만 정해진 기간을 두고 학습을 하는 것이 아니기 때문에 매일 전력 질주를 할 필요는 없다. 필요하다면 그럴 수도 있게 준비는 되어 있다. 꾸준함을 가지고 학습을 하는 습관을 이어나가는데 공백의 시간이 굉장히 중요하다고 생각된다.

2. 주말 스터디

  • 자바스크립트 스터디를 6월부터 12월까지 했다. 10월까지는 you dont know JS 1, 2권을 진행했고, 그 이후는 자율주제로 발표를 진행했다.

    주말을 제대로 활용하기 위해 토요일 오전에 스터디를 진행했는데 확실히 주말d에 늦잠을 자지 않고 활동하니 주말이 길어졌다. 스터디는 끝났지만 토요일에 늦잠을 자면 안 되겠다는 것을 깨달았다.
    자바 백엔드 쪽에 관심을 더 두고 있던 상황에서 참여했는데 좋은 사람들을 만나서 즐겁게 스터디를 진행했다. 아쉬웠던 부분들(스스로한테)이 있지만 단점보다는 장점이 많았던 스터디였다.

3. 클린코더를 읽은 것

  • 10월 경에 클린 코더를 읽은 것 같다. 당시 학습을 하는 것에 대해서는 정체기를 겪다가 클린코더 덕에 많은 자극을 받았다. 만약에 본인이 직장을 다니고 있는 주니어 개발자라면 아직 안 읽어 보셨다면 클린코드보다 먼저 클린코더를 읽을 것을 추천한다. 취준생보다는 자신의 방향을 고민하는 주니어한테는 최고의 책일 될 수 있을 것이다.

    간략하게 말하면 일정에 대해서 다시 한번 생각해 볼 수 있고, 개발자로서 자신의 마음가짐을 어떻게 가져야 할지 지표를 전해 준다.

    저자가 말하다시피 비판 없이 저자의 주장들을 받아들이는 것은 자제하라고 하고 싶다. 저자의 의견을 통해 자신의 가치관을 키워나가야지 아무 의심 없이 받아들이는 것은 모래성을 쌓는 것이라고 생각한다.

4. 플스를 산 것

  • 유흥 거리로 볼 수 있어 의외일 수 있겠지만 자신만의 취미생활이 무엇인지 알고 즐긴다는 게 중요하다고 생각한다. 난 게임과 영화, 책을 좋아한다. 영화는 집 근처에 영화관이 위치해서 좋아하는 영화가 개봉하면 챙겨보는 편이고, 책은 독서 속도가 느린 이유로 한동안은 포기하기로 했고 대신 웹툰은 잘 챙겨 본다. 게임 같은 경우는 어릴 때부터 동경했던 플스인지라 첫 월급으로 바로 구매를 했다!

    작년에도 말했지만 게임을 하냐 안 하냐가 중요한 게 아니라 공부를 하냐 안 하냐가 중요하다. 게임을 하고 싶은 것보다 당장의 학습 욕이 높기 때문에 두세 달에 하나를 플레이하는 편이다.


아쉬운 점들

1. 학습 시간

  • 퇴근하고 학습을 하는데 출근 전 오전 타임으로 바꿔보고 싶다. 야행성이 짙은 편이라 쉽게 바꾸진 못하고 있다. 오전에 했을 때 약속과 같은 변수 통제가 쉬워 확실히 좋아 보인다. 다만 밤늦게 집중이 잘 되는 편이기도 하고 약속을 많이 가지는 편이 아니라 밤에 공부하는데 큰 불편은 없다. 사람마다 자신한테 맞는 패턴이 있는 걸 수도 있다고 생각을 하고 있지만 한동안은 도전해봐서 어느 쪽이 나한테 더 맞는지 확인해 봐야겠다.

2. 블로그

  • 다른 사람들한테 좋은 가이드가 되는 양질의 글을 포스팅하고 싶다. 하지만 그러한 결과만을 위한 포스팅은 지양하는지라 어떻게 해결해 나갈지는 천천히 생각해보려고 한다.

3. 영어 공부

  • 자료를 찾다 보면 영어가 아쉬운 순간이 있다. 아무리 번역기가 좋아졌지만 완벽하지 않고, 의도한 뉘앙스를 제대로 캐치하기 위해서는 영어 실력을 키워야겠다고 느낀다. 당장 영어보다는 개발 공부 욕심이 더 많아서 영어 학습 계획은 안 세웠지만 올해 안에는 영어 공부는 어떻게 할지 정해야겠다.

4. 한동안 나태했다.

  • 5~8월은 프로젝트 때문에 굉장히 바빴다고 해도 9월에 스스로 많이 나태하게 지냈다. 일을 한다는 상황에, 조금씩이긴 해도 무언가 본다는 생각에 이도 저도 아닌 시간을 보냈다. 취직 후 두 달 가량은 학습이 아닌 회사에만 집중하려 했는데 그 이후에 학습을 제대로 이어나가지 못했다.

    위에서 말한 규칙 중 일이 끝나고 카페를 가기 시작한 것도 10월 중순이다. 재작년에 습관의 힘을 경험했기 때문에 다시 한번 습관을 만들어 가고 있다. 다시 꾸준함을 찾아가고 있는 중이지만 한번 나태했던 경험을 잊지 말고, 스스로 지나친 안도감에 취해 나태해지지 않게 조심하자.

    덴마

    잊지말자

5. 스터디

  • 내 주된 관심사는 자바 백엔드다. 그 외의 것들도 있지만 프론트와 백엔드 중에 보고 싶은 것들은 후자에 많다. 그 상황에서 자바스크립트를 공부했더니 아무래도 집중이 덜 됐다. 현재 직접 사용하고 있지 않은 스택에서 보고 싶은 다른 것들을 놔두고 집중하려고 하니 아쉬운 모습을 보였던 것 같다. 이 부분은 자신이 아니라 같은 스터디원들한테 미안하게 생각한다.

    다만 자바스크립트를 학습할 때 어떤 부분들을 신경 써야 할지는 알게 된 것 같다. 현재 최우선 관심사가 아닐뿐이지 필요/관심에 의해서 차후 다시 공부할 생각이다.

6. 그외

  • 작년과 마찬가지로 글을 잘 작성하거나, 스스로한테 어설픈 부분들이 아직 존재하지만 이 부분은 차근차근 나아가야 할 부분인 것 같다.

  • 책을 읽는 속도가 굉장히 느린 편인데 그러다 보니 기술서를 볼 때 많은 시간이 소비되는 편이다. 그래서 작년에 고민했던 기술서를 제외한 독서는 포기했다. 보고 싶은 책들이 출간되고 있지만 그걸 안 해도 하고 싶은 것들이 많고 나중에 봐도 된다.


2019년 상반기 계획

  • 가능하다면 테스트 코드를 작성해 놓고는 있지만, 작년 공부할 때보다 더 적게 작성하는 것 같다. 좀 더 나 자신한테 철저해지자.

  • 작년 여름부터 자바 스프링 강의들이 늘어나는 것 같더니 좋은 강의들이 많이 늘어났다. 해당 강좌들을 볼 시기를 고려했는데 2월 전후로 해서는 한동안 영상을 통한 학습을 진행하려고 한다. 그런 결정을 내린 시기 정도에 딱 인프런에서 할인 행사를 진행해서 보고 싶던 강의들을 많이 구매했다. 원래는 당장 할 것들이 아니라면 미리 사진 않는 편인데….. 고민됐던 강의까지 포함해서 2~30만 원 치는 산 것 같다. 심지어 할인된 가격

  • 최근에 맥북을 구매했는데 아직 설정해야 할 것들이 많다. 기존엔 그램에 우분투를 설치해서 사용했는데 주변의 말처럼 개발하는데 우분투를 사용해도 크게 불편하진 않는다.(이전에 맥북을 두 달 정도 사용은 해봤다) 다만, 개발용으로만 사용하는 게 아니라 실생활용으로도 사용한다면 많은 기업들이 윈도우, 맥용으로만 소프트웨어를 내놓기 때문에 굉장히 사용하는데 불편하다. 윈도우 소프트웨어를 사용할 수도 있지만 제한적이라 불안정하다.(카톡도 잘 안된다) 게다가 올데이 그램이 우분투에서는 전력관리가 제대로 되지 않는지 배터리가 굉장히 빨리 달기도 하고… 상용 OS를 사용하는 게 확실히 편하다.


마무리

작년 회고에서 밝혔던 인생을 허비했던 결과 느낀 좌절감, 허무감이 나한테 많은 변화를 준 것 같다. 그때 봤던 노란 하늘이 뇌리에서 잊히지가 않는다.

준비가 안 되어 있으면 기회를 잡을 기회조차 없다고 생각한다. 운이 좋다면 다르겠지만 운도 노력한 사람한테 더 많이 찾아온다. 그것을 운이라고 표현해야 할지 모르겠지만 말이다. 노력이 부족해서 현재는 기회를 못 잡을 수도 있다. 하지만 노력을 하다 보면 다음번 찾아오는 기회는 잡을 수도 있다. 하지만 기회를 못 잡은 것에 대해 아쉬워만 하고 있으면 다음 번 기회조차 없다.

왜 이렇게 열심히 살려고 하는 것인가 궁금한 사람도 있을 것 같다. 가장 큰 이유는 개발이 재밌다. 사실 재미가 없다면 이렇게 열심히 하기도 싶지 않다. 재밌기 때문에 다른 걸 덜해도 더 하고 싶은 욕심이 난다. 두 번째는 꾸준히 노력하는 삶을 목표로 하고 있다. 확실한 목표가 없으면 어느 순간 힘이 빠질 수도 있는데 나 같은 경우 꾸준히 학습하는 것 자체도 목표의 일부라서 지치는 게 덜 한 것 같다.

회고를 남기는 이유 중 하나는 스스로를 돌아보기 위함도 있지만 다른 사람들한테도 자극을 주고 싶다. 살아오면서 주변 인물 중에 정말 독하게 노력하는 사람을 몇 봤다. 그 덕에 여간 독하게 살아도 사람이 쉽게 죽진 않는다는 것과 적당히 열심히 하고서 그런 사람들과 비교해서 열심히 했다고 말하기 힘들다고 생각한다. 스스로 부끄럼 없이 열심히 했다고 말할 수 있게 노력하려는 중이다. 간접적이지만 나라는 사람을 통해 다른 사람도 자극을 받고 노력하기를 바란다. 이런 생각을 밝힘으로써 내 스스로가 부끄러워서라도 나태해지지 않으려고 노력하고자 한다.

덴마

두려워할 시간도 후회를 할 시간도 없다. 실패를 했다면 아쉬웠던 점을 보완하고 다음 목표를 세우면 된다.
그리고 모든 목표가 한 번에 성공할 순 없다. 실패했다고 큰 좌절을 하지 말자.