
시간이 정말 빠르게 지나간 것 같다. 정신 없이 과정에 참여하다보니 벌써 한달이 지났다길래 깜짝 놀랐다.
나는 전공자였지만 졸업 직전에 웹 프론트엔드 개발자의 진로를 정하게 되어서, 웹 관련 지식이 정말 부족했다.
막상 취업을 하려고 마음을 먹으니 생각보다 내가 모르는 것들이 많고, 개발 경험도 많이 부족하다고 느꼈다...
그러던 중 프로그래머스 코테를 풀다가 우연히 발견한 데브코스에 지원을 하게 되었고, 다행히 합격해서 현재 열심히 참여하고 있다!
한달 동안 학습 했던 내용 (23.09.20 - 23.10.20)
기본적인 자바스크립트 문법, 자료구조& 알고리즘, 바닐라 자바스크립트 개발에 대해서 배웠다.
사실 나는 전공자였기 때문에 앞 부분 배울 때는 아는 내용을 다시 복습하는 느낌으로 공부했다😅
그런 과정 속에서 가장 인상 깊었던 내용이 하나 있었는데, 바로.. 선언형 프로그래밍 이다.
명령형 프로그래밍
const arr = [1,2,3];
const doubleArr = [];
for(let i=0;i<arr.length;i++) {
doubleArr.push(arr[i]*2);
}
console.log(doubleArr) // 2,4,6
선언형 프로그래밍
const arr = [1,2,3];
const doubleArr = arr.map(x=>x*2);
console.log(doubleArr) // 2,4,6
위 예시는 배열의 각 원소값에 2를 곱하여 새로운 배열을 만드는 과정의 코드이다.
기존의 익숙한 for문을 사용하여 동작 과정이 상세한 명령형 프로그래밍 방식과는 달리,
선언형 프로그래밍의 경우, 무엇이 필요한지만 기술하고, map이라는 정해진 규칙에 의해 새로운 배열을 만드는 함수를 이용해 어떻게 했는지 그 과정은 생략한다!
명령형 프로그래밍은 "어떻게(HOW)" 구현(처리) 하는가? 를 디테일하게 기술하는 것에 관점이 가있고,
선언형 프로그래밍은 "무엇을(WHAT)" 표현(처리) 하는가? 가 중요하다.
선언형 프로그래밍으로 코드를 작성할 경우, 과정보다는 무엇을 표현하는지에 집중하여 코드의 전체적인 가독성이 높아져 개발자가 문제의 본질에 집중할 수 있도록 도와주는 장점이 있다고 한다.
그동안 내가 아는 개념은 객체지향언어, 절차형 프로그래밍 이런 것들이었기 때문에 선언형 프로그래밍이라는 개념이 신기했다. (그동안 JAVA, C++ 위주로 개발하다보니 클래스만 주구장창 사용해서...)
아무 생각 없이 사용했던 map(), filter()등의 메소드들이 알고보니 선언적으로 작성할 수 있는 문법이었다.
생각해보면 저런 ES6문법을 보며 왜 for문을 안쓰고 저런 함수들을 사용하는걸까? 라는 의문을 가졌었다.
심지어 나는 익숙하지 않다는 핑계로 for문 작성하는 걸 더 선호했다....
그냥 자바스크립트 언어의 특색이라고만 생각했는데 나름 이유가 있었고, 저런 형태의 코드 작성 방식이 선언형 프로그래밍 이라는 하나의 개념으로 정의가 되어있다는 걸 알게되어 신기했다!
SQL도 이런 선언형 프로그래밍에 속한다고 한다.( <<< 이걸 듣고 '!!! 생각해보니 그렇네' 라고 생각함..)
그리고 함수형 프로그래밍도 선언형 프로그래밍의 일종이라고 한다.
코테 & 코어 자바스크립트 스터디
데브코스는 매일 정해진 코어타임(1-7시)에 디스코드에 모여서, 캠을 키고 공부를 하는 형태로 학습이 진행되었다.
당연히 혼자서 공부하는 건 아니고 5명이서 팀을 이루게 되었는데, 우리 팀원들끼리 한번 스터디를 해보자는 의견이 나왔다.
그래서 코테와 자바스크립트 스터디를 진행하게 되었다!

