일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JavaScript
- Joi
- elb
- 노마드코더
- 조건문
- TypeScript
- mongoose
- nginx
- Node.js
- java
- nomadcoder
- JWT
- reduce
- Load Balancer
- 항해99
- 타입스크립트
- 자바스크립트
- 생활코딩
- MYSQL
- mongodb
- it
- ubuntu
- 프로그래머스
- https
- CORS
- 메소드
- wil
- AWS
- npm
- Nodejs
- Today
- Total
목록개발 (77)
V-logue
Overloading TS에서는 같은 이름의 함수를 다중으로 정의할 수 있고, 각 함수는 서로 다른 타입을 가져야 한다. 이와 같이 같은 이름의 함수를 다중으로 정의하고, 변수의 타입을 달리 정의하는 것을 TS에서 function Overloading 함수 오버로딩이라고 한다. typescript에서 Overload Signature는 overload 함수를 위해서만 사용된다. 실제로 많은 오버로딩된 함수를 작성할 일은 많지 않을 것이다. 그 대신, 대부분의 시간을 다른 사람들이 만든 패키지나 라이브러리 같은 것을 사용할 텐데 이런 패키지나 라이브러리는 Overloading을 매우 많이 사용한다. 그래서 제대로 이해하기 위해서는 Overloading이 무엇인지 이해하고 넘어가야 한다. 앞서서 배운 typ..
호출 시그니쳐(Call Signatures) function add(a , b){ return a + b } 위와 같은 코드가 작성됐을 때 TS는 (parameter) a: any , 'a' 매개 변수는 암시적으로 'any' 형식이지만, 사용량에서 더 나은 형식을 유추할 수 있습니다.ts(7044) 라는 a, b의 argument가 이상하다고 메세지를 보낸다. 그 이유는 아직 a, b의 type이 지정되지 않았기 때문이다. type이 지정되지 않는 argument(인수)는 any타입인데 TS는 any타입을 싫어한다. 위 코드에 타입을 줘야한다. function add(a : number, b : number){ return a + b } 다음은 다른 방법으로 위 코드를 표현해 볼건데, => 화살표 함수를..
Types of TS part Three Typescript에는 매우 독특한 몇 가지 타입이 존재한다." 독특하다고 말하는 이유는 이전 2_3.ts 에서 JS에서도 쓰이는 타입을 다뤘기 때문 number , string, boolean 등... 이제부터 등장할 type은 TS에서만 존재한다. TS의 Type Checker와 잘 소통한다. TS에서 중요한 포인트는 Type Checker와 소통하는 것이다. "unknown" 어떤 타입인지 모르는 변수는 TS에게 어떻게 말해야 하는걸까? 이런 상황일 때는 unknown을 사용하면 된다. let a : unknown; 위와 같이 선언하면 TS로부터 일종의 보호를 받게 된다. 어떤 작업을 하려고 할 때 이 변수의 타입을 먼저 확인하는 방식으로 보호된다. let ..
Types of TS part Two "ReadOnly" TS에는 readonly 속성을 추가할 수 있다. ReadOnly 속성은 요소들을 읽기전용으로 만들 수 있다. JS는 기본적으로 이런 동작이 존재하지 않는다. 하지만, TS에는 이런 동작을 구현하고 싶다면 구현을 도와주는 보호 장치가 존재한다. Player type이 name이라는 속성을 가지는데, 이 요소는 ReadOnly가 될 것이다. type Player = { readonly name : Name, age? : Age } readonly라는 뜻은, 누군가 Player의 name을 수정하려고 시도하면, TS가 수정 하려는 시도를 멈춰준다는 뜻이다. 즉, 수정 불가능하게 읽기 전용으로 만든다. Choi.name = "Kim" name은 읽기 전..
Types of TS part One const player = { name : "nico" } const player : object = { name : "nico" } 예를들어 player 중 전부 name이 있지만, 일부만 age가 있다면 player를 object라고 지정해주면, player.name했을 때 TS는 player에 name이 있는지 읽을 수 없다. player.name 'object' 형식에 'name' 속성이 없습니다. ts(2339) 이럴 때 필요한 것이 object의 타입을 정해주는 것이다. const player : { name : string, age : number } = {} 첫번째 중괄호, player의 타입을 지정한다. name은 String, age는 Number ..
노마드 코더 강의, Typescript로 블록체인 만들기 강의를 듣기로 했다. 암시적 유형 VS 명시적 유형(Impliecit Types VS Explicit Types) let a = "hello" 1. 타입 추론 string이라고 ts가 추론한다. let b : boolean = false let b = false 2. Type Checker 와 소통하는 방식, 형식을 지정 b가 boolean값이라고 명시하고 있다. let c = [1, 2, 3] number[array]라고 추론해주고 있다. c.push("1") number[array]이기 때문에 string "1" push할 수 없다. 만약 배열안에 아무런 값도 없다면 아래와 같이 Type을 지정해줘야 한다. let c : number[] = [..
항해99 실전주차가 끝나고 최종 프로젝트 발표까지 나름 성공적으로 마쳤다. 더 많은 기술을 사용하고 싶었고, 더 퀄리티 있는 코드를 짜보고 싶었지만 시간상의 여건으로 다 구현할 수는 없었다. Project renDev Project renDev는 랑데브는 포트폴리오를 위한 협업 프로젝트를 찾는 개발자와 디자이너를 매칭해주는 서비스다. 사이드 프로젝트를 해보고 싶을 때, 비전공자나 이제 갓 개발에 입문한 사람들은 팀원을 구할 곳이 부족하다는 점을 깨달았고, 이런 개발자들을 위해 함께 프로젝트를 진행할 팀원을 구할 수 있는 서비스를 만들어보자는 생각에서 랑데브 프로젝트를 만들게 됐다. 항해99 7기 B반 2조 프로젝트 renDev - YouTube renDev 시연영상 내가 담당한 작업은 서비스의 유저와 관..
1) 조회 성능, 병목 개선 조회 API에서 다수의 레코드를 JOIN하여 가져오는 데이터를 가공하며 코드 가독성이 떨어지고, 요소가 늘어날 수록 분해 - 재할당 연산이 증가하며 시간- 공간 복잡도를 체감할 수 있어 기존 sequelize 쿼리와 JS 로직을 재고하였습니다. sequelize 를 이용하여 반복문을 최소화하는 방안은 ORM 메서드 상 정밀한 가공의 어려움으로, MySQL 자체 RAW QUERY의 GROUPING과 서브쿼리 응용으로 데이터 SELECT 시점부터 가공되어 응답해 연산 비용 낭비를 최소화했습니다. 결과적으로 API 클라이언트 익스텐션을 이용한 연속적인 조회 요청시 평균 200ms에서 120ms로의 조회 성능이 개선되었습니다.