분류 전체보기(103)
-
VS Code typescript import 시 type으로 import되는 문제
개요Typescript 기반 프로젝트에서 클래스나 타입 등을 import 할때 IDE(VS Code)에 의해 Auto suggestion 툴팁을 볼 수 있다.해당 클래스를 import 하겠다고 enter를 입력하게 되면 import type으로 불러온다.이때 문제점은 다음과 같다. 1. Controller에서 @Body 데코레이터에 클래스를 명시하고 클래스 프로퍼티에 class-validator를 통해 유효성 검사를 실시할 때 해당 클래스를 import type으로 타입을 명시한다면 validator가 동작하지 않는다.2. Service, Repository 등의 의존성 주입이 필요한 객체를 사용하는데 이때도 역시 import type으로 의존성 주입이 실행될 경우 어플리케이션 실행 과정에서 에러가 발생..
2024.11.07 -
encodeURI와 encodeURIComponent의 차이점
개요Javascript의 빌트인 전역 함수인 encodeURI와 encodeURIComponent의 차이점에 대해 이해하고 올바른 사용법에 대해 알아본다. URL을 인코딩 해야하는 이유?URI는 우리가 서버 간 통신에서 서로를 식별할 수 있는 유일한 식별자이다. 따라서 영어가 세계 공통 언어이듯이 URI도 이에 맞게 통일 시켜줘야 한다. URI가 변환될 경우 원치 않은 동작이 일어날 수 있기 때문이다. 예를 들어 URL에 한글이 포함돼있는 경우를 생각해보자. 영어를 제외한 다른 나라의 언어는 UTF-8의 형태로 인코딩 돼야만 다른 환경에서도 올바르게 한글로 된 URI를 인식할 수 있을 것이다. 따라서 URL은 아스키 문자로 인코딩 해야 안전한 URI라고 할 수 있다.encodeURIencodeURI는 U..
2024.09.04 -
정보처리기사 1회 필기, 실기 합격 후기(feat. 비전공자, 고졸, 교재 x, 참고자료)
개요필자는 올해 미뤄왔던 정보처리기사 1회 시험에 최종 합격했다.필기 시험은 76점, 실기 시험은 65점이다.작년에 국비 학원을 수료하고 만 1년차가 다되가는 백엔드 개발자이며 최종학력은 고졸이다.그럼에도 불구하고 나름 단기간에 성공적으로 합격했다고 생각해 관련 자격증을 준비하는 이들에게 도움이 될까 싶어 글을 작성한다.글을 작성하기에 앞서 이번 1회차의 실기 시험이 다른 회차보다 합격률이 높았던 점을 감안하고 봐주면 감사하겠다.확실하게 합격하기 위해서는 이 방법대로 하기에는 조금 부족함이 있을 수 있다. 정말 교재를 사지 않고 합격한 것이 맞는가?객관적으로 봤을 때 정보처리기사 필기 시험의 난이도는 그리 높지 않은 편이고 필자는 마이스터고 출신이라 기능사, 기사 시험 등의 자격증 시험이 어떻게 출제되는..
2024.07.29 -
[ Javascript ] 함수 호이스팅, 함수 선언문과 표현식, 함수 리터럴
개요자바스크립트에서 함수의 개념은 무엇이고 자바스크립트 엔진에서 함수가 어떻게 할당되고 선언되고 동작하는지에 대해 알아본다. 자바스크립트에서 함수란?자바스크립트에서 함수는 일급 객체로 분류된다. 여기서 중요한 것은 함수도 결국은 객체로 이루어져 있다는 것이다. 일급 객체는 객체가 값으로 사용될 수 있음을 뜻한다. 함수는 객체의 프로퍼티에 위치할 수도 있고 변수에 할당될 수도 있으며 배열의 요소가 될 수도 있는 것이다. 함수를 호출할 수 있는 원리우리는 당연하게도 함수를 작성하고 나서 해당 함수의 이름 뒤에 소괄호를 붙여 함수를 호출한다.그러나 원래는 우리가 함수를 작성할때 function옆에 입력했던 함수 이름은 함수 내부에서만 사용할 수 있는 식별자이다.따라서 외부에서는 해당 함수를 식별하는 식..
2024.07.28 -
[ Javascript ] 변수 및 객체가 복사 및 할당되는 원리 & 얕은 복사와 깊은 복사
개요Javascript에서 변수 및 객체가 내부적으로 어떤 동작 원리에 의해 복사되고 할당되는지 알아본다. Javascript에는 C처러 포인터의 개념이 없기 때문에 메모리에 변수의 값을 할당하는 부분을 신경써주지 않아도 된다. 그렇다면 변수나 객체를 복사했을 때는 어떻게 될까?변수의 경우에는 결론적으로 말하자면 서로 같은 원시타입(primitive type)이 값을 갖고 있다 하더라도 서로 해당 값을 가르키는 메모리의 주소가 다르다. 변수를 2개 선언했다면 식별자도 다를 것이다.또한 Javascript에서는 객체를 변경가능하게끔 설계했다. 만약 위에서 설명한 변수가 복사되는 원리로 객체를 복사하게 되면 오버헤드가 커지고 성능이 저하 되게 될 것이다. 객체는 훨씬 더 많은 메모리를 사용할 것이기 때문이다..
2024.07.25 -
[ Javascript ] 암묵적 캐스팅과 산술 연산자 +의 문자열 형변환
개요기본적으로 프로그래밍 언어에서 공통적으로 쓰이는 개념들은 제외하고 새롭게 알게된 사실들에 대해 정의한다. 암묵적 캐스팅과 +연산자암묵적 캐스팅은 연산자에 의해 결과값이 자동으로 타입 변환(캐스팅) 되는 것을 뜻한다.예를 들면 자바에서 double타입의 수와 정수를 + 연산자로 더하게 되면 결과값은 자동으로 double타입이 되는 것을 뜻한다.Javascript에서도 이와 같이 암묵적 캐스팅이 존재한다.그 중 눈여겨 볼 것은 + 연산자이다.일반적으로 +연산자는 산술을 위해 사용되지만 피연산자가 문자열일 경우 얘기가 다르다.console.log(1+'1'); // 11 위와 같이 1이라는 숫자를 문자열로 1로 치환한 후에 우항의 문자열 1과 합쳐져 type = string인 11이라는 값이 생성된다.그러..
2024.07.19