공통적으로 설명해 주셨던 Frontend와 Backend 비교
Frontend | Backend |
1. 눈에 보이는 부분 2. UI관련 개발과 관리 3. 자신의 작업이 즉각적으로 보이는 것을 원하는 사람에게 적합 4. 고객과 소통이 있음 - 사람과의 관계에 관심이 있는 사람에게 적합 5. 미적인 감각이 필요함 6. 최근에 업무의 범위가 넓어짐 7. 비전공자가 진입하기 쉬움 |
1. 안보이는 부분, 뒤에서 이루어지는 작업 2. 엑셀 다루는 걸 좋아하는 사람에게 적합 3. 가공한 데이터가 잘 쓰이는 거에 보람을 느끼는 사람에게 적합 4. 설계하는 능력이 필요 5. 큰 구조(아키텍쳐)를 만듬 6. 프론트보다 복잡함 7. 사고능력보다 설계능력이 더 중요 8. 프론트보다 연봉이 더 높음 (그만큼 어렵기 때문에) 9.실제로 채용시장에서 채용 비율은 프론트 1: 백엔드 5 정도 |
지금 배우고자 하는 언어(자바, 자바스크립트)를 선택하는 것은 영원한 결정이 아니다. 앞으로 계속 다 필요에 의해 다양하게 배우게 될 일이 있을 것이다. 그러나 프론트엔드를 할 것인지, 백엔드를 할 것인지는 신중하게 결정해야 한다. 이 포지션은 바뀔 가능성이 희박하기 때문이다. - 라고 말씀해 주셨다.
그리고 개발자가 되기를 결심한 것은 좋은 선택을 한 것이라고 하셨다. 수요가 아직도 많고 개발자에 대한 대우가 좋아지고 있기 때문. 반면에 단점이라 함은, 초반 진입이 어렵다는 점이다. 다른 말로 하면, 진입장벽만 넘으면 아주 매력 있는 직무라고 하심. 항해99가 좋은 점은 협업에서 개발자들이 일하는 환경과 동일하다는 것에 높은 평가를 하셨다.
1. Node.js
Node.js 는 언어는 아니고 Javascript를 작성하는 flatform 이다. 언어와 플랫폼을 혼동하지 않도록 주의한다.
항해99의 Node.js 수업에서 중요한 두 가지는
1. 자바스크립트를 완전히 익히기.
2. API 기능을 잘 이용하기.
① 특징
- 마이크로서비스에 적합
- 가볍다 - 효율적이고 빠르다. 자바보다 최소 CPU 메모리가 몇 배 낮다.
- 비용이 많이 안들기 때문에 스타트업에서 많이 사용한다.
- 안정성 문제가 있었으나 과거에 비해 많이 발전되었다.
- 대기업에서도 필요에 따라 사용이 늘어나는 추세이다 (트렌드가 변하고 있음)
- 해외에서는 Java보다 Node.js 를 더 많이 사용하는 편.
- Javascript를 사용하기 때문에 Spring에 비해 상대적으로 쉽다.
- 자바스크립트를 사용하기 때문에 프론트엔드로 넘어가기 쉽다.
- Spring은 Framework, Java의 JVM을 역할을 하는 것이 Node.js 이다.
② 수업을 통해 배우게 될 것
- 1-2주 차 : JS문법을 빡세게 배운다 + 과제/문제 풀이(복붙하는 코딩이 아니라 직접 코드 작성하기)
- Rest API 서버 개발 방법을 배운다 (취업에 필수)
- 로그인 기능 구현 : 쉽게 구현할 수 있는 라이브러리가 있지만, 수업에서는 보다 원초적인 방법으로 하나하나 직접 코드를 작성하여 구현하는 법을 배울 예정.
- 데이터베이스 사용 (관계형/비관계형 동시에 사용할 예정) 어떤 것인지 이해하고 넘어가는 정도
- 웹 소캣 이용 - 브라우저 실시간 알림 기능이다. (쇼핑몰에서 많이 사용) - 실전프로젝트에 유용하게 이용 가능
- 테크니컬한 부분보다 원리를 코드 작성을 통해 이해하는 커리큘럼이 될 것.
- 시간이 촉박하기 때문에, 핵심만 뽑아서 배울 예정. 어떤 게 중요한지, 알아야 하는지를 짚어주는 강의
③ 고급 개발자가 될 수 있는 기반을 다지는 수업
- 좋은 개발자는 직접 코드를 작성할 수 있는 사람 (복붙 노노)
- 3류 개발자는 남이 작성한 코드가 없으면 코딩을 못하는 사람, 2류 개발자는 남이 작성한 코드를 '활용'할 줄 아는 사람, 1류 개발자는 남이 작성한 코드의 결함을 알고 더 개선시킬 수 있는 사람.
- 오픈소스 (남이 작성한 코드)를 많이 봐야 코딩 실력이 늘어난다 (결함을 발견하면서)
- 회사는 10가지를 얕게 아는 개발자 보다, 한 가지를 제대로 알고 기반이 탄탄한 개발자를 선호
- 한가지 언어를 잘하면 발전이 빠르다.
- 회사를 선택할 땐, 꼭 코드 리뷰를 하는 회사를 선택하자!
- 우리나라가 자바 공화국은 맞지만, 결코 Node.js의 채용 시장이 작지는 않다. 점유율이 올라가는 중.
- 어떠한 요구사항이 추가되더라도 흔들림 없는 튼튼한 코드를 스스로 짤 수 있는 개발자라면 취업문제없음.
2. Spring
코딩을 잘하는 것은 가독성이 높고 견고한 코드르 작성하는 것이다. 예술처럼 창의성이 필요한 직무라고 할 수 있다.
이 세션은 Q&A 형식으로 진행되었다.
① 특징
- 20년이 넘은 프레임워크로 안정적이다.
- 따라서 대기업과 정부기관에서 많이 사용한다.
- 사용하는 사람이 많은 프레임워크이기 때문에 현업에서 문제가 발생했을 때 해결방법을 보다 쉽게 찾을 수 있다.
- 사용 가능한 라이브러리가 많다는 장점이 있다.
- 스타트업에서 Node.js를 많이 사용하긴 하지만, 규모가 커지면 결국 Spring으로 갈아탐
- 비전공자에겐 Node.js보다 1.5배 정도 어려운 것을 감안해야 한다.
- 그러나 장기적을 봤을 때 자바로 시작하는 것이 훗날 다른 언어를 배우기에 훨씬 수월하다.
- 자바스크립트는 진입장벽이 낮지만 주니어를 벗어나 중급 이상이 될 경우 버그가 많이 발생한다.
- 그래서 Typescript를 사용하게 되는데, 결국 자바처럼 공부를 해야 되는 것은 같다.
- 백엔드 개발자라면 결국 자바를 사용해야 한다.
- 그러나 실제로 업무를 시작하게 되면 자바스크립트에서 자바로 전향이 쉽지 않다.
- 자바에서 노드로 직무로 채용 지원은 가능하지만, 노드를 배워서 자바 직무로 지원은 불가능함
- 요즘은 다 스프링 부트를 사용하기 때문에 수업은 스프링 부트(필수) + 스프링 시큐리티 (로그인 인증, 인가) 진행
※ 공통 개발자들의 고민
개발실력이 뒤쳐진다는 걱정. 따라서 계속 공부해야 하는 직무이다. 끊임없는 노력이 필요하다.
② 항해 99에서 배워야 할 것
- 일단 주 단위 프로젝트를 통해 어려운 스프링 언어도 익숙해질 수밖에 없다.
- 매주 고민과 노력으로 채워질 텐데, 얼마나 잘 만드냐 보다 고민을 통해 얼마나 성장을 했는지 히스토리를 만드는 것이 중요하다.
- 취업을 할 땐, 이 고민들로 이력을 만들어서 성장 스토리를 전하는 게 중요함.
- 중요한 건 스프링 원리를 잘 이해하는 것. 로직을 이해하면 다른 언어 공부를 배우기가 훨씬 수월하다.
- 개발자로서의 나이 장벽은 회사마다 다름
- 큰 회사일수록 백엔드 개발자가 프론트 개발자보다 많다.
- 어쨌든 결론은 주니어급 이후엔 어떤 언어를 하느냐가 중요하지 않고, 상황에 맞게 모든 언어를 잘 다룰 수 있어야 한다.
- 장기적으로 봤을 땐 자바로 시작하는 것이 좋다.
세션을 통해 나처럼 비전공자인 분들이 비슷한 고민을 하고 있다는 것을 알 수 있었다.
1. 개발 지식이 거의 없는데 과연 스프링 수업 과정을 따라갈 수 있을지, 그리고 따라간다 한들 취업 시 경쟁력이 있을지
2. 해외취업을 고려한다면 노드가 스프링보다 유리할지
3. 현업 시니어 개발자들이 생각하는 좋은 개발자의 조건은 무엇인지 : 견고한 코드를 스스로 작성하려고 노력하는 사람. 당장 작성한 코드를이해하지 못하더라도 주 단위 프로젝트를 어떻게든 수행하는 능력이 있는 사람.
아직 시작도 안 했지만, 나도 자바라는 언어가 너무 어렵게 느껴져 두려움이 생겼다. 스프링을 생각하고 있었지만, 과연 내가 할 수 있을지, 로그인 페이지 구현도 못하고 이해도 못하는데 가능할지 참 생각이 많았다. 그래도 오늘 세션의 매니저님 말을 통해 용기를 좀 얻었다.
<비전공자가 주특기로 Java Spring를 선택했을 때 현실>
- 꾸준함이 있으면 전혀 문제가 없다. 습관이 중요하다. (하루에 하나씩 알고리즘을 풀고 필요한 개발언어를 공부)
- 그날그날 기록해서 정리하는 것이 중요하다. (TIL, WIL )
- 본인이 재미있어하는가를 보고 판단해서 주특기를 선택한다.
- 의지와 노력이 가장 중요하다.
- 전공자라고 해서 꼭 더 지식이 있다거나 잘하는 것은 아니다.
'항해99 개발 일지' 카테고리의 다른 글
(11/2) 주특기 세션 React (0) | 2022.11.03 |
---|