부트캠프 이야기/한화시스템 sw부트캠프 3기

html, css, javascript 강의 후기

브래드 킴 2024. 1. 6. 14:31
728x90

이번주 내용은 java spring에 비해 부담도 덜한 과목이고 난이도도 낮은편이다 보니, 수강생들도 잘 따라오는것 같고 내 마음도 편안했다.
 
날씨도 겨울인데 봄날씨 처럼 포근하니, 오후가 되면 행복지수가 올라갔다.
 
나는 매서운 한파보단 땀 줄줄 흐르는 찌는듯한 여름이 더 좋다. 빨리 봄이오고 여름이 오면좋겠다.

한주간 강의 내용 리뷰

한화시스템 부트캠프 8주차에는 html, css, javascript에 대해 강의했다.
 
html에는 수많은 태그가 있으나, 그 중에 빈번히 사용하는 태그 위주로 다뤘다.
 
특히, form, table, div 태그 등을 강조하고 활용하는 것에 중점을 두었다. 또한 웹페이지에서 html이 어떻게 사용자에게 렌더링되고 개발자도구를 통해 어떻게 확인할수 있는지에 대한 구조를 학습했다.
 
css는 class, id 등 요소를 select하여 디자인을 효율적으로 적용하는 것에 초점을 두었다. 부트스트랩을 활용해보았고, tailwind, 리액트의 styled component등 다른 디자인 라이브러리도 존재한다는 내용도 언급했다.
 
javascript 또한 마찬가지로 특정 요소들을 선택하는 방식과 동적으로 html요소를 변경하는 방식에 대한 이해를 높이고자 했다.
 
javascript에서 강조하고자 했던 부분은 먼저, java와의 문법적 차이였다. 인터프리터 언어 특성상 컴파일시점에 타입을 지정하지 않아도 되니 var, let, const와 같은 키워드가 사용됨을 이해시키고자 했다.
 
더불어 javascript의 객체는 클래스를 사용해도 되지만 리터럴형식으로 객체를 만들고 추가/수정 하는데 유연하다는 것도 실습해보았다.
 
무엇보다 javascript의 함수적 유연성이 java와의 많은 차이를 낳는 요소라는 것도 강의했다.
 
javascript는 함수가 클래스에 속하지 않고 독립적으로 존재할수 있고, 변수에 담길 수 있고, 배열과 객체의 요소로서 담길수 있는 유연성이 있다.
 
클래스와 독립적인 빈번한 함수사용과 유연한 함수 사용으로 인해 화살표 함수 즉, 람다표현식도 java에 비해 높은 빈도로 사용된다.
 
또한 매개변수로 함수를 전달할수 있기에 콜백함수라는 개념이 파생된다. 그리고, 콜백함수 내에서의 또다른 콜백함수와의 실행순서 보장 과정에서  콜백함수가 연쇄적으로 사용되고 콜백지옥이라는 javascript의 이슈가 발생한다.
 
콜백지옥의 이슈는 보통은 비동기함수(ex-setTimeOut, ajax호출, axios사용)를 사용하는 과정에서 코드의 연속적 흐름 보장을 위해 발생하게 되고,
 
콜백지옥은 코드의 가독성과 디버깅등 유지보수성을 저해시키므로  async await 키워드를 사용한 콜백과 비동기 처리를 하게된다.
 
async await는 현대적 javascript 코드에서 매우 빈번히 사용되므로, 수강생들이 java개발자라 하더라도 반드시 기억했으면 하는 부분중 하나였다.
 
async로 묶인 function은 함수가 통째로 전체코드상에서는 비동기적으로 움직이지만 함수내에서는 await 키워드에 의해 순서가 보장됨을 기억했으면 좋겠다.
 
참고로) async await를 웹에서 검색하여 공부하면 promise객체라는 것이 나올것이고, 수업에서 다루지 않은 다양한 비동기 콜백이슈처리를 위한 내용들이 나올 것인데, 수업시간에 다룬 내용정도만 알아도 충분하지 않을까 싶습니다.
 

차주 강의 계획

차주에는 먼저, 웹서비스에서 화면이 렌더링 되는 2가지 방법을 우선적으로 다룰생각이다.
 
흔히들 말하는 SSR(서버사이드렌더링), CSR(클라이언트사이드렌더링)에 대한 이해가 필요하다.
 
아래 내용은 수업시간에 언급한 내용이다.
 
