묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결트렐로 개발로 배우는 Vuejs, Vuex, Vue-Router 프론트엔드 실전 기술
보드 아이템 배경색 변경 관련 질문
안녕하세요. 강사님 강의 잘 듣고 있습니다! 지금은 updated 훅에서 컴포넌트의 데이터가 변경될 때마다 DOM에 접근하여 보드 아이템의 배경색을 바꾸는 것으로 알고 있습니다. 하지만 인라인 스타일 바인딩으로 아래 코드처럼 배경색을 변경해도 정상적으로 동작하는 데 updated 훅에서 보드 아이템의 배경색을 바꾸시는 다른 이유가 있을까요? <div class="board-item" v-for="b in boards" :key="b.id" ref="boardItem" :style="{ backgroundColor: b.bgColor }" >
-
미해결15일간의 빅데이터 파일럿 프로젝트
vm server02 완전히 꼬임 (guru)문제
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. 안녕하세요 강의를 시청중에 구글링으로 해결할 수 없는 문제가 나서 여쭤봅니다.. 이렇게 되었는데 도통 어떻게 해야할지 모르겠습니다. 재부팅으로 해도 다시 뜨고 그래도 클라우데라에서 하둡이랑 주키퍼등등 변경내용 검토까지 가길래 애써 무시하다가 명령세부정보에서 또 오류가 뜨는데 아마 저 guru랑 관련이 있어보입니다. 어떻게 해결해야할까요..?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
connect 질문
안녕하세요 루키스 강사님 connect를 바로 성공한다는 보장 없는 상황인데, 심지어 논블로킹이라 그냥 통과해서 connect가 SOCKET_ERROR를 낼 수 있고 이 에러는, connect도중이라면 WSAEWOULDBLOCK일 것이니 이런 경우는 continue를 통해 시간 벌어주고, continue로 한번 돌았다면 다시 연결되는 것이니 WSAISCONN 상태가 될 것이므로 break로 빠져준다 제가 이해한 게 맞나요?
-
미해결CCNA - Cisco Certified Network Associate (200-301) 자격증 과정
시스코 Netcad 로그인 실패 관련 문의
안녕하세요. 시스코 사이트(https://www.netacad.com/courses/packet-tracer) 로그인 시, "Sorry, we can't find a NetAcad account associated with this Cisco account." 메시지가 나와서, 설명하신 내용 관련하여 질문 드립니다. 수업 노트에 "3. 코스 화면에서 View Course 선택" 이 내용이 있는데, 여기서 "Download and Get Started" 이 항목에 있는 3개 항목에 대해 모두 View Course 실행해야 되는 것인가요? 또한, 모두 View Course 실행해서 다음에 어떻게 해야 하는지 문의 드립니다. 또한, 4번 Sign up Today 화면 안나오는데, 이 Sign up Today까지 나오려면 어떻게 해야하는지도 문의 드립니다. 강사님께서 캡쳐하셔서 내용에 비해 해당 사이트 화면이 변경이 된 것 같습니다. 확인 부탁 드립니다. 감사합니다.
-
미해결실전! Querydsl
컴파일 관련 에러
test 중에 계속 1. HikariPool-1 - Exception during pool initialization. 2.2022-04-10 22:13:08.388 ERROR 10156 --- [ main] j.LocalContainerEntityManagerFactoryBean : Failed to initialize JPA EntityManagerFactory: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 3.2022-04-10 22:13:08.382 WARN 10156 --- [ main] o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000342: Could not obtain connection to query metadata 4.022-04-10 22:13:08.388 WARN 10156 --- [ main] o.s.w.c.s.GenericWebApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 이러한 에러가 뜹니다... 구글링을 해봐도 yml 문제도 아닌거같고 알려주시면 감사하겠습니다..
-
미해결실전! Querydsl
db h2 관련 오류입니다 ㅠㅠ
mv 파일만드려고 먼저 이렇게 했을때는 연결이 되는데 table 생성을 위해서 embeded로 tcp;localhost주소로 연결하게되면 이런식으로 연결 자체가 안되는데 도저히 원인을 모르겠습니다... 다른 프로젝트는 또 연결이 되고 제각각으로 에러만 발생하네요 ㅠㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
OrderItem 클래스 item.removeStock(), getItem().addStock() 차이
OrderItem 클래스에서, 생성메서드인 createItem 에서의 재고관리 메소드 이용은 item.removeStock(count); 이고 비즈니스 로직에서 cancel 에서의 재고관리 메소드 이용은 getItem().addStock(count); 입니다. 두 가지 이용방법이 다른 이유가 있을까요? cancel 메소드에서, getItem().getStockQuantity() item.getStockQuantity() 위 두 가지 출력 시 같은 것이 나오는 것을 확인했습니다. // == 생성 메서드 == //public static OrderItems createOrderItem(Item item, int orderPrice, int count) { OrderItems orderItems = new OrderItems(); orderItems.setItem(item); orderItems.setOrderPrice(orderPrice); orderItems.setCount(count); item.removeStock(count); return orderItems;} // == 비즈니스 로직 == //public void cancel() { // 재고 수량 원복 getItem().addStock(count);}
-
미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
context switching시 캐시 메모리 초기화 시간의 비중
multi thread는 multi process보다 Context switching 시 캐시 메모리를 초기화할 필요가 없어서 속도가 빠릅니다. 1. 이 부분에서 궁금한게 생겼는데 Context switching 시간에 영향을 미치는 여러 요인 중에 캐시 메모리 초기화가 큰 비중을 차지하기 때문인가요? 2. 다른 요인에는 무엇이 있고 캐시에는 어떤 정보가 들어가게 되나요? 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
제네릭 클래스
안녕하세요, memberV2 메소드에서 return new Result(collect); 에 대한 부분을 잘 모르겠어서 질문드립니다. 제네릭 클래스 인스턴스를 생성할 때 클래스 내부에서 사용할 데이터 타입을 외부에서 지정해야하는 것이 아닌가요?? 영한님께서 11:36 초 쯤에 말씀하신 것 처럼 타입을 지정하지 않으면 알아서 Object 타입으로 되는 건지 정확한 동작 방식을 잘 모르겠습니다. 제가 제네릭에 대한 이해가 많이 부족한거 같아서 질문드립니다.ㅠㅠ 항상 답변 감사드립니다.
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
플로이드 워셜 알고리즘(1->5) 경우
i가 1, j가 5, k가 2인경우에 (1,5) 와 (1,2)+(2,5) 가 비교되는 경우가 생기는데 (2,5)의 값 같은경우 이전에 k=1일때 (2->1->5)의 값과는 계산해서 비교해 보았지만 반복문의 순서에 따라 k가 2,3,4,5 인 경우 즉 (2->3->5), (2->4->5) 이런경우들과 값을 비교해 보지 못하였다고 생각되는데 최솟값이라고 할 수 있는건가요?
-
해결됨만들면서 배우는 Svelte
강의 도중 궁금한 것이 있습니다!
2가지 인데요! 1번째. function handleEditTodoItem(editTodo){ todos = todos.map(todo => { if(todo.id === editTodo){ todo = editTodo } return todo }) editMode = '' } 이 2번째 줄 todos = todos.map(todo => 이 부분에 todo => 이게 무엇을 의미하는 것인지 정확히 잘모르겠어요 ㅠㅜ... 그리고 이 함수의 실행 원리가 무엇인지 잘 이해가 안되요 ㅠㅜ 2번째. <input type="text" bind:value={todo.content} on:focusout={() => handleEditTodoItem(todo)}> 위 코드에서 handleEditTodoItem을 실행하게 되면 todo라는 매개변수가 함수에 들어가는 것이 잖아요 그러면 todolist.svelte에서 {#each} 구문을 사용해서 반복 구문을 만들고 리스트 중에 한개를 todo라고 이름을 정한 것 이잖아요(맞나요..? 아래코드처럼!) <div class="main"> <ul> {#each fetchTodos as todo} <li> <Todoitem {todo} {handleCheckTodo} {editMode} {handleChangeEditMode} {handleEditTodoItem} {handleRemoveTodo}/> </li> {/each} </ul> </div> 그러면 지금 저기 매개변수로 넣은 값이 {#each fetchTodos as todo} 여기의 마지막 todo를 얘기하는 것이 맞나요 ㅠㅜ?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
ㅇㅇ
강의 보면서 설명 차근차근 해주셔서 다시 생각하다보면 이해할 수 있어서 좋은데 그럼에도 코딩을 처음 접해서 그런가 이해가 안되는 부분이 좀 많아요ㅠ 하나하나 다 질문하기에도 많고 강의 보면서 같이 참고할 책같은거는 없나요? 추천좀 해주세여
-
미해결
taxi in haridwar
Haridwar to Haridwar taxi administration and Haridwar vehicle rental help give by Haridwar taxi booking. what's more, is offer best rates and Fares for Haridwar to taxi in haridwar, Haridwar taxi from haridwar, Haridwar to Haridwar one way taxi administration, Round trip Haridwar taxi administration from haridwar with safe Journey and simple taxi booking process with markdown. Haridwar to Haridwar distance by taxi is approx 290 kms and Haridwar to Haridwar travel time by taxi approx 12 Hrs.. Read More:- https://www.haridwartaxiservices.com/Address: SCO - 2, Nursing Bhawan. Upper Road,Haridwar - 249401 Uttarakhand (INDIA)Email: mail@haridwartaxiservices.com | haridwartaxiservicess@gmail.comPhone: +91 9012290007
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Listener 관련 질문
강의 내 1:45초쯤 더 많은 손님을 받을수 있도록 Listener에 for문을 추가하였습니다. RegisterAccept -> (socket.AcceptAsync) -> OnAcceptCompleted -> RegisterAccept로 이어지는 loop가 10개 생성되었다고 이해했습니다. 그렇다면 하나의 ListenSocket에 10개의 loop가 묶여있는 상태에서 client로부터 온 소켓들이 어떻게 하나씩 배치될수 있나요? 다른 loop에 같은 소켓이 배치될수도 있을것 같은데 아무리 생각해도 이 부분이 이해가 잘 안가서 질문드립니다. 강의 잘 수강하고 있습니다. 감사합니다.
-
미해결누구나 쉽게 따라하며 배우는 - 애프터이펙트 입문 강좌
3강 마지막에서 애니메이션 만드는 기능 설명.
안녕하세요? 동영상 잘알못이라 독학도 어려워 수강하게 되었습니다.! 3강 마지막에서 타임라인 설정하는 법을 짤막하게 설명해주셨는데 잘 이해가 가지않아서 질문을 올리게 되었습니다. 트위닝? 하는 과정이 간략히 설명해주신게 원리가 잘 이해가 가지않는데 강의처럼 오더비이펙트에서 똑같이 움직여봐도, 된건지 안된건지 잘 모르겠어요.ㅠㅠ
-
미해결ESXi 가상 인프라 구축과 보안 솔루션을 활용한 이상징후 탐지 모니터링
http server
스플렁크 설치 중에 mobaxterm 에서 http 서버 스타트 로딩중에서 진행이 안됩니다. 어떻게 해야할까요 ㅠ
-
해결됨남박사의 파이썬으로 실전 웹사이트 만들기
모듈화 과정에서 pylint 오류가 잔뜩나면서.. 직접 임포트를 하더라도 해결이 안되던데 왜그럴까요?
안녕하세요 남박사님..! 계속 질문 해서 죄송합니다..ㅠ 이번은 모듈화 과정에서 계속 문제가 나서 어떻게 해야할까 해서 질문을 올립니다..! 코드가 아예 먹통이 되는거 같더라구요..! 직접 임포트해서 넣은 common,py / filter.py 는 pylint 내용은 나오더라도 오류는 안나는데.. 다른거는 직접 넣어도 전부 오류가 나오네요..! 다른분들이 올리신 글보고 vscode settings에서 format on save 체크가 되어 있어서 해제 했습니다! 이 부분도 이렇게 추가해서 해봤는데 같았습니다! from main import member from main import board from main.filter import format_datetime from main.common import login_required board.py 코드 부분에서 edit 에 is data in None: <<< None이 빨간줄로 표시가 나오던데 왜그런걸까요? @app.route("/edit/<idx>", methods=["GET", "POST"]) def board_edit(idx): if request.method == "GET": board = mongo.db.board data = board.find_one({"_id": ObjectId(idx)}) if data in None: flash("해당 게시물이 존재하지 않습니다.") return redirect(url_for("lists")) else: if session.get("id") == data.get("writer_id"): return render_template("edit.html", data=data) else: flash("글 수정 권한이 없습니다.") return redirect(url_for("lists")) else: title = request.form.get("title") contains = request.form.get("contents") board = mongo.db.board data = board.find_one({"_id": ObjectId(idx)}) if session.get("id") == data.get("writer_id"): board.update_one({"_id": ObjectId(idx)}, { "$set": { "title": title, "contents": contains, } }) flash("수정 되었습니다.") return redirect(url_for("board_view", idx=idx)) else: flash("글 수정 권한이 없습니다.") return redirect(url_for("lists") - 터미널 오류- -pylint 추가오류- - 코드오류 -1 - 기존 임포트 처럼 전부 넣어도 오류가 나오네요.. flaek8 로 변경해도 똑같습니다..! - 코드오류 -2 - - 코드 오류-3- -코드 내용- - run.py- from main import app if __name__ == "__main__": app.run(host="0.0.0.0", debug=True, port=9000) --------------------------------------------------------------------------------------- - __init__.py - from flask import Flask from flask import request from flask import render_template from flask_pymongo import PyMongo from bson.objectid import ObjectId from datetime import datetime, timedelta from flask import abort from flask import redirect from flask import url_for from flask import flash from flask import session import math import time from . import member from . import board from .filter import format_datetime from .common import login_required app = Flask(__name__) app.config["MONGO_URI"] = "mongodb://localhost:27017/myweb" app.config["SECRET_KEY"] = "abcd" app.config["PERMANENT_SESSION_LIFETIME"] = timedelta(minutes=30) mongo = PyMongo(app) -------------------------------------------------------------------------------------- -board.py- from main import * from flask import Flask from flask import request from flask import render_template from flask_pymongo import PyMongo from bson.objectid import ObjectId from datetime import datetime, timedelta from flask import abort from flask import redirect from flask import url_for from flask import flash from flask import session import math import time @app.route("/list") def lists(): # 페이지 값 (값이 없는 경우 기본값는 1) page = request.args.get("page", 1, type=int) # 한페이지당 몇개의 게시물을 출력할지 limit = request.args.get("limit", 5, type=int) search = request.args.get("search", -1, type=int) keyword = request.args.get("keyword", "", type=str) # 최종적으로 완성된 쿼리를 만들 변수 query = {} # 검색어 상태를 추가할 리스트 변수 search_list = [] if search == 0: search_list.append({"title": {"$regex": keyword}}) elif search == 1: search_list.append({"contents": {"$regex": keyword}}) elif search == 2: search_list.append({"title": {"$regex": keyword}}) search_list.append({"contents": {"$regex": keyword}}) elif search == 3: search_list.append({"name": {"$regex": keyword}}) # 검색 대상이 한개라도 존재할 경우 query 변수에 $or 리스트를 쿼리 합니다. if len(search_list) > 0: query = {"$or": search_list} print(query) board = mongo.db.board datas = board.find({}).skip( (page - 1) * limit).limit(limit).sort("pubdate", -1) # 게시물의 총 갯수 tot_count = board.count_documents({}) # 마지막 페이지의 수를 구한다. last_page_num = math.ceil(tot_count / limit) # 페이지 블럭을 5개씩 표기 block_size = 5 # 현재 블럭의 위치 block_num = int((page - 1) / block_size) # 블럭의 시작 위치 block_start = int((block_size * block_num) + 1) # 블럭의 끝 위치 block_last = math.ceil(block_start + (block_size - 1)) return render_template("list.html", datas=list(datas), limit=limit, page=page, block_start=block_start, block_last=block_last, last_page_num=last_page_num, search=search, keyword=keyword) @app.route("/view/<idx>") @login_required def board_view(idx): # idx = request.args.get("idx") if idx is not None: page = request.args.get("page") search = request.args.get("search") keyword = request.args.get("keyword") board = mongo.db.board # data = board.find_one({"_id": ObjectId(idx)}) data = board.find_one_and_update({"_id": ObjectId(idx)}, { "$inc": {"view": 1}}, return_document=True) if data is not None: result = { "id": data.get("_id"), "name": data.get("name"), "title": data.get("title"), "contents": data.get("contents"), "pubdate": data.get("pubdate"), "view": data.get("view"), "writer_id": data.get("writer_id", "") } return render_template("view.html", result=result, page=page, search=search, keyword=keyword) return abort(404) @app.route("/write", methods=["GET", "POST"]) def board_write(): if session.get("id") is None: return redirect(url_for("member_login")) if request.method == "POST": name = request.form.get("name") title = request.form.get("title") contents = request.form.get("contents") print(name, title, contents) current_utc_time = round(datetime.utcnow().timestamp() * 1000) board = mongo.db.board post = { "name": name, "title": title, "contents": contents, "pubdate": current_utc_time, "writer_id": session.get("id"), "view": 0, } x = board.insert_one(post) print(x.inserted_id) return redirect(url_for("board_view", idx=x.inserted_id)) else: return render_template("write.html") @app.route("/edit/<idx>", methods=["GET", "POST"]) def board_edit(idx): if request.method == "GET": board = mongo.db.board data = board.find_one({"_id": ObjectId(idx)}) if data in None: flash("해당 게시물이 존재하지 않습니다.") return redirect(url_for("lists")) else: if session.get("id") == data.get("writer_id"): return render_template("edit.html", data=data) else: flash("글 수정 권한이 없습니다.") return redirect(url_for("lists")) else: title = request.form.get("title") contains = request.form.get("contents") board = mongo.db.board data = board.find_one({"_id": ObjectId(idx)}) if session.get("id") == data.get("writer_id"): board.update_one({"_id": ObjectId(idx)}, { "$set": { "title": title, "contents": contains, } }) flash("수정 되었습니다.") return redirect(url_for("board_view", idx=idx)) else: flash("글 수정 권한이 없습니다.") return redirect(url_for("lists")) @app.route("/delete/<idx>") def board_delete(idx): board = mongo.db.board data = board.find_one({"_id": ObjectId(idx)}) if data.get("writer_id") == session.get("id"): board.delete_one({"_id": ObjectId(idx)}) flash("삭제 되었습니다.") else: flash("삭제 권한이 없습니다.") return redirect(url_for("lists")) ------------------------------------------------------------------------------------------------------- - member.py - from main import * @app.route("/join", methods=["GET", "POST"]) def member_join(): if request.method == "POST": name = request.form.get("name", type=str) email = request.form.get("email", type=str) pass1 = request.form.get("pass", type=str) pass2 = request.form.get("pass2", type=str) if name == "" or email == "" or pass1 == "" or pass2 == "": flash("입력되지 않은 값이 있습니다.") return render_template("join.html") if pass1 != pass2: flash("비밀번호가 일치하지 않습니다.") return render_template("join.html") members = mongo.db.members cnt = members.count_documents({"email": email}) if cnt > 0: flash("중복된 이메일 주소입니다.") return render_template("join.html") current_utc_time = round(datetime.utcnow().timestamp() * 1000) post = { "name": name, "email": email, "pass": pass1, "joindate": current_utc_time, "logintime": "", "logincount": 0, } members.insert_one(post) return redirect(url_for("member_login")) else: return render_template("join.html") @app.route("/login", methods=["GET", "POST"]) def member_login(): if request.method == "POST": email = request.form.get("email") password = request.form.get("pass") next_url = request.form.get("next_url") members = mongo.db.members data = members.find_one({"email": email}) if data is None: flash("회원 정보가 없습니다.") return redirect(url_for("member_login")) else: if data.get("pass") == password: session["email"] = email session["name"] = data.get("name") session["id"] = str(data.get("_id")) session.permanent = True if next_url is not None: return redirect(next_url) else: return redirect(url_for("lists")) return redirect(url_for("lists")) else: flash("비밀번호가 일치하지 않습니다.") return redirect(url_for("member_login")) return "" else: next_url = request.args.get("next_url", type=str) if next_url is not None: return render_template("login.html", next_url=next_url) else: return render_template("login.html") -------------------------------------------------------------------------------------------------- - common.py- from functools import wraps from main import session, redirect, request, url_for def login_required(f): @wraps(f) def decorated_function(*args, **kwargs): if session.get("id") is None or session.get("id") == "": return redirect(url_for("member_login", next_url=request.url)) return f(*args, **kwargs) return decorated_function ------------------------------------------------------------------------------------------------------- - fliter.py - from main import app, datetime, time @app.template_filter('formatdatetime') def format_datetime(value): if value is None: return "" now_timestamp = time.time() offset = datetime.fromtimestamp( now_timestamp) - datetime.utcfromtimestamp(now_timestamp) value = datetime.fromtimestamp((int(value) / 1000)) + offset return value.strftime('%Y-%m-%d %H:%M:%S')
-
해결됨탄탄한 백엔드 NestJS, 기초부터 심화까지
PickType 에서 as const
PickType 에서 파라미터 적을때 ['aaa','vvv','ccc'] as const 배열안에 파라미터 넣고 as 로 형변환 시키는데 하는 이유가뭔가요? as const 안해도 오류가 안나는데 이유가 있나 해서요
-
해결됨홍정모의 따라하며 배우는 C언어
텍스트 파일 입출력 예제에서 텍스트 파일을 못찾는 것 같아요,,
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main(int argc, char* argv[]) { int ch; FILE* fr; unsigned long count = 0; if (argc != 2) { printf("Usage : %s filename\n", argv[0]); exit(EXIT_FAILURE); } if ((fr = fopen(argv[1], "r")) == NULL); { printf("Can't open %s\n", argv[1]); exit(EXIT_FAILURE); } while ((ch = fgetc(fr)) != EOF) { fputc(ch, stdout); count++; } fclose(fr); printf("FILE %s has %lu characters\n", argv[1], count); return 0; } 코드도 맞게 작성했고 파일 이름이랑 다 맞게 했는데 이렇게 나오네요. . . , , , , , , ,ㅠㅠ 문제가 뭘까요....?! 크아악
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
엔티티를 DTO로 변환하는 단계 질문있습니다!
해당 단계는 controller에서 이루어지는게 좋은가요, service에서 이루어지는게 좋은가요?