TIL | 2021년 회고와 새로운 시작

공부의 기록·2022년 1월 8일
0

Dev 다이어리

목록 보기
4/5

Introduce

본 문서는 2022년 1월 30일 에 작성되었습니다.

최초 작성은 연초 첫 주 였으나, 이후 ⚡ 새해목표 에 달성 및 변경사항이 생겨서 수정하게 되었습니다.

😂 이직을 결심하게 된 이유

데이터 수집사에서의 하루, 일주일은 단조로웠다.

수많은 사람들이 일을 할당하고 할당받고 정해진 일을 한다.
그리고 업무 성과를 기록하고 이에 따라서 내부적인 평가를 받는다.
업무 기준을 충족하는 것은 어려운 일은 아니였으나, 이를 충족하지 못한 사람에 대한 대처는 날카로운 회사였다. (입사일이 같은) 동기 중에 일을 그만둔 사람들이 많았고 여러 사유로 회사에 다니지 못하게 된 사람도 많았다.

그런 것들을 지켜보며 든 생각은 나는 어떤 직장인이 되었는가? 로 종결되었다.
철없던 어릴적에 생각했던 직장인의 모습은 전혀 이렇지 않았다.

전문적인 영역을 담당하고 프로와 같은 모습을 상상했다.
그러나 현실은 그저 한명의 톱니바퀴와 같았다.

그래서 이직을 결심하게 되었다.

❓ 왜 개발자였을까?

시작은 단순했다.
한 번 경험해보자 라는 마음이었고 생각보다 적성에 맞았다.

그리고 2021년 6월부터 지금까지 점점 그 생각이 강해지고 있다.

단순히 개발자로서 일하고 싶다를 넘어서서,
전문적인 역량을 갖춘 개발자가 되고 싶다라는 열망이 생겨나고 있다.

❓ 언어의 선택?

개발자 이직을 준비하게 되며,
가장 처음으로 마주한 질문은 어떤 언어를 사용할 것인가? 였다.

C 언어군, Java, JavaScript, Python 그리고 기타 등등.
수많은 언어가 있었고 처음에는 Java 를 선택하게 되었다.

그 이유는 다음과 같았다.

  1. 가장 많이 사용 중인 언어
  2. 가장 오랫 동안 사용한 언어

위와 같은 이유로 많은 정보들이 시장에 풀려 있었고
그러한 점들이 매력적으로 다가왔다.

😒 Java 가 싫어요

Java 를 공부하면서 호불호가 많이 움직인 것 같았다.

Java 의 체계화된 구조는 공부를 하는데 좋은 지표가 되어주었지만,
역설적으로 큰 방해가 되었던 것도 사실이다.

# 초창기

단적인 예는 날짜 및 시간 클래스 를 들 수 있을 것 같다.
Essentials of Java 혹은 대다수 개발자 포스트 에서는 LocalDateTime 등을 사용하길 권고하지만,
몇몇 개발자 포스트 에서는 여전히 Date.now() 를 통해서 현재 날짜를 받아오는 것을 볼 수 있었다.

또한 정규표현식 관련된 내용으로는,
완벽하게 똑같은 정규표현식을 수많은 블로그가 복사-붙여넣기 한 것을 볼 수 있었는데,
놀랍게도 해당 정규표현식은 작동을 하지 않았다.

# 최근

Node.Js 를 통해서 Express, React, Nest.js, Next.js 를 배우고 나서
Spring 을 배우고 나서 의아했던 점들이 있다.

  1. 왜 Java 는 아직도 XML 을 쓰고있는가?
  2. 왜 Java 는 npm 같은 모듈 설치 라이브러리가 없을까?

물론 어떠한 서비스가 당연히 제공 되는 것은 아니지만,
최근에 만들어진 프레임워크 들에 비해서 불편하다라는 느낌을 지울 수 없었다.

😀 JavaScript 가 좋아요

이에 반해 JavaScript 는 정말 혁신적인 느낌을 지울 수 없었다.

Node.js 와 npm 은 어떠한 프로젝트의 초기셋팅을 빠르고 정확하게 배울 수 있었다.

또한 프론트앤드와 백앤드를 모두 한 언어로 설정할 수 있고
새로운 라이브러리의 도입 및 서비스의 확장이 매우 유연했다.

정확히 그리고 깊게 배우는 것은 역시나 어려웠지만,
신입 개발자가 웹 전반을 느끼고 카피캣의 자세를 배우는데는 매우 좋았다.

😁 왜 다시 Java 로?

그렇다면 나는 왜 다시 Java 를 배우게 되었을까?
그것은 내가 만든 코드들이 전부 일회용 이었기 때문이다.

Velog | Project (clone) 에 간략하게 올려두었지만, JavaScript 와 한 프로젝트에서 많은 것들을 배우고 경험할 수 있었다. 하지만 그 어디에서도 OOP 를 느낄 수 없었다.

서비스의 규모가 커짐에 따라,
하나의 기능을 추가하는 것 보다
하나의 기능을 수정하는 시간이 몇 배나 걸리기 시작했다.

(느끼기에) 해결되지 않은 기술부채가 없음에도,
기능을 수정하는 과정은 필요했고 내 코드가 쓰레기 같다는 생각을 지울 수 없었다.

나의 코드를 조금 더 확장성 있게 바꾸고 싶었고
단순히 작동만 하는 코드가 아닌 구조적으로도 멋진 코드를 쓰고 싶어졌다.

⚡ Academy

Java 학원에 다시 돌아왔다.

⚡ 새해목표

  1. 반응형 디자인 가이드라인 완성하기 ✅ 간단하게 만드는 반응형 웹 디자인

  2. 인상 깊은 문제풀이 리스트 시르즈 작성해보기

  3. Velog | Dev 알고리즘 시리즈 정리 및 Git | 22-algorithm 소스코드 작성
    2.1. 자료구조 및 Collecton Framework
    2.2. 정렬 알고리즘
    2.3. 탐색 알고리즘
    2.4. 그리디,

  4. Life Folio 재개발

profile
블로그 이전 : https://inblog.ai/unchaptered

0개의 댓글