2023 회고
23년이 끝나가고 있어 싱숭생숭하여 회고를 적어보려고 한다.
참고로 지금 나는 경력이 2년 반이 된 개발자이다.
좋은 개발자
사람마다 잘하는 개발자의 기준은 다르다는 걸 느꼈다.
나는 잘하는 개발자가 되고 싶다. 그래서 나는 누구를 잘한다고 느끼는지 생각했다.
마침 동료 중에 지향할만한 사람이 있어서 저 사람처럼 하면 되겠다 생각했다.
나는 저 사람을 왜 잘한다고 느낄까 생각해 보니 아래와 같은 특징이 있었다.
- 일단 아는 것이 많다.
- 기본기가 탄탄하다.
- 개발을 재밌어한다.
- 공유를 잘한다. 설명을 잘 한다. (문서, 발표, 질문 대답)
- 부드러운 커뮤니케이션을 할 줄 안다.
아는 것이 많다는 건 우리 비지니스에 대한 이해도가 높고, 이미 나와있는 기술, 새롭게 나오는 기술에 대해 알고 있는 게 많다는 거다.
그리고 부서에서 사용하는 기술에 대한 내부 동작과 디테일들을 깊게 알고 있다.
이건 일하면서 이슈를 해결할 때 더 많이 고민하고, 더 파보고, 문서를 찾아 이해해 보고, 히스토리를 찾아보는 경험들이 쌓여서 생기는 것 같다. 또한 새로운 게 나오면 관심을 가지고 조금이라도 알아보려는 습관에서 나오는 것 같다.
기본기가 탄탄하다는 것은 운영체제/네트워크/DB/언어 등 기본이 되는 개념들이 머리에 잘 정리되어 있다는 것이다.
그래서 무언가를 설명할 때 굉장히 설명을 잘한다.
또한 새로운 것에 대한 학습능력이 매우 빠르다.
개발을 재밌어한다는 것은 말 그대로 일을 즐긴다는 것.
이슈를 스마트하게 해결하고 싶어 하고, 새로운 것을 알아가는 것을 즐긴다.
주변에 재밌어하는 사람이 있으면, 나도 재밌다. 영향을 받는다.
아는 것을 어떤 형태로든 공유를 잘해주는 건 좋다. 팀 전체의 실력을 끌어올려 전체적인 퍼포먼스가 향상되기 때문이다.
설명을 잘하는 것도 중요한데, 듣는 사람 입장에서 이해되도록 차근차근 설명해주는 능력도 중요하다.
개발자가 선생님이 아닌데 왜 강의력까지 좋아야 하냐고 할 수 있지만,
나는 설명을 잘 하는 사람이 잘해 보인다.
커뮤니케이션이 어려운 사람이랑 같이 일하면 전체적인 일 퍼포먼스가 매우 떨어진다.
어떤 사람과 의견을 주고 받는게 문제가 있다면 일을 잘한다고 생각이 안 든다.
부드러운 커뮤니케이션을 해야한다. 상대방에 대한 존중, 겸손함을 바탕으로 얘기해야 상대방에게 내 의견이 더 잘 전달된다고 믿는다.
개발자마다 잘 한다는 것에 대한 기준이 많이 다른데,
남의 기준이 아니라 내가 생각하는 좋은 개발자가 되려고 한다.
성장
나는 신입이나 주니어는 주변 잘하는 좋은 동료들에게 빨대를 꽂아서 잘 배워나가면서 성장해야 한다고 생각했다.
그래서 좋은 회사에 오고 싶었다. 좋은 회사일 수록 잘하는 사람이 많다고 생각했기 때문이다.
팀에 잘 하는 사람이 있으면 그 사람들이 공유해 주는 내용이나 코드리뷰를 받으면서 성장할 수 있다고 생각했는데
어느 정도는 맞다.
근데 개인적으로 실제로 성장하는 것은 혼자서 공부할 때라는 것을 느꼈다.
예를 들면 이런 거를 하면서 성장하는 것 같다
- 회사에서 모르는 게 나오면 즉시 찾아보고 공부하는 것.
- 부서 프로젝트가 전체적으로 어떻게 동작하고 있는지 이해하는 것. 왜 이렇게 했는지 이해하는 것.
- 적당히 넘어가지 말고 사용하는 것들을 조금 더 깊게 알기 위해 노력하는 것 (레퍼런스를 읽거나 내부코드를 까보거나)
- 좋은 책 읽기
일하면서 재밌던 것
부서 내에서 TF같이 팀으로서 특정 프로젝트를 진행을 했다. 약 3달 정도였는데, 이게 진짜 좋았다.
업무자체가 재밌다기보다는 같이 한다는 거에서 재미를 느꼈던 것 같다.
4명이서 하나의 프로젝트를 잘 마무리하기 위해 서로 많이 고민하고 논의하고 더 잘하려고 하는 게 좋았다.
그래서 몰입해서 프로젝트에 참여할 수 있었고, 내 시간을 더 쓰더라도 기여하고 싶었다.
그리고 완료가 되었을 때는 성취감이 컸다.
나는 항상 팀에 속하고 싶었다.
팀으로 같이 고생하고 같이 뭔가 해나간 다는 느낌을 좋아한다.
스트레스 관리
여러 이유로 스트레스를 많이 받아 기분이 많이 다운되고 부정적으로 된 적이 있었다.
나는 지금 심리적으로 지쳤다는 걸 인지했다. 그래서 회복해야 한다고 생각했다.
내일부턴 나아져야지! 긍정적으로 생각해야지! 극복해 보자! 오히려 잘 됐다!라고 다짐했지만 나아지질 않았다.
그래서 체계적으로 이겨내려고 원인을 여러 방면으로 생각해 봤다.
- 큰 목표가 없어서 그런가? -> 중심이 되는 목표가 있으면 이런 사소한 것들은 내가 신경을 쓰지 않을 것이다. 목표세우자
- 생활이 불규칙하다. 루틴화 해서 단순하게 살아볼까? -> 루틴을 지키면서 하루하루 계획한 것들을 해나가면 기분이 나아질 것이다.
- 자존감이 너무 떨어졌나? -> 공부를 더 해서 나아지는 느낌을 받아야 한다. 내가 잘해지는게 결국 답이다.
- 내가 너무 다른사람들을 의식하나? -> 해탈하자. 다 필요 없다. 나만 생각하자.
위처럼 생각하고 행동해 보려 했지만 기분은 나아지지 않았다.
하기 싫은 상황에서는 열심히 하기가 힘들었다.
이건 그냥 생각하지 말고 쉬는 게 답이었다.
집에서 휴가 쓰고 맛있는 거 먹고, 닌텐도랑 롤만 주구장창 하다가 오니 괜찮아졌다.
이런 기분에 잘 빠지지 않고, 조금 더 단단해져야 한다고 생각했다.
공부
이것저것 책도 읽고 강의도 보고 했는데 왜 이렇게 머릿속에 잘 안 남는지 모르겠다.
공부할 때 좀 더 제대로 봐야겠다고 생각했다. (남한테 설명도 해보고, 정리해 가면서...)
그래도 고무적인 건 복습차원으로 다시 본 책, 강의들이 있는데 처음 봤을 때는 보다 이해가 훨씬 잘 되었다.
이건 내가 나름 성장해서 그때보다 배경지식이 많이 쌓여서 이해가 잘 된 거라 생각한다.
이번 연도에 개인 공부 차원으로 본 것들이다.
내년엔 좀 더 많이 제대로 공부하고 싶다.
읽은 책
- 클린 코드
- 이펙티브 자바
- 헤드퍼스트 디자인 패턴
- 코틀린 인 액션
- 카프카 핵심 가이드
- 구글 엔지니어가 일하는 방법
- 클린 아키텍처
인프런
- 토비의 스프링 부트
- 김영한 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
- 김영한 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
- 김영한 스프링 DB 1편 - 데이터 접근 핵심 원리 현재 강의
- 김영한 스프링 DB 2편 - 데이터 접근 활용 기술
- 김영한 스프링 핵심 원리 - 고급 편
강의
- next step 유지보수하기 좋은 코드 (java)
- 널널한 개발자 네트워크 기초 이론
- 널널한 개발자 운영체제와 시스템 프로그래밍
기타
- https://refactoring.guru/ko/design-patterns