본문 바로가기

Java & Spring

짧게 배워보는 취미 개발 로드맵 (1) - 서론

반응형

개인적인 일들과 애드고시 불합격 소식에 한동안 글쓰는 것을 포기하고 있었는데, 다른 글 다 지우고 Java에서는 f-string 같은 건 없나하고 찾아보다가 써놓은 글을 많은 분들이 읽어주셔서 다시 한 번 시작해보려 한다.

 

그리고 뭔가 바뀌지 않으면서 달라진 내일을 기대하는건 바보 같다는 생각이 계속 들어서 힘든 중에도 다시 시작해보려고 한다.

 

비록 주니어 수준의 대리 나부랭이 개발자지만 배운 것을 복습하고, 잊지 않게 기록한다는 마음과 나도 처음에는 분명 이런 부분 때문에 고생했었는데.. 싶은 부분을 내가 소화한 한도까지 정리해 보려고 한다. 고로 내가 틀리거나 더 나은 방식을 놓치고 있을 수 있다.

따라서 지나가시던 선배님들의 충고와 조언은 환영이며, 감정이 상하지 않는 선에서 감사히 받겠습니다.

 

 

앞으로 간략히 로드맵을 그려보려고 하는데, 1차로는 완전 순한 맛으로 생활코딩 선생님의 강의 수준, 아니 그 이상 순한 맛으로 준비해볼 생각이고, 2차로는 요즘 파이썬 전도사들이 매우 많아 보이는데, 본격 Java(JVM) 전도를 해볼까한다.

 

참고로 필자는 웹개발은 Spring/Java 기반을 주로하고, Python은 데이터분석용으로 사용하고 있다. 물론 Django, Flask, FastAPI 등 좋은 거 많은 것도 알고 Java랑 동시에 구동해서 연동해서 쓰기도 하기 때문에 '자바 개발자라 팔이 안으로 굽는다'는 등 오해는 하지 않으셨으면 좋겠습니다 :)

 

오늘은 1차 순한 맛 로드맵에 대해서만 간략히 이야기 해볼 생각인데, 실제 로드맵은 다음 시간에 그려볼 생각이고 오늘은 서론 정도로 간단하게 이야기해볼 생각이다.

 

해당 순한 맛 로드맵을 어쩌다 그려볼 생각을 했는냐고 묻는다면, 왜 두꺼운 개발책을 사서 처음부터 끝까지 완독해야만 뭔가 될 것 같다는 생각을 하느냐고 되묻고 싶었기 때문이다. 실제로 비트연산자 같은 거 열심히 보면서 도저히 이해가 안간다고 쩔쩔거리고 있던 국비학원 출신 신입직원분을 봤었기 때문이다. (성격은 매우 좋은 분 같았으나 이 분은 결국 정수, 실수가 뭔지 모르겠다며 한달 넘게 자바 공부만 하다가 금방 퇴사하셨다.)

그 때 뭔가 더 잘 알려주면 좋지 않았을까하는 마음에 언어도 순차적으로 필요한 것 우선으로 배우면 어떨까 싶었다. 물론 비트연산자처럼 특정 분야를 제외하고 실무에서 보기 힘든 경우는 스킵하고 갈 생각이다.

 

그리고 많은 분들이 간과하는 게 여러 언어들은 서로 어느정도 영향을 주며 같이 발전해 왔다. 그런데 딱 한가지 언어만 줄창 파서 왜 이런 기능이 생겨나게 됐는지 모르고 그냥 암기하는 경우들이 생각보다 많았다. 그래서 든 생각이 책한권 통째로 진행하는 것이 아니라 적당히 가감하고, 쪼개서 Java와 Javascript를 배우는 순서를 적당히 배치하면 어떨까하는 생각을 해봤다. 우선 Java는 아래와 같이 구분지어 진행하고 중간중간에 필요한 구간에 다른 필요한 내용을 녹여내 볼 생각이다.

 

 

 

목표는 하나만 줄창파서 편협한 시선을 가지고 자신이 메인으로 배운 언어 외의 개발언어들을 무시하는 사람들도 종종 보이는데, 맹목적으로 자기가 공부한 언어가 제일 좋다고 하는 분들을 좀 설득해보고 싶다.

 

특히 잘 알아보지 않고, "Java는 오래된 언어고, Python은 Hot한 요즘 언어니까 무조건 파이썬으로 기초를 배워야한다. Java는 낡은 언어라 어렵기만하고 쓸데가 없다." 라고 말하는 이상한 분들한테 충격을 먹어서 이래저래 할말이 많은 것 같다.

 

오늘은 위의 내용에 팩트를 기반으로 반박 하나만 하고 글을 마무리 하려한다.

 

Python이 Java보다 먼저 나온 언어이고, 죽어버린 언어 제외하고 오래되어 커뮤니티가 큰 언어일수록 지금 쓰기 편한 언어다. 그리고 Python도 우습게 생각하지마라 Python도 쓸수록 막강하고 어려운 고급언어이다.


그리고 마치 한국만 자바 공화국이고 해외에선 Java가 죽은 것처럼 말하는 분들도 편파적인 글과 통계만 보지 마시고 직접 조사를 좀 해보시길 추천드립니다. 특화된 용도에 차이가 있을뿐 여전히 쌩쌩합니다.

특히 여러 솔루션에서 제공하는 SDK만 알아봐도 JAVA, C#.NET, Python은 기본으로 있으며, 요즘은 Node.js까지 제공해주는 경우가 많으니 한 번 직접 찾아보는 시간을 갖는 것도 좋아보이네요 :)