전체 글
[프로그래머스] 오픈채팅방
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 function solution(record) { const userInfo = {}; const action = []; const stateMapping = { 'Enter': '님이 들어왔습니다.', 'Leave': '님이 나갔습니다.' } record.forEach((v) => { const [state, id, nick] = v.split(' '); if(state !== "Change") { action.push([state, id]); } if(nick) { userInfo[id] = n..
[TypeScript] Nomad Coder - TypeScript 2주 챌린지(4일차)
다형성(polymorphism) poly = many, several, much, multy를 의미 morphos, morphic = form, structure를 의미 이것을 합쳐서 polymorphism은 여러가지 다른 구조들, 여러가지 다른 형태들이란 의미다. type SuperPrint = { (arr : number[]) : void (arr : boolean[]) : void (arr : string[]) : void } const superPrint : SuperPrint = (arr) => { arr.forEach(i => console.log(i)) } superPrint([1, 2, 3, 4]) superPrint([true, false, true]) superPrint(["a", "b..
[JavaScript] Deep Dive 모던자바스크립트 - 제어문
08장. 제어문 제어문(control flow statement)은 조건에 따라 코드 블록을 실행(조건문)하거나 반복 실행(반복문)할 때 사용한다. 일반적으로 코드는 위에서 아래 방향으로 순차적으로 실행된다. 제어문을 사용하면 코드의 실행 흐름을 인위적으로 제어할 수 있다. 8.1 블록문 블록문(block statement/compound statement)은 0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부르기도 한다. 자바스크립트는 블록문을 하나의 실행 단위로 취급한다. 블록문은 단독으로 사용할 수도 있으나 일반적으로 제어문이나 함수를 정의할 때 사용하는 것이 일반적이다. // 블록문 { var foo = 10; } // 제어문 var x = 1; if(x < 10) { x++;..
[프로그래머스] 문자열 압축
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 2단계 문제를 처음으로 풀어보는데 slice()를 이용하여 문자열을 잘라서 붙여주는데까진 구현했으나, 이후로 비교를 어떤식으로 해야할지 모르겠어서 코드 실행자체를 해보지 못했다. 다른 사람의 풀이를 보고 문제를 이해해야겠다. 베스트 풀이 function solution(s) { if(s.length === 1 ) return 1; let min = 1000; for (let i = 1; i 1 ){ ans += `${count}${str1}` }else{ ans += str1; } count = 1..
[Git] 명령어 모음
도움말 보기 help 명령어를 이용하여 각 명령어 및 옵션의 기능에 대해 살펴볼 수 있습니다. git help -all // git에서 제공하는 모든 명령어를 볼 수 있습니다. git [command] -help // 특정 command에서 사용할 수 있는 모든 옵션을 볼 수 있습니다. 세팅 및 초기화 레포지토리를 초가화하거나 존재하는 레포지토리를 클론할 수 있습니다. git init // 현재 디렉토리를 기준으로 Git 저장소가 생성됩니다. git clone [url] // URL을 통해 리모트 레포지토리를 로컬 레포지토리에 복제합니다. Stage & Commit 스테이지 영역을 이용하여 커밋할 수 있습니다. git status // 다음 커밋을 위해 현재 디렉토리에서 수정된 파일을 확인할 수 있습니다..
[회고] 개인프로젝트 Booking Clone Coding 회고
만들게된 계기? 팀 프로젝트 진행 간에 백엔드 포지션을 맡아서 프론트엔드의 코드 작업을 하면서 어떤 어려움이 있는지 경험해보고 싶은 마음과 MonggoDB도 사용해보기 위해 클론코딩을 진행하게되었다. 느낀점 코드를 보고 그저 따라치기만 하고싶진 않아서 코드를 이해하기 위해 노력했다. 기능들을 구현하는데 있어서 간단한 기능위주로만 되있는 클론코딩인지라 큰 어려움은 없었다. 팀 프로젝트간에 MySQL만 사용해봐서 처음 사용해보는 nosql인 MonggoDB는 꽤나 어색했다. 데이터베이스를 많이 사용한 것은 아닌지라 nosql의 장점이나 단점을 파악하기엔 부족했던거 같다. 그래도, 장점으론 데이터를 칼럼에 배열로 관리 할 수 있다는 점 테이블 간에 참조하는 id가 따로 필요없다는 점 그 덕분에 스키마 관리를 ..
[TypeScript] Nomad Coder - TypeScript 2주 챌린지(3일차)
Call Signatures 함수에 대한 타입을 만들 수 있고, 함수가 어떻게 작동하는 지 서술할 수 있다. 즉, 함수의 인자(arguments)의 타입과 함수의 반환 타입을 정해줄 수 있다. type Add = (a:number, b: number) => number // 이러한 형식을 call signatures 라고 불림 const add:Add = (a,b) => a+b Overloading 오버로딩은 함수가 여러개의 Call Signatures를 가지고 있을 때 발생시킨다. 예시1. type Config = { path: string, state: object } type Push = { (path: string): void (config: Config): void } const push:Pus..
[TypeScript] Nomad Coder - TypeScript 2주 챌린지(2일차)
타입스크립트의 타입들 우선 object의 타입을 정의해줄 때, 선택적 변수를 지정하는 방법은 아래 예시와 같다. const player : { name: string, age?: number, // optional하게 사용하고 싶은 값에 ?를 붙여준다. } = { name: "nico", } age의 경우 number | undefined 값을 주어주는데 if (player.age && player.age ({name}) const nico = playerMaker("nico") nico.age = 12 // optional한 값을 지정해줄 수 있다. readonly 속성 readonly 속성은 요소들을 '읽기 전용'으로 만들어 주는 것이다. JavaScript에서는 없는 동작으로 TypeScript에서..