코테 스터디 진행 방식
1. 매일 하루에 1문제씩 각 팀원이 돌아가며 문제를 정해서 slack에 올린다.
2. 다음날 코어타임 시작 시간 1시에 문제를 정해온 사람을 시작으로 각자의 코드를 공유하며 설명한다.
3. 주에 한 번씩 각자 풀어온 문제들을 Github의 main 브랜치에 업로드 한다.

자바스크립트 스터디 진행 방식
1. 한 챕터 당 2명이 대표로 발표 자료.md 파일을 Github에 업로드하며, 매주 월, 목 코어타임 4시에 진행했다.
2. 발표자 외 각 팀원들도 정해진 파트를 공부해오며, 발표가 끝나면 질문하는 시간을 가진다.
3. 스터디를 진행할 책으로는 모던자바스크립트 딥다이브와 코어 자바스크립트 중 고민하다가, 빠르게 핵심을 공부할 수 있는 코어 자바스크립트를 고르게 되었다.
데브코스에 참여하게 된다면 꼭 해보고 싶었던 것 중 하나가 바로 스터디였는데, 다행히 팀원들끼리 마음이 맞아 2개나 할 수 있게 되어 굉장히 기뻤다🥺
사실 부끄럽지만 나는 스터디를 해본 적이 한번도 없었다... 그래서 어떻게 진행해야하는지 감이 안잡혔는데, 다른 팀들이 어떻게 스터디를 진행하는지 많이 참고하여 우리 팀원들끼리도 규칙을 정한 다음 주로 Github를 활용해 진행했다.
좋았던 점🤍
1. Github 사용에 익숙해졌다! (그치만 여전히 부족함.. 더 공부하쟈)
2. 코테를 매일 푸는 것에 익숙해졌다..!! (매일 코드를 작성하니 자바스크립트 ES6 문법도 더욱 친숙해졌다.)
3. 질문을 많이 하는 습관을 들이기 좋은 환경이다!
특히 3번이 좋았던 게,
나는 무슨 일이 있어도 '흠.. 그런갑다...' 하고 그냥 그러려니 넘어가는 편이다.
문제는 그 성격이 공부할 때에도 적용이 된다는 점이었다....😱
그래서 공부하다가 의문이 들어도 무의식적으로 대충 넘길 때가 굉장히 많아서, 별로 좋지 않은 습관이라고 생각을 했기 때문에, 이번 데브코스에 참여하며 이 무의식을 깨고 질문을 많이 해보자는 목표를 갖고 있었다.
물론 2n년을 이렇게 살아온 성격 특성을 한번에 고치는 건 힘들었지만...
계속해서 무의식을 이겨내고 왜? 라는 질문을 던져보았다.
그렇게 질문을 하다보면 대충 80% 이해했던 것들이 100% 이해가 되는 경험을 하게 되어서 너무 신기했다.
난 그동안 80% 이해한 걸 100%라고 착각한 적이 많았겠구나 싶었다...
그리고 왜? 라는 질문은 나 스스로에게도 던져보았다.
특히 코어 자바스크립트 스터디 발표자료를 준비하면서, 내가 질문자라면 어떤 것들에 의문이 들까? 를 많이 생각했다.
질문자의 입장을 계속 생각하다보면 나도 모르게 어? 그러고보니 이건 왜 그러지? 싶어져 의문점들을 의식하기 더 쉬워졌다.
그렇게 생긴 의문들을 해결하는 과정, 그리고 그 과정을 팀원들에게 잘 설명하려고 발표 준비를 하게되니, 왜? 라는 의문을 갖는 습관과 더불어 더욱 깊게 공부할 수 있는 계기가 되어서 정말 좋았다😇
데브 코스 과정 중 고민거리?
일단 일찍 일어나는게 여전히 힘들다...
아무래도 몇 년을 극!!!새벽형으로 살다가 다시 정상적인 패턴으로 사는 건 쉽지 않은 일인듯 하다...
그래도 1시-7시 코어타임일 때는 꽤 적응을 잘 해나갔는데, 지금은 프로젝트 기간이라 9시-2시 코어타임이라서 너무 힘들다 ㅠㅠ
게다가 주말에 알바까지 하니까 생각보다 공부를 할 시간이 없어서, 알바를 계속 해야할지를 고민하고 있다.
일단은 조금 더 해보고, 영 아니다 싶으면 12월이 되기 전에 잠시 알바를 쉬는 것을 고려해 볼 예정이다....😢
그리고 개발을 하는 것에 여전히 대단히 큰 욕심은 없어서, 매번 이 마인드에 대해서 생각하게 된다.
나는 늘 이상하게 의욕이 크게 없다... 솔직히 대단한 목표의식을 가지고 개발을 하고 있지는 않은 것 같다.
그치만 그런 작은 의욕들 중 가장 하고 싶은 일이 CS공부와 개발이기 때문에, 컴공을 전공한 뒤로 쭉 이 길을 가고 있다.
그렇지만 이런 열정적이지 않은 마음으로 개발을 해도 되는걸까.... 하는 생각을 n년째 간간히 하고 있었는데,
멘토님과의 커피챗 중, '꼭 즐겁게 개발을 해야하나요?' 라는 말씀을 듣고, 뭔가 위안이 된 것 같다.
자꾸만 의욕이 사라지더라도.. 그래도 컴공을 전공한 뒤로 나는 한번도 이 길이 싫다고는 절대 생각하지 않았다. 꼭 전공을 살려서 일을 하고 싶었다. 아무리 의욕이 없어도 막상 공부하면 가장 몰입하게 되었고, 잘 하고 싶다는 욕심이 생겼기 때문이다.
이런 나의 마음과 의지를 잊지 않고, 아무리 힘들더라도 시간이 오래걸려도.. 포기하지 않고 천천히 나아가보려고 한다!
개발 가끔 재미 없어져도 평생 할 수 있지 뭐!
마무리
다 적진 못했지만 이 외에도 팀원들끼리 모여서 코드 리뷰를 하는 시간도 참 유익했다.
확실히 혼자서 하는 것보단 비슷한 목표를 가진 팀원들이 모여서 같이 공부할 수 있다는 게 얼마나 좋은 기회인지 알게되었다.
단순 공부 이외에도 서로 가벼운 대화를 나누는 것만으로도 새롭게 환기가 되고, 또 새로운 의욕을 불러오게 된다.
커뮤니케이션의 중요성 요즘 다시 한번 느끼고 갑니다...
다음 한달은 조금 더 부지런하게 공부하도록 하겠습니다...!
지치지 않고 다들 공부 화이팅 !!!

