목록전체 글 (116)
coding etude
플루터는 2017년 구글에서 개발한 컴파일러의 일종으로 모바일 어플리케이션(소프트웨어)를 개발할 때 사용된다. 기존에는(지금도...) ISO 와 Android 용 앱을 개발하려면 각각 사용하는 언어를 배워서 프로그래밍 해야했다. 개발에서만 끝나는 것이 아니라 동일한 기능을 하기 위해서 업데이트와 상태관리가 필요하기 때문에 두 언어를 모두 배워서 사용하는 것은 가능하지만 어려운 일이고, 두 가지 버전을 관리하는 것은 더 어려운 일이라고 생각이 된다. 하지만, 플루터는 개발이 되면 두 가지 언어로 번역해주는 역할을 한기 떄문에 굉장히 좋은 프로그램 이라고 생각하지만.. 대부분 플루터사용을 꺼려하는건 ..아직 구글에서 전폭적으로 앞면에 내세우지 않고 있기 때문이라고 한다.. 주력으로 밀어주지 않는것 같은.....
TypeScript(TS)를 시작하며.. TS를 처음 시작할 때의 막막함은 처음 코딩을 공부할 때와는 조금 다른 막막함이었다. 어디서부터 시작해야 할지 알 수 없었기 때문이랄까?? 무작정 공식 홈페이지부터 찾았고 생각보다 방대한 분량의 설명과 예시에 살짝 겁이 났던 것 같다. 공식 페이지의 내용을 번역해놓은 페이지를 찾아서 예시를 보면서 하나씩 공부를 시작했지만, JS의 Super Set이라고 생각해서 크게 어렵지 않을 것이라는 생각은 큰 착각이었다. JS기반의 전혀 다른 언어 인듯한 느낌을 받았고, JS와의 차이점과 error해결 방법들을 찾아보면서 그 생각은 더 커저만 갔다. 특히, 설명과 예시가 어려운 것들이 많았다.. 하지만, 어느 정도 TS 만의 규칙성을 찾게 되었고 생각보다 금방 공부할 수 있..
Ts 기본 셋팅을 진행 후 component를 만들면서 interface 와 type 를 지정하고 tsx에 변수 및 함수를 사용하면 제목과 같은 오류가 발생한다. 이유는 생각보다 간단하다. ESlint의 유효성 검사에서 타입에 대한 내용리 누락 되어서 라고 생각이 된다. typescrip-eslint : github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/prop-types.md 위의 페이지에서 보면 기본 Js 에서 사용하는 방법과 Ts에서 사용해야하는 방법 그리고 진행 흐름에 대한 예시를 볼 수 있다. 그리고 가장 마지막에 .eslintrc.js 파일에 적용하는 옵션값이 나온다. 여러 블로그를 확인했을 때,(위 github 페이지에서도 역시..
TS의 기본적인 문법을 공부하고서, 자!! 이제 React에 적용해보자!! ....두둥.. error.. TS를 사용하기 위해서 설치한 TSlint에서 날 통과 시켜주지 않는 것이였다.. 이것 저것.. 검색을 해본 결과.. 정확하고 속시원하게 알려주는 내용은 없었다. 물론, 내가 못 찾았거나 보고도 이해 못한 내용이였거니 생각하니... 더 답답했다. 그러던 중, ESlint까지 내용이 이어졌는데.. typescript-ESlint Github 를 보고 잊지 않기 위해 끄적끄적... 먼저, typescript-ESlint Github에 따르면 TSlint는 2019년에 더이상 개발을 지원하지 않겠다고 선언했다고 한다. ESlint에서 TS를 지원하기 시작해서 불필요 하다고 생각했기 때문이다. 또한, typ..
문제 정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다. 입력 인자 1 : arr number 타입을 요소로 갖는 배열 arr[i]는 정수 arr[i]의 길이는 1,000 이하 출력 number 타입을 요소로 갖는 배열을 리턴해야 합니다. 배열의 요소는 오름차순으로 정렬되어야 합니다. arr[i] [1, 2, 3] Advanced 수행 시간을 단축할 수 있도록 코드를 수정해보세요. 어떤 요소도 위치가 바뀌지 않은 경우, 배열이 정렬된 상태라는 것을 알 수 있습니다. 풀이 let bubbleSort = (arr) => { let temp for(let i=0; i < arr.length; i++){ let count = 0; // 자리가 바뀔때 카운트를 하는데 만약 끝까지 0이라면 ..
Interface Ts에서 가장 핵심적인 원칙 중 하나는 타입의 형태에 초점을 둔 타입 검사 라는 것이다. interface 는 이런 타입들의 이름을 짓는 역할 및 코드의 내/외부에서 행동을 정의 하는 강력한 방법이다. interface 는 각 속성에 타입을 정의한 후 다른 요소의 타입으로 정의 하여 사용 할 수 있다. Optional properties : Ts의 인터페이스를 사용 할때 정의된 요소를 모두 인자로 사용해야 한다. 하지만, 위의 예시 처럼 요소의 뒤에 ?를 사용하게 되면 선택적으로 사용 할 수 있게 된다. 선택적 속성의 이점은 인터페이스에 속하지 않는 프로퍼티의 사용을 방지하면서, 사용 가능한 속성을 기술하는 것입니다. Excess property checks : 선택적 속성을 사용하여 ..
문제 두 개의 배열(base, sample)을 입력받아 sample이 base의 부분집합인지 여부를 리턴해야 합니다. 입력 인자 1 : base number 타입을 요소로 갖는 임의의 배열 (base.length false base = [10, 99, 123, 7]; sample = [11, 100, 99, 123]; output = isSubsetOf(base, sample); console.log(output); // --> false Advanced 시간 복잡도를 개선하여, Advanced 테스트 케이스(base, sample의 길이가 70,000 이상)를 통과해 보세요. 풀이 // 포함이 되어 있는지 여부만 확인 시 // every, includes 를 사용해서 구할 수 있다. const isSu..
문제 아래와 같이 정의된 피보나치 수열 중 n번째 항의 수를 리턴해야 합니다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1입니다. 그 다음 2번째 피보나치 수부터는 바로 직전의 두 피보나치 수의 합으로 정의합니다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... 인자 1 : n number 타입의 n (n은 0 이상의 정수) 출력 number 타입을 리턴해야합니다. 주의사항 재귀함수를 이용해 구현해야 합니다. 반복문(for, while) 사용은 금지됩니다. 함수 fibonacci가 반드시 재귀함수일 필요는 없습니다. //문제 풀이 // fibonacci = (n-1) + (n+2) // 기본적으로 직전의 수와 그 전의 수를 더하면 현재의 수가 나오는 공식이 성립. //..