1)서버사이드에서 화면에 data를 involve시켜 최종화면을 서버가 사용자에게 렌더링
2)사용자가 일단 화면만을 받고, 화면내의 javascript코드(ajax, axios 등)를 통해 서버사이드 로부터 data를 요청하여 채워넣는 방식
 
위 2가지 방식의 렌더링 방식의 차이로 인해 서버(spring)의 코드가 달라질것이므로, spring에 들어가기 전에 미리 충분히 이해를 시켜주면 좋지 않을까 하는 생각이다.
 
local환경에서만 실습을 하면 화면렌더링에 대한 이해가 떨어지므로, S3, EC2 정도의 aws서비스를 동원해서 이해도도 높여보고자 한다.
 
웹에 대한 이해를 높이고 spring에 들어갈 생각이다.
 

한주간 들었던 생각들

수강생분들 중에 진지하게 이 길이 적성이 아닌가 싶어 고민하는 분들이 있는것 같다.
 
모든 선택을 존중하고, 인생은 진심으로 알 수 없는 것이기에 그 어떤 길이든 본인이 성실하면 좋은 결과와 행운이 있을거라 믿는다.
 
다만, 2달간의 수업이 너무 어렵고 따라가기 힘들었다거나, 코딩테스트나 개발시장이 너무 치열해 보여서 내가 있을곳이 아니라고 느낀다면 그건 분명 시장에 대한 오해가 있는 것이라 말해주고 싶다.
 
먼저, 우리 수업은 일반 국비수업에 비하면 선행학습이 된 수강생 비율이 높고, 수업의 난이도가 높다.
 
수강생간의 선행의 정도가 짧으면 6개월에서 길면 1년 정도로 차이가 발생한다. 그러나, 6개월~1년의 선행의 차이는 당장은 아니더라도 개발자로 일하면서 얼마지나지 않아 메워지는 갭이다.(그리고 실무 개발자들도 db, java, spring 등 기본기를 모두 갖추고 있지 않습니다. 우리수업의 요구사항이 실제현실보다 높습니다.)
 
수강기간 자존심이 상할수도 있고, 좌절할수도 있지만 시작이 늦은게 본인의 능력을 결정짓는게 되어서는 안되니, 이 부분에 있어 스스로에 대한 믿음이 필요하다고 생각한다.
 
또한, 코테가 너무 빡세 보이고 각종기술을 모두 학습하고 면접까지 뚫을수 있을까 하는 많은 불안감이 있을거라 생각한다.
 
일반적으로 코테를 보는 회사는 준비된 신입을 스크리닝(screening)하려고 하는 좋은 회사인것은 사실이다. 이제 막 시작하는 입장에서는 이게 가혹한 현실인것도 사실이다. 단시일내에 모든 기술set을 준비하고 코테까지 준비하는게 쉬운일이 아니기 때문이다.
 
하지만, 세상에 모든 회사가 신입을 뽑을때 코테를 보는것은 절대 아니다. 그리고, 신입이 아닌 경력시장에서의 코테의 요구사항은 훨씬 낮은 편이다. 그래서 일단 어떤곳이든간에 개발자로서 경력을 쌓고 추후에 본인이 가고 싶었던 기업을 차근차근 준비하는것도 현실적으로 매우 훌륭한 방안이다. 
 
그리고, 실무에서 수많은 개발자들을 봐왔지만, 수강생들이 걱정할만큼 그들의 기술적 깊이와 수준이 높지는 않다. 단지 경력이 많을 뿐이고, 경험이 많을 뿐이다. 물론, 뛰어난 사람들이 있지만 그들은 아웃라이어이지 모두가 그렇지는 않다는 것이고, 그렇지 않은 사람들의 비율이 매우 높다.
 
 그리고, 모든것을 차치하고서라도 나는 모든 수강생들이 이 길을 포기하지 않았으면 하는 이유는 수업시간에도 말했지만, 직업적 자유도가 있는 전문 기술직이기 때문이다. 나는 언제든 싫으면 떠날수 있다는 직업적 자유도를 중시 여기는 편인데, 그래서 여태껏 직업적 만족도가 높았다.

더불어, 버티기만해도 연차가 올라가고 시장에서 경력자로서 가치가 점점 올라갈수 있는 분야이기에 다른 직무에 비해 많은 장점이 있지 않을까 싶다.
 
시간이 지날수록, 취업이 가까워지고 현실적인 상황에 맞딱드리게 될수록 수강생들의 고민이 깊어질것인데, 지금 최선을 다하고 있는만큼, 후회없는 최선의 선택을 하길바란다. 

728x90