시간이 정말 빠르게 지나간 것 같다. 정신 없이 과정에 참여하다보니 벌써 한달이 지났다길래 깜짝 놀랐다.
나는 전공자였지만 졸업 직전에 웹 프론트엔드 개발자의 진로를 정하게 되어서, 웹 관련 지식이 정말 부족했다.
막상 취업을 하려고 마음을 먹으니 생각보다 내가 모르는 것들이 많고, 개발 경험도 많이 부족하다고 느꼈다...
그러던 중 프로그래머스 코테를 풀다가 우연히 발견한 데브코스에 지원을 하게 되었고, 다행히 합격해서 현재 열심히 참여하고 있다!
한달 동안 학습 했던 내용 (23.09.20 - 23.10.20)
기본적인 자바스크립트 문법, 자료구조& 알고리즘, 바닐라 자바스크립트 개발에 대해서 배웠다.
사실 나는 전공자였기 때문에 앞 부분 배울 때는 아는 내용을 다시 복습하는 느낌으로 공부했다😅
그런 과정 속에서 가장 인상 깊었던 내용이 하나 있었는데, 바로.. 선언형 프로그래밍 이다.
명령형 프로그래밍
const arr = [1,2,3];
const doubleArr = [];
for(let i=0;i<arr.length;i++) {
doubleArr.push(arr[i]*2);
}
console.log(doubleArr) // 2,4,6
선언형 프로그래밍
const arr = [1,2,3];
const doubleArr = arr.map(x=>x*2);
console.log(doubleArr) // 2,4,6
위 예시는 배열의 각 원소값에 2를 곱하여 새로운 배열을 만드는 과정의 코드이다.
기존의 익숙한 for문을 사용하여 동작 과정이 상세한 명령형 프로그래밍 방식과는 달리,
선언형 프로그래밍의 경우, 무엇이 필요한지만 기술하고, map이라는 정해진 규칙에 의해 새로운 배열을 만드는 함수를 이용해 어떻게 했는지 그 과정은 생략한다!
명령형 프로그래밍은 "어떻게(HOW)" 구현(처리) 하는가? 를 디테일하게 기술하는 것에 관점이 가있고,
선언형 프로그래밍은 "무엇을(WHAT)" 표현(처리) 하는가? 가 중요하다.
선언형 프로그래밍으로 코드를 작성할 경우, 과정보다는 무엇을 표현하는지에 집중하여 코드의 전체적인 가독성이 높아져 개발자가 문제의 본질에 집중할 수 있도록 도와주는 장점이 있다고 한다.
그동안 내가 아는 개념은 객체지향언어, 절차형 프로그래밍 이런 것들이었기 때문에 선언형 프로그래밍이라는 개념이 신기했다. (그동안 JAVA, C++ 위주로 개발하다보니 클래스만 주구장창 사용해서...)
아무 생각 없이 사용했던 map(), filter()등의 메소드들이 알고보니 선언적으로 작성할 수 있는 문법이었다.
생각해보면 저런 ES6문법을 보며 왜 for문을 안쓰고 저런 함수들을 사용하는걸까? 라는 의문을 가졌었다.
심지어 나는 익숙하지 않다는 핑계로 for문 작성하는 걸 더 선호했다....
그냥 자바스크립트 언어의 특색이라고만 생각했는데 나름 이유가 있었고, 저런 형태의 코드 작성 방식이 선언형 프로그래밍 이라는 하나의 개념으로 정의가 되어있다는 걸 알게되어 신기했다!
SQL도 이런 선언형 프로그래밍에 속한다고 한다.( <<< 이걸 듣고 '!!! 생각해보니 그렇네' 라고 생각함..)
그리고 함수형 프로그래밍도 선언형 프로그래밍의 일종이라고 한다.
코테 & 코어 자바스크립트 스터디
데브코스는 매일 정해진 코어타임(1-7시)에 디스코드에 모여서, 캠을 키고 공부를 하는 형태로 학습이 진행되었다.
당연히 혼자서 공부하는 건 아니고 5명이서 팀을 이루게 되었는데, 우리 팀원들끼리 한번 스터디를 해보자는 의견이 나왔다.
그래서 코테와 자바스크립트 스터디를 진행하게 되었다!

