Naver Boost Camp Challenge Day 1
4주간의 부스트캠프 챌린지가 시작되었다! 베이직에서 연습한 과정을 바탕으로 비슷하게 진행되지만 크게 달라진 점은 두가지 인것 같다.
1. 미션 해결 과정에서 새롭게 알게 된 내용을 나만의 언어로 재구조화해서 기록하고, 공개 URL 형태로 공유할 것.
2. git 과 GitHub를 적극적으로 활용해서 문서를 관리하고 지속적으로 기록할 것
이렇게 두가지 이다.
그중에 1번째 `나만의 언어로 재구조화해서 공개하는 것`을 하기 위해서 생각만 하고 있었던 블로그를 처음으로 도전해보기로 했다. 아무것도 모른채 시작한 애매한 블로그 글이기에 읽기 힘들더라도 잘 부탁드립니다...!!
<개발에 임하는 자세 다지기>
스스로 성장하는 방법을 찾기
베이직에서도 그렇고, 첫째날 OT에서도 부스트캠프에서 강조하는 것은 '지식을 배우는 것'에만 집착하는 것이 아니라 스스로 성장하고 발전해 나가는 방법을 찾는 것이라고 생각한다. 올해로 9년째 진행되고 있는 부스트캠프에서 변하지 않는 철칙이 존재한다.
- 스스로가 학습의 주체가 된다.
- 커뮤니티 안에서 성장한다.
이 두 가지 큰 줄기의 철칙을 바탕으로 나아가, 궁극적으로 지속 가능한 개발자가 되기 위한 과정이 바로 네이버 부스트캠프이다.
캠프에서 요구하는 자세이기도 하지만, 앞으로 개발자로서 성장하기 위해서 꼭 필요한 자세라고도 생각하기 때문에 다음과 같은 4가지 자세를 취하면서 짧게는 1달, 길게는 앞으로의 개발자 커리어를 나아가야 겠다.
- GROWTH : 나를 알고 성장하기
- INITIATIVE : 자기주도적으로 행동하기
- PROFESSIONAL : 기술적 전문성 기르기
- TOGETHER : 함께 자라기
완벽하게 이 자세와 성장하는 방법을 이해하고 몸에 익힌것은 아니다. 하지만, 지속적으로 왜 이런 자세를 요구하는지, 어떤 부분에서 나타낼 수 있는지 생각하면서 나아가는 것이 내 스스로 만들어내는 성장에 큰 도움이 될것이라고 생각한다.
<기본 개발 지식 다지기>
git
git 과 GitHub는 개발과정에서 너무나 필수적인 개념과 툴이다. 프로젝트의 flow를 관리하기 위해서 사용하기도 하고, 개인 로컬 파일과 문서를 관리할 수 있고, 나아가서 GitHub의 최신 기술을 사용해서 CI/CD 같은 자동화 기능까지 무긍무진한 사용방법이 존재한다. 하지만, 수많은 기능들이 있어도 기본 중에 기본을 알아야 많은 기능을 사용할 수 있는 것이기 때문에, Day1에 맞게 기본적인 git 개념을 정리해보고자 한다.
git의 기본 명령어
- add
- workspace에서 생성,변경은 되었지만, 관리되지 않는 파일들을 staging에 올린다.
- git에서 파일을 관리 할 수 있게 권한을 주고, 평범한 파일을 git이 관리할 수 있는 영역 안에 포함 시키는 것
- commit
- staging에 있는 변경된 파일들을 묶어서 버전으로 만든다.
- 변경된 파일들을 묶어서 Local repository에 하나의 버전으로 저장한다.
=> GitHub에서의 기본적인 단위
- branch
- branch의 뜻인 나뭇가지 처럼 하나의 원본 git flow 에서 원래의 흐름을 방해하지 않고 새롭게 복사해서 작업하는
공간으로 분리하고, 따로 관리 할 수 있게 한다.
- 많은 브랜치를 생성 가능하고 대표적으로는 main, head, develop, feature 같은 이름으로 생성한다.
- switch(구 : checkout)
- 작업하고 있던 브랜치에서 다른 브랜치로 이동할 때 사용한다.
- push
- Local repository에 기록되어 있던 버전들을 Remote repository(원격 저장소) 즉, GitHub에 저장한다.
- pull
- push와 반대되는 명령으로 Remote repository 에 있던 변경사항들을 Local repository로 가져와서 적용 시키는 것
❗ push와 pull 과정에서 특히나 오류가 많이 발생하기 때문에 신중한 버전 관리가 중요하다 ❗
git의 영역
- 원격 저장소(Remote Repository)
- 서버에 위치한 영역
- 허가받은 타인도 이 영역에 접근해 코드를 공유할 수 있다.
- 기업들은 보통 보안적인 이유로 자체 서버를 마련하고, 여기에 원격 저장소들을 마련한다.
- 일반 사용자들은 Github과 같은 웹호스팅 서비스를 통해, 이러한 원격 저장소를 할당 받는다.
- 로컬 저장소(Local Repository)
- 자신의 PC에 존재하는 관리 영역
- “.git”이라는 폴더 이름을 가지고, 이 폴더안에서 각 코드의 형상을 “snapshot(스냅샷)”개념으로 관리한다.
- 오프라인에서도 코드 수정 반영 및 형상 관리가 가능한 것도, 이러한 로컬 저장소 덕분
- 작업 디렉토리(Working Directory)
- 실제 코드, 즉 파일들이 위치하는 영역
- 특정한 버전으로 사용자가 “Checkout”을 하면, “.git”내 DB의 압축이 풀리면서 작업 디렉토리가 생성된다.
- 또한 Git은 작업 디렉토리에 포함된 파일들의 변경사항을 추적하는 시스템을 가진다.
- 이러한 추적을 피하도록 파일단위로 설정할 수도 있다.
- 스테이징 영역(Staging Area)
- “반영되기 직전의 파일들의 임시처소?”형태
- 수정은 되었지만 git에서 관리하지 않는 영역
- add명령어를 통해서 스테이징 영역에 올릴 수 있다.
참고 : https://junimnjw.github.io/%EA%B0%9C%EB%B0%9C/2019/12/02/What-IS-GIT%281%29.html
많이 알았다고 생각하고 사용했던 git에서도 자세하게 공부하고 기록하려다 보니 아직 모르는 부분이 나오고, 새롭게 알게 된 개념들이 많았다. 나중에 더 자세히 한번 기록을 해야 할 것 같다.
<JavaScript 기본 다지기>
Map VS Object
- key : value형태로 roomNumber를 관리해주려고 하였다.
- 0 : 'A' , 1 'B' 같은 형태
- 간단하게 object로 명시해서 구현하려고 하였다.
- 하지만 오류가 발생했다!
- Map구조에서 key는 어떤 형태든 다 가능하지만, Object에서 key값은 문자열만 가능하다!
- 따라서 숫자를 키로 가지게 하고 싶었기 때문에 new Map()형태를 사용해서 Map구조로 초기화해서 사용했다.
👉 처음 시작하는 글쓰기여서 많이 어색하고 생각하고 말하는 것과 글로 써서 기록하는것은 너무나도 다른 것이라는 것을 알았다. 한편으로는 다르기 때문에 생각하고 말하기만 해서 기억하는 부분과, 글로 남겨서 기억하는 부분이 다르다는 것이 당연하다. 이 전에는 주로 얘기하고, 생각하는 과정을 통해서 성장을 진행해 왔기 때문에, 앞으로는 글로 쓰면서 성장하는 과정 또한 배우고, 익히고 싶다.
➕ 오늘 블로그에 작성한 개념은 하루를 정리한 내용이기 때문에 부족한 부분을 개념적으로만 깊게 정리해서 따로 정리해 보고 싶다!