게시글
질문&답변
2023.05.15
cpu 연산
먼저 두 가지 개념에 대해 한 번 더 정리하고 설명드리겠습니다.병렬성(Parallelism)병렬성은 두 개 이상의 작업이 실제로 동시에 실행되는 상황.주로 여러 코어를 가진 CPU나 GPU에서 볼 수 있음.각 코어는 독립적으로 작업을 수행할 수 있으므로, 여러 작업을 동시에 실행할 수 있음.동시성(Concurrency)동시성은 두 개 이상의 작업이 동시에 발생하는 것처럼 보이는 상황.실제로는 이러한 작업들이 빠르게 번갈아 가며 실행되는 것이지만, 사용자는 이러한 작업들이 동시에 진행되는 것처럼 느낌.예를 들어, 단일 코어 CPU에서 운영체제는 여러 프로세스나 스레드를 관리하며, 각 작업이 동시에 실행되는 것처럼 보이게 할 수 있음. 이는 각 작업을 빠르게 전환하며 CPU 시간을 분할하는 것으로 가능. 이미지 처리 작업으로 예시를 들어보면, 동시성의 경우, CPU는 이미지의 한 픽셀을 처리한 후 다음 픽셀로 넘어가며, 이를 빠르게 반복합니다. 이는 각 픽셀이 동시에 처리되는 것처럼 보이지만, 실제로는 각 픽셀이 순차적으로 처리됩니다. 반면에 병렬성의 경우, 여러 코어를 가진 CPU나 GPU는 이미지의 여러 픽셀을 동시에 처리할 수 있습니다. 각 코어는 다른 픽셀을 독립적으로 처리하기 때문에, 실제로 여러 작업이 동시에 수행됩니다.동시성, 병렬성 내용 자체가 사실 정말 어려운 개념입니다 ㅎㅎ 강의 내용을 반복해 보시면서, 컴퓨터 공학, 운영체제 쪽으로 깊게 공부하고 싶으시면,쉽게 배우는 운영체제 - YES24 이 책을 빌려서 가볍게 읽어 보시는 것을 추천드립니다. (단순하게 그냥 추천 드리는게 아니라, 저도 직접 읽어봤습니다 ㅎㅎ)추가적으로 궁금하신 내용 있으시면 질문해주세요!
- 0
- 1
- 262
질문&답변
2023.05.14
보너스 강의
안녕하세요 이종은님 :)보너스 강의는 질문에 대한 추가적인 강의가 필요할시에 기존 강의를 업데이트 하거나, 추가하는 강의입니다! 따로 보너스 강의라는 단어로 명시는 안했습니다! 강의 수강하시면서 궁금하신 사항을 질문으로 올려주시거나 메일로 보내주시면, 추가 강의를 제작하거나 글로 답변을 드리겠습니다.만일, 개인적으로 해당 강의의 주제 말고 더 알고 싶은 주제나 궁금한 새로운 주제가 있으시면, 저에게 요청주시면, 검토 후에 강의를 따로 제작하고 무료 쿠폰을 드리고 있습니다.개인적으로 AI를 활용한 강의를 많이 요청 주셔서 따로 강의를 제작하고 있습니다. 출시가 되면, 요청주신 분께 무료 쿠폰을 드릴 예정입니다.감사합니다.
- 0
- 1
- 206
질문&답변
2023.05.14
싱글턴 관련해서 이해가 잘 가지 않습니다
좋은 질문 감사합니다. 앞서 답변에 대해, 명확하게 전달을 못드린 것 같아서 제대로 정리해드리겠습니다.싱글톤의 정의 : 특정 클래스의 인스턴스를 단 하나만 생성함.디자인적 관점 : 싱글톤은 전역 접근 가능하면서도 인스턴스화가 통제된 객체를 제공해서 코드의 일관성을 유지하고 자원 공유를 쉽게 함.메모리 관점 : 싱글톤은 단일 인스턴스만 유지함으로써 메모리 사용량을 최적화하고, 공유 리소스에 대한 중복 생성을 방지함.사실 메모리 관점으로 봤을때, NodeJS에서는 싱글톤패턴 구현이 의미가 없습니다. 이유 : node.js 에서 싱글톤이 필요한 이유가 무엇인가요? - 인프런 | 질문 & 답변 (inflearn.com)하지만, 코드 디자인적 의미로도 중요한 의미를 같기 때문에 이를 설명하고자, app을 하나로 정의하여 설명하였습니다. 실제 싱글톤을 구현하는 예시를 들어서 설명을 드리겠습니다.NodeJS에서 싱글톤 패턴을 사용하려면, (NodeJS의 모듈은 싱글톤과 유사하게 동작하기 때문에), 모듈 시스템을 사용하는 것이 일반적입니다. require() 함수로 모듈을 불러올 때, NodeJS는 모듈의 인스턴스를 생성하고 이를 캐시에 저장합니다. 그 다음부터는 캐시에 있는 동일한 인스턴스를 반환합니다.// mySingleton.js class MySingleton { constructor() { if (!MySingleton.instance) { this.data = []; MySingleton.instance = this; } return MySingleton.instance; } addData(item) { this.data.push(item); } getData() { return this.data; } } module.exports = MySingleton;// app.js const MySingleton = require('./mySingleton'); const singleton1 = new MySingleton(); singleton1.addData('Item 1'); const singleton2 = new MySingleton(); singleton2.addData('Item 2'); console.log(singleton1.getData()); // ['Item 1', 'Item 2'] console.log(singleton2.getData()); // ['Item 1', 'Item 2']위 코드에서 singleton1과 singleton2는 동일한 인스턴스를 참조하며, singleton1에 추가한 데이터를 singleton2에서도 확인하실 수 있습니다. // app.js const MySingleton = require("./mySingleton"); const singleton1 = new MySingleton(); const singleton2 = new MySingleton(); singleton1.user = { hello: "world" }; console.log(singleton1.user); // { hello: 'world' } console.log(singleton2.user); // { hello: 'world' } 위의 코드도 확인해보세요.이제 express 인스턴스도 실험해보면 아래와 같습니다.// app.js const express = require("express"); const app1 = express(); const app2 = express(); app1.user = { hello: "world" }; console.log(app1.user); // { hello: 'world' } console.log(app2.user); // undefined 따라서, const app = express() 이렇게 하나로 정의해서 app 객체만을 사용하면, 의미적으로 싱글톤 패턴과 유사하게 동작하게 동작하는 것을 기대할 수 있습니다.추가적으로 궁금하신 사항 있으시면 답글 달아주세요!
- 3
- 4
- 554
질문&답변
2023.05.12
싱글턴 관련해서 이해가 잘 가지 않습니다
자바에서의 싱글턴과는 다릅니다! server1과 server2는 다른 인스턴스입니다.하나의 Server 인스턴스 내에서 모두 동일한 express.Express 타입의 app을 공유한다는 의미입니다
- 3
- 4
- 554
질문&답변
2023.05.09
깃허브 REAME.md
안녕하세요 본 강의 자료는 아래의 세 가지입니다!! 참고하시면 좋을 것 같습니다.- 강의 코드 : amamov/teaching-async-python: [인프런] 파이썬 동시성 프로그래밍 (feat. FastAPI) (github.com)- 강의 자료 마인드맵 : Yoon - Sang Seok (async-py.netlify.app)- 파이썬설치가이드 : teaching-async-python/2-파이썬-멀티-스레딩과-멀티-프로세스 at main · amamov/teaching-async-python (github.com)혹시 강의의 어떤 부분을 말씀하시는지 제목과 분을 말씀해주시면 조금 더 도움드리겠습니다!!
- 1
- 2
- 390
질문&답변
2023.05.06
@Get(':id') @Get('all')
안녕하세요 게으른 개발자님.질문 주신 내용으로만으로 정확한 원인을 파악하기가 어렵습니다. 짐작해봤을때 node_modules가 꼬이거나, 프로젝트 셋팅이 잘 안되었을때 해당 이슈가 발생하곤 합니다.프로젝트 셋팅을 다시 한번 확인해주시고 node_modules를 삭제하고 다시 실행해주세요
- 0
- 1
- 310
질문&답변
2023.05.06
Mongoose API document
안녕하세요 게으른 개발자님 답변이 늦어서 죄송합니다.인터페이스라고 이해하시면되는데, 해당 인터페이스가 어떤식으로 구현되어 있는지 깊게 파시려면 Github 코드를 뜯어보면 좋습니다. MongoDB | NestJS - A progressive Node.js framework(사진)
- 0
- 1
- 334
질문&답변
2023.05.06
getCurrentCat 에서 req.user
안녕하세요 게으른 개발자님 답변이 늦어 죄송합니다.JwtStrategy에서 validate의 리턴값을 라이브러리에서 request.user로 넣어줍니다.
- 0
- 1
- 524
질문&답변
2023.05.06
Pipe와 middleware와의 차이가 무엇일까요 ?
말씀 주신 것 처럼, 둘 다 클라이언트로부터 데이터를 받는다면, 데이터를 중간중간 가공하여 처리하는 측면에서 같습니다!! 다만, 디테일한 사용 목적과 패턴의 차이라고 이해하시면 좋을 것 같습니다.사용 목적Middleware: 요청과 응답 객체에 접근하여, 로깅, 인증, CORS 설정 등의 공통 작업을 처리하는 데 사용됩니다.Pipe: 데이터 유효성 검사, 형변환, 예외 처리 등을 수행하며, 잘못된 요청을 걸러내거나, 파라미터를 올바른 형태로 변환하여 컨트롤러에 전달하는 데 사용됩니다.실행 순서Middleware: 요청이 들어온 후, 컨트롤러 및 다른 요소들에 앞서 실행됩니다.Pipe: 가드와 인터셉터 사이에 실행되며, 컨트롤러에 데이터를 전달하기 전에 실행됩니다.구현 방식:Middleware: 클래스 또는 함수를 사용하여 구현할 수 있습니다. 클래스 기반 미들웨어는 @Injectable() 데코레이터와 함께 사용되며, NestMiddleware 인터페이스를 구현해야 합니다. 함수형 미들웨어는 단순한 함수로 구현됩니다.Pipe: 클래스 기반으로 구현되며, @Injectable() 데코레이터와 함께 사용되어야 하고 PipeTransform 인터페이스를 구현해야 합니다.결론적으로, Middleware는 요청-응답 주기의 앞단에서 작동하여 공통 작업을 처리하고, Pipe는 데이터 변환 및 유효성 검사를 수행하여 컨트롤러에 데이터를 전달하는 역할을 합니다.++ Middleware는 좀 더 큰 집합의 느낌입니다. 간단한 마이크로 서버를 개발할때에는 Pipe 같은 레이어를 따로 안만들고, "요청 -> 미들웨어 -> 컨트롤러 -> 응답" 이런식으로 레이어를 구성하기도 합니다.
- 3
- 1
- 716
질문&답변
2023.05.06
virtual 필드 만드는 과정에서 id를 찾을 수 없습니다.
Cat 타이핑을 잘 해주셨나요??? 전체 코드 공유 해주시면 도움 드리겠습니다.
- 0
- 1
- 392