| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- typescript
- mysql
- 알고리즘
- 리눅스
- 피드백
- 자바스크립트
- react
- js
- 기록
- 생각일기
- 생각로그
- Grafana
- 회고
- CS
- next.js
- til
- nest.js
- 트러블슈팅
- Git
- MongoDB
- array
- WIL
- 네트워크
- javascript
- 생각정리
- mongoose
- 코테
- Java
- 주간회고
- mongo
- Today
- Total
목록분류 전체보기 (288)
코딩일상
보조 저장장치들은 용량은 엉청나게 늘어났는데 겉으로 보기에는 차이가 없다. 심지어 SD카드도 용량만 커졌지, 외부의 차이는 없다. 하지만 컴퓨터의 회로기판에서 차이점의 발전은 눈으로 차이도 보인다. 사진에서 볼수있는 선들이 버스라고 보면 된다. 전자회로는 기본 소자가 모여있는데 그 중 가장 중요한 기본 소자는 논리 게이트를 들 수 있다. ※ 소자: 장치, 전자 회로 따위의 구성 요소가 되는 낱낱의 부품 논리회로로서 2개의 입력을 받아서 한개의 출력값을 보내준다. 전자 회로에서 가장 중요한것은 트랜지스터라고 할 수 있다. 트랜지스터를 사용해 논리회로를 만들수 있고, 이 원리로 아무리 복잡한 시스템도 구성할수 있다. 근데 과거의 트랜지스터가 너무 컸는데 기술이 반전해서 회로속에 트랜지스터를 때려 박아버렸고,..
오늘 한 것 들과 공부한 것들 알고리즘 문제 9문제 해결 알고리즘 테스트 응시 한 주 마무리 및 알고리즘 지속공부 계획 정규표현식 이해 및 공부 정리 CS스터디(집적회로와 무어의 법칙) 오늘의 회고 드디어 알고리즘 주차 마무리를 하였다. 정말 방금 시작했던 알고리즘 주차였던 것 같은데, 끝이라니 믿기지가 않는다. 시간이 정말 빨리가는것 같다. 지금쓰고 TIL도 방금쓴것 같은데 또 작성하는 기분이랄까. ㅎㅎ 다시 본론으로 들어가면, 알고리즘을 처음해 봤을 때를 생각을 해보겠다. 그때는 모르는 JS가 가진 내장함수들도 많고 일단, JS가전혀 어떤 건지도 머리속에 정리가 되어있지 않았다. (뭐.. 지금도 딱히..) 그래서 검색을 하고 JS를 파악을 하는데 엄청 난 시간을 보냈었다. 그래도 하루 이틀 지나면서 ..
문제: 같은 단어는 싫어 배열 arr와 정수 n이 주어집니다. 배열 arr의 각 원소는 문자열로 이루어져 있습니다. 이때, 배열 arr에서 중복되는 단어는 전부 제거하려고 합니다. 단, 제거된 후 남은 단어들을 반환할 때는 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["brush", "sun", "brush", "bed", "car"]이고 n이 1이면 중복을 제거한 배열인 ["sun", "bed", "car"]에서 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한 조건 • strings는 길이 1 이상, 50이하인 배열입니다. • strings의 원소는 소문자 알파벳으로 이루어져 있습니다. • strings의 원..
padStart와 padEnd 함수는 ES8(ES2017)에 새롭게 추가된 기능이다. pad는 좌우에 특정한 문자열로 채우는 기능이다. padStart 'abc'.padStart(10); // " abc" 'abc'.padStart(10, "foo"); // "foofoofabc" 'abc'.padStart(6,"123465"); // "123abc" 'abc'.padStart(8, "0"); // "00000abc" 'abc'.padStart(1); // "abc" padEnd 'abc'.padEnd(10); // "abc " 'abc'.padEnd(10, "foo"); // "abcfoofoof" 'abc'.padEnd(6, "123456"); // "abc123" 'abc'.padEnd(1); //..
오늘 한 것 들과 공부한 것들 스코프, 함수 스코프, 블록 스코프, 스코프 체인 호이 스팅, TDZ 자바스크립트 객체와 불변성 자바스크립트 기본형 데이터와 참조형 데이터 알고리즘 문제 10문제 해결 오늘의 회고 오늘은 알고리즘 문제를 10문제 가량 풀고 코드를 해석하고 난 후 주어진 과제 였던 자바스크립트가 가진 특성들에 대해 공부하며 포스팅들을 하였다. 기존에 자바스크립트를 쓰면서 그냥 무작정 사용했던 기능들이 각각의 이유들로 작동이 된다는 사실이 신기하면서도 그 과정에서의 대단함도 느낄 수 있었다. 더불어 이 자바스크립트의 언어의 깊이가 어디까지일지도 궁금하며, 정말 배워도 배워도 끝이 없을 거 같다는 생각도 들었다. 하지만, 이제 시작한 만큼 두려워 하기보다는 이 환경에 익숙해지자는 마음으로 꾸준히..
데이터의 종류 및 차이점 기본(원시)형 객체가 아닌 데이터 유형을 말한다. 기본형 데이터는 값을 그대로 할당한다. 메모리상에 고정된 크기로 저장되며 원시 데이터 값 자체를 보관하므로, 불변적이다. 기본적으로 같은 데이터는 하나의 메모리를 사용한다.(재사용) Number String Boolean null undefined Symbol(ES6때 추가) 참조형 참조 타입은 변수에 할당할때 값이 아닌 데이터의 주소를 저장한다. 배열(Array) 함수(Function) 정규표현식(RegExp) Map(ES6때 추가) Set(ES6때 추가) WeakMap(ES6때 추가) WeakSet(ES6때 추가) 이러한 차이가 생기는 이유는 메모리 할당 방식 때문이다 자세한사항은 아래 첨부 레퍼런스를 확인바랍니다. 레퍼런스 ..
들어가기전 보면 좋은글 기본형 데이터와 참조형 데이터 JavaScript 객체와 불변성이란? Immutability(변경불가성)는 객체가 생성된 이후 그 상태를 변경할 수 없는 디자인 패턴을 의미한다. Immutability은 함수형 프로그래밍의 핵심 원리이다. 불변 객체를 사용하면 복제나 비교를 위한 조작을 단순화 할 수 있고 성능 개선에도 도움이 된다. 하지만 객체가 변경 가능한 데이터를 많이 가지고 있는 경우 오히려 부적절한 경우가 있다. ES6에서는 불변 데이터 패턴(immutable data pattern)을 쉽게 구현할 수 있는 새로운 기능이 추가되었다. 불변한 값 vs 변경 가능한 값 아래 Javascript의 원시 타입(primitive data type)은 변경 불가능한 값(immutab..
들어가기 앞서 보면 좋은 글 스코프란? 클로저, 변수의 은닉화? 호이스팅이란?? Hoisting은 ”끌어올리다”라는 뜻을 가지고 있습니다. JavaSciprt에서의 Hoisting은 선언되지 않은 함수, 변수(var로 선언된), import구문을 상단으로 끌어올려 사용할 수 있게 하는 방식을 의미합니다. 호이스팅 스코프 내부 어디서든 변수선언은 최상위에 선언된것처럼 행동 호이스팅 예시 1) 변수 console.log(name) // ReferenceError: variable is not defined name이라는 변수를 선언해주지 않았기 때문에 위의 코드는 당연히 참조에러를 발생시킵니다. 위의 코드는 undefined가 출력됩니다. 자바스크립트 엔진은 내부적으로 위의 코드를 다음과 같이 해석합니다. ..
스코프란?? 자바스크립트를 공부할 때 스코프(Scope)란 단어를 많이 접할 수 있는데요. 이 스코프란 무엇인지에 대해 알아보겠습니다. Scope를 우리말로 번역하면 ‘범위’라는 뜻을 가지고 있습니다. 즉, 스코프(Scope)란 ‘변수에 접근할 수 있는 범위’라고 할 수 있는데요. 자바스크립트에선 스코프는 2가지 타입이 있습니다. global(전역) local(지역) 전역 스코프(Global Scope)는 말 그대로 전역에 선언되어있어 어느 곳에서든지 해당 변수에 접근할 수 있다는 의미 지역 스코프(Local Scope)는 해당 지역에서만 접근할 수 있어 지역을 벗어난 곳에선 접근할 수 없다는 의미 자바스크립트에서 함수를 선언하면 함수를 선언할 때마다 새로운 스코프를 생성하게 됩니다. 그러므로 함수 몸체..
클로저 클로저란 함수와, 함수의 변수가 해석되는 스코프를 아울러 말한다. 클로저를 이해하기 위해서는 lexical scoping 규칙을 알고 있어야 한다. lexical scoping(어휘적 유효범위)이란, 함수가 정의된 시점의 스코프 체인을 사용하여 함수가 실행된다는 뜻이다. 여기서 함수가 호출된 시점이 아니라 정의된 시점이라는 것이 중요하다. function sandwichMaker() { var ingredient = "peanut butter"; function make(filling) { return ingredient + " and " + filling; } return make; } var f = sandwichMaker(); f("cream"); // "peanut butter and cr..