본문 바로가기

TIL (Today I Learned)87

[Python] NEWLINE 파이썬에 대한 기본적인 이해를 위해 작성했습니다. 파이썬 프로그램은 다음과 같은 과정을 거쳐서 실행된다. physical lines of code (end with a physical newline character)→ (Python compiler) → logical lines of code (end with a logical NEWLINE token) → tokenized → (Python interpreter can read) → run code 물리적 newline은 무시되기도 하며, 컴파일러에 의해 한 줄의 논리적 코드로 합쳐지기도 한다. 그렇다면, 왜 물리적 무시되는 newline을 작성하게 될까? 읽는 사람의 가독성을 위해서. 또한 inline comment를 작성하기 위해서. 파이썬은 암묵.. 2023. 3. 28.
[Python] Python Types 파이썬에 대한 기본적인 이해를 위해 작성했습니다. 참고자료 : https://www.codesansar.com/python-programming/type-hierarchy.htm Numbers 프로그래밍에 필수적으로 사용되는 '수'에 대한 타입은 다음과 같이 나눌 수 있다. 나눌 수 있는 수(Integral)와 나눌 수 없는 수(Non-Integral). Integral : Integers, Booleans Non-Integral : Floats (c doubles), Complex, Decimals, Fractions Collections collection은 다음 세 가지로 나눌 수 있다. sequence, sets, mappings Sequence는 가변 시퀀스와 불변 시퀀스로 나눌 수 있다. Mu.. 2023. 3. 28.
[알고리즘] Big O #1 Big O Big O는 코드가 얼마나 효율적으로 실행되는지 수학적으로 비교하는 방법. 동일한 작동을 하는 코드 A와 코드 B가 있다고 생각해 보자. 코드 A는 15초 동안 실행되고, 코드 B는 1분 동안 실행 된다면, 우리는 코드 A가 더 낫다고 생각할 것이다. 이것이 시간 복잡도이다. 하지만, 시간 복잡도는 시간으로 측정하지 않는다. 무슨 소리예요, 방금 15초와 1분을 비교했잖아요? 하실 것이다. 왜냐면 방금 시간을 측정한 컴퓨터보다 성능이 더 좋은 컴퓨터로 B코드를 실행하면 15초보다 빠르게 실행될 수도 있기 때문이다. 따라서, 무언가를 완료하는 데 걸리는 작업 수로 측정하는 것이 더욱 정확하다. 시간 복잡도 외에도 공간 복잡도를 측정해야 한다. 코드 A는 매우 빠르게 실행되지만 상대적으로 실.. 2023. 3. 16.
[Webpack] with debug bundle.js는 우리가 죽어도 못읽을것 처럼 적혀있다. 만약, 디버깅을 해야하는 상황에서 우리는 어쩔까... 디버깅을 위해서 우리는 소스맵을 추가해야한다. 소스 맵은 역매핑을 통해 빌드 전의 상태를 보여줌으로써 번들을 구성하고 있는 코드가 어디서 오는지를 보여준다. 1. tsconfig.json 파일의 sourceMap을 true로 변경한다. (주석을 해제한다.) 2. webpack.config.js 파일에 해당 소스 맵을 추출해 최종 번들에 포함하라고 지시한다. 이 두가지를 추가한 뒤 다시 번들링하면 브라우저에 소스 맵이 작동할 것이다. "부야~" 2023. 1. 30.
[Webpack] with TypeScript Webpack : 웹팩(Webpack 또는 webpack)은 오픈 소스 자바스크립트(JS) 모듈 번들러이다. 모듈 번들러 : 모듈 번들러란 웹 애플리케이션을 구성하는 자원(HTML, CSS, Javscript, Images 등)을 모두 각각의 모듈로 보고 이를 조합해서 병합된 하나의 결과물을 만드는 도구를 의미한다. (출처) 1. Typescript 환경 설정 tsc --init npm init -y npm install lite-server tsconfig.json 설정 "include": ["src"] 추가 "outDir": "./dist" 옵션 설정 "target": "ES6" 옵션 설정 ts 파일 작업. index.html의 body 태그에 type="module"을 제공하지 않는다면 서버를 설치.. 2023. 1. 30.
[JIRA] 지라 사용하기. github 연동. 협업을 위해 이번에는 Jira를 사용해본다. 우선, 프로젝트(Jira)에 앱을 깔아야한다. 상단 네비게이션 바에서 '앱'을 누르자 더 많은 앱 살펴보기 클릭. 좌측에 생긴 Github for Jira를 클릭하여 이동. 이제 Github랑 연동할 예정이다. 연동 이전에 우선 본인의 깃허브 계정이 로그인되어있는 상태인지 고민해보자. 만약 깃허브가 자동로그인 상태거나 로그인되어있는 상태라면 해당 계정으로 연동하여 연동 가능한 '계정' 혹은 '조직'을 보여줄 것이다. 만약 당신 개인프로젝트라면 '계정'으로 연동해도 상관 없지만, 팀 프로젝트라면 '조직'을 만들자. 연동 전에 우선 조직을 만드는 것이다. '조직'을 만들었다면 해당 조직이 연동 목록에 잘 나올것이다. 여기서 내가 수 시간을 쏟은 에러가 하나 있다... 2023. 1. 20.
[TS] Typescript와 차세대 자바스크립트 본 포스팅은 Maximilian Schwarzmüller 님의 강의를 바탕으로 작성되었습니다. let과 var의 차이점 var를 사용하면 자바스크립트는 함수의 유효 범위 및 전역 유효 범위 이외의 다른 유효 범위를 알지 못하는데 let을 사용하면 다르다. let과 const는 '유효 범위'라는 새로운 개념이 도입되어있다. 즉, 변수나 상수가 정의된 블록이나 하위 블록에서만 항상 유효하다는 것이다. 그러나 var는 마치 전역 변수처럼 유효 범위가 없이 작동한다는 것이 문제다. arrow 함수 'function' 대신 '=>' 를 사용하여 함수를 만들 수 있다. 또한, 표현식이 하나일 경우 return과 중괄호를 제거할 수 있다. 함수의 인자가 하나일 경우에 다음과 같이 작성할 수도 있다. const pri.. 2023. 1. 19.
[TS] Typescript 컴파일러2 본 포스팅은 Maximilian Schwarzmüller 님의 강의를 바탕으로 작성되었습니다. strict 옵션 개별 옵션을 각각 false로 설정하거나, 모든 옵션을 true로 하거나. strict - noImplicitAny 함수의 인자는 타입을 명시하지 않으면 에러를 발생시킨다. 하지만 변수의 경우에는 any 타입으로 추론된다. 왜 그럴까? 변수의 경우에는 '미리' 선언되기 때문에 any 타입으로 추론되지만, 함수의 인자는 '미리' 선언될 수 없기 때문에 타입스크립트가 any로 추론하면서 동시에 에러를 발생시키는 것이다. 이런 경우 에러를 유발시키지 않고 any로 추론하게 만들기 위해서는 strict 옵션중 noImplicitAny 옵션은 false로 설정하면 된다. any로 추론하며, 에러를 발생.. 2023. 1. 19.
[TS] Typescript 컴파일러 본 포스팅은 Maximilian Schwarzmüller 님의 강의를 바탕으로 작성되었습니다. watch mode 타입스크립트가 파일을 관찰하고 파일에 변경 사항이 있을 때마다 다시 컴파일하게 된다. tsc {파일명.확장자명} --watch --watch 말고 -w 라고 입력해도 된다. watch mode를 활성화 시키면, 저장할 때마다 리컴파일한 자바스크립트도 디스크에 저장된다. 주의할 점 : 개발중에 watch모드를 나가지(quit) 마라. 꼭 CTRL + C 를 통해서 나가라. tsc --init tsc --init을 터미널에 입력하게 되면 해당 프로젝트(디렉토리)를 타입스크립트가 관리한다. tsconfig.json 파일이 생성되며, 해당 json파일은 타입스크립트가 관리해야 하는 이 파일이 포함된.. 2023. 1. 19.