반응형

분류 전체보기 138

고차 함수 그리고 중첩 함수

고차 함수(Higher Order Function; HOF) 고차 함수는 함수를 인자(argument)로 받거나 함수를 리턴하는 함수이다. 다른 함수(caller)의 인자로 전달되는 함수를 콜백 함수(callback function)라고 한다. 콜백 함수를 전달받은 함수는 이 콜백 함수를 필요한 시점에 호출하거나, 클로저를 생성하여 반환한다. 클로저 MDN의 정의는 다음과 같다. “A closure is the combination of a function and the lexical environment within which that function was declared.” 클로저는 함수와 그 함수가 선언됐을 때의 렉시컬 환경(Lexical environment)과의 조합이다. 여기서 함수는 내부 ..

IT/JS 2021.08.10

primitive & reference 차이점 그리고 garbage collector에 대하여

Primitive (원시의) 값과 Reference (참조) 값의 차이점 JS에는 7가지의 자료형이 있다. 나는 이것을 스불ㄴ,,너어우스!! (쓰불넘쓰)라고 부른다.. 변수 타입의 앞글자에 내 마음대로 음절을 만든 것인데 이렇게 만든 이유는 그냥 외우기 쉬워서 그랬다.. 스(S:string) - 문자열 불(B:boolean) - 불리언 ㄴ(N:number) - 숫자 너(N:null) - null 어(U:undefined) - undefined 우(O:object) - object 쓰(S:symbol) - symbol 여기서 Primitive 값(원시 값)은 object를 제외한 나머지 타입들을 말한다. 따라서 Reference 값(참조 값)은 object이다. 원시 값은 실제 자료를 가리키며, 참조 값은..

IT/JS 2021.08.10

npm install에 대하여

npm이란? npm은 Node Package Manager의 약자로, 자바스크립트 언어를 위한 패키지 관리자이다. Node.js의 패키지 생태계인 npm은 세계에서 가장 큰 오픈 소스 라이브러리 생테계이기도 하다. NodeJS에서 사용할 수 있는 모듈들을 패키지화하여 모아둔 저장소 역할을 하며, 설치와 관리를 수행할 수 있는 CLI(Command Line Interface)를 제공한다. 서드파티(주 기술을 이용하여 파생되는 따위의 것들을 생산하는 집단) 모듈을 패키지라고 한다. 그리고 모든 패키지엔 package.json 파일이 있다. npm install + no arguments npm install를 실행하면 package.json의 dependencies 필드 정보를 기반으로 직접 패키지를 생성한..

IT/JS 2021.08.09

JS에서의 this란 무엇일까?

