Ryon`s Life

전체 글 +42
    

외 삼촌이 동영상을 보시려는데 YouTube(유튜브) 영상만 나오지 않는단다. 


확인해보니, 다음이나, 네이버 영상은 잘 나오고 기타 Flash(플래시) 기반 플레이어도 잘 동작 하는데..


유독 YouTube(유튜브) 영상만 재생 버튼을 클릭하여 재생하면 영상이 1초정도 나오는둥 하다가


"오류가 발생했습니다. 나중에 다시해주시기 바랍니다." 메세지와 함께 동영상 출력이 되지 않았다.


웹 서핑을 통해 해결법을 찾을 수 있었으며, 다음번에 같은 문제 발생시를 대비하여 해당 트러블슈팅을 기록해 둔다.



1. 증상 

  - YouTube(유튜브) 영상 새쟁시 "오류가 발생했습니다. 나중에 다시해주시기 바랍니다." 메세지

     출력과 함께 동영상 출력이 되지 않음


2. PC환경

  - OS : Windows 7

  - Browser : IE11 (인터넷 익스플로러 11)

  - YouTube 재생 환경 : Flash Player 기반 재생

  - Flash Player 버전 : 15.2 (해당글 기록 시점 Latest Version)


3. 원인

  - Flash Player 설치 파일의 문제(하위버전, 설치파일의 깨짐 등)

  - Audio 단자 연결 안되어 있는 문제


4. 해결 방법

  - Flash Player 문제시

    --> Flash Player 제거(제어판 > 프로그램 추가/삭제 > Flash Player 제거) 후 최신버전 설치

  - Audio 단자 연결 안되어 있는 문제

    --> 이어폰 또는 스피커를 Audio 단자에 연결하여 해결

  - YouTube Player 방식 변경 처리 (Flash Player --> HTML5 변경)

    --> http://www.youtube.com/html5 사이트 접속 후 'HTML5 플레이어 사용' 버튼 클릭

    --> Player 방식 변경 처리 후에는 모든 YouTube 영상이 HTML5 기반의 플레이어로 재생 및 출력


5. 기타사항

  - 처음에는 Flash Player 버전을 확인했으나 제일 최신버전이 설치되어 있어 설치파일이 깨지거나 

    해서 안되는건가 해서 Flash Player를 재설치 해 보았다. 하지만 증상은 같았고, 크롬에서는 문제가

    없었는데 유독 IE에서만 문제가 되었다. 웹서핑 중 Audio 단자에 연결된 출력장치(스피커, 이어폰

    등)를 찾을 수 없어서 발생 되는 문제가 있다는 걸 확인 하였다. 그래서 스피커를 연결해 보시라고

    얘기를 드렸는데 스피커가 없으시단다. 하여 YouTube 플레이어 방식을 HTML5 방식으로 동작을

    하도록 변경 해 드렸다. IE11에서도 Audio 출력 장치를 못찾아도 영상이 잘 나온다. 다만, 영상을

    공유항때 이전 소스코드 방식으로 공유한 경우라면, Flash Player 기반으로 영상 재생이 되어 같은

    문제가 발생할 것으로 보인다.



<12 class="hx cmt">
    

VIRTUALBOX(버추얼박스) 실행시 nvinitx.dll 에러나는 경우


nvinitx.dll 파일의 경우 nVidia VGA Driver 관련 파일로 버추얼박스 설치 후 그래픽 드라이버를 

설치한 경우 발생한다. 

버추얼박스삭제후 재설치 하면 버추얼박스에서 nVidia VGA 설정을 잡으면서 해결된다.

<12 class="hx cmt">
    

2.3.4.14. The Location of the my.ini File

In MySQL installations prior to version 4.1.5 it was customary to name the server configuration file my.cnf ormy.ini and locate the file either at c:\my.cnf or c:\Windows\my.ini.

The new MySQL Configuration Wizard places the my.ini file in the installation directory of the MySQL server. This helps associate configuration files with particular server instances.

To ensure that the MySQL server knows where to look for the my.ini file, an argument similar to this is passed to the MySQL server as part of the service installation:

--defaults-file="C:\Program Files\MySQL\MySQL Server 4.1\my.ini"

Here, C:\Program Files\MySQL\MySQL Server 4.1 is replaced with the installation path to the MySQL Server. The --defaults-file option instructs the MySQL server to read the specified file for configuration options when it starts.


<12 class="hx cmt">
    

* Mysql 서비스 등록 명령어

1. cmd 창에서 mysql 설치 디렉토리의 bin 디렉토리로 이동

2. mysqld --install [서비스명]

3. 2.번의 명령어 입력



* Mysql 서비스 삭제 명령어

1. cmd 창에서 

2. sc delete 서비스명

3. 2.번의 명령어 입력


<12 class="hx cmt">
    

from 안에 선언된 객체들을 불러 올 경우 보통은 document.폼명.객체명 으로 해당 객체를 

Javascript에서 참조할 것이다. 허나 오늘 얘기 하고자 하는 것은 간단하지만 놓치기 쉬운 부분에 대해 

얘기 하고자 한다.

유지보수 중 Radio 버튼을 이용하여 처리를 해야 하는 경우가 발생 하였다. 조금 더 디테일 하게 얘기

하자면, 이용약관 밑에 동의여부를 만들어 달란다. 

기존이라면 위의 예시 처럼 document.폼명.객체명 으로 참조 했었겠지만, 요세는 크로스 브라우징 및 

웹접근성을 고려해야 하여, document.폼명.객체명 코드 보다는 document.getElementById 코드와

getElementByName 코드를 주로 사용하게 되었는데...

Radio 버튼을 두개이상 만들어서 Javascript로 제어를 하려 하니 getElementById로는 제어가 되지 

않았다. 그래서 getElementByName도 사용 해봤지만 객체를 찾지 못하였다. 

그래서 정리했다.

* getElementById : 객체의 고유 ID 값 참조 (싱글 객체로만 인식됨)

* getElementByName : 객체의 고유 Name 값 참조 (싱글 객체만 인식됨)

* getElementsByName : 객체의 고유 Name 값 참조 (두개 이상 동일 Name을 갖는 객체 배열로 인지)


Radio 버튼을 두개 이상 사용시 getElementsByName 로 인식이 가능하다.

<12 class="hx cmt">
    
회원가입 폼 관련하여 수정 중 특정 textbox 객체의 value값이 서블릿으로 넘어가지 않는 경우가 발생 되었다.

만 하루를 테스트해보다 찾은 결론은  textbox 객체에 disable="true" 옵션 때문이었다.

해당 옵션을 readonly 로 변경하니 서블릿으로 값이 정상적으로 넘어갔다.

*  disable="true" 
  - 해당 객체의 value값을 사용 할 수 없도록 하는 옵션이며, 임의 변경이 불가능 하다.
    또한, 기본적으로 Gray 처리를 한다. 고로, 서블릿에 해당 값을 submit 할 수 없다.

* readonly
  - 해당 객체의 value값에 대해 임의 변경만 불가능 하다. 하지만, 해당 객체의  value값에 대해 읽기
    권한은 가지고 있어 서블릿에 해당 값을 submit은 가능 하다.

우선 확인된 사항은 이렇게 이며, 해당 옵션의 차이점을 좀 더 찾아보고 업데이트를 해야 겠다.
<12 class="hx cmt">
    

PHP 유지보수를 하던 중 뒤로가기시 만기된 페이지가 떠서 해결 책을 찾았다.

php.ini 파일의 session.cache_limiter 값을 아래와 같이 변경 하면 된다.

변경전(default 값) : session.cache_limiter = nocache;
변경후                 : session.cache_limiter = ;


단, 주의 사항은 phpInfo() 함수를 이용하여, 어떤 php.ini 파일을 php 환경파일로 사용하는지 확인 후

변경 해야 한다.

확인은  phpInfo()함수를 이용 php 파일을 만든 후 웹으로 띄어놓고 Loaded Configuration File

항목을 확인 하여 해당 파일을 수정 하면 된다.
<12 class="hx cmt">
    
웹 개발 및 유지보수 시 자바스크립트 오류가 나는 경우가 있다.

실제로 비즈니스 로직상의 문제는 없으나, 오류가 나는 경우가 있다.

필자도 어제 그걸로 고민을 하다가 결국 해결을 했다.

필자의 경우는 사이트(클라이언트) 쪽에 설치된 웹이 PHP+Smarty(Framework) 기반으로 개발이 

되어 있었고, 유지보수를 하였다.

우선 자바스크립트 오류(document.XXX.XXXX은 null이거나 개체가 아닙니다) 오류가 날 경우 

1. 참조 하려는 개체의 name이 정확한지 또는 중복인지 확인 한다.
   --> 만약 틀리다면 개체 name을 맞춰 주면 되고, 중복이라면 중복된 개체 중 하나를 수정 해준다.
         (아쉽게도 필자는 정상이였다. 고로 필자는 패스 했다.)

2. 참조 하는 name이 정상이라면 html 태그를 확인 하자!!
   --> 웹 개발을 한 후에 유지보수를 맡은 개발자가 수시로 바뀌면서 소스는 더러워지고, 간혹 일정에
         쫒겨, form 이나 table 안닫아서 문제가 생기더군요. 저도 결국 include 되는 파일에서 안닫힌 
         태그가 있어서 닫았 답니다.

<12 class="hx cmt">