전체 글108 TIL : Nestjs, 특정 페이지(URL) 접근만 미들웨어 예외 처리 nest.js 및 ejs 템플릿 엔진 사용환경. - nestjs를 사용하는 이번 팀 프로젝트에서는 클라이언트 사이드에서 페이지 렌더링을 위해 반복적으로 사용되는 코드를 줄이고, 유지보수성을 높이기 위하여 express-ejs-layouts 라이브러리를 사용하기로 하였다. - 이 라이브러리를 사용하기 위하여 기존에는 app.use 전역 미들웨어를 선언하며 header와 footer 부분을 처리하였다. 기존의 코드 및 화면 상태 //main.ts import { ValidationPipe } from '@nestjs/common'; import { NestExpressApplication } from '@nestjs/platform-express'; import { NestFactory } from '@ne.. 개발 학습일지(TIL) 2023. 3. 13. [TIL] : Nest can't resolve dependencies, 의존성 주입! @Injectable() 데코레이터 잘못 쓰면 에러가 발생한다. 문제상황 및 에러 메시지 [Nest] 19112 - 2023. 03. 12. 오후 9:22:49 ERROR [ExceptionHandler] Nest can't resolve dependencies of the SearcherService (?). Please make sure that the argument SearcherRepositoryRepository at index [0] is available in the SearcherModule context. Potential solutions: - Is SearcherModule a valid NestJS module? - If SearcherRepositoryRepository is a provider, is it part of the current.. 개발 학습일지(TIL) 2023. 3. 12. [TIL] CSS 적용이 안 되는 이유. 일부 페이지만 CSS 적용 안 되는 오류 문제 상황 nestjs 환경에서 ejs, express-ejs-layouts 라이브러리를 사용하여 개발을 하고 있다. 메인페이지/ 목록 조회 페이지를 구현할 때까지는 CSS 적용에 문제가 있다는 것을 느끼지 못했다. 그러나 개인 유저 페이지를 구현하고 나니, 유저 개인 페이지에 CSS 가 적용되지 않는 것을 알게 됐다. 시도1 사진 좌측의 디렉토리 구조/폴더 경로를 변경해본다. 폴더를 새로 만들어서, 파일 위치를 변경해보았다. 이리저리 시도해보았지만 변함이 없었다. 여전히 어떤 페이지는 CSS 적용이 되고, 개인 유저페이지는 적용이 되지 않았다. 시도2 아래 블로그를 참고해보았다. https://velog.io/@sungmo738/CSS-link%EA%B0%80-%EC%95%88%EB%90%A0%EB%9.. 개발 학습일지(TIL) 2023. 3. 11. [TIL] : ERROR [ExceptionsHandler] No metadata for * was found. EntityMetadataNotFoundError: No metadata for * was found. 이 에러로 인해 고생하고 있었다. ERROR [ExceptionsHandler] No metadata for "SearcherRepository" was found. EntityMetadataNotFoundError: No metadata for "SearcherRepository" was found. SearcherRepository 파일을 찾을 수 없다는 에러이다. 구글링을 해보면 이 경우 두 가지가 문제라며 해결 방법을 제시한다. 1) 해당 모듈의 Entity파일에 @Entitiy() 데코레이터를 적지 않은 경우 (위 사진은 정상상태) 2) entity 경로가 제대로 설정 않은 경우 (위 사진도 문제가 없다) 하지만 나의 경우, 위의 문제가 없었는데 계속 오류가 생겼다. 문제는 다른 곳에 있었다. .. 개발 학습일지(TIL) 2023. 3. 8. [TIL] : Nestjs 에서 express-ejs-layouts 사용하기 require() vs import() 작업 배경 및 문제상황 Nest.js 사용환경이다. - 기존에 node.js, express에서 express-ejs-layouts 라이브러리를 잘 사용한 바가 있었다. - nestjs를 사용하는 이번 프로젝트에서도 express-ejs-layouts 사용하고 싶었다. 그래서 메인으로 사용하고 있는 main.ts에 다음과 같이 ejs 설정 및 express-ejs-layouts작업을 해주었다. - 참고로, express-ejs-layouts 라이브러리는 ejs를 사용하기 위한 기본 설정 이외에 app.use를 사용한 미들웨어를 통해 프로그램이 작동하도록 설정시켜줘야 한다. import { ValidationPipe } from '@nestjs/common'; import { NestExpressAppli.. 개발 학습일지(TIL) 2023. 3. 6. PC 브라우저의 동영상이 깜빡일 때 해법(유튜브, 넷플릭스 등) 사용환경 노트북에서 AMD의 라이젠 르누아르 4500U을 사용하고 있다. 브라우저 불문 증상 발생 문제상황 유튜브 영상 및 넷플릭스 영상 등 웹브라우저 혹은 기타 프로그램을 통해서 동영상을 재생하면 영상이 (더 밝게 혹은 어둡게) 깜빡거리는(혹은 번쩍이는) 현상이 나탄다. 아래 영상 25초부터 나오는 것과 같은 현상이 나타났다. https://youtu.be/ER7JmH5Ve8k?t=45 전에는 안 나타난 것 같은데, 언젠가부터 생겼고. 이것은 영상 시청 할 때 꽤나 거슬리게했다. 시도1 크롬, 엣지, 웨일 등 브라우저를 바꾸어도 문제는 반복되었다. 윈도우 스토어에서 제공하는 넷플릭스 자체 앱을 사용해도 문제는 발생하였다. 이런 경우, 많은 유튜브, 혹은 블로그에서는 브라우저 설정에서 하드웨어 가속을 끄.. 기타 2023. 2. 24. 객체 지향 설계 5원칙(SOLID) - 의존 역전 원칙 DIP [핵심간단] 의존성 역전 원칙 (Dependency Inversion Principle, DIP) - "의존 관계를 맺을 때, 변하기 쉬운(구체적인) 것보다는 변하기 어려운(추상적인) 것에 의존해야한다." - “추상화에 의존해야지, 구체화에 의존하면 안된다.” 구체화된 클래스에 의존하기 보다는 추상 클래스나 인터페이스와 관계를 맺는 것을 의미한다. 간단히 말해서, 추상성에 의존하라는 원칙이다. 이를 통해 비즈니스와 관련된 부분이 세부 사항에는 의존하지 않고자 한다. 고수준 계층의 모듈(클래스)은 저수준 계층의 모듈(클래스)이 있다고 하자. - 고수준: 입력과 출력에 먼 추상화된, 비즈니스적인 부분을 다루는 - 저수준: 고수준 모듈에서 기능을 수행하기 위해 도와주는 역할로, 입력과 출력으로부터 가까운 HTTP, 데이터.. 개발기초 2023. 2. 22. 객체 지향 설계 5원칙(SOLID) - 인터페이스 분리 원칙 ISP [핵심간단] 인터페이스 분리 원칙 (Interface segregation principle, ISP) - "클라이언트는 사용하지 않는 인터페이스에 의존해서는 안 된다." - "특정 클라이언트를 위한 인터페이스 여러 개가 인터페이스 하나보다 낫다" 사용자가 필요하는 기능만 제공하도록 인터페이스는 최대한 세부적으로, 작게 유지해야한다는 말이다. 구체적으로, 특정 클라이언트에 대해서 인터페이스를 구성할 때 한 개의 범용으로 구성하기보다, 여러 개로 구성하는 것이 나은 것이다. 클라이언트가 사용하지 않는 인터페이스에 변경이 발생하더라도 영향을 받지 않도록 만들어야 한다. 만약 불필요한 인터페이스에 의존하면 예상치 못한 문제에 빠질 수 있다. 사용 기능에 따라 인터페이스를 분리한다면 클라이언트는 그 의존도를 낮출 수 있다... 개발기초 2023. 2. 21. 객체 지향 설계 5원칙(SOLID) - 리스코프 치환 원칙 LSP [핵심간단] SRP, OCP 참고 https://veams.tistory.com/65 객체 지향 설계 5원칙(SOLID) - 단일책임원칙SRP, 개방폐쇄원칙 OCP 객체지향 프로그래밍, 어떤 기준으로 설계하면 좋을까? 객체 지향 설계를 할 때, 시간이 지난 후에도 유지 보수와 확장이 쉬운 프로그래밍을 하기 위한 기본 원칙이 5개가 존재한다. 개발자라면 veams.tistory.com 리스코프 치환 원칙 (LSP, Liskov substitution principle) - "서브타입(derived)은 언제나 상위타입(base)으로 교체가 가능해야 한다." 객체 지향 언어에서는 객체의 상속이 일어나며 부모/자식 관계가 정의된다. 하지만 이 과정에서 상속 관계를 잘못 설정하는 경우가 생긴다. LSP 원칙은 올바른 상속은 .. 개발기초 2023. 2. 21. 객체 지향 설계 5원칙(SOLID) - 단일책임원칙SRP, 개방폐쇄원칙 OCP 객체지향 프로그래밍, 어떤 기준으로 설계하면 좋을까? 객체 지향 설계를 할 때, 시간이 지난 후에도 유지 보수와 확장이 쉬운 프로그래밍을 하기 위한 기본 원칙이 5개가 존재한다. 개발자라면 소프트웨어를 효율적이면서도 안전하고 정확하게 설계하고 싶을 것이다. 이 원칙들은 작성한 코드의 가독성을 높이고, 소프트웨어의 확장이 가능할 수 있도록 돕기 위해 필요한 전략이기도 하다. 여기서 이 5가지 원칙을 기억하기 쉽도록 각 약어의 맨 앞글자를 따서 SOLID 원칙으로 부르게 되었다. 단일 책임 원칙(SRP) 개방 폐쇄 원칙(OCP) 리스코프 치환 원칙(LSP) 인터페이스 분리 원칙(ISP) 의존관계 역전 원칙(DIP) SRP, OCP, LSP, ISP, DIP ==> SOLID 각 원칙이 무엇을 의미하는지, 간.. 개발기초 2023. 2. 21. OOP 객체 지향 프로그래밍이란? [핵심간단정리] 객체지향 프로그래밍 (object-oriented programming, OOP) PHP, 파이썬, 자바스크립트, 자바, C#, C++, 루비, 스위프트 등의 프로그래밍 언어는 객체 지향 패러다임에 기반에하여 만들어졌다. 객체지향 프로그래밍은 객체(object)라는 개념을 중심으로 프로그래밍을 한다는 의미로, 소프트웨어 프로그램 동작의 주체가 객체인 것을 뜻한다. 객체는 '실제로 존재하는 사물'로, 다소 추상적이긴 하지만 세상에 존재하는 모든 대상을 의미한다. 이러한 대상은 구체적인 사물, 사람, 어떤 개념이 될 수 있다. 객체지향 프로그램에 대비한 패러다임으로 '절차' 지향 프로그래밍(Procedural Oriented Programming, POP)이 있다. 기존의 이 절차지향 언어는 유지보수의 어려.. 개발기초 2023. 2. 20. [협업회고,TIL] Node.js 4번째 팀 프로젝트 - 이커머스(쇼핑몰) https://youtu.be/MWd31ouFq_8 1. 프로젝트 소개 프로젝트명: 오레오오조 베이커리 프로젝트 기간 : 2023.02.01. ~ 2023.02.08. 간단 설명: 빵집에 들어서 빵들을 골라담아 구매하는 것 같은 간편함! OREO-OZO의 마음과 열정이 담긴 Bakery Shop에 놀러오세요. 핵심 기능 상품 구매 실시간 상담 채팅 관리자 백오피스 - 상품 관리 및 회원 관리, 주문 관리 개발 GitHub : https://github.com/KimHyungJip/oreo 시연 영상 : https://youtu.be/MWd31ouFq_8 2. 개발 인원 및 역할 장준호: 회원가입 및 로그인, 마이페이지 회원 관리, 실시간 채팅 이호승: 관리자페이지 - 상품 관리, 회원 관리, 총 주문 목.. 프로젝트 회고 2023. 2. 8. 이전 1 2 3 4 5 6 7 8 9 다음