일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 출처 : 코딩애플
- 김영한쌤
- 쏙쏙들어오는함수형코딩
- 리엑트를 다루는 기술
- 저자: 유인동
- 이웅모
- 로버트 C마틴
- 쏙속 들어오는 함수형코딩
- https://product.kyobobook.co.kr/detail/S000001952246
- 출처 : 한입크기로 잘라먹는 타입스크립트
- 함수형 코딩
- 갈길이 멀구나
- 쏙쏙 들어오는 함수형코딩
- 에릭노이먼
- 생코님Redux
- 출처 : 자바스크립트 딥다이브
- 출처는 코딩앙마
- 에릭 노이먼
- 에릭 노먼드
- 쏙쏙 들어오는 함수형 코딩
- 흥달쌤
- 출처는 코딩애플
- 오종택개발자님
- 출처 : https://www.boostcourse.org/
- 유틸리티타입은 공식문서 자주 보자
- 자바스크립트 딥다이브
- 출처 : 코딩앙마
- 나는 flux좋아...
- 큰돌의 CS책
- 클린코드다시읽기
- Today
- Total
목록전체 글 (138)
틈틈히 메모중
Partial interface User{ id:number; name:string; age:number; gender: "m" | "f"; } /* let admin :User = { id:1, name:"bob", } 위와 같이 입력하면 age와 gender 속성을 입력하지 않아서 에러뜸 아래와 같이 partial을 이용하면 interface의 속성에 ?: (optional)로 지정한것 과 같음 */ //interface User{ //id?:number; //name?:string; //age?:number; //gender?: "m" | "f"; //} let admin : Partial = { id:1, name:"bob", //age랑 gender가 없어도 에러 안뜸 } Required int..
함수 function getSize (arr:T[]) :number{ //으로 구성된 배열을 매개변수로 받고, //리턴값은 항상 number로 함 return arr.length } const arr1 = [1,2,3]; getSize(arr1); //3 const arr2 = ["a","b","c"]; getSize(arr2); //3 const arr3 = [true, false, true]; getSize(arr3); const arr4 = [{name:"Hyo"}, {key:"1"}, {cat:"jr"}]; getSize(arr4); 객체 interface Mobile { name:string; price:number; option:T; } const m1 :Mobile = { name:"uni1..
접근제한자 (Access modifier) - public ㄴ자식클래스나 클래스 인스턴스에서 접근가능 ㄴ아무것도 안적혀있으면 모두 public으로 간주됨 -private ㄴ본인 클래스 내부 에서만 접근가능 ㄴ자식클래스 내부에서 사용할 수 없음 ㄴ변수앞에 #붙이면 private으로 처리됨 -protected ㄴ자식클래스에서 접근가능 ㄴ클래스 인스턴스에서 접근 불가 class Car { protected cat:string = "lovely"; private price : string = '1million'; #path : string = ''; //#은 private과 동일한 표기 readonly middlename : string = "hyo"; readonly lastname : string = "su..
리터럴 //리터럴 const userName1 = "Bob"; //username1은 "Bob" let userName2 = "tom"; //username2는 string으로 뜸 // userName2 = 1; // let으로 선언된 변수임에도 에러남 : 초기에 할당된 값이 string이어서 //숫자넣고 싶으면 아래와 같이 명시적 작성 해야함 let userName3: string | number = "Jane"; userName3 = 1; userName3 + 1 ;// 불가 string | number + 1은 허용 안되고 있음 (Narrowing으로 해결가능 : 함수 포스트참고) type Job = "police" | "developer" | "teacher"; //Job은 3가지로만 입력가능 i..
"변수 ?: 타입" 의 의미 ㄴ> 변수 : 타입 | undefined와 같음 string + number (가능) number + number (가능) (string | number) + number (불가능) => 유니온 타입은 타입이 확실하지 않다고 처리해서 더하기 연산 불가 function add (x :number | string) { if(typeof x === 'number'){ //narrowing : 애매한 유니온타입의 연산시 미리 검사해줘야 함 console.log(x + 1); } } 매개변수, 리턴값에 대한 타입지정 / 매개변수를 옵셔널하게 지정할 때 //함수 function addCalc (num1:number, num2:number):number {//():타입은 리턴값에 대한 타..
https://sandbox.cs50.io/ 1) C 기초 //hello.c #include int main(void) { printf("hello world\n"); // \n 줄바꿈의미 } 스크래치에서 블록은 시작하는 역할 ; (세미콜론)은 코드를 끝내는 의미 C에서는 스크래치의 블록과 같은 함수를 사용하기 위해 컴퓨터에게 그 함수가 어디에 있는지 알려줘야 함 ㄴ> printf같은 함수는 stdio.h안에 있다는 것을 알려주기위해 #include 작성함 (~함수쓰려면 stdio.h파일 보라고 하는것) source code(**언어로 입력한 코드) => 컴파일러(번역기) => machine code(컴퓨터가 이해할수 있는 2진수코드) 프롬프트에 $clang hello.c 라고 입력후 엔터치면 a.out..
1) var키워드로 선언한 변수의 문제 - 1) 변수의 중복선언 허용 var x = 1; var x = 2; //중복선언을 허용함 console.log(x); // 2 - 2) 함수레벨스코프 ㄴ함수의 코드블록만 지역스코프로 인정해줌 ㄴif문, for문과 같은 함수아닌 코드블록 안에서 선언하면 전역변수됨 var x = 100; if(true){ var x = 200; } console.log(x); //200 - 3) 변수 호이스팅 ㄴvar키워드로 선언된 변수는 변수선언 이전에 참조됨 (런타임전 참조되어 undefined로 초기화함) console.log(x); //undefined x = 100; console.log(x); //100 2) let 키워드 - 1) 변수 중복 선언 금지됨 let x = 1..
타입시스템 - 정적 타입시스템 : C, JAVA, 코드 실행이전 변수의 타입을 고정적으로 결정함 - 동적타입 시스템 : python, Javascript, 코드 실행하고 나서 그때마다 유동적으로 변수의 타입을 결정함 https://www.typescriptlang.org/ Javascript는 동적언어로 런타임에 타입이 결정됨 / 런타임에 오류를 발견함 => 사용자가 오류같은 걸 고스란히 볼수 있음 변수의 타입이 하나로만 고정되지 않음 => 오류를 좀 내줘야 하는데 그냥 실행되어 버림(예기치 못한 오류) Java는 정적언어로 컴파일 타임에 타입 결정함 / 컴파일 타임에 오류를 발견함 => 실행전 에러인지하기 좋음 코드 실행 전 모든 변수의 타입을 결정함 (유연하지 못함) Typescript는 동적타입 시..
1) 변수의 생명주기 - 1) 지역 변수의 생명 주기 ㄴ 변수는 생물과 유사하게 생성되고 소멸되는 생명 주기(life cycle)가 있음 (변수의 생명주기는 메모리 공간이 확보allocate된 시점부터 메모리 공간이 해제release되어 가용 메모리 풀에 반환되는 시점까지임) ㄴ 전역변수의 생명주기는 애플리케이션의 생명주기와 같음 ㄴ지역변수의 생명주기는 함수의 생명주기와 일치함(함수내 선언된 변수는 함수가 호출되어 실행되는 동안에만 유효함 = 함수내 선언된 변수는 자신이 등록된 스코프가 소멸될때 까지 유효함, 할당된 메모리공간은 누구도 더이상 참조 하지 않을 때 가비지 콜렉터에 의해 화르륵) ㄴ변수는 자바스크립트 엔진에 의해 런타임 이전에 먼저 실행됨 (함수내 선언된 변수는 함수 호출시, 다른 문들이 순..
//App.js /* 문제 ) PostPage가 보이지 않는 현상 발생! path="/@:username"이라고 적으면 안됨 ... 아래와 같이 적어야 연결됨 */ (...중략...)
// 1. import { withRouter } from 'react-router-dom'; history 기능은 없어짐 // 2. import { useHistory } from 'react-router-dom'; useHistory라는 훅도 없어짐 import { useNavigate } from 'react-router-dom'; //history대신 useNavigate써야함 (...중략...) const RegisterForm = () => { const dispatch = useDispatch(); const navigate = useNavigate(); const { form, auth, authError, user } = useSelector(({ auth, user }) => ({ fo..
immer를 설치하고 나서 produce라는 키워드를 입력하니 자동으로 아래와 같이 불러와졌다. import { produce } from '../../node_modules/immer/dist/immer'; 뭔가 이상해서 from "immer"로 고쳤는데 계속 에러 경고창 뜨는거임...ㅂㄷㅂㄷ 그래서 우선은 ~~ 동작만 하면 우선 ^&^ 이라고 생각했는데^*^ submit할 때 서버로 데이터 넘기는 과정에서 계속 오류가 났다...ㅠ 잘 못적은 부분 없는지 엄청 해메다가. . . (없음왜없어!!!!ㅠㅠ) 혹시 ? 하고 immer불러오기 주소가 저렇게 뜨는 사람들이 있나 해서 구글링 해보니까... Cannot find module 'immer' from 'node_modules/use-immer/dist/..