What I learned in 3 days

허북이_·2022년 6월 27일
0

코드스테이츠

목록 보기
2/68
post-thumbnail

3일차인 오늘부터 TIL 작성을 습관 들이려고 합니다.
앞으로 그 날 알게 된 개념 정리와 어떤 문제에서 어려움을 겪었는지, 어떻게 해결했는지 등을 적어봐야겠네요.

그럼 시작하겠습니다.


1일차

메타인지, 페어프로그래밍, 의사코드

메타인지란?

생각에 대한 생각으로, 자기 자신을 객관적으로 바라보면서 자신이 무엇을 알고, 무엇을 모르는가를 객관적으로 파악할 수 있고, 더 나아가 이에 맞는 개인적 전략을 세울 수 있는 능력입니다.

어떻게 해야하나?

나의 상태를 객관적으로 보며, 무엇을 알고 무엇을 모르는지 정확히 알아가는 동시에 더욱 발전 할 수 있다는 나에 대한 신뢰를 가져야겠다.


페어 프로그래밍이란?

말 그대로 '짝꿍'과 함께 진행하는 코딩입니다. 이는 팀 단위의 프로젝트를 진행하는 개발자 특성상 필요한 커뮤니케이션 능력과, 페어와 주고받는 피드백을 통한 실력 향상 목적의 코딩입니다.

어떻게 진행되나?

전체적인 방향을 제시하는 역할의 네비게이터, 그가 제시하는 방향으로 화면을 공유하며 코딩을 하는 드라이버 역할이 있습니다.
구글 미트 혹은 줌을 통하여 진행되며 정하는 시간마다 역할을 바꿔서 수행합니다.


의사코드란?

프로그래밍 언어로 코드를 작성하기 전에, 무엇을 어떤 과정을 통해 만들지 사람의 언어로 먼저 작성하는 것입니다.

의사코드 예시

네 개의 종이컵 중 하나에는 맛있는 사탕이 있습니다. 맛있는 사탕을 먹기 위해서는 사탕이 나올 때까지 종이컵을 하나씩 뒤집어 확인해야 합니다. 네 개의 종이컵을 순서대로 뒤집어, 맛있는 사탕을 찾는 과정을 의사코드로 작성합니다.

의사코드로 작성된 모습.

1. 종이컵의 개수만큼, 종이컵을 하나씩 뒤집습니다.
2. 뒤집은 종이컵에 사탕이 있다면,
3. 먹습니다.

프로그래밍 언어로 작성된 모습.

for(let cupNumber=1; cupNumber<=4; cupNumber++){ // 4개의 컵을 하나씩 확인하면서
	if (candy) { // 만약 사탕이 있다면
		eat(); // 먹는다
	}
}

대규모 코딩을 하기 위해선 작은 부분부터 계획하는 연습이 필요하기 때문에 의사코드 작성을 게을리하지 않고, 습관들이도록 노력해야겠다.

2일차

변수와 자료형, 함수

변수와 자료형

JS에는 값을 저장하는 변수가 있고 그 값에 따라 자료형(type)이 정해집니다.

예시

let num = 10; // num 이라는 변수에 숫자 10을 할당함. Number type
let str = '10'; // str 이라는 변수에 문자열 10을 할당함. String type
const boolean = 10 < 5; // boolean 이라는 변수에 10 < 5를 할당함. Boolean type
const undefined // undefined 이라는 변수에 값을 할당하지 않음. undefined type

let과 const의 차이

type과 typeof


함수란?

'작은 기능의 단위' 라고 할 수 있겠습니다. 함수는 선언하여 생성되고, 호출하여 사용됩니다.

함수 선언 예시

사각형의 넓이를 구하는 함수로 예를 들어보겠습니다.

function getSquareArea(width, height) {
  let squareArea = width * height;
  return sqareArea;
}

함수는 keyward, 함수명(name), 매개변수(parameter), 내용(body) 로 구성되어 선언 할 수 있습니다. 위의 예시 또한

keyward name(parameter) {
  body;
}

이런식으로 구성되어 있습니다.

함수 호출 예시

getSquareArea(10, 5) // 50

함수 호출은 함수명(name), 인자(argument) 로 구성되며 선언 시 매개변수 자리에 할당되는 값을 인자 라고 합니다.

3일차

조건문과 문자열

조건문과 비교, 논리연산자

문자열

3일차에 어떤 어려움을 겪었는가?

  • 머릿속의 아이디어를 컴퓨터적 사고로 구현하고 코딩하는 것에 어려움을 겪었다.
  • 위에서 아래로 진행되는 코드의 특성을 간과하고 코딩하여 에러를 일으켰다.

어떻게 해결했나?

  • 의사코드를 더 자세히, 정확하게 작성하였다. 앞으로 계속 습관 들이도록 노력하여 컴퓨터적인 사고능력을 키워야겠다.
  • 코드의 흐름을 잘 읽고, 위에서 아래로 디버깅을 시도해 해결했다. 앞으론 한번에 많은 중첩을 하지않고, 안에서 덧붙이는 느낌으로 코딩해야겠다.

3일차 느낀점

사실 첫 페어 시간 때에 문제 푸는 시간이 넉넉했던 기억이 있어, 여유롭게 문제풀이를 하였지만 생각보다 난이도 있는 문제와 나의 부족한 점을 마주하면서 레퍼런스를 확인하는 경우도 있었고, 주어진 시간 내에 풀지 못하기도 하였다. 정규 학습 시간 외에도 복습 시간을 꼭 가지며 코플릿을 다시 풀면서 모범적인 코드의 형태에 가깝게 코딩하도록 노력해야겠다.


피드백은 환영입니다!!

profile
인간 거북이 허북이

0개의 댓글