묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
BadHeaderError at /accounts/signup/
심지어는이런 에러까지 뜨더라구요.이것과 관련하여서는 장고 공식문서에 나온대로 예외처리를class User(AbstractUser): website_url = models.URLField(blank = True) bio = models.TextField(blank = True) def send_welcome_email(self): subject = render_to_string('accounts/welcome_email_subject.txt', { 'user': self }) content = render_to_string('accounts/welcome_email_content.txt',{ 'user': self }) # 여기서 settings는 django.conf라는 곳에서 임포트 해오는 것이고 # 기초 settings.py의 이름이 변하더라도 거기서 가져오는 것 같다. # 문제 생길 시, 추측이 아닐 수 있으니 settings를 common으로 변경해주자. sender_email = settings.WELCOME_EMAIL_SENDER if subject and content and sender_email: try: # 여기서 self.email의 의미는 User마다 email로 가입이 될텐데, 그 주소가 수신주소가 되는것이다. send_mail(subject, content, sender_email, [self.email], fail_silently=False) except BadHeaderError: return HttpResponse('Invalid Header found.') return HttpResponseRedirect('/') else: # In reality we'd use a form class # to get proper validation errors. return HttpResponse('Make sure all fields are entered and valid.') # save할때마다 호출 -> which mean is User가 생성될때마다 # 이런식의 로직 구현이 가능하다. def save(self, *args, **kwargs): is_created = (self.pk == None) super().save(*args, **kwargs) if is_created: pass이렇게 중간에 try, except로 처리해주었는데, 이렇게 해도 진행에 지장은 없을까요?애초에 이 에러가 왜 발생했는지도 이해가 잘갑니다.에러메세지를 읽어봐도 두루뭉술하게 Header values can't newlines 라고 되어있으니, 뭐가 문제인지도 파악이 어렵구요 ㅠㅠ
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
NoReverseMatch at /accounts/signup/
안녕하세요 선생님 ㅠㅠ연달아서 에러가 빵빵 터지네요NoReverseMatch at /accounts/signup/Reverse for 'pydenticon_image' with keyword arguments '{'data': ''}' not found. 1 pattern(s) tried: ['identicon/image/(?P<data>.+)/\\Z']인데요.문제가 되는 부분은<img src="{% url 'pydenticon_image' data=user.username %}" style="width: 24px; height: 24px;">이 부분으로 나옵니다.Error during template rendering In template /Users/daniel_choi/Desktop/total_projects/instagram_second/templates/layout.html, error at line 77 Reverse for 'pydenticon_image' with keyword arguments '{'data': ''}' not found. 1 pattern(s) tried: ['identicon/image/(?P<data>.+)/\\Z']이게 에러 추가 메세지 이구요.하지만 이것과 관련하여는 잘 작동하다가 그냥 아무것도 만진것없이 echo 쪽만 들락거리고 signup 시도했던 것 밖에 없는데, 되다가 갑자기 에러가 나니깐 당황스럽네요;(물론 admin을 제외한 계정을 계속해서 삭제하고 시도하긴 했습니다.)from django_pydenticon.views import image as pydenticon_image urlpatterns = [ path('identicon/image/<path:data>/', pydenticon_image, name = 'pydenticon_image') ]이렇게 되어있구요.accounts/forms.py에서도 User모델 상속 받고, class Meta로fields 중에서 username을 분명히 오버라이드 시킨것도 확인이 되는데, 왜 이런 에러가 발생하는지 모르겠습니다! ㅠㅠ 이거는 추가적으로 몇번 테스트를해보니깐1.계정을 생성한다2.SMTP에러가 뜬다.3.admin페이지에 들어가서 방금 생성된 계정을 삭제한다.4.다시 /accounts/signup페이지에 접속시도한다.5.<img src="{% url 'pydenticon_image' data=user.username %}" style="width: 24px; height: 24px;">관련된 reversematch에러가 뜬다.6.admin페이지에서 admin계정으로 로그인을 하고 accounts/signup 페이지로 와야 비로소 이 reversematch 에러가 뜨지 않습니다. #번외번외 적으로는 분명 계정을 생성했고, admin 페이지에서도 2개의 추가계정이 확인되는데, Django administration(어드민페이지 로그인창)을 통해서 로그인하려고 하면 비밀번호를 맞게 입력해도 로그인이 안됩니다;
-
미해결Node.js에 TypeScript 적용하기(feat. NodeBird)
Sequelize constructor.primaryKeyAttributes 오류
안녕하세요 제로초님 이전에 알려주신 Sequelize 타이핑 덕뿐에 문제 잘 해결했습니다.[0] Executing (default): SELECT `id`, `email`, `nick`, `password`, `provider`, `snsId`, `createdAt`, `updatedAt`, `de letedAt` FROM `users` AS `User` WHERE (`User`.`deletedAt` IS NULL AND `User`.`id` = 1); [0] TypeError: Cannot read properties of undefined (reading 'length') [0] at Box._initValues (C:\workspace\Dev-Mark\server\node_modules\sequelize\lib\model.js:130:49) [0] at new Model (C:\workspace\Dev-Mark\server\node_modules\sequelize\lib\model.js:116:10) [0] at new Box (C:\workspace\Dev-Mark\server\models\box.js:31:1) [0] at Box.build (C:\workspace\Dev-Mark\server\node_modules\sequelize\lib\model.js:1326:12) [0] at Box.create (C:\workspace\Dev-Mark\server\node_modules\sequelize\lib\model.js:1344:23) [0] at C:\workspace\Dev-Mark\server\controller\box.js:36:44 [0] at Generator.next (<anonymous>) [0] at C:\workspace\Dev-Mark\server\controller\box.js:8:71 [0] at new Promise (<anonymous>) [0] at __awaiter (C:\workspace\Dev-Mark\server\controller\box.js:4:12) [0] C:\workspace\Dev-Mark\server\node_modules\sequelize\lib\model.js:83 [0] for (const key of Object.keys(this.constructor._attributeManipulation)) { [0] ^ [0] [0] TypeError: Cannot convert undefined or null to object [0] at Function.keys (<anonymous>) [0] at Timeout._onTimeout (C:\workspace\Dev-Mark\server\node_modules\sequelize\lib\model.js:83:34) [0] at listOnTimeout (node:internal/timers:564:17) [0] at process.processTimers (node:internal/timers:507:7) [0] [0] Node.js v18.13.0 [1] [HPM] Error occurred while proxying request localhost:3000/api/box/ to http://localhost:5000/ [ECONNRESET] (https ://nodejs.org/api/errors.html#errors_common_system_errors) [0] npm run server exited with code 1 --> Sending SIGTERM to other processes.. [1] npm run client exited with code 1이번에는 라는 오류가 나오는데요,stackoverflow를 읽어보니 default value를 지정하라는 말도 있고 init을 하지 않았다는 말도 있는데 둘 다 제 케이스에는 해당하지 않는 것 같습니다.sequelize 공식문서에서도 읽어보았지만 문제가 뭔지 잘 모르겠습니다...Box.js (변환)"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const sequelize_1 = __importStar(require("sequelize")); const user_js_1 = __importDefault(require("./user.js")); class Box extends sequelize_1.Model { static initiate(sequelize) { Box.init({ id: { type: sequelize_1.default.INTEGER, primaryKey: true, autoIncrement: true, }, box: { type: sequelize_1.default.STRING(15), allowNull: false, }, img: { type: sequelize_1.default.STRING(200), allowNull: true, }, createdAt: sequelize_1.default.DATE, updatedAt: sequelize_1.default.DATE, }, { sequelize, timestamps: true, underscored: false, modelName: "Box", tableName: "boxs", paranoid: false, charset: "utf8mb4", collate: "utf8mb4_general_ci", }); } static associate() { Box.belongsTo(user_js_1.default); } } exports.default = Box; box.tsimport Sequelize, { CreationOptional, InferAttributes, InferCreationAttributes, Model, ForeignKey, } from "sequelize"; import User from "./user.js"; class Box extends Model<InferAttributes<Box>, InferCreationAttributes<Box>> { declare id: CreationOptional<number>; declare box: string; declare img: string; declare createdAt: CreationOptional<Date>; declare updatedAt: CreationOptional<Date>; declare UserId: ForeignKey<User["id"]>; static initiate(sequelize: Sequelize.Sequelize) { Box.init( { id: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true, }, box: { type: Sequelize.STRING(15), allowNull: false, }, img: { type: Sequelize.STRING(200), allowNull: true, }, createdAt: Sequelize.DATE, updatedAt: Sequelize.DATE, }, { sequelize, timestamps: true, underscored: false, modelName: "Box", tableName: "boxs", paranoid: false, charset: "utf8mb4", collate: "utf8mb4_general_ci", } ); } static associate() { Box.belongsTo(User); } } export default Box; user.tsimport Sequelize, { CreationOptional, InferAttributes, InferCreationAttributes, Model, BelongsToManyAddAssociationMixin, NonAttribute, } from "sequelize"; class User extends Model<InferAttributes<User>, InferCreationAttributes<User>> { declare id: CreationOptional<number>; // 'CreationOptional' is a special type that marks the field as optional // id can be undefined during creation when using `autoIncrement` declare email: string; declare nick: string; declare password: CreationOptional<string>; declare provider: CreationOptional<string>; declare snsId: CreationOptional<string>; declare createdAt: CreationOptional<Date>; // createdAt can be undefined during creation declare updatedAt: CreationOptional<Date>; // updatedAt can be undefined during creation declare deletedAt: CreationOptional<Date>; // ... static initiate(sequelize: Sequelize.Sequelize) { User.init( { id: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true, }, email: { type: Sequelize.STRING(40), allowNull: true, unique: true, }, nick: { type: Sequelize.STRING(15), allowNull: false, }, password: { type: Sequelize.STRING(100), allowNull: true, }, provider: { type: Sequelize.ENUM("local", "kakao", "github"), allowNull: false, defaultValue: "local", }, snsId: { type: Sequelize.STRING(30), allowNull: true, }, createdAt: Sequelize.DATE, updatedAt: Sequelize.DATE, deletedAt: Sequelize.DATE, }, { sequelize, timestamps: true, underscored: false, modelName: "User", tableName: "users", paranoid: true, charset: "utf8", collate: "utf8_general_ci", } ); } static associate() { } } export default User; index.tsimport Sequelize from 'sequelize'; import configObj from '../config/config.js'; import User from './user.js'; import Post from './post.js'; import Hashtag from './hashtag.js'; import Alarm from './alarm.js'; import Bookmark from './bookmark.js'; import Box from './Box.js'; const env = process.env.NODE_ENV as 'production' | 'test' || 'development'; const config = configObj[env]; export const sequelize = new Sequelize.Sequelize( config.database, config.username, config.password, config, ); Alarm.initiate(sequelize); Bookmark.initiate(sequelize); Box.initiate(sequelize); Hashtag.initiate(sequelize); Post.initiate(sequelize); User.initiate(sequelize); Alarm.associate(); Bookmark.associate(); Box.associate(); Hashtag.associate(); Post.associate(); User.associate();
-
해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
gcd 최대공약수
안녕하세요 선생님정보 올림피아드같은 대회에서는 gcd같은 함수를 사용할 수 있을까요?만약 최대공약수를 구하는 문제가 나온다면gcd를 이용해서 풀어도 되는건가요? 아니면 최대공약수를 구하는 코드를 작성해야 하나요? 그리고, 혹시 파이썬 내장함수 math의 gcd 함수가 작동되는 원리를 알고계신가요?? 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
@beforeEach 사용하는 이유가 궁금합니다.
@beforeEach 를 사용하면 모든 테스트는 자신이 실행되기 전에 이 작업을 수행한다 라고 되어있는데 MemberServiceTest 부분에서 @beforeEach를 안쓰고MemberService memberService; AppConfig appConfig = new AppConfig(); memberService = appConfig.memberService();위와같이 쓰니 오류(Unknown class: 'memberService')가 났습니다.MemberService memberService; @BeforeEach public void beforeEach(){ AppConfig appConfig = new AppConfig(); memberService = appConfig.memberService(); }위의 코드처럼 @BeforeEach 사용해야 appConfig와 memberService를 정의 할 수 있는 이유가 궁금하며 @BeforeEach가 없으면 왜 오류가 나는지 궁금합니다.답변주시면 정말 감사하겠습니다.
-
해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이항계수
안녕하세요 선생님 https://www.acmicpc.net/problem/11050제가 이항 계수1 이라는 문제를 풀고 있는데, 이항 계수가 뭔지 잘 모르겠어서 질문 올립니다.이항정리에 대해서 검색도 해보았는데,를 어떻게 구해야 할까요?감사합니다.
-
미해결처음 배우는 리액트 네이티브
OS 네이트브 코드를 개발하면서 UI 를 리액트 네이티브로
안드로이드 NDK와 같은 스마트폰 OS 네이트브 코드를 개발하면서 UI 를 리액트 네이티브로 구현할 수 있는지 궁금합니다.저는 gstreamer 파이프라인을 구현한 앱을 만들고 싶습니다. 또 opencv 도 사용하고요, 딥러닝 라이브러리도 사용하고 싶습니다. 이런 부분은 아마도 안드로이드 NDK 와 같은 걸 써야 할 것 같습니다. 아이폰은 잘 모르지만 아마 iOS 에도 NDK 비슷한 것이 있을 것 같습니다. 이렇게 플랫폼에 종속된 기술을 각 플랫폼 별로 구현해야 하는 것은 피할 수 없을 것 같습니다. 그러나 UI 부분은 리액트 네이티브로 원소스로 구현하고 싶습니다.이런 식의 구현을 할 수 있는지, 할 수 있다면 어떤 참고 자료가 있을지 궁금합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
M:N 등록/조회 API 작성에서 Typescript 문제 질문드립니다.
안녕하세요. 제가 찾고 기다리던 내용의 강의라 매우 만족하며 수강하고 있는 수강생입니다! ㅎproducts.service.ts 파일에서 create와 update 메서드 작성할 때 typescript 에러에 대해 질문드립니다.products.service.ts 파일 create 메서드에서 productTags를 등록하는 과정에const result2 = [] 부분을 const result2: string[]로 작성하면 await productRepository.save(...) 에서 No overload matches this call이 뜨고update 메서드에서 updateProductInput에 UpdateProductInput로 타입을 지정하면 위와 마찬가지로 await productRepository.save(newProduct)에서 No overload matches this call이 뜹니다.두 경우 모두 Type 'string' is not assignable to type 'ProductTag' 문제로 product.entity.ts에서는 productTag를 아래와 같이 등록하고 @Field(() => [ProductTag]) @JoinTable() @ManyToMany(() => ProductTag, (productTags) => productTags.products) productTags: ProductTag[]; createProduct.input.ts에서는 CreateProductInput에서 productTag를 아래와 같이 등록해서 발생하는 문제라고 추측했습니다.@Field(() => [String]) productTags: string[];두 경우 모두 타입을 지정하지 않고 any로 두면 문제는 사라지긴 합니다. any로 두고 사용할 수밖에 없는 것인지 아니면 타입 지정을 해서 사용하는 방법이 있는지 궁금합니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
mysql 데이터베이스 연결 안되는 문제 Unable to connect to the database
yarn start:dev 실행 하고 나면 아래와 같이 나오면서 에러가 뜨고 있어요 ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)...아래 코드도 정상적으로 기입 했는데, 계속 접속 오류로 연결이 되지가 않습니다.import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo' import { Module } from '@nestjs/common' import { GraphQLModule } from '@nestjs/graphql' import { TypeOrmModule } from '@nestjs/typeorm' import { BoardsModule } from './apis/boards/boards.module' import { Board } from './apis/boards/entities/board.entity' @Module({ imports: [ BoardsModule, GraphQLModule.forRoot<ApolloDriverConfig>({ driver: ApolloDriver, autoSchemaFile: 'src/commons/graphql/schema.gql', }), TypeOrmModule.forRoot({ type: 'mysql', host: 'localhost', port: 3306, username: 'root', password: 'test1234', database: 'myproject03', entities: [Board], synchronize: true, logging: true, }), ], // controllers: [AppController], // providers: [AppService], }) export class AppModule {} 현재 brew 확인시 Mysql 서버도 정상적으로 켜져 있는것을 확인 할 수 있어요 디비버에서도myproject03 이라고 정확하게 만들었습니다.선생님의 강의하고 다른부분을 못 찾았는데,데이터 베이스가 연결이 안될 때는 어느부분을 더 점검 해 봐야 할지요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
new List 동기화 와 관련하여..
public List<IPacket> PopAll(){ List<IPacket> list = new List<IPacket>(); lock(_lock) { ...어떤 처리.. }} 이 함수가 멀티 스레드로 실행 된다고 했을대 list 이 변수는 안에가 list 형태인데 linkedlist 같은것도 스레드 세이프 한건가요?여러개의 스레드가 linkedlist 를 생성만 한다고 했을때(위의 예시처럼 원소 추가나 조작 없이) 동시에 new 연산이 내부에서 실행 된다 여러개 스레드에서 동시에 힙에 new 연산이 실행될것 같은데(예를 들어 c++ vector<> 같은..) 멀티스레드로 new 연산시 같은 주소에 생성될 일이 발생할 수도 있지 않을까 해서요 질문을 요약하자면-지역변수에서 힙쪽의 new 를 생성하는게 있다면 그것은 스레드 세이프한가? 라는것이 질문입니다답변 부탁드려요!
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
팩토리 메서드를 정적으로 사용하는 이유에 대해서 궁금합니다
안녕하세요 영한님 강의 잘 듣고 있습니다^^전부터 궁금해 왔던 것인데요, 팩토리를 만들 때 정적으로 올리는 이유에 대해서 궁금합니다영한님이 다른 QnA에서 추천해 주신 내용들을 읽어보았으나 굳이 왜 "정적"영역으로 보내는 가에 대한 의문은 쉽게 풀리지 않습니다 ㅜㅜ일단 정적 팩토리 메서드로 보내면 생성자들에 대한 응집도가 크게 떨어지는 느낌입니다. "엘레강트 오브젝트"라는 책을 보면 생성자는 10~15개 까지도 만들고 퍼블릭 메서드를 최대한 적게 가져가라고 가이드를 주는데요, 정적 영역으로 보내면 주/부 생성자로 보낼 수 없기 때문에 그 많은 생성자들이 다 흩어지고, 생성자들 간 관계를 맺을 수 없기 때문에 유연성이 떨어지고 코드 중복이 자주 일어나는 효과가 나는 것 같습니다이는 굳이 정적 영역으로 보내지 않고 주/부 생성자로 구분하면 쉽게 해결될 일이 아닌가? 하는 생각도 들어 질문을 드립니다
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
http://localhost:3000/graphql 실행 후 query > getHello 시 오류
http://localhost:3000/graphql 실행 후 query > getHello 시 오류가 있습니다.코드는 오타 없이 동일 한데, 저는 실행시 http://localhost:3000/graphql 여기서 아래와 같은 오류가 뜨는데 어떤 상황인지 파악이 잘 되지가 않습니다.{ "errors": [ { "message": "Cannot return null for non-nullable field Query.getHello.", "locations": [ { "line": 2, "column": 3 } ], "path": [ "getHello" ], "extensions": { "code": "INTERNAL_SERVER_ERROR", "exception": { "stacktrace": [ "Error: Cannot return null for non-nullable field Query.getHello.", " at completeValue (/Users/back/study/20230119_nestjs/class/13-01-nestjs-with-graphql/node_modules/graphql/execution/execute.js:594:13)", " at /Users/back/study/20230119_nestjs/class/13-01-nestjs-with-graphql/node_modules/graphql/execution/execute.js:486:9", " at processTicksAndRejections (node:internal/process/task_queues:95:5)", " at async Promise.all (index 0)", " at execute (/Users/back/study/20230119_nestjs/class/13-01-nestjs-with-graphql/node_modules/apollo-server-core/src/requestPipeline.ts:501:14)", " at processGraphQLRequest (/Users/back/study/20230119_nestjs/class/13-01-nestjs-with-graphql/node_modules/apollo-server-core/src/requestPipeline.ts:407:22)", " at processHTTPRequest (/Users/back/study/20230119_nestjs/class/13-01-nestjs-with-graphql/node_modules/apollo-server-core/src/runHttpQuery.ts:436:24)" ] } } } ], "data": null } app.module.ts 에도 정상적으로 연결 해 두었습니다.import { Module } from '@nestjs/common' // import { AppController } from './app.controller'; // import { AppService } from './app.service'; import { BoardsModule } from './apis/boards/boards.module' import { GraphQLModule } from '@nestjs/graphql' import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo' @Module({ imports: [ BoardsModule, GraphQLModule.forRoot<ApolloDriverConfig>({ driver: ApolloDriver, autoSchemaFile: 'src/commons/graphql/schema.gql', }), ], // controllers: [AppController], // providers: [AppService], }) export class AppModule {}
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
약수K, 시간 복잡도
요렇게 하면 시간 복잡도를 줄일 수 있을 것 같아욤. def input_function(line_string: str): n, k = map(int, line_string.split(' ')) half_value: float = n ** 0.5 temp_results: list[int] = [] for value in range(1, int(half_value) + 1): if n % value == 0: temp_results.append(value) final_results: list[int] = [] for i in temp_results: final_results.append(i) for i in temp_results[::-1]: final_results.append( 6 // i) if k > len(final_results): return -1 return final_results[k-1]
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
브라우저내 캐시 재사용 질문드립니다
안녕하세요강의를 듣다가 <웹 브라우저가 브라우저내 캐시저장소의 캐시를 재사용할때 과정> 에 대해 의문이 들었습니다웹브라우저는 수많은 웹페이지에 들어가서 수많은 데이터를 다운받을텐데 그 데이터를 모두 캐시저장소에 넣습니다. 그리고 전에 들어간 웹페이지를 다시 들어갈때 캐시저장소에서 해당 웹페이지의 캐시를 그 수많은 캐시저장소의 캐시중에 몇 개를 찾아서 검증헤더와 조건부 요청을 비교하는건가요? 그러면 시간이 엄청 오래걸릴것같은데 제가 이해하고 있는게 맞는지 모르겠습니다.
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
[FPGA 22장] 전체 HW 연산 시간 관련 질문드립니다.
안녕하세요 맛비님. [FPGA 22장] 프로젝트 Fully Connected Layer 설계 - 실습편 강의 중 질문사항이 생겨 문의드립니다.HW 가속기의 연산 시간은 BRAM 0에 input을 넣는 962 us + BRAM 1에 weight를 넣는 963 us + fc 연산 41.68 + 결과값 받아오기 0.88 us 여서 총 1968 us 라는 점 이해 잘 됐습니다. BRAM 0과 BRAM 1에 데이터를 넣는 과정은 순차적으로 (bram 0에 다 넣고, bram 1에 넣기 시작) 진행되는거라서 둘의 연산 시간을 더해주는 건가요? 그렇다면 두 연산을 병렬로 처리할 수는 없나요? HW 가속기의 장점은 병렬연산이 가능한 것인데, 혹시 AXI를 통해 PS에서 BRAM으로 데이터를 전송하는 과정들은 병렬 처리가 불가능한건지 궁금합니다. 전체 run의 수를 늘려서 output node의 수를 4개가 아닌 더 많이 생산할 수 있다고 배웠습니다. 이때 run을 1024번을 하여 output node를 4096개 만드는 경우, 맛비님께서 전체 HW 연산 시간에서 BRAM 0에 input을 넣는 시간인 962.46us는 배제해도 된다고 하셨습니다. (나머지 3개 연산 시간만 더하면 그게 전체 HW 연산 시간이라고 들었습니다.) 하지만 해당 부분을 배제하면 안되는 것 아닌가요? (혹시 1024번의 RUN을 실행하면 962.46us 너무 작은 숫자라 배제해도 된다는 뜻인건가요..?) 항상 좋은 강의 제작해주셔서 감사합니다. 새해 복 많이 받으세요!
-
해결됨토비의 스프링 부트 - 이해와 원리
TestRestTemplate로 테스트 하는데 403 FORBIDDEN이 응답으로 옵니다.
문제가 되는 코드입니다. 브라우저에서는 200 응답이 정상적으로 오는데 테스트 코드에서만 이런 문제가 생깁니다. 의심가는 부분은 user-agent인데 헤더를 설정해주는 부분이 TestRestTemplate에는 없어서 다른 해결 방법이 있는지 질문드립니다.
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
Static boolean, Static void 호출
클래스에 static boolean canAutoReport = false; static void callServiceCenter() { System.out.println("서비스 센터(1588-0000)로 연결합니다."); }이렇게 선언해두었는데 b1.canAutoReport 나 b1.callServiceCenter()이 안됩니다. BlackBox.canAutoReport랑 BlackBox.callServiceCenter() 는 되는데 뭐가 문제일까요?
-
미해결Nuxt.js 시작하기
설치하다가 멈춰서 다시 설치하는데 아예 설치가 안되네요 ;;;
설치하다가 멈춰서 ctrl+c 로 멈추고 다시 설치하는데 아예 설치가 안되네요 ;;;
-
미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
NonNullable 타입 변경사항
안녕하세요~~ 질문 글은 아닌데바뀐 부분이 있는 것 같아서 공유할겸글 작성합니다!! 기존의 NonNullable은 null 과 undefined 를 임의의 타입으로 순회 하면서검사하던 방식에서type NonNullable<T> = T & {}Object type 과 임의의 타입을 묶어null 과 undefined 를 거르는 방식으로 변경된것 같습니다!!별건 아닌데 앞 내용의 object type 복습할겸 공유 드립니다!!
-
해결됨외워서 끝내는 네트워크 핵심이론 - 응용
MAC과 IP에 대해 질문드립니다
공부하다가 갑자기 생각난 의문인데요, 뭔가 기초적인 질문같아서 부끄럽긴 합니다만 ㅠㅠ이미 MAC이라는 주소가 존재함에도 불구하고 왜 IP라는 주소를 또 쓰는지가 갑자기 궁금해 지더라구요..그래서 제 나름대로 생각해봤을 때는, 아마 라우팅의 효율을 위함이 아니었을까.. 싶은데요만약에 라우터가 중복이 없도록 설계된 MAC 주소로 라우팅을 한다고 가정하면MAC 주소로 특정 호스트를 구분할 수는 있겠지만 특정 서브넷을 구분할 수는 없으므로라우터가 가지고 있어야 할 MAC 주소가 굉장히 많아질 것이고, 라우팅 또한 느려질 것이다 라는게 지금의 제 생각입니다..다만 조금 더 깊이 생각해보면 L3에는 IP 말고도 다른 프로토콜들이 많이 있으니, 단순히 라우팅 때문만은 아닐 것이라는 생각도 드는데요문제는 제가 가진 지식이 부족하다보니 이 이상의 유추가 불가능합니다. ㅠㅠ그냥 처음부터 MAC 주소만으로 통신하도록 잘 설계했으면 되는거 아닌지 부터 시작해서 왜 OSI 7 레이어를 이렇게 설계했는지 까지 아주 별의별 생각이 다 드는데요...단순하게 이거다 싶은 답안이 있을까요? 아니면 어느 부분을 공부하는게 제게 도움이 될 지 조언을 주셨으면 좋겠습니다. ㅠㅠ