7월29일 TIL

임덤덤·2022년 7월 29일
0

🔥목차🔥

1. JavaScript 함수에 대해
2. 좋은 개발자는 무엇인가?
3. 좋은 코드는 어떤 코드인가?

📖오늘의 TIL 시작!📖

JavaScript 함수에 대해

  • 우선 이 내용을 전부 정리하기에는 너무나도 방대한 양이기에 우선 오늘은 정의와 큰 틀에 대해서만 훑어볼 예정이다

  • 함수의 정의( 또는 함수의 선언 )

    • 함수는 다음과같은 함수 키워드로 구성되어있음
    • 함수의 이름
    • 괄호 안에서 쉼표로 분리된 함수의 매개변수 목록
    • 중괄호 {} 안에서 함수를 정의하는 JavaScript 표현
  • JavaScript 함수의 기본 정의 문법

          function 함수이름(매개변수1, 매개변수2,...) {
          함수가 호출되었을 때 실행하고자 하는 실행문;
          }
  • 함수이름은 함수를 구분하는 식별자임
  • 매개변수는 함수를 호출할때 인수로 전달된 값을 함수 내부에서 사용 할 수 있게 해주는 변수임
  • 반환(return)문
    • 반환문은 함수를 중단하고 return 키워드 다음에 명시된 표현식의 값을 호출한 사람에게 반환함
    • 반환문은 배열,객체를 포함한 모든 타입의 값을 반환 할 수 있음(타입추론인가? 조금더 서칭 해볼 필요있음)
  • 값으로서의 함수
    • Javascript함수는 문법적구조 뿐만아니라 값이기도 함
    • 함수가 변수에 대입도 가능하고 다른 함수의 인자로도 전달이 가능함
    • 예제코드(TCP참조)
      function sqr(x) {//제곱의 값을 구하는 함수 sqr를 정의함.
      return x * x;
      }
      var sqrNum = sqr; // 변수 sqrNum에 함수 sqr을 대입함.
      document.write(sqr(4) + "
      "); // 함수 sqr을 호출함.
      document.write(sqrNum(4)); // 변수 sqrNum를 함수처럼 호출함.
  • 변수와 유효범위
    • Javascript는 객체나 함수 모두 변수로 지칭함
    • 변수의 유효범위(scipe)는 변수가 접근 할 수 있는 변수, 객체 그리고 함수의 집합을 의미함
    • 자바스크립트에서 변수는 유효범위에 따라 두가지로 구분됨
      1. Local Variable(지역변수)
      • 지역변수란 함수 내에서 선언된 변수를 말함
      • 이런 변수는 변수가 선언된 함수 내에서만 유효하고 종료 되면 메무리에서 사라짐
      • 함수의 매개변수 또한 함수내에서 선언된 변수는 함수 밖에서는 사용이 불가하다 라는것
      • 자바스크립트에서는 선언되지 않은 변수를 사용하려고 하거나 접근하려고 하면 오류를 발생시킴
      • 선언되지 않은 변수에 대한 typeof 연산자의 결과값은 undefined 값을 반환함
        2. Global Variable(전역변수)
      • 전역변수는 함수 외부에서 선언된 변수를 말함
      • 프로그램의 어느 영역에서나 접근 가능하고 웹페이지가 닫혀야 메모리에서 사라짐
      • 로컬변수와는 다르게 함수 밖에서 선언된 변수이기에 함수나 다른 내부에서도 접근해 값을 변경도 할 수 있음
  • 함수의 유효 범위(function scope)
    • 유효범위는 블록을 기준으로 블록단위 유효범위라고 함
    • 하지만 자바스크립트는 다른언어랑 다르게 함수를 블록대신 사용
    • 자바스크립트에서 함수는 자신의 정의된 범위 안에서 정의된 모든 변수,함수에 접근가능
  • 전역함수
    • 모든 전역변수와 전역함수에 접근 가능
  • 내부함수
    • 다른함수 내에 정의된 함수임
    • 함수의 부모함수에서 정의된 모든 변수,부모함수가 접근 할 수있는 모든 다른 변수까지 접근 가능

함수 호이스팅(hoisting)

  • 자바스크립트에서 함수의 유효범위라는 것은 함수 안에서 선언된 모든 변수는 함수 전체에 걸쳐 유요하다는 의미라고 함
  • 그런데 이 유효범위의 적용이 변수가 선언되기 전에도 똑같이 적용됨
  • 이러한 자바스크립트의 함수의 특징을 호이스팅 이라고함
  • 자바스크립트 함수안에 있는 모든 변수의 선언은 함수의 맨 처음에 이동된 것처럼 동작함
  • 자바스크립트에서는 함수 호이스팅이 자동으로 수행되지만, 항상 함수 블록의 첫 부분에 변수를 선언하는 것이 좋음

💻 좋은 개발자는 무엇인지?

  • 쉬어가는 타임으로 좋은 개발자는 무엇인지에 관해서 생각해보는 시간을 가져봤다
    • 우선 실제 현업에 있는 개발자들은 어떻게 생각하는지 위주로 생각을 해보았다
  • 채널톡의 대표님의 인터뷰중 좋은 개발자는 무엇인가에 대하여 대표님께서는
    • 빠르게 배우고 깊게 고민한 사람이라고 답변하였습니다.
  • 배민 CEO 김범준님의 영상중
    • 내가 어떤 비즈니스 가치를 만들어 낼 것인지 스스로 고민한다면 어디서든 다 원하는 좋은 개발자가 되시지 않을까 생각합니다 라고 답변하였습니다.
  • 몇몇 더 많은 인터뷰를 찾아봤지만 김범준님의 영상이 정말 크게 마음에 와닿았습니다.

    • " 본인 스스로를 코딩하는 사람으로 생각하지마라 " 라고 하시는 그 말과 " 처음 본 사람에게는 문제 투성이 코드일지라도, 그게 어제까지는 최선이었다" 라는말이 정말 큰 마음에 와닿았다
  • 그래서 내가 생각하는 좋은 개발자는 김범준 CEO님께서 말씀하신 것처럼 내가 어떤 서비스를 창출할껀지 게속 고민하고 내가 가진 가치는 어느정도인지 남들도 다 알수있는 나의 가치를 이야기 하지 않아도 사람들이 알아주는 그런 개발자가 좋은 개발자라고 생각한다

    • 물론 보는 관점에 따라 모두 다르겠지만 나의생각은 그렇다 저 얘기하지 않아도 라는 말에는 평소에 의사소통이 원만한 사람임이 들어가있고 항상 서비스를 고민하는건 개발자들의 숙제니까..라고 생각이 든다 내가한말이 정답은 아니지만 혹은 나중가서 직접 개발자가 되어서 현업에 뛰어들면서 나의 생각이 변할수는 있지만 항상 나의가치를 지켜나가며 내 가치를 모두가 알수있는 그런 개발자가 좋은 개발자라고 생각한다 나 자신만 내가 좋은개발자야 라고 생각하는것보다는 모두가 그렇게 생각하는게 더 객관적으로 맞다고 생각을 한다
      • 말이 나온김에 좋은 개발자에 대해서 나의 생각을 적었는데 이번엔 좋은 코드에 대해서도 생각을 좀 해볼까 한다
  • 좋은코드는 무엇일까?

    • 우선 좋은코드를 소개할때는 대부분의 사람들이 가독성이 좋은코드, 중복없는, 테스트가 쉬운 등등 많은 코드들이라고 사람들이 말한다
  • 나도 개발 이라는 공부를 시작했을때부터 좋은코드? 난 가독성 좋은코드가 좋다고 생각해 혹은 제 할일을 잘 하는 코드가 좋다고 생각해 라고 대답해왔다

    • 제대로 무언가를 시작하는 시점인 지금은 조금 생각이 달라지고있다.
    • 지금의 나로써의 생각이 드는 좋은코드는
      협업 할 수 있는 코드이다.
  • 위에 얘기했던 가독성이 좋은 코드와도 연결되는데 아무리 깔끔하고 아무리 괜찮은 로직으로 작성된 코드이더라도 같이일하는 팀원이 혹은 협업하는 사람들이 읽을수 없다면 그 코드는 과연 좋은코드일까? 라는 생각이 든다

  • 그렇기때문에 내 생각은 내가 작성하는 코드들이 협업하는데 문제되지않는 협업을 할 수 있는 코드라고 생각한다.

📖오늘 배운것에 대한 오늘의 정리 및 마무리📖

  • 오늘은 한,두시간으로 끝낼수없는 주제들을 공부했다
  • 함수에관해서 , 좋은개발자, 좋은코드라는 추상적인 개념을 생각하는 하루였다
  • 참 많은 생각이 들었다 저 결론 조차도 내 기준에선 미완성적이다
    • 하지만 나뿐만 아닌 모든 개발자들도 미완성 적인 생각을 하고 있을꺼같다
    • 나 자신이 좋은개발자인지 나는 좋은코드를 쓰고있는지...
      자주 생각해볼수있는 사람이 되면 좋을꺼같다.
    • 이젠 주말이다 주말은 푹 쉬어야지 ....남은 다음주도 화이팅이다!
profile
응애🐣 예비 개발자 입니다.

0개의 댓글