모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    물어라이코스님의
    개인페이지입니다
    가입 : 12-09-25
    방문 : 3120회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_12898
    작성자 : 물어라이코스
    추천 : 0
    조회수 : 799
    IP : 27.117.***.100
    댓글 : 6개
    등록시간 : 2015/08/22 02:42:21
    http://todayhumor.com/?programmer_12898 모바일
    웹 관련... php, ajax, 외부 api 관련 개념이 부족합니다.
    옵션
    • 본인삭제금지
    조금 깁니다. ㅠ.ㅠ

    배경이 되는 상황을 말씀드려야할 것 같아서요...

    ...비루한 대학 졸업작품입니다.;



    지금까지 php 기초만 해오다가..

    오유 프게에서 조언을 얻어 코드이그나이터, 부트스트랩을 이용해서 홈페이지를 만들고 있습니다.

    바탕이 되는 데이터는 외부 api 에서 가져오고 있구요.

    json 도 처음 다뤄봅니다 --;;;


    처음에 모든 기능을 우선 구현해봤는데... 어마어마 했습니다.

    로딩시간이요 -_-;;;;

    한번의 서비스를 이용하는데 총 로딩 시간이 30초~50초 가량 걸리더군요.

    더 큰 문제는 도중에 사용자가 페이지를 꺼버리거나 ESC를 누르면 데이터가 중간에 입력되다가 중단. ㅠㅠ

    (같은 내용을 두번째 이용할때는 자체 DB에서 불러오면서 0.1초 이내로 걸립니다.)


    하하하... 우선 기능 구현은 다 했다는 점에서 만족하며 뜯어고치고 있습니다.

    제게 당장 필요한건 비동기식 처리더라구요.

    사용자는 가장 기본적인 틀만 불러오고 (1~2초) 우선 띄워줍니다.

    그리고 각각 부분에서 필요한 부분들을 ajax의 get을 통해 ($.get) 값을 되돌려주는 페이지를 요청하게되고, 그 페이지가 응답이 돌아오면 사용자 페이지에 다시 뿌려주도록 고치고 있습니다.

    그러던 중 궁금한점이 생겨서요...


    여기까지 요약---
    1. 외부 api를 불러와 db에 저장하고, 이걸 다시 사용자에게 뿌려주는 웹서비스를 개발 중
    2. 기능 구현은 완료하였으나 페이지 로딩 시간이 너무 길고 중간에 중단할 경우 불상사가 발생함.
    3. ajax의 get을 이용하여 외부api->DB 를 작동시켜주는 웹페이지를 불러오도록 다시 제작함.
    4. 3번의 작업이 완료되면 사용자가 보고 있는 페이지에 표시해줌.


    이때 궁금한게 ajax에서 get을 했을때의 처리 주체 입니다.
    혹시나 싶어서
    반복문을 만들고 1초에 1~100까지의 숫자를 DB에 집어넣는 문서를 만들었습니다.

    해당 페이지를 웹브라우저에서 직접 호출하니 1 부터 차례대로 하나씩 입력을 하더군요.
    근데 웹페이지를 종료시켰음에도 해당 작업은 계속해서 이루어졌습니다.(!?왜지?!)
    혹시나 싶어서 $.get으로 해당 페이지를 로딩시킨 후 웹 브라우저를 종료하였으나 마찬가지로 DB에는 계속해서 데이터가 입력되었습니다.

    좋다~~~ 라고 생각하고 있었으나 걱정거리가 생겼습니다.

    외부 api가 불안정하여 만약 데이터를 제대로 제공해주지 못할 경우 다시 요청하도록 설계를하고 있는데...
    문제는 이 외부 api가 계속 죽어 있으면 그동안에 재요청 작업이 무한히 일어날 것이고 사용자가 많다면 그 사용자수 만큼 요청이 쇄도할 것 같습니다.

    왜 브라우저를 종료했음에도 계속해서 작업이 이루어지는걸까요?
    만약 그렇다면 무한루프에 빠졌을때 해당 작업은 언제까지 반복되는 걸까요?
    관련 설정을 아파치에서 해주는 거겠죠? 음... 뭘까요 -_-;;;
    만약 이런 경우라면 어떻게 설계해야하고 코딩해야하는지 ... 그 방향조차 모르겠습니다. ㅜㅜ


    전체적인 프로그램 흐름도
    1-1. 사용자 요청 -> 내부 DB에 해당 데이터 존재여부 체크 -> 존재할 경우 표시해줌
    1-2. 사용자 요청 -> 내부 DB에 해당 데이터 존재여부 체크 -> 존재하지 않을 경우 외부 api에 요청하여 데이터를 받아옮
    1-2-1. 받아온 데이터를 DB에 저장함.
    1-2-2. DB에 저장한 내용을 사용자에게 표시해줌.


    현재 외부 api를 받아오는 과정 - 사용 언어 PHP CURL
    1. 외부 api 요청
    2. 받아온 데이터 검사
    2-1. curl_errno 로 에러 번호가 존재하는지 체크
    2-2. curl_getinfo 로 http_code가 200인지 체크
    2-3. curl_exec로 받은 데이터에서 문제가 있는지 체크
    3. 데이터 검사 결과
    3-1. 에러 검출 시 1번부터 다시 시작
    3-2. 검사 통과시 curl_exec로 받은 데이터를 리턴.


    질문 요약
    1. 외부 api를 가져와서 DB에 입력하거나 사용자에게 보여줘야함.
    2. 외부 api가 신뢰할 수 없음. 만약 요청에 실패할 경우 재요청하도록 만드는 중
    3. 그런데 외부 api가 계속 죽어 있다면 재요청을 무한히 하게 될텐데 어떻게 해야할지?
    4. 혹은 이러한 문제가 발생할 수 있으니 외부 api를 받아오는 절차 자체를 다시 설계해야하는 것인지...
    5. ajax를 이용하여 데이터를 로딩하는 페이지를 따로 만드는 행위 자체가 매우 위험한 행위인지...
    6. 방향 혹은 힌트만이라도 주시면... 굽신굽신...

    이 게시물을 추천한 분들의 목록입니다.
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    263
    MYSQL 기본키에 관련된 질문... [9] 베스트금지본인삭제금지 물어라이코스 15/09/27 23:28 33 0
    262
    [가정용 네트워크] WiFi와 공유기에 관련된 가이드 V 1.0 [2] 물어라이코스 15/09/25 00:00 69 13
    261
    왜 질문글을 삭제하는 것일까... [4] 물어라이코스 15/09/24 16:10 76 0
    260
    모욕죄 고소는 이렇게 하면 됩니다. [18] 물어라이코스 15/09/24 04:35 277 17
    259
    개ㅐㅅ [1] 물어라이코스 15/09/18 17:17 62 1
    258
    [저격] 그들은 과연 사과하였는가? 오유의 자정작용은? [3] 물어라이코스 15/09/17 22:08 53 6
    257
    롤챔스 라인별 점수 공식 아시는분 계신가요? [2] 물어라이코스 15/09/17 17:55 99 0
    256
    거바요... 삭제됐잖아유.... [4] 물어라이코스 15/09/16 18:23 208 2
    255
    비공감 닉공개/리스트화는 결코 정답이 아닙니다... [2] 물어라이코스 15/09/14 23:12 - -
    254
    아재분들은 잘 모르실 사건이 있었어요 [3] 물어라이코스 15/09/14 02:01 56 0
    253
    지름 게시판 건의! 물어라이코스 15/09/12 14:27 18 0
    252
    프게에는 좋은마음으로 글 써도 광고로 비공받으니 주의하시기 바랍니다. [28] 물어라이코스 15/09/10 20:35 54 0
    251
    혹시 conoha.jp 쓰시는 분 계신가요? [15] 물어라이코스 15/09/10 12:00 36 2
    250
    승급전 X-- 에서 2번째판인데... [5] 물어라이코스 15/09/07 02:00 152 0
    249
    오징어 검색기가 현재 원활하지 않습니다. [전적조회 싸이트들도 마찬가지] [1] 물어라이코스 15/09/02 23:47 36 1
    248
    주화입마에 빠진거 같습니다....... [11] 물어라이코스 15/09/01 02:31 57 0
    247
    오유 채널 고정 광고에 어떻게 대처를 해야할지 ㅡ,.ㅡ [5] 물어라이코스 15/08/31 03:58 128 2
    웹 관련... php, ajax, 외부 api 관련 개념이 부족합니다. [6] 본인삭제금지 물어라이코스 15/08/22 02:42 39 0
    245
    목포]초보주의) 방파제 낚시 괜찮은 곳이 있을까요? [2] 물어라이코스 15/08/20 21:21 21 1
    244
    전적 조회 싸이트 이용하시는 분들 중에...[질문] [6] 물어라이코스 15/08/14 14:12 103 0
    243
    과거로 되돌아 보는 밸런스/OP 논란 [넝담글] [11] 물어라이코스 15/08/12 19:39 253 5
    242
    데이터베이스 공백 검색 관련 질문 ㅠㅠ [4] 본인삭제금지 물어라이코스 15/08/08 02:45 36 0
    241
    잡글] 오늘의 ㅂㄷㅂㄷ ... [5] 물어라이코스 15/08/04 20:50 24 0
    240
    유투브 광고 유저를 판단하는 기준... [3] 물어라이코스 15/07/31 04:49 40 0
    239
    유투브 광고 신고 및 욕설 유저 신고 물어라이코스 15/07/31 04:43 - -
    238
    톡노말 방에 들어오면 인사하는게 당연한거 아닌가요? [8] 물어라이코스 15/07/31 00:37 121 3
    237
    아.......위험했어요. 물어라이코스 15/07/29 22:37 34 0
    236
    오징어등록기] 이제 가입일자와 방문횟수가 함께 표시됩니다. [12] 물어라이코스 15/07/29 19:53 100 17
    235
    오징어등록기] 방문일수/가입일/작성글수를 표시해야할까요 말아야 할까요? [11] 물어라이코스 15/07/29 16:08 84 7
    234
    이건 mmr이 많이 올라서 그런거겠죠? [4] 물어라이코스 15/07/23 00:28 100 0
    [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [다음10개▶]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