전체 글
-
(맥북에 pyenv설치)맥북 m1 Sonoma 기준 brew update 멈춤 현상카테고리 없음 2024. 7. 19. 18:04
mac os Sonoma 14.5 버전 기준brew tap --repair/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 해결! 다른 문제 발생pyenv install 3.7.6 설치가 안됨. configure: error: Unexpected output of 'arch' on OSX 비슷한 오류들이 2021 2022 나오는거 보면 맥 os 버전업 될때마다 이런 에러 계속 나오나보다. python 공홈에서 최신 버전을 찾아서 설치 해보았다. pyenv install 3.12.4 20240719 기준 최신버전 ModuleNotFoundError: No module named '_l..
-
Javascript getter와 setter에 대해서객체지향 2024. 7. 17. 16:55
상태 값에 this._변수명 으로 짓는 이유class Person { constructor(name, age) { console.log("여기 실행"); this.name = name; this.age = age; } get age() { return this._age; } set age(value) { console.log("setter 호출"); this.age = value this._age가 아니라 this.age로 상태 변수를 지정 해두면javascript에서 setter를 호출하는 방법은user.age = -1 이다결국 const user = new User("hello", "world", -1);는set함수는 value값으로 user.age값을 자..
-
dto에서 기본 타입만 사용 하고 계신가요백엔드/견고한 백엔드 만들기 2024. 7. 17. 12:23
Typescript에서 class dto에서 기본 타입만 사용하고 있습니까string, boolean, number ... 특정 객체로 직렬화와 저장 할때 다시 역직렬화code snippet으로 꼭 구현 해야 되는 구현체를 implements 받아서 구현 룰을 정해야됨.custom guard나 custom pipe 같은 느낌으로이름은 뭐라 할지 모르겠는데 해당 기능을 필요할때마다 조금 머리속으로 생각해서 guard pipe 느낌으로 네이밍 규칙 부여하고 export class `${클래스명}``${머라할지prefix}` implements `${구조를 정의하는 구현체}` { constructor(private readonly groupEventsService: GroupEventsService) {} ..
-
외부 api사용시 class-transformer의 클래스 인스턴스화 하기Nest.js/class-transformer 2024. 7. 15. 15:51
외부에서 받은 response 결과가 리터럴 객체라서 추가 가공은 별도의 함수에서 처리 해야 하는데 이로 인해 상태와 행위가 따로 노는 응집력이 떨어지는 코드가 된다.그래서 class-transformer를 이용하여 클래스 인스턴스화 하여 받은 값 가공 로직을 클래스 내부에 둔다면 상태와 행위가 한 곳에 있는 응집력 있는 코드가 된다. 1. @Expose 데코레이터로 카멜케이스 스네이크2. @Exclude 데코레이터로 특정 필드 제외3. @Type 데코레이터로 중첩 객체 변환4. @Transforemr 데코레이터를 이용한 데이터 가공 Reference- (https://jojoldu.tistory.com/617)
-
Node.js에서 URL객체를 이용하여 쿼리 스트링을 만들때 인코딩 문제Node.js 2024. 7. 14. 18:48
공공 데이터 포털의 api를 이용할 때 key값을 쿼리 스트링으로 보내야 되는데 이때 URL 객체를 이용하여 만들게 될때 의도와 다른 값이 들어가는것을 확인 할 수 있다.73gWZtFI9JQ0Bg%3D%3Dconst newUrl = new URL(`${this.endPoint}`);newUrl.searchParams.set('serviceKey', serviceKey); search: '?serviceKey=73gWZtFI9JQ0Bg%253D%253D',searchParams: URLSearchParams { ...'serviceKey' => '73gWZtFI9JQ0Bg%3D%3D' }, ...}URL에서 제공하는 메서드인append 와 set 둘다 사용해도 결과는 똑같다.왜 이러한 현상이 일어나냐면 7..
-
xml-parser를 위한 fast-xml-parser 라이브러리Javascript/라이브러리 및 API 2024. 7. 14. 16:07
공공데이터포털에서 제공하는 Api를 호출 했을때 굉장히 불편함을 느끼는것이 2가지가 있다.1. 분명히 http 통신인데 성공일때든 실패일때든 http Status 200으로 성공으로 무조건 보내준다.2. 실패 했을때 status 200으로 성공 상태로 에러 주는것도 불편한데 심지어 xml로 준다. 핸들링 가능한 모든 에러는 다 map으로 이동 된다. catchError는 http request error가 아닌 요청 자체를 못보내는 케이스나 그럴때나 핸들링 가능할것 같다. 예를들면 틀린 url에 요청을 보냈거나 했을때 즉 httpService에러일때나 catchError를 사용될것이다. https://www.npmjs.com/package/fast-xml-parser fast-xml-parserValid..
-
class-validator의 `@ValidateNested` 데코레이터의 오해와 진실Nest.js/class-validator 2024. 7. 9. 16:45
이러한 중첩 객체가 있다면 @ValidateNested 데코레이터와 @Type 데코레이터를 사용 해주어야 한다. 그러나 만약 request-dto가 아닌 response-dto라면 어떻게 해야할까? GorupEventItemResDto인데 해당 Response Dto에는 response 하기 때문에 @Type 데코레이터만 사용해도 중첩 객체의 @Trsnfomer 데코레이터나 @Exclude @Expose 작업 같은것들이 정상적으로 실행된다. 자세한건 아래 Reference에 class-transformer 공식문서를 참고하면 된다. 결론적으로 @ValidateNested 데코레이터는 애초에 class-validator에서 가져오는것이고 중첩객체의 validation이 필요할때 사용 하는 데코레이터이고 만..