본문 바로가기

CSE/개발

(4)
Type System of TypeScript What is TypeScript? TypeScript는 JavaScript에 타입 추론 기능을 추가한 언어로, MS에서 개발되었고 많은 분야에서 사용되고 있다. 기존의 JavaScript언어는 타입을 엄격하게 관리하지 않아 타입 관련 이슈들이 많았다 (프로그래머가 실수로 잘못 작성한 코드가 멀쩡히 실행되는 경우가 많아 디버깅이 어렵다). 이를 해결하기 위해 'typeof'함수를 이용해 방어적으로 프로그래밍을 해야 했는데, 코드가 굉장히 길어진다는 단점이 있었다. 그래서 이를 해결하고자 TypeScript가 등장했고, JavaScript의 모든 기능을 수행할 수 있으면서 TypeSystem을 도입해 compile time에 타입을 추론해 예상치 못한 에러를 잡아냈다. Soundness 모든 언어에는 각자..
Regex Quantifier 사용시 주의할 점 보통 문자열이나 HTML 코드 등을 파싱 할 때 Regex(Regular Expression, 정규표현식)를 많이 사용한다. Regex를 이용하면 모든 문자열을 효율적으로 표현할 수 있기에 잘 다루면 큰 도움이 된다. 이런 Regex에는 Quantifier라는 수를 표현할 수 있는 문법이 있는데, 주로 다음을 일컫는다. ? : 0번 또는 1번 * : 0번 이상 + : 1번 이상 {N,} : N번 이상 {N,M} : N번 이상 M번 이하 예를 들어, a+은 a가 1번 이상 반복되는 'a', 'aa', 'aaa' 등을 말한다. 이때 주의해야 할 Quantifier는 제일 마지막에 있는 {N,M}이다. 바로 띄어쓰기를 조심해야 하는데, {N, M}과 {N,M}은 엄연히 다른 것으로 후자가 Quantifier의..
새로고침이 안된다면? 웹 개발을 할 때 분명 코드를 바꿨고 새로고침도 했는데도 반영이 안 될 때가 있다. 그럴 때는 우선 컴파일이 잘 되었는지, 코드를 저장했는지 먼저 확인해보자. 그런데도 반영이 안 된다면 Ctrl+Shift+R을 눌러보자. 해결이 될 것이다.
Python Decorator Python 뿐만 아니라 Java, Kotlin 등 많은 언어에서 "@..."와 같은 코드를 볼 수 있다. 이를 Python에서는 Decorator, Java에서는 Annotation이라고 하는데, 이는 특정 함수에 붙어 함수에 특별한 능력을 부여해주는 역할을 한다. 예외 처리를 도맡아 하거나 특정 기능을 수행할 수도 있다. 이런 문법은 주로 개발에서 많이 쓰이는데, 나도 자주 쓰다가 정확하게 어떻게 동작하는지는 최근에서야 알게 되었다. 이 문법을 자주 쓴다면 꼭 알아보자! 이에 대한 자세한 설명은 여기를 참조하자.