👋 안녕하세요. 0년차 백엔드 개발자 묘묘입니다.
토르의 무기 묠니르를 부르는 애칭? 묘묘가 마음에 들어서 선택했습니다. :)
저는 '여유로움'을 추구하고 있습니다. 개발자랑 반대일 것 같은 '여유로움'은 개발자한테도 필요한 가치가 아닐까 싶습니다. 이게 무슨 뚱딴지같은 소리일지 모르겠지만 조급해질수록 시야가 좁아지고 급할수록 실수가 많아지는 것이 개발자라고 생각합니다. 이러면 유지보수하기 힘든 코드가 나와서 추후 프로젝트를 갈아엎고싶을 정도로 엉망이 되어 있는 경험을 해보았기에 여유를 가지되 깊은 고민을 하고 코드를 작성하는 것을 추구하게 되었습니다.
추구하는 것과는 다르게 현재 저는 '여유로움'을 즐기지 못하고 있습니다. 왜냐하면 너무 재밌고 신기한 것들로 세상이 가득차있기 때문입니다. 개발자에 들어서면서 웹사이트는 어떻게 만드는 것인지 파면 팔수록 점점 시야가 넓어지면서 방대한 분야를 보게 되었습니다. 4차 산업혁명 시대에 살고 있어서인지 급변하는 IT 기술들과 AI 인공지능, 클라우드 등 외국어가 여러개인 것처럼 개발 언어도 여러개라서 정신이 없습니다. 이것저것 다 해보자니 깊이있는 학습을 못할 것 같고, 하나만 깊게 한다고 해도 다른 것들에서 눈을 떼지 못하고 있습니다. 이런 저를 다시 한번 되돌아보는 시간을 가지면서 저의 학습 방향을 정하고자 합니다.
📝 지금까지 블로그를 운영해오면서
🚀 이번에 누적 방문자수가 30,000명이 돌파했습니다!!!
많은 분들이 보시고 정리가 잘 된 최근 것들은 퍼가거나 출처를 남기시더라고요. 첫 블로그를 작성했을 때는 책의 내용을 복습하는 느낌으로 작성했다면 시간이 갈수록 제가 몰랐던 것, 느꼈던 것, 트러블슈팅, 비즈니스 로직 고민, CS를 작성하게 되더라고요. 제가 학습할 때는 공식문서 또는 블로그를 참고하는데 예전에 React.js의 useMemo와 React.memo에 관한 글을 공식문서를 참고해서 작성하고 예시 코드로 작성하여 이미지까지 잘 넣어서인지 처음 학습하시는 분들이 많이 읽고 퍼가시더라고요. 다만 아쉬웠던 것은 공식문서를 해석한 것은 상관이 없는데 코드까지 그대로 가지고가서 출처를 안남기시는 것은 마음이 조금 아프네요 😅 이처럼 다른 분들이 제 글을 읽고 도움이 되면 거기에 뿌듯함과 성취감을 느꼈습니다.
🚀 글을 작성하면 그것에 대해 깊이 파게되는 계기가 됩니다.
최근 JVM에 대해 간단하게 학습하고 넘어가려했는데 글을 쓰기위해 학습을 하다보니 점점 깊게 파고들게 되더라고요. 제가 호기심이 많아서 하나를 파면 그에 관련된 여러개를 더 공부하게되는 것도 영향을 끼친 것 같습니다.
🚀 글을 쓰는 것은 문서화 스킬을 올려준다.
개발을 하거나 여러 작업을 하다보면 결국 '기록'을 남기는 것이 중요해져서 문서화 스킬이 필요한데, 글을 작성하면서 자연스레 문서화 스킬이 좋아지는 것 같습니다. 예전에도 나름대로 읽기좋게 작성하려고 했지만 지금과 비교하면 훨씬 나아졌다고 생각됩니다. 또한 현재 저는 학습하게되면 문서화를 하는 것이 습관되어서 무조건 기록을 남기게 되네요. 이 회고록도 그에 따른 영향이 아닐까 싶습니다. 저의 현재 느낌을 '기록'하는 것이니까요.
📚 독서하고 싶은 것
- 원씽(THE ONETHING) 복잡한 세상을 이기는 단순함의 힘 | 게리 켈러, 제이 파파산
- 한 권으로 끝내는 네트워크 기초 | 오키타 토시야
면접을 위한 CS 전공지식 노트| 주홍철- 스프링 시큐리티 인 액션 | 로렌티우 스필카
- 이펙티브 자바 3/E | 조슈아 블로크
- 모던 자바 인 액션 | 앨런 마이크로프트, 마리오 푸스코
- Microservices Security IN ACTION | 프라바스 시리와데나, 누완 디아스
- 스프링 마이크로서비스 코딩 공작소 개정 2판 | 존 카넬, 일러리 후알리루포 산체스
자바 ORM 표준 JPA 프로그래밍| 김영한- 토비의 스프링 3.1 VoL 1 : 스프링의 이해와 원리 | 이일민
- 토비의 스프링 3.1 VoL 2 : 스프링의 기술과 선택 | 이일민
- 자바 코딩 인터뷰 완벽 가이드 | 안겔 레오나르드
- 개발자가 반드시 알아야 할 자바 성능 튜닝 이야기 | 이상민
- 자바 최적화(Optimizing Java) | 벤저민 J. 에번스, 제임스 고프, 크리스 뉴랜드
- JVM Performance Optimizing 및 성능분석 사례 | 류길현, 오명훈, 한승민
- 도메인 주도 개발 시작하기 : DDD 핵심 개념 정리부터 구현까지 | 최범균
- 실용주의 프로그래머 | 데이비드 토머스, 앤드류 헌트
- 테스트 주도 개발 | 켄트 벡
- 클린 코드 | 로버트 C. 마틴
- 클린 아키텍처: 소프트웨어 구조와 설계의 원칙 | 로버트 C. 마틴
- 객체지향의 사실과 오해 | 조영호
- ...
막상 적고나니 너무 많아서 덜 적게됩니다만 그나마 간추렸습니다. 현재 이거 봤다 저거 봤다 하고 있어서 이번 기회에 읽을 도서 목록을 정리하고 순서를 매겨서 하나씩 돌파해야겠습니다. 현재 저에게 필요한 것은 취업에 필요한 CS, 알고리즘, 개발 철학, 기초 순인 것 같습니다.
🚀 CS & 알고리즘
면접을 위한 CS 전공지식 노트- 자바 코딩 인터뷰 완벽 가이드
- 한 권으로 끝내는 네트워크 기초
백엔드 개발자에게도 네트워크도 중요하지만 현재는 면접을 위한 CS와 자바 코딩 인터뷰를 먼저 학습하는 것 좋습니다.
🚀 개발 철학
- 클린 코드
- 객체지향의 사실과 오해
- 실용주의 프로그래머
- 도메인 주도 개발 시작하기 : DDD 핵심 개념 정리부터 구현까지
- 테스트 주도 개발
- 클린 아키텍처: 소프트웨어 구조와 설계의 원칙
개발 철학에서는 클린코드만 읽고 넘어가도록 하겠습니다.
🚀 개발 기초
- 자바의 정석
- 토비의 스프링 3.1 VoL 1 : 스프링의 이해와 원리
- 토비의 스프링 3.1 VoL 2 : 스프링의 기술과 선택
자바의 정석은 매 주 토요일마다 처음 프로그래밍을 입문하시는 분들을 위해 스터디를 진행하고 있어서 저도 복습할 겸 넣었습니다. 그 후 스프링 기초 책에서 유명한 토비의 스프링입니다.
🚀 개발 관련
- 개발자가 반드시 알아야 할 자바 성능 튜닝 이야기
자바 ORM 표준 JPA 프로그래밍- 이펙티브 자바 3/E
- 모던 자바 인 액션
- 스프링 시큐리티 인 액션
- Microservices Security IN ACTION
- 스프링 마이크로서비스 코딩 공작소 개정 2판
- 자바 최적화(Optimizing Java)
- JVM Performance Optimizing 및 성능분석 사례
개발 기초까지 읽었다면 자바에 대해 성능적으로 좋은 코드를 작성할 줄 알아야 하므로 '개발자가 반드시 알아야 할 자바 성능 튜닝 이야기'가 1순위이고 JPA, 이펙티브 자바순입니다. 이펙티브 자바는 자바 기초를 넘어서 수준 높은 심화 학습을 위한 도서이므로 개발 기초에 들어가지 않았습니다.
💻 강의보고 싶은 것
모든 개발자를 위한 HTTP 웹 기본 지식| 김영한스프링 핵심 원리 - 기본편| 김영한- 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 | 김영한
- 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 | 김영한
- 스프링 DB 1편 - 데이터 접근 핵심 원리 | 김영한
- 스프링 DB 2편 - 데이터 접근 활용 기술 | 김영한
- 스프링 핵심 원리 - 고급편 | 김영한
실전! Querydsl| 김영한더 자바, 코드를 조작하는 다양한 방법| 백기선- 더 자바, 애플리케이션을 테스트하는 다양한 방법 | 백기선
- 이펙티브 자바 완벽 공략 1부 | 백기선
- 이펙티브 자바 완벽 공략 2부 | 백기선
- 10주완성 C++ 코딩테스트
- 백발의 개발자를 꿈꾸며: 코드리뷰, 레거시와 TDD
- ...
보고 싶은 것은 너무 많지만 그 중 간추려서 저에게 필요한 것들을 우선으로 적어보았습니다. 여기서도 순서를 정해야 하는데 막상 힘드네요. Querydsl을 써보고 싶은 마음에 강의를 보고 있거든요 ㅎㅎ.. 한번 필수 우선순위를 적어봅니다.
🚀 필수 우선순위
- 10주완성 C++ 코딩테스트
모든 개발자를 위한 HTTP 웹 기본 지식더 자바, 코드를 조작하는 다양한 방법스프링 핵심 원리 - 기본편- 백발의 개발자를 꿈꾸며: 코드리뷰, 레거시와 TDD
- 스프링 MVC 1편
- 스프링 MVC 2편
이 순서대로 강의를 보도록 하는데, 먼저 보고있었던 Querydsl은 빠르게 보도록 하겠습니다 ㅎㅎ
🔚 마지막으로
삶의 방향은 자신만의 특별한 경험, 독특한 시각, 변화를 향한 신념에 따라 가는 방향이 달라집니다. 여기에는 정답은 없습니다. 개발자도 똑같습니다. 자신만의 시각으로 코드를 작성하지만 여기에는 정답은 없습니다. 다양한 사람들이 다양한 코드를 작성하지만 정답이 없기에 전부 다릅니다. 그렇기에 '읽기 좋은 코드'를 작성하자는 철학이 있어야 합니다. 이 철학을 가지고 학습하다보면 언젠가는 좋은 개발자가 되어 있지 않을까 싶습니다.
개발자에게는 배움의 끝이 없다는게 실감이 납니다. 너무 방대한 분야이기 때문입니다. 그렇기에 열심히 학습하다보면 가끔 우울해지거나 극심한 슬럼프에 빠지기도 합니다. 이걸 이겨내야 하기에 퇴근하면 운동하거나 자기계발을 해서 스트레스를 푸는게 아닐까요? (근육으로 코딩한다는 말이 괜히 있는게 아니네요) 또 개발 지식만 습득하면 안되고 다양한 분야의 사람들과 '소통'을 하고 요구사항을 명확히 파악해야하고, 리더급으로 성장하게 된다면 조직 관리도 학습해야 합니다. 정말 쉬지않고 학습해야하네요 ㅎㅎ 🥲 그렇기에 취업을 하면 근로자의 입장, 사업을 하면 사업가의 입장이 되겠지만 언제나 교육자의 입장으로 돌아가서 다양한 사람들에게 많은 것을 배우도록 노력해야겠습니다.
'회고록' 카테고리의 다른 글
창업아이디어 경진대회 동상을 받으면서 (0) | 2022.11.28 |
---|---|
첫 팀 프로젝트, 캡스톤 디자인 (0) | 2022.11.24 |
[스터디] 자바를 가르치다 (0) | 2022.11.12 |