Coding (164)

05
14

1. 반복문

  • for (초기값, 조건문, 반복문)
    • 초기값 : 처음에 반복이 시작될 곳을 '초기화' 해준다. let i = 0; 처럼한다. 그럼 0부터 시작되어 갈 것이다.
    • 조건문 : if() 처럼, 저 조건이 맞은 경우(true) 뒤에 나올 반복문을 실행시켜 준다.
    • 반복문 : 내가 반복시키고 싶은 부분이다.

2. 이중 반복문

  • 말 그대로, 반복문을 두번 사용한 것.
  • 처음 반복문이 한번 실행되고, 이후 그다음 반복문이 실행된다. 이후,
     안쪽의 반복문이 false 이면, 그 반복문 밖의 첫 번째 반복문이 다시 실행되는 구조이다.
  • 소수 구하기 : 이중반복문으로 구할 수 있다.
    (소수 : 1을 제외한 1과 자기 자신만으로 나누어 떨어지는 수)
    이중 반복문으로 소수를 찾아내고 그중에 소수인 수를 if 문으로 return 가능.

3. 문자열

  • 다양한 타입의 문자열이 있다. (string, number, boolean, null, undefined 등등)
  • 메서드를 이용하면 다양한 정보들을 원하는 대로 만들 수 있다.
  • 유용한 메소드 모임
     1. 원하는 문자열의 위치를 찾음 = str.indexOf('');
     2. 문자열의 차례에 맞게 잘라줌 = str.slice(시작할 차례, 끝낼 차례)
    ps. 이때 끝낼 차례의 숫자를 -1로 하면 다시 맨 뒤의 차례의 문자열도 나오게 할 수 있다!
    str.substring();도 가능하지만 배열에서도 사용할 수 있는 slice를 주로 사용한다.
     3. 대,소문자 변경 = str.toLowerCase() 그리고, str.toUpperCase() )

4. Immutable & Mutable

  • 한번 지정해 놓으면 변하지 않는 것 & 변하는 것. (문자열 메서드들은 섞여있다. 한번 지정하면 변하지 않는 immutable,
     잠깐 변했다가 다시 원상태로 돌아오는 경우가 mutable이다.)

문자열은 문제가 크게 없지만, 반복문의 메커니즘을 똑바로 이해하지 못했다. 덕분에, 이중 반복문은 감이 잘 안 온다.
수도 코드를 똑바로 적어서 상황을 따져가면서 나아가는 것이 중요할 것이다.

'Coding > Today I Learned' 카테고리의 다른 글

2021.05.15(Sat.)  (0) 2021.05.16
2021.05.14(Fri.)  (0) 2021.05.15
2021.05.12(Wed.) <조건문의 교훈>  (0) 2021.05.13
2021.05.11(Tue.) <변수와 타입>  (0) 2021.05.11
2021.05.10(Mon.)  (0) 2021.05.10
COMMENT
 
05
13

1. 조건문 문제 풀이하며 알게 된 것

  • if와 else if 그리고 else의 구분.
  • if를 시작으로 '조건'에 만족하면 반응, 아니면 다음 else if의 조건으로, 아무것도 조건에 부합하지 못하면 else.
  • return에 주의한다. 다시 처음으로 돌아가는 것이다. console.log와 다르다.
  • 짝수, 홀수의 구분은 %를 이용해서 결과가 나누어 떨어지는가 아닌가로 구분 가능.
  • = 주의. =이건 할당이지 '같음'이 아니다. 같음은 ===으로 표현한다.
  • 정확한 용어 사용으로 헷갈리는 것을 방지 해야하고, 함수의 매개변수에 다른 값을 넣으면 그건 함수로써 쓸모가 없어진다.
  • 함수를 '선언' 한것과 '호출' 한 것은 매우 매우 다르다. 전달 인자를 잘 넣어야 한다.
  • 조건문은 순서가 중요하다. 결과가 겹치면 먼저 있는게 우선이다. 그러므로, 교집합 > 조건이 작은 순으로 조건을 거는 것이 이상적이다.

2. 문제를 친숙하게 푸는 법

-일단, 문제를 잘 읽자. 대부분 문제 안에 지시사항으로 답을 가르쳐 주는 경우가 많다.
-조금 오래 걸리더라도 신중하게 읽어보고, console에서 시도해 보자.
-문제를 보면서 지금 문제에서 알려주는 정보, 내가 설정해 줘야 할 부분이 무엇인지,
 어떤것을 먼저 설정해야 하는지 등으로 나눠서 생각해보면 어떻게든 시작할 수 있다.

