반응형 전체 글242 Typescript 인터페이스 인라인 어노테이션 인터페이스 선언 모두 동일한 역할을 한다. 인라인 var myPoint: { x: number; y: number } 인터페이스 interface Point { x: number y: number } var myPoint: Point 인터페이스 장점 인라인으로 작성할 경우 너무 길어진다. 가독성이 떨어짐 인터페이스에 정의된 속성을 선택적으로 사용할 수 있다. 재사용 가능하다. 인터페이스에 정의되어 있지 않은 속성에 대해서 인지할 수 있다. 선택적 사용 예시 interface CraftBeer { name: string; hop?: number; // 선택적 readonly brand: string // 변경불가 } 2023. 10. 15. Typescript annotations Type annotations을 써야하는 때 function 이 'any'타입을 return 하고, 값을 명확하게할 때 변수 선언을 하고 나중에 초기화할 때 변수 선언과 초기화를 동시에 할 때는 타입 추론이 가능하다. ex) const color = 'red'; 어노테이션을 안적어도 에러가 뜨지 않는다. 추측할 수 있는 타입을 가진 변수를 원할 때 json.parse() 를 통해 의도하지 않은 다른 타입들이 나올 수 있다. 값 json.parse() 후 'false' boolean '4' number '{"value":5}' {value: number} '{"name":"alex"}' {name: string} typescript에서는 any로 예측한다. 값 json.parse() 후 'false' an.. 2023. 10. 10. Javascript 헷갈리는 for문 4종류 javascript는 for문이 왜이리많은지 어떤걸써야하는지 까먹을때가 있다. for 문 기본 for문 장점 가장 빠르다 모든 자료형에 대해 사용이 가능하다 continue, break 사용이 가능하다 변수 활용이 가능하다 for (var i = 0; i < 9; i++) { console.log(i); // 기타 등등 } for in 문 객체를 순회할때 사용한다. 장점 객체에 접근할 수 있다. 객체 디버깅을 위해 사용될 수 있다. 단점 continue, break 사용이 가능하지만 루프를 완전히 중단하는 것은 아니다. 제일 속도가 느리다 const object = { a: 1, b: 2, c: 3 }; for (const property in object) { console.log(`${property.. 2023. 10. 10. Typescript 기초 실행해보기 typescript compiler $ npm i -g typescript ts-node $ npm i axios index.ts 코드 생성 import axios from 'axios'; const url = 'https://jsonplaceholder.typicode.com/todos/1'; axios.get(url).then(response =>{ console.log(response); }); 코드 생성 후에 컴파일하고 생겨난 index.js 를 실행할 수 있다. $ tsc index.ts $ node index.js 이를 매번 두번 실행하는것은 비효율 적이라서 ts-node를 사용하면 되는데,, 그냥 실행하면 에러가 발생한다! 해당 패키지들을 설치해주고 $ npm i @types/node --s.. 2023. 9. 29. [공유] 인스타그램이 1400만 유저로 확장한 방법 원본 게시물입니다. How Instagram scaled to 14 million users with only 3 engineers Instagram's guiding principles and tech stack explained simply engineercodex.substack.com 2010년~2011년에는 3명의 엔지니어가 있었다고 합니다. 그들은 세가지 원직을 가졌습니다. 1. 심플하게 유지하기 2. 바퀴를 다시 발명하지않기 3. 가능하면 입증된, 경고한 기술을 사용하기 최종 아키텍처 개요 2023. 9. 25. [구름톤챌린지] day 10 GameJam python 10일차 미션 문제 구름LEVEL 난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다. level.goorm.io 우선 문제 이해를 하기 위해 적어봅니다! 요약하면 각각 플레이어가 각자의 위치에서 이동하면서 발생하는 점수를 비교하는 것! ''' 1 - 격자 보드의 크기 2 구름이가 말을 올려둔 칸의 좌표 행 열 3 플레이어가 말을 올려둔 칸의 좌표 행 열 n 각 지시사항 이동횟수 이동방향(UDRL) 이동중에 보드 밖으로 나가면 반대쪽의 첫번째칸으로 이동한다 4번 반복 중 이동하다가 이미 한번 방문한 칸을 지나야하는 경우에는 종료 시작 칸을 포함하여 종료되기 전까지 말이 방문한 서로 다른 칸의 개수 return goorm 구름점수 / player 플레이어점수 / 비기는건X ''' ''' .. 2023. 8. 27. [NHN FORWARD 2021] Redis 야무지게 사용하기 보고 정리 반복해서 접근하고, 잘 변하지 않는 데이터를 캐시로 사용하는 것이 좋다. 캐싱 전략 읽기 전략 Look-Aside (Lazy Loading) : 캐시에 먼저 확인 후 -> 캐시에 없으면 DB 조회 * Cache Warming : 서비스에 처음 도입할 경우 캐시에 당연히 없으니 DB 조회에 몰리게된다. 이를 위해 미리 캐시에 저장한 후 오픈하는 것. 쓰기 전략 Write-Around : DB에만 바로 저장하는 것 Write-Through : DB에 저장하고, Redis에도 저장하는 것 단점: 저장할때마다 두번 거치기때문에 지연 생김, 무조건 저장하므로 낭비 부분이 생긴다. 2023. 8. 26. [노마드 코더 NestJS로 API 만들기] 3 Testing E2E npm run test:e2e 테스팅 어플리케이션도 실제 어플리케이션처럼 설정하기 - main.ts의 pipe beforeAll(async () => { const moduleFixture: TestingModule = await Test.createTestingModule({ imports: [AppModule], }).compile(); app = moduleFixture.createNestApplication(); app.useGlobalPipes( new ValidationPipe({ whitelist: true, forbidNonWhitelisted: true, transform: true, }), ); await app.init(); }); app.e2e-spec.ts - 유저가 사용할 수 있.. 2023. 8. 20. [노마드 코더 NestJS로 API 만들기] 3 Testing Jest 유닛 테스트: 모든 function을 하나씩 테스트하는 것 e2e 테스트: 이페이지로 가면 특정페이지가 나와야하는 경우 (사용자 관점) getAll, getOne, deleteOne 등 만들었던 함수들 유닛 테스트하기 Jest가 spec.ts 를 찾을 수 있도록 돼있다. 테스팅하고 싶은 파일명에 spec.ts를 붙이면 된다. spec.ts 에 예시 추가 it('should be 4', () => { expect(2+2).toEqual(4); }) movie.service.spec.ts 에 유닛테스트 만들기 get describe('getAll', () => { it('should return an array', () => { const result = service.getAll(); // 배열로 리턴하는.. 2023. 8. 16. 이전 1 2 3 4 5 6 7 ··· 27 다음 728x90 반응형