코테 스터디 진행 방식
1. 매일 하루에 1문제씩 각 팀원이 돌아가며 문제를 정해서 slack에 올린다.
2. 다음날 코어타임 시작 시간 1시에 문제를 정해온 사람을 시작으로 각자의 코드를 공유하며 설명한다.
3. 주에 한 번씩 각자 풀어온 문제들을 Github의 main 브랜치에 업로드 한다.

자바스크립트 스터디 진행 방식
1. 한 챕터 당 2명이 대표로 발표 자료.md 파일을 Github에 업로드하며, 매주 월, 목 코어타임 4시에 진행했다.
2. 발표자 외 각 팀원들도 정해진 파트를 공부해오며, 발표가 끝나면 질문하는 시간을 가진다.
3. 스터디를 진행할 책으로는 모던자바스크립트 딥다이브와 코어 자바스크립트 중 고민하다가, 빠르게 핵심을 공부할 수 있는 코어 자바스크립트를 고르게 되었다.
데브코스에 참여하게 된다면 꼭 해보고 싶었던 것 중 하나가 바로 스터디였는데, 다행히 팀원들끼리 마음이 맞아 2개나 할 수 있게 되어 굉장히 기뻤다🥺
사실 부끄럽지만 나는 스터디를 해본 적이 한번도 없었다... 그래서 어떻게 진행해야하는지 감이 안잡혔는데, 다른 팀들이 어떻게 스터디를 진행하는지 많이 참고하여 우리 팀원들끼리도 규칙을 정한 다음 주로 Github를 활용해 진행했다.
좋았던 점🤍
1. Github 사용에 익숙해졌다! (그치만 여전히 부족함.. 더 공부하쟈)
2. 코테를 매일 푸는 것에 익숙해졌다..!! (매일 코드를 작성하니 자바스크립트 ES6 문법도 더욱 친숙해졌다.)
3. 질문을 많이 하는 습관을 들이기 좋은 환경이다!
특히 3번이 좋았던 게,
나는 무슨 일이 있어도 '흠.. 그런갑다...' 하고 그냥 그러려니 넘어가는 편이다.
문제는 그 성격이 공부할 때에도 적용이 된다는 점이었다....😱
그래서 공부하다가 의문이 들어도 무의식적으로 대충 넘길 때가 굉장히 많아서, 별로 좋지 않은 습관이라고 생각을 했기 때문에, 이번 데브코스에 참여하며 이 무의식을 깨고 질문을 많이 해보자는 목표를 갖고 있었다.
물론 2n년을 이렇게 살아온 성격 특성을 한번에 고치는 건 힘들었지만...
계속해서 무의식을 이겨내고 왜? 라는 질문을 던져보았다.
그렇게 질문을 하다보면 대충 80% 이해했던 것들이 100% 이해가 되는 경험을 하게 되어서 너무 신기했다.
난 그동안 80% 이해한 걸 100%라고 착각한 적이 많았겠구나 싶었다...
그리고 왜? 라는 질문은 나 스스로에게도 던져보았다.
특히 코어 자바스크립트 스터디 발표자료를 준비하면서, 내가 질문자라면 어떤 것들에 의문이 들까? 를 많이 생각했다.
질문자의 입장을 계속 생각하다보면 나도 모르게 어? 그러고보니 이건 왜 그러지? 싶어져 의문점들을 의식하기 더 쉬워졌다.
그렇게 생긴 의문들을 해결하는 과정, 그리고 그 과정을 팀원들에게 잘 설명하려고 발표 준비를 하게되니, 왜? 라는 의문을 갖는 습관과 더불어 더욱 깊게 공부할 수 있는 계기가 되어서 정말 좋았다😇
데브 코스 과정 중 고민거리?
일단 일찍 일어나는게 여전히 힘들다...
아무래도 몇 년을 극!!!새벽형으로 살다가 다시 정상적인 패턴으로 사는 건 쉽지 않은 일인듯 하다...
그래도 1시-7시 코어타임일 때는 꽤 적응을 잘 해나갔는데, 지금은 프로젝트 기간이라 9시-2시 코어타임이라서 너무 힘들다 ㅠㅠ
게다가 주말에 알바까지 하니까 생각보다 공부를 할 시간이 없어서, 알바를 계속 해야할지를 고민하고 있다.
일단은 조금 더 해보고, 영 아니다 싶으면 12월이 되기 전에 잠시 알바를 쉬는 것을 고려해 볼 예정이다....😢
그리고 개발을 하는 것에 여전히 대단히 큰 욕심은 없어서, 매번 이 마인드에 대해서 생각하게 된다.
나는 늘 이상하게 의욕이 크게 없다... 솔직히 대단한 목표의식을 가지고 개발을 하고 있지는 않은 것 같다.
그치만 그런 작은 의욕들 중 가장 하고 싶은 일이 CS공부와 개발이기 때문에, 컴공을 전공한 뒤로 쭉 이 길을 가고 있다.
그렇지만 이런 열정적이지 않은 마음으로 개발을 해도 되는걸까.... 하는 생각을 n년째 간간히 하고 있었는데,
멘토님과의 커피챗 중, '꼭 즐겁게 개발을 해야하나요?' 라는 말씀을 듣고, 뭔가 위안이 된 것 같다.
자꾸만 의욕이 사라지더라도.. 그래도 컴공을 전공한 뒤로 나는 한번도 이 길이 싫다고는 절대 생각하지 않았다. 꼭 전공을 살려서 일을 하고 싶었다. 아무리 의욕이 없어도 막상 공부하면 가장 몰입하게 되었고, 잘 하고 싶다는 욕심이 생겼기 때문이다.
이런 나의 마음과 의지를 잊지 않고, 아무리 힘들더라도 시간이 오래걸려도.. 포기하지 않고 천천히 나아가보려고 한다!
개발 가끔 재미 없어져도 평생 할 수 있지 뭐!
마무리
다 적진 못했지만 이 외에도 팀원들끼리 모여서 코드 리뷰를 하는 시간도 참 유익했다.
확실히 혼자서 하는 것보단 비슷한 목표를 가진 팀원들이 모여서 같이 공부할 수 있다는 게 얼마나 좋은 기회인지 알게되었다.
단순 공부 이외에도 서로 가벼운 대화를 나누는 것만으로도 새롭게 환기가 되고, 또 새로운 의욕을 불러오게 된다.
커뮤니케이션의 중요성 요즘 다시 한번 느끼고 갑니다...
다음 한달은 조금 더 부지런하게 공부하도록 하겠습니다...!
지치지 않고 다들 공부 화이팅 !!!