전체 글59 Nest.js interface 구현체에 DI 적용하기 Nest.js 에서 interface는 컴파일 환경에서만 존재하고 런타임 환경에서는 사라지기 때문에 interface를 구현한 클래스는 Nest.js의 DI컨테이너가 해당 컨테이너를 찾지 못한다. 해결방법 // test.interface.ts export interface Test { getHello(): string; } // test-impl.service.ts import { Injectable } from '@nestjs/common'; import { Test } from './test.interface'; @Injectable() export class TestImpl implements Test { getHello(): string { return 'Hello World!'; } } // a.. 2023. 3. 13. HTTP Status Code (2xx, 4xx, 5xx) 2xx (Successful): 요청 정상 처리 200 OK : 요청 성공 201 Created : 요청 성공해서 리소스가 생성됨 - 생성된 리소스는 응답의 Location 헤더 필드로 식별 202 Accepted : 요청이 접수되었으나 처리가 완료되지 않았음 - 배치 처리 같은 곳에서 사용 (요청 접수 후 1시간 뒤에 배치 프로세스가 요청을 처리함) 204 No Content : 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음 - 웹 문서 편집기에서 save 버튼 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 400 Bad Request : 클라이언트가 잘못된 요청을 해서 서버가 요청을 처리할 - 요청 파라미터가 잘못.. 2023. 3. 10. HashMap vs ConcurrentHashMap 2023. 3. 5. 좋은 객체 지향 설계의 5가지 원칙(SOLID) SRP: 단일 책임 원칙(Single Responsibility Principle) 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임은 문맥과 상황에 따라 다르며 클 수 있고 작을 수 있다. -> 변경이 있을때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것 OCP: 개방-폐쇄 원칙 (Open/Closed Principle) 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. 확장을 하려면 기존 코드를 변경하는 것이 당연한데 이게 뭐지??.. 다형성을 활용해보자. 인터페이스를 구현한 객체를 바꿔서 사용하면 될듯! 하지만 결국 코드의 변경은 불가피하다 -> Dependency Injection으로 해결 LSP: 리스코프 치환 원칙 (Liskov Substitution Principle.. 2023. 3. 5. 좋은 객체 지향 프로그래밍 객체 지향 프로그래밍? 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지 를 주고받고, 데이터를 처리할 수 있다. -> 협력 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다 유연하고 변경이 용이하게 설계 레고 블럭 조립하듯이 키보드 마우스 갈아 끼우듯이 컴퓨터 부품 갈아 끼우듯이 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법 객체 지향 프로그래밍은 다음 한 문장으로 정리 할 수 있다. '객체들의 협력으로 프로그램 작동하며 이때 각 객체들은 유연하고 변경이 용이하게 만들어야 한다' 만약, '운전자' 객체와 .. 2023. 3. 5. 이전 1 ··· 7 8 9 10 다음