MDN에서 function.prototype.apply()에 대해 공부하면서 폭풍 검색을 하던 중 this에 대해 공부하게 되었다. this는 메소드를 호출한 객체를 담는 속성이다. this를 함수의 이자로 넘기어 this의 값들을 사용하고, 변경할 수 있다는 것이다. 또한 메소드를 호출한 객체가 무엇이냐에 따라 value와 this.value가 같을 수도, 달라질 수도 있다. this가 만들어지는 5가지의 경우를 통해 이해해보려고 한다. 일반 함수에서의 this 중첩 함수에서의 this 이벤트에서의 this 메소드에서의 this 메소드 내부의 중첩 함수에서의 this 1. 일반 함수에서의 this var value = 10; function case1 () { this.value = 11; value ..

IT/JS 2021.07.26

코딩할때 개선할 점 모음

불필요한 주석 제거한다. 꼭 필요한 것이 아니라면 주석 달지 않도록 한다! 변수 정의할 때 var 사용 자제한다. const, let이 나온 이후 var은 잘 사용하지 않는다. 함수 안에서, 밖에서 재할당 되는 값인지 생각하고 일관성을 갖자. 변수의 이름을 지을 때, 제 3자가 봐도 쉽게 이해할 수 있도록 작성하자. 변수의 이름이 길어지는 것에 두려워말자! 할당된 변수는 재할당하지 않는다. 코드가 길고 복잡한 경우, 예상치 못한 결과가 발생될 수 있다! class name을 작성할 때, camel case가 아닌 kebab case로 작성한다. 일반적인 컨벤션이라고 한다! 가독성에 신경쓰자. 책을 쓴다고 생각하자! 함수를 빠져나올 때는 return! 함수 안에 for문에서 볼일 다 봤으면(?) retur..

IT/JS 2021.07.24

null의 타입, trim()

null의 타입이 object인 이유 JS의 값들은 tag와 value의 형태로 표현되었다. 오브젝트의 태그 값은 0이었고, null은 null pointer로 표현되었다. 대부분의 플랫폼에서는 0x00이라는 값이 주어진다(이 형태가 무엇을 의미하는지는 더 알아봐야겠다). 결론적으로 null은 태그 값으로 0을 가지게 되어서 typeof(null)은 object를 반환하는 것이라고 한다. 이에 대한 수정이 ECMAScript에 요청되었지만, 거부되었다고 한다..? 왜일까.. String.prototype.trim() trim() 문자열의 시작과 끝 부분의 공백을 제거하여 반환한다. trimStart() 시작 부분만 제거 trimEnd() 끝 부분만 제거 출처 https://developer.mozilla..

IT/JS 2021.07.22

32UN880를 구매하다

심플한 데스크를 구성하기위해 2017년에 구매한 데스크탑, 모니터, 유선 키보드와 마우스를 처분하였다. 데스크에 선이 돌아다니는 것을 최소화 하는것이 목적이었으므로, 무선 키보드, 마우스는 필수 구성이었다. 키보드는 앤 프로 2 적축, 마우스는 바이퍼 얼티메이트이다. 이 두 가지는 나중에 포스팅할 예정! 그리고 데스크탑의 자리에 노트북을 배치하였다. 여기서 내가 원하는 모습은 노트북을 펼치지않고 외장 모니터만 사용하는 것이다. 마지막으로 모니터는 선 정리가 깔끔하면서도 디자인도 심플한 모니터를 원했다. 또 화면도 32인치 정도로 듀얼 모니터가 아닌 하나의 모니터를 사용하고 싶었다. 하나의 모니터를 사용하면 고개를 돌리지 않아 목 피로도가 줄어드는 장점이 있다. 그렇게 눈에 띈 모니터는 바로 32UN880..

취미/전자기기 2021.07.22

바닐라코딩 프렙 11기 합격!

올해 4월, 개발자로 진로를 전향하기로 마음먹은 순간이었다. 당시 나는 석사 졸업을 위한 등재지 논문을 완성하였지만 한 학회지에서 등재 불가 판정을 받은 상황이었다. 교수님께서는 양식 수정 및 재검토해서 다른 학회지에 내면 된다고 했지만, 애초에 원하지 않던 분야의 논문이었다. 그리고 바닐라코딩 부트캠프를 알게 되었다. 그곳을 거쳐간 분들의 진솔한 후기들이 내 결심을 확고하게 해 주었다. 논문을 포기하겠다고 교수님께 말씀드렸다. 교수님의 설득이 있었지만 내 결정은 변하지 않았고, 그렇게 두 달의 사전 학습 가이드를 준비하게 되었다. 준비하는 과정 동안 정체되어있는 기분도 많이 느꼈고, 내가 준비를 잘하고 있는 건지, 못하고 있는 건지 알 수 없던 부분이 불안한 감정을 낳기도 했었다. 특히 프로그래머스 문..

Life/일상 2021.07.07

프로그래머스) 내적

https://programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 풀이 a 배열을 원소 a와 인덱스 i로 맵핑해서 각 값에 b[i]를 곱한다. 바로 reduce로 a 배열을 누산한다(초기값 0으로 설정). var solution = (a, b) => a.map((a,i) => a * b[i]).reduce((acc,cv)=>{return acc..

IT/Algorithm 2021.07.06
반응형