[프로그래머스 프론트엔드 데브코스] 한 달차 회고 🎉
처음으로 써보는 회고글 ! !
지금까지 공부한거 요약정리만 해보다가...
처음으로 기회가 생겨 회고글을 작성😎
나는 예전글에서 작성하다시피 개발자로 취업을 하기엔
너무너무나도 부족한 상태여서😥 4학년 1학기를 마치고 휴학을 결정했다
휴학 전에 교수님과의 상담으로 부트캠프/국비교육을 하며 공부를 하라 조언을 듣게되었고..
어떻게 운이 좋게도 제일 수강하고 싶었던 프로그래머스 데브코스에 합격하게 됐다 !
(데브코스가 궁금하신 분들은 아래 링크를 참고해 주세용)
[3기] K-Digital Training: 빅데이터 플랫폼 프론트엔드 엔지니어링 | 프로그래머스 스쿨 (programmers.co.kr)
합격을 하고 정신없이 강의듣고.. TIL작성하고..
오프라인 강의도 가보고... 과제도 하고나니
벌써 뭐했다고 한 달이나 지나버렸다...
현재까지 배운 걸 살펴보자면
전체적으로는 자바스크립트 주요 문법!
그리고 기타 CS지식, 알고리즘까지 학습을 하였다.
확실한건 어느정도 기본 JS지식이 있어야 수강할 수 있다고 느꼈다.
정말 기초적인건 가르치시지는 않고,
기본적인 내용은 다 훑고 넘어가시지만 내용이 겁내 많은 느낌? ㅎㅎ..
뭐튼...
나는 보통 공부할 때 블로그에 정리하면서(요약) 학습을 하기에
매일매일 공부한 내용을 정리하려고 노력했다 !
나의 기록들....
최근에는 과제때문에 못쓰기는 했다ㅠ
노션클로닝 너무 빡세요 😥
그 중 가장 기억에 남는...? 파트들을 되짚어 보자면, 크게 3가지가 있다
1. 이벤트 루프, 클로저
2. JS를 활용한 알고리즘 풀이 방법(+과제)
3. 컴포넌트 방식의 ToDo List 만들기
1번 같은 경우
사실 나는 Js를 깊게 공부해본 적이 없기에
강의를 들으면서 처음듣는 내용이라 좀 신기했었다.
(자세한 내용은 아래에)
[Day 2] JavaScript 주요 문법(2) (tistory.com)
아직 지금도 엄청 자세하게 아는 건 아니지만
자바스크립트의 기본 동작 원리를 알 수 있었던 파트였다.
2번은
사실 나같은 경우는 학과에서 c++로 알고리즘 푸는 방식을 알려줘서
근 2년간은 c++로 알고리즘을 풀었던 지라 js가 익숙하지 않았다.
요새 프론트엔드직무로 가는 코딩테스트에서 언어를 js로 한정하는 경우가 많아지고 해서
js로 문제들을 풀어보고 있었는데
확실히 구현이나 문자열 다루는 부분에서 간편한 함수가 많아 풀기 편했다.
그리고 기본적인 자료구조(ex 스택 큐 덱 그래프) 같은 것들을 js로 구현해보는 시간이 있어서
복습하기에도 좋았다 !
열심히 따라친 흔적..
자료구조를 배운 후에는 첫 과제로
트리 순회와 트라이 자동완성 과제가 주어졌다.
트리 순회 같은 경우에는 전공 과제로 많이 해봤던 거라 익숙했지만
트라이 자료구조를 이용해 자동완성을 구현하는 것은 처음이라 살짝 헤맸었다 ..
그래도 강의에서 배운 내용과 약간의 구글링을 통해 과제를 해결했다 !
하지만 과제를 제출하는 방식이 굉장히 독특했는데,
과제 제출용 깃허브가 따로 있어서
두 개의 브랜치를 파 하나의 브랜치에서 과제 코드를 작성하고 다른 브랜치고 PR을 보내는 방식이었다
위와 같은 형식으로 PR을 작성해야 한다 !
기능별로 커밋을 나누고 설명을 해야하다보니
코드를 작성할 때 구현해야 하는 부분을 작게 나누어서
하나의 큰 그림을 완성해가는 느낌을 받았다.
그리고 과제 제출 후에는 팀원들과 멘토님과의 코드 리뷰로
서로에 대한 피드백을 받을 수 있는 기회가 있기에 더욱 좋았던 것 같다
3번 같은 경우에는 최근에 수강했던 Todo List 앱 만들기 !
오로지 Vanilla Js로만 투두리스트를 만드는 과정을 배웠는데,
지금까지 내가 생각했던 방식과는 사뭇다른 방식으로 코드를 작성해서 많이 배웠던 강의내용이었다.
나는 리액트나 뷰같은 라이브러리를 이용해야한 컴포넌트 방식의 코드 작성이 가능한 줄 알았는데,
충분히 Js로만 컴포넌트를 만들고 모듈을 불러오는 방식으로 앱을 구현할 수 있었다.
또한 하나의 컴포넌트를 만들 때에도,
컴포넌트 내부에 state, render 함수를 만들어서 리액트 방식으로 코드를 작성하는 느낌을 받았다.
export default function TodoList({ $target, initialState }) {
const $todo = document.createElement("div");
$target.appendChild($todo);
this.state = initialState;
this.setState = (nextState) => {
this.state = nextState;
this.render();
};
this.render = () => {
const { todos } = this.state;
$todo.innerHTML = `
<ul>
${todos
.map(
({ _id, content, isCompleted }) => `
<li data-id="${_id}" class="todo-item">
${isCompleted ? `<s>${content}</s>` : content}
<button class="remove">x</button>
</li>`
)
.join("")}
</ul>
`;
};
$todo.addEventListener("click", (e) => {
// 이벤트가 일어나는 부분
});
this.render();
}
지금은 이러한 방식으로 코드를 작성하는 법을 바탕으로
Notion을 클로닝하는 프로젝트(과제)를 수행하고 있다
현재까지는 강의 내용과 비슷한 내용의 코드지만
나중에는 따라치기식이 아닌 스스로의 코드를 작성하고 싶다 !
아직 배운지 한달차지만, 확실히 혼자공부하는 것보다 속도가 빠르고
효율적으로 공부하고 있다는 생각이 들정도로 만족스러운 코스다
조금 아쉬운 부분은, 온라인 강의 비중이 많기때문에 스스로 공부하는 방법에 익숙하지 않다면
많이 나태해질 수 있다는 점이 단점...이라고 할 수 있겠다.
코어타임(13~19시까지 공부하는 시간)이 있긴하지만 실시간으로 감시하는 것이 아니고
디스코드 내 들어가 있는 방식이기 때문에 충분히 딴짓이 가능... 하다는 점ㅎㅎ.
그래도 과제가 거의 매주? 나오기 때문에 따라가지 않는다면... 할 수 없다..공부를 해야만 해..
데브코스를 한 달동안 하면서 또 다른 느낀바는
데브코스 내 사람들이 참 대단한 사람들이 많다는 점이었다..
굳이 이 코스를 듣지 않아도 좋은 곳으로 잘 취업할 것 같은 분들이 참 많은거 같은 느낌? ...
한편으로는 나는 언제 저 수준까지 공부해야 하나.. 우울할 때도 있지만
열심히 해야겠다는 자극도 받는다 !
특히 우리팀 !
오프라인으로 제일 많이 만난 것 같은데 ㅋㅋ
다들 열심히 하고 좋은 사람들이라 만날 때마다 즐거웠다 😊
다음 주에 한번더 만나서 놀기로(?) 했는데 기대되는 부분이다 ㅎ
마지막으로 나의 목표에 대해 이야기 해보자면
데브코스 내에 매니저님, 멘토님, 강사분들을 포함해서 너무나도 좋은 분들이 많기에
최대한 활용하여 5개월동안 내 실력을 끌어올리고 싶다. 진짜로 !
4개월 후에는 복학을 하게 되겠지만 취업을 하여 취업계를 내는 ..행복회로를 돌리고 있달까
ㅎㅎㅎㅎㅎ
뭐튼.....
저는 이만 마무리 짓겠습니다.
다들 화이팅 ⭐