2022.4.26. (화)
1. 오늘의 소감
- 코드스테이츠 첫 페어 프로그래밍 소감... ‘이거...제법 괜찮은데?’
- 첫 페어분을 만나 함께 코플릿을 풀었다. 어색한 기류를 뚫고 자기소개도 하고 같이 문제에 집중하다보니까 시간이 훌쩍 지나가 있어서 놀랐다. 확실히 짝과 함께 코딩하니까 딴짓도 안 하게 되고 문제풀이에 더 몰입하게 되더라. 특히 상대방에게 코드를 설명하거나 질문하면서, 기술적 용어를 정확하게 말하는 연습도 하게 되고. 물론 아직 첫 수업이여서 문제 난이도가 평이했기때문에, 설명할 내용이 많지 않았다. 게다가 내 첫 페어분은 코딩을 어느정도 배우고 현업에서도 짧게 일해보신 분이라서 문제 진행도 훨씬 수월했다. 다만 아쉬웠던 점은, 이번 코플릿은 둘 다 쉽게 풀 수 있는 내용이다보니 제대로된 네비게이터(코딩 전체 방향 가이드), 드라이버(가이드에 따라 실제 코딩 함) 역할을 수행하진 못했다는 것.
- 오늘이 본격적인 첫 수업인 만큼 배우는 내용이 어렵진 않았다. 조금 당황했던 것은, 코드스테이츠가 제공하는 학습 콘텐츠 자체가 생각보다 훨씬 심플하다는 것. 학습 주제가 있으면 그것에 대한 간단한 개념 설명 영상(또는 글)이 끝이다. 영상도 10분이 채 안될 정로로 짧다. 여기서 제공하는 자료에만 의존하지 말고 구글링과 질문을 통해서 빈 부분을 채워넣으라는 의도가 보였다. 코드스테이츠에서 배운 간단한 개념 설명만 가지고 퀴즈를 풀면 당연히 읭? 이건 처음 듣는데, 뭔소리야? 싶은 문제를 만나는데, 그럴 때 열심히 구글링과 질문으로 풀어가야한다. 이번에 문제를 풀 때는 어느정도 공부했던 내용이여서 쉽게 넘어갔지만 다음에 어려운 개념을 만나면 문제 푸는 데 시간이 꽤나 걸릴 것 같다. (가령 자료형엔 이거이거가 있어요~ 만 설명해놓고, 언급도 안 된 자료형 변환하는 법이 문제로 나온다던가...)
- 그래서 개인적으로 개념에 대한 예습은 꼭 필요하다고 생각한다. 정규시간은 기본 학습 콘텐츠를 보기엔 넉넉하지만, 실제 코드를 짜고 퀴즈를 풀기위한 정보를 얻기에는 부족하겠다는 생각이 들었다. 아침시간을 이용해서 미리 그날 진도를 예습하고, 주말을 이용해서 다음주에 까다로울 것 같은 내용은 미리 공부해두어야겠다.
- 덧) 페어 프로그래밍이 일찍 끝나서, 프로그래머스 사이트에서 코딩 문제를 풀었는데 너무 어려웠다. 배열 고차함수를 어느정도 익힌 후에야 풀 수 있는 문제였는데, 내가 이 부분에 대해서 공부가 제대로 안되었다는 것을 확인할 수 있었다. 주중이나 주말 개인 시간에 배열에 대해서 제대로 공부해야겠다.
2. 학습한 키워드
- 변수, let, 자료형, number, string, boolean, null, undefined, bigint, symbol, object, 함수, keyword, name, parameter, body, argument, 매개변수 = 인자, 인수 = 전달인자, typeof, 자료형 변환, 함수 선언식, 함수 표현식, 화살표 함수, 선언, 호출, 변수명 작성 규칙, 화살표 함수 작성 규칙, return
3. 키워드를 바탕으로 학습 내용 설명해보기
- 변수는 값을 사용하기 쉽게 이름을 붙인 것이다.
- 변수를 사용하면 데이터를 쉽게 저장하고 꺼내 쓸 수 있다.
- 동일한 크기의 데이터 보관함(메모리)에 이름을 써 두는게 변수의 ‘선언'이고, 그 보관함 안에 데이터를 저장하는게 변수의 ‘할당'이다.
- 선언과 할당을 동시에 할 수 있다. let fruit = ‘사과';
- = 는 할당 연산자다. 동등 비교 연산자는 === 이다. (==는 안 쓰니까 없다고 생각하자.)
- 재할당은 가능하나 재선언은 불가능하다.
- 쉼표를 사용해서 여러 변수를 한번에 선언, 할당할 때 let 키워드를 중복해서 쓰면 안된다.
- let box1 = 0, box2 = 1;
- 자료형은 자바스크립트가 사용하는 데이터들의 카테고리이다.
- 7개의 원시 자료형과 1개의 참조 자료형(객체)가 있다. 총 8개.
- 원시 자료형 : number, string, boolean, null, undefined, bigint, symbol
- 자바스크립트에서는 정수, 소수, 16진수 구분없이 전부 number 자료형이다.
- 숫자로 형 변환 하는 방법 : Number(값)
- 문자로 형 변환 하는 방법 : String(값)
- bigint는 number 자료형으로 안정적으로 표현하기 어려운 매우 큰 숫자를 담는 자료형이다.
- 자료형 확인은 typeof 값 or typeof(값) 으로 한다.
- boolean 은 논리 자료형으로 참(true)와 거짓(false) 로 나뉜다.
- undefined 는 값이 없음을 나타내는 자료형으로 변수 선언 후 값을 할당하지 않을 시, undefined가 할당된다.
- null 또한 값이 없음을 나타내는 자료형이나, undefined와 달리 의도적으로 ‘비어있음'을 표시하고 싶을 때 사용한다.
- object 는 여러 개의 자료형을 함께 저장할 수 있는 복합 자료형이다.
- 함수는 작은 기능(동작)의 단위이다.
- 함수는 keyword(function) name(함수명) prameter(괄호 안의 인자, 매개변수), body(함수 내용) 으로 구성되어 있다.
- 함수는 특별한 저장소에 보관된다.
- 함수는 인풋과 아웃풋을 매핑한 것이다.
- 함수는 반드시 돌아온다. = return값이 있다.
- return문을 안 써주면, undefined가 돌아온다.
- 함수를 사용하는 방법은 함수를 선언 후, 호출하는 것이다.
- 함수 선언에는 3가지 방법이 있다.
- 함수 선언식 - function 함수명(매개변수) {내용}
- 함수 표현식 - const 함수명 = function(매개변수) {내용}
- 화살표 함수 - const 함수명 = (매개변수) ⇒ {내용}
- 함수 표현식은 변수에 익명함수를 할당하는 방식이다.
- 화살표 함수 작성 방법
- 매개변수가 하나이면 ( ) 생략 가능
- 바로 return할 경우, return 과 { } 생략 가능
- 매개변수가 없을 경우 빈 소괄호를 꼭 써줘야한다. () ⇒ { }
- 화살표 함수 body 가 2줄 이상일 경우 꼭 { }를 써주자.
- prameter(매개변수, 인자)는 함수 선언시 사용하는 변수이고, argument(인수, 전달인자)는 함수 호출시 함수에 전달하는(인풋하는) 값이다.
- 매개변수의 개수 > 입력한 인수의 개수 → 앞 매개변수부터 인수가 전달된다. 인수를 전달받지 못한 매개변수에는 undefined가 할당된다.
- 매개변수의 개수 < 입력한 인수의 개수 → 나머지 인수는 버려진다.
4. 어려웠던 키워드
- symbol
- symbol 은 고유한 값을 나타내는 자료형이라고 하는데, 어떨 때 쓰는지 잘 감이 잡히지 않는다.
- 같은 값이라도 symbol 자료형으로 지정하면 === 연산자에서 false로 나온다고 한다.
- Symbol(”foo”) === Symbol(”foo”) //false
5. 어려웠던 것에 대해 질문해본다면?
- symbol 자료형을 사용하는 이유는 무엇인가요? 어떤 상황에서 사용하면 유용한가요?
- 찾아낸 답변 → 심볼(symbol)은 ES6에서 새롭게 추가된 7번째 타입으로 변경 불가능한 원시 타입의 값. 심볼은 주로 이름의 충돌 위험이 없는 유일한 객체의 프로퍼티 키(property key)를 만들기 위해 사용한다. 즉, 같은 값이여도 동일 판단이 나면 안될 때 (고유값으로 인식해야될 때) 사용하면 좋다.
728x90
반응형
'TIL' 카테고리의 다른 글
[TIL] #5. CSS 셀렉터 (0) | 2022.12.01 |
---|---|
[TIL] #4. HTML (0) | 2022.11.28 |
[TIL] #3. 이중 반복문 (0) | 2022.11.26 |
[TIL] #2. String 메서드 (0) | 2022.11.25 |
이전 TIL 포스팅 공지 (#1부터 #30까지) (0) | 2022.11.19 |