3. 문자열

  • 메소드를 잘 기억했다가 써먹을 것.
     (length, indexOf 등)
  • 수학적인 계산도 메서드들이 많아서 응용하면 다양한 사용이 가능하다.
     (Math.floor, Math.abs 등)
  • ${} 매우 편리하다. 꼭 앞, 뒤는 `으로 감싸주자. 문자열 안에 바뀌는 변수를 집어넣을 수 있다!

너무 빠르게 가려고 하는 것보다 확실하게 가는 것이 좋다.
분명 지금 짜고 있는 코드들은 더 줄일 수 있다. 하지만 그것보다는 먼저 완성하는 것에 의의를 두려고 한다.
이제 괄호 같은건 헷갈리지 않지만, 아직 다른 코드들을 보고 빠르게 해석하기도 힘들고 그만큼,
응용하려고 해도 잘 되지 않는다.

메서드를 더 많이 외우면 조금 편해질까?

'Coding > Today I Learned' 카테고리의 다른 글

2021.05.15(Sat.)  (0) 2021.05.16
2021.05.14(Fri.)  (0) 2021.05.15
2021.05.13(Thu.) <Javascript 기초 문법과 Immutable & Mutable>  (0) 2021.05.14
2021.05.11(Tue.) <변수와 타입>  (0) 2021.05.11
2021.05.10(Mon.)  (0) 2021.05.10
COMMENT
 
05
11

1. 변수

  • 작은 단위의 저장소(변수)에 정보를 저장한다. 변수는 계속 변화할 수 있으며, 언제든지 꺼내 쓸 수 있다.

2. 타입

  • 데이터에는 여러 가지 종류가 있다. 타입별로 계산하는 법이 다르다.
    1. Numver : 우리 모두가 아는 넘버. 숫자이다. 역시나 계산은 숫자와 같다. 더하기, 빼기, 나누기, 곱하기 등등
    2. Noolean : 참(true)과 거짓(false)을 나타내는 타입. 마치 스위치처럼 on, off라고 생각하면 조금 편하다.
    3. Undefined : 값이 아직 정해지지 않았다. 아에 없는 것과는 다르다!
    4. String : 문자열. 글자에 해당한다. 더하기가 가능하다! 하지만 말 그대로 '문자' 이기 때문에 그저
       뒤에 붙여 버리는 단순한 계산만 가능하다. 그러므로 다른 계산은 불가능
    5. NaN : Not a Number. 숫자가 아니다. 하지만 숫자다. 숫자가 있어야 하지만 그 숫자 자체가 없다는 말이다. '숫자가 와야 하지만 못 왔다'라는 느낌이다.

3. 함수

 하나의 기능을 위해 진행되는 '작업'의 진행 리스트. 컴퓨터가 알아 들을 수 있도록 논리적으로 만드는 단위.

  1. 함수 선언 : 사용될 함수에 이름을 붙여준다.
  2. 함수 호출 : 붙인 이름으로 불러준다. 그럼 나온다!
  3. 매개변수 : parameter. 함수를 '선언'할때 같이 넣어주는 변수. 즉, 어디를 바꿔줄래?
  4. 인수 : argument. 함수가 '호출' 될 때 들어가는 변수. 즉, 뭘 넣을래?

4. 검색하는 법 + 크롬 개발자 도구의 사용법

  • 검색은 '구글' 역시, 키워드 위주.
  • 외국의 커뮤니티를 잘 이용할 것.
  • 크롬의 개발자 도구에서 테스트하고, 무엇이 문제인지 까지 찾을 수 있다. Console 창으로 해결한다.

5. 조건문

  • 참, 거짓 (참인지 거짓인지를 통해 컴퓨터가 하는 0, 1의 사고로 '조건'을 만들 수 있다!)
  • 다양한 방법으로 데이터를 참과 거짓이 되는 조건을 설정해 줄 수 있다(ex: ===, >, <, 등등)
  • 논리 연산자(Logical Operator) : 일명, and와 or. 두 가지 조건을 둘 다 만족하는지(&&),
     아니면 하나만 이라도 만족하면 되는건지(||)로 조건을 만들 수 있다.
  • ! : NOT 연산자. 참과 거짓을 바꿔버린다.
    • Point! :
      true || false // true (or의 경우 둘 중 하나만 참이라도 참으로 받아들인다! 또는 이니까!)
       true && false && false (and의 경우 둘 다 참이여야 참으로 본다. and 이니까 둘 다 만족시켜야 한다.)

알고리즘에 대해 인간의 언어보다 훨씬 논리적으로 프로그래밍 언어가 진행되는 것을 계속 고민해야 한다.
수도 코드가 매우 중요하다.
아주 단순한 것부터 시작해서 마지막에 정리하는 깔끔한 코드를 만드는 것이 아직은 좋을 것 같다.
함수를 다양하게 호출하는 방법을 알아야 한다.

'Coding > Today I Learned' 카테고리의 다른 글

2021.05.15(Sat.)  (0) 2021.05.16
2021.05.14(Fri.)  (0) 2021.05.15
2021.05.13(Thu.) <Javascript 기초 문법과 Immutable & Mutable>  (0) 2021.05.14
2021.05.12(Wed.) <조건문의 교훈>  (0) 2021.05.13
2021.05.10(Mon.)  (0) 2021.05.10
COMMENT
 
05
10

처음으로 '코딩'이라는 것을 하기 위해 '어떻게 배우는 것인가'에 대해 배우기 시작했다.
물고기를 잡으려고 수영도 못 하면서 물가로 뛰어들 수는 없는 노릇.



모든 일에는 순서가 있다고 했다.
첫 번째는 배우는 방법을 아는 것이다.

1. 협업의 중요성

 세상에 혼자서 할 수 있는 일이 혼자 놀기 말고 뭐가 있겠는가, 프로그래밍은 혼자서 할 때보다 둘 이상이 하면 효율은 물론,
 오류까지 현저히 낮출 수 있다. 그리고 매우 다양한 분야와 결합 될 수 있기 때문에 커뮤니케이션 능력 또한 중요하다.

2. 수도 코드

 Puseudo(허구의)코드. 즉, 일반인도 알아들을 수 있는 코드이다. 자신이 만들고 싶은 코드를 알아들을 수 있게 적은 후에,
 하나씩 프로그래밍 언어로 바꿔준다.
 = 목표와 우선순위를 확실히 알 수 있게 될 것이다

3. 질문법

 구글은 모든것을 알고 있다. 사실이다. 먼저 구글에 검색하면 전 세계 누군가 내가 하는 고민을 먼저 해 줬을 것이다.
 영어로 검색을 하기 때문에 찾고싶은 '키워드'를 중심으로 찾으면 될 것이다.

  • 타인(혹은, 커뮤니티)에게 물어 본다면? : 질문을 받는 사람의 입장으로 질문한다.
  • 지금 나의 환경은?(OS라던가...)
  • 정확히 모르는 부분이 무엇인지(제목만 보고도 알 수 있도록)
  • 어떠한 과정을 거쳐 이 문제까지 오게 되었는지
  • 문제 해결을 위해 시도해 본 것은 어떤 것인지
  • 질문 받는 사람을 배려하는 질문이라면 답변을 해주고 싶은 질문이 될 것이다

4. 마크다운

 텍스트를 위한 마크업 언어(태그 등을 이용해 문서와 텍스트를 작성하는)이다. 단순하고 간단하다. 심지어 지금도 쓰고 있다!


 시작도 안 했지만, 논리적인 움직임이 재미있다. 사실은 마크다운도 헷갈리지만, 나중에는 더 큰일을 만들 수 있을 것이다.
 마크다운 인용문도 써볼 겸, 초심을 잃지 말자는 의미로 있어 보이는 명언을 끝으로 첫 TIL을 끝낸다.

 뭐든 성공하려면 처음부터 현실적으로 접근해야지.
문제가 클수록 차근차근 하나씩 단계를 밟고,
그 배워나가는 과정을 즐겨야 해.
  빌 에반스(Bill Evans)

'Coding > Today I Learned' 카테고리의 다른 글

2021.05.15(Sat.)  (0) 2021.05.16
2021.05.14(Fri.)  (0) 2021.05.15
2021.05.13(Thu.) <Javascript 기초 문법과 Immutable & Mutable>  (0) 2021.05.14
2021.05.12(Wed.) <조건문의 교훈>  (0) 2021.05.13
2021.05.11(Tue.) <변수와 타입>  (0) 2021.05.11
COMMENT