블록체인 엔지니어링 부트캠프 2기 - Week 1👏

Bosees·2021년 11월 2일
0

부트캠프

목록 보기
1/6
post-thumbnail

Day 1 🌞


부트캠프의 첫날은 오리엔테이션을 통해 앞으로 있을 교육의 방향과 규칙들을 설명해주는 시간이었다. 현시점에서 코로나바이러스 때문에 비대면으로 진행하는 만큼 몰입도가 대면 교육보다 효율이 떨어질 거로 생각했는데 꽤 빡빡한? 일정과 칼 같은 규칙 때문인지 효율이 떨어질 거라는 내 생각은 다소 굳이 하지 않아도 되는 성급한 생각😅 으로 전락해버렸다.

1. Orientation

멘토분들의 간략한 소개와 앞으로 같이 개발하게 될 동료들을 처음 대면하는 시간이었다. 설렌다.😮
처음 화상채팅을 시작하고 인원수를 확인했는데 놀랐다. 생각보다 많은 사람이 이번 부트캠프의 지원을 했기 때문이다. 열정 가득한 동료들과 앞으로 개발을 같이 할 수 있다는 생각에 텐션이 오르기 시작했다. 그리고서 동료들의 얼굴을 하나둘씩 보았다. 대면의 익숙해서인지 뭔가 실감이 안나는 기분? 이었다. 그리고 뭔가 낯설어...
멘토분들도 말씀을 잘하시고 재미있으신 분들이라 앞으로 과정들이 기대가된다.

2. Pair Programming

페어 프로그래밍. 말 그대로 짝을 정해 같이 과제 또는 개발하는 과정에서 생긴 문제를 같이 해결하고 서로의 성장을 위해 도움을 줄 수 있는 깐부같은 관계이다. 이 과정을 통해 현업에서 필요한 커뮤니케이션 스킬도 배울 수 있다. 앞으로 진행하게 되면 상대방의 배려는 물론이고 각자의 역할에 충실히 하는 게 서로를 위한 일이라고 생각하기 때문에 최대한 신경 써서 해야겠다. 그나저나 중학교 이후로 짝꿍은 오랜만이라 옛날 생각 많이난다...아니 그전에 어색할거같은데. 최대한 분위기를 먼저 환기시키도록 해야겠다.

3. QnA

첫날의 마지막 시간은 사전 규칙들을 확인하고 그 이외의 궁금한 질문들을 하는 시간이었다. 멘토분께서 아주 친절하고 디테일하게 설명을 해주셔서 마지막으로 정리가 되는 시간이었다. 그리고 질문들을 하나씩 받아주시기 시작하는데...
동료분들 생각하지 못한 질문들을 대신해 주셔서 도움이 많이 됐다.
이게 동료의 힘인가?😲


Day 2 🌞

둘째 날은 웹 개발이란 무엇이며 웹 개발을 하기 위해서 기본적으로 알아야 할 구성요소에 관해서 설명하고 실습하는 시간을 가졌다.
웹 개발은 크게 3가지의 구성요소로 나타낸다.

  • HTML : 웹페이지의 구조를 표현하는 언어

  • CSS : 웹페이지의 구조를 시각화 하는 스타일시트 언어

  • Javascript :사용자와 상호작용을 할 수 있도록 하는 프로그래밍 언어

이렇게 역할을 분리해놓은 이유는 각각의 기능에 온전히 집중할 수 있기 때문이다. 만약 분리하지 않고 구현을 해내야 한다면 굉장히 복잡하고 이론적으로도 정리하기 힘든 수준이 오지 않을까 생각한다.


웹 개발을 하는 과정에서 각각의 역할은 다음과 같이 표현할 수 있다.

  • 기획자: 기획의 의도가 담겨 있는 와이어 프레임을 개발자에게 전달.
  • 개발자: 기획자에게 전달받은 와이어 프레임을 바탕으로 CSS가 적용되지 않은 기본적인 스켈레톤을 구성.
  • 디자이너: 기획자에게 전달받은 와이어 프레임은 물론 스켈레톤으로 만들어져있는 개발에 디자인적인 요소가 추가된 문서를 다시 개발자에게 전달.

마지막으로 개발자는 디자이너의 요구를 포함하는 최종적인 제품을 만들어 낸다. 형식적으로 이렇게 된다고는 알고 있지만, 규모가 작은 스타트업이나 혹은 체계가 정확하게 잡히지 않은 회사라면 개발자가 디자인까지 해야 하는 경우가 있다. 나 또한 그런 경험이 있는데. 가독성이 좋은 해상도의 이미지를 가공해야 하기 때문에 디자인툴을 사용하게 되는데 이 프로그램이 너무 무거워서 많이 힘들었었다. 마치 몸에 맞지 않는 옷을 입은 듯 한 느낌이라고 표현할 수 있다.
이번 계기로 쉽지만 어려운 CSS를 좀 더 깊이 이해할 수 있도록 해야겠다.


Day 3 🌞

셋째 날은 첫 CSS 개인 학습과 페어 프로그래밍을 하는 날이었다. 이 과정에서는 기존에 알고 있던 CSS를 어떻게 하면 더 체계적으로 코딩을 할 수 있을지 생각하는 데에 초점을 두고 수업을 진행하였다.

1. CSS

간혹 프로그래밍을 하다 보면 UX/UI 대해서 깊게 고민할 때가 생긴다. 흔한 오해 중 하나인 UX/UI는 디자이너의 영역이라는 생각이 뇌리에 스치기 마련인데, 기본적인 UI 는 당연히 만들 줄 알아야 하고 UX 같은 경우는 디자인 초안을 확인할 수 있는 홈페이지들이 많아서 참고해서 작업을 하면 된다. 이때 경험상 부트스트랩이나 홈페이지 템플릿 소스코드를 아예 가져다가 쓰는 경우가 생길 수 있는데. 이 방향은 최대한 지양하고 있다. 기존의 잘 만들어진 코드를 이해하고 나의 입맛대로 바꾸는 데에도 시간이 상당히 소요된다는 단점이 있다. 특히 셀랙터들의 네이밍에서 BEM 형태를 따르지 않는 템플릿도 존재한다는 것이다.
UX/UI는 활용하되 소스코드를 가져다 쓰지 않는 습관을 들일 필요가 있다.

2. Pair Progamming

첫 페어 프로그래밍 시간이었다. 약간의 어색함을 시작으로 처음에는 간략한 소개를 나누고 분위기를 환기하는 시간이었다. 첫 네비게이터의 역할을 하게 되었는데. 최대한 드라이버 스스로 생각할 수 있는 시간을 같을 수 있게끔 시간을 주려고 노력했다. 그리고 페어께서 내가 보지 못한 시야를 좀 더 확장시켜서 바라볼 수 있도록 도와주셨다. 서로의 역할의 충실하기만 해도 좋은 결과물을 만들 수 있는 계기가 되지 않았나 생각한다.

3. Happening

우연히 일어난 일이라고 가정하기는 어울리지 않지만, 과제를 진행하던 중 문제를 제대로 읽지 않고 진행하는 바람의 시간을 많이 소비했다. 과제에서 요구하는 기본코드를 배경으로 시작하는 게 아닌 맨땅에서 시작했기 때문에 엉뚱한 코드를 작성하고 있는 나 자신이 보였다. 알고리즘 공부할 때에도 문제를 확실히 이해하는 게 가장 중요한데, 급한 마음에 선행 되어야 할 행동을 간과했다. 업보다...😭


Day 4 🌞

넷째 날. 기존 과제를 리팩토링하고 페어와 이 과제에 대해서 정리하는 시간을 가졌다. 사실 이 전날에 풀지 못한 과제에 몰두하여 새벽 1시까지 컴퓨터 앞에서 자발적 감금?을 당했다. 그래서 그런지 컨디션이 썩 좋지 않다.😨

1. Pair programming

어제 새벽까지 코딩하면서 깨달은 정보를 토대로 페어와 코드에 대해서 얘기하는 시간을 가졌다.
크게 얘기를 했던 것들은.

  • 문제를 제대로 확인하자.
  • 문제에 대한 해답은 이미 알고 있다. 단지 우선순위를 정리하지 못할 뿐.
  • 단순히 유효성을 검사하는 함수에 대해서도 어떠한 시간복잡도를 가졌는지. 더 나은 코드가 무엇인지.

이러한 얘기를 나누고 코드를 다시 리팩토링 하면서 최종적으로 코드를 제출하게 되었다.

2. Sprint Review & Pair review

과제에 대해서 간략한 해설을 마지막으로 넷째 날의 일정은 끝이 났다.
역시나 설명을 잘 해주시는 멘토님께 다시 한번 감사함을 느끼는 자리였다.

Day 5 🌞

리눅스 기본 명령어와 NodeJS를 간단하게 다루어보는 날이었다. 평소에 cat 명령어는 잘 사용하지 않았었는데 cat 명령어를 통해 바로 내용을 볼 수 있었다. 조금 더 편리함을 추구하는 개발자가 된 거 같아 뿌듯하다.

기본 명령어들

  • pwd: 현재 위치를 확인 할 수 있는 명령어
  • mkdir: 새로운 폴더 생성하기
  • ls: 특정 폴더에 포함된 파일이나 폴더 확인하기
  • open: 현재 위치를 GUI로 실행하기
  • cd: 폴더에 진입하기
  • touch: 파일 생성하기
  • cat: 파일의 내용을 터미널에 출력하기
  • rm: 폴더나 파일 삭제하기
  • mv: 폴더나 파일의 이름을 변경, 또는 폴더나 파일의 위치 옮기기
  • cp: 폴더나 파일을 복사하기

NodeJS

기존의 사용했던지라 사용하는데 크게 불편함은 없었다. 그리고 궁금했었던 package.lock.json의 대한 내용을 따로 찾아보았다.

package.lock.json은 의존성 파일들의 버전을 명시적으로
적어놓은 상세 명세서와 비슷하다고 생각했다.
package.lock.json이 없는 상태에서 npm install을 하게 되면 의존성 파일의 최신버전을 다운 받게 되는데 이때 배포자의 의도와는 다른 버전이 생겨나기 때문에 에러가 날 수도 있다. 그래서 package.lock.json파일을 같이 배포해 디테일한 버전까지 적용할 수 있도록 엄격한 의존성 파일을 제공한다.

profile
블록체인 프론트엔드 개발자

0개의 댓글