본문 바로가기
반응형

IT 실무154

findViewById() 에서 String 사용하기 아래와 같이 사용하면 동작이 안된다. findViewById() 메서드에선 id만 인식하기 때문에 String변수를 적더라도 String 변수 이름에 해당하는 아이디만 찾지 그 값을 인식하지 못하는 것이다. String img = "ImageView0"+photoIndex; mPhotoImageView = (ImageView)findViewById(R.id.img); 이럴땐 아래와 같이 getIdentifier()를 이용해 줘야 한다. String img = "ImageView0"+photoIndex;int resID = getResources().getIdentifier(img, "id", "com.sample"); mPhotoImageView = (ImageView)findViewById(resID); 2013. 11. 15.
[C#] MIDI 제어를 위한 Sanford Midi Toolkit http://www.codeproject.com/Articles/6228/C-MIDI-Toolkit 2013. 11. 9.
[C# WPF] Grid에 배경 이미지 주기 Grid> Grid.Background> ImageBrush Stretch="None" ImageSource="background.png" AlignmentY="Top" AlignmentX="Center"/> /Grid.Background>/Grid> 2013. 11. 3.
[Kinect C# WPF] KinectTileButton에 배경 이미지 넣기 XAML 파일에서 과 같이 간편하게 지정 할 수 있다. 하지만 이렇게 할 경우 Button의 Hover, Click 속성이 다 무시된다. 테스트 해 보면 알겠지만 기존 KinectTileButton과 다르게 Hand Mouse가 올라갔을때 확대가 된다거나, 클릭을 했을 때 눌리는 애니메이션 효과가 없다. 이런 속성을 그대로 유지시키고 싶다면 XAML 코드가 아닌 cs코드 main() {... 안에 아래와 같은 코드를 넣어준다. (위 코드와 함께 사용하는 것이 아님. 아래 코드를 사용할 땐 을 사용하지 않는다.) BitmapImage bi = new BitmapImage(); bi.BeginInit(); bi.UriSource = new Uri("img\\button1.png", UriKind.Absolu.. 2013. 11. 3.
[Java] 파일 입출력(I/O)의 기본적인 이해 자바는 편의를 위해 많은 종류의 스트림을 제공하고 있기 때문에 초보자 입장에서는 어떤 스트림을 사용해야 되는지 햇갈릴 때가 많다. 그냥 다른 사람이 쓴 예제를 복사, 붙여넣기 하다 보니 스트림을 여러개 중첩한, 불필요하게 복잡한 소스를 사용하기도 한다. 만들고 있는 프로그램이 제대로된 프로젝트가 아니라, 학교 프로그래밍 과제라던가 파일 입출력이 큰 비중을 차지 하지 않는 간단한 프로그램이라면 그냥 기본적인 스트림만 사용해도 된다. 그럼 뭐가 기본적인 스트림이고, 어떻게 사용하는지 알아 보자. JAVA의 스트림은 '바이트 기반'인 InputStream과 OutputStream. 그리고 '문자 기반'인 Reader와 Writer가 있다. 1. 바이트 기반 바이트 기반의 스트림들은 모두 InputStraem과.. 2013. 10. 28.
[Layout] LinearLayout 안에서 요소 오른쪽 정렬하기 중간에 View 를 넣고 layout_weight="1" 옵션을 주면 된다. Ex) LinearLayout 양쪽 끝에 버튼을 배치 하려면 아래와 같이 하면 된다. Ex) 2013. 10. 27.
[Layout] 화면 아래쪽에 요소 배치하기(align bottom) 부모가 되는 레이아웃을 RelativeLayout 으로 하고 아래쪽에 배치할 레이아웃에 android:layout_height="wrap_content" android:layout_alignParentBottom="true" 옵션 주기 Ex) 2013. 10. 27.
[API] js파일에 get방식으로 파라미터 넘기기 javascript API 형태로 나오는 라이브러리들을 보면 js파일에 map.js?key=abcd 와 같이 get방식으로 파리미터를 넘기는 것을 볼 수 있다. 당연히 이렇게 쓰다 보니 이렇게 되는줄 알았다. 하지만 javascript 파일은 get 방식으로 넘어온 파라미터를 인식 할 수 없다. 열심히 검색 해서 보니 나름 범용적으로 쓰이는 아래 코드가 나온다. /* */ var scripts = document.getElementsByTagName('script'); var myScript = scripts[ scripts.length - 1 ]; var queryString = myScript.src.replace(/^[^\?]+\??/,''); var params = parseQuery( query.. 2013. 10. 27.
jQuery에서 ajax 간단히 구현하기 ($.get과 $.post) $.get과 $.post 정말 간단하게 ajax를 사용하고 싶을 때 사용 할 수 있는 간소화된 함수이다. $.get("somepage.php"+someParameter,function(data){ $( ".result" ).html( data ); alert( "Load was performed." ); }); 별로 설명 할 것이 없을만큼 사용법이 간단한다. $.get()안에 ajax로 접근하고자 하는 페이지를 적어 준다. 그냥 페이지 내용만 로드하고 싶은 경우엔 $.get("abc.php")라고 해 주면 되고 파라미터를 넘길 때에는 예제에서 한 것과 같은 방법으로 넘겨도 되고 정석대로 하려면 JSON 배열형태로 넘겨 줘야 한다. 아래의 두 예제는 정확히 같은 기능을 한다. var someParamete.. 2013. 10. 26.
[PHP-MySQL] PHP mysqli Extension 간단 매뉴얼 편의상 php의 mysql와 관련된 함수들을 모아 class로 만들어서 사용하는 개발자들이 많다. 하지만 객체화 시키려면 굳이 mysql 함수군을 사용하지 말고 mysqli를 사용하면 된다. php에서 이미 객체화 시켜서 제공하고 있다. 조금만 있으면 이게 표준이 되고 mysql은 depricated된다고 하니 빨리 익숙해 두자. mysql.inc.php 사용 할때마다 아이디 비밀번호를 치기 귀찮다면 위와 같은 파일을 만들어서 항상 include_once시킨다. 내부 내용은 프로젝트에 맞게 알아서 수정하면 된다. 간단한 INSERT 는 아래와 같이 한다. insert된 id를 바로 알 수 있기 때문에 성공 처리를 할때 코딩하기가 한결 편해졌다. UPDATE랑 DELETE도 비슷한 방식으로 간단하게 할 수.. 2013. 10. 26.
세션 관련 함수 정리 PHP4 이하 버전과 PHP5 이상 버전의 함수가 다르기 때문에 그 차이를 알고 있어야 정확한 세션 구현이 가능하다. 구형 함수를 사용 할 경우 어떤 서버에서는 아무 이상 없이 잘 동작 하지만, 어떤 서버에서는 경고가 출려되고 어떤 서버에서는 아예 에러를 출력하며 죽어버린다. PHP4부터 PHP5까지 점진적으로 사용이 중단되었기 때문인데 그 경계선은 확실히 모르겠다. 다만 그냥 최신 버전의 함수가 무엇인지 알고 그 방식 대로만 사용하면 된다. 세션의 시작 session_start(); 세션과 관련된 함수를 사용할때 항상 먼저 사용되어야 하는 함수이다. "난 이 페이지 내에서 세션을 사용하겠다" 라고 이해하면 된다. 이 함수가 호출되기 이전에 어떤 형태의 출력문도 있으면 안된다. 세션을 구동 시키는건 헤더.. 2013. 8. 16.
[CSS] 요소 내에서 초과되는 문자열 "..." 으로 자르기 .cut { width:(폭)px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis } 위 모든 옵션이 다 있어야 동작한다. 2013. 8. 10.
[에러노트] Apache: [warn] _default_ VirtualHost overlap on port 80, the first has precedence Error and Solution http://www.cyberciti.biz/faq/warn-_default_-virtualhost-overlap-port80-first-hasprecedence/ 2013. 7. 30.
한글 도메인을 DNS세팅, VirtualHost에 등록하려 할 경우 그냥 하던대로 했는데 안된다. 한글을 제대로 인식하지 못하기 때문이다. 이런식으로 영어가 아닌 외국어로 된 도메인은 퓨니 코드(Puny Code)로 변환해서 등록 해 주어야 한다. Whois 같은 곳에서 도메인 정보를 조회하면 XN-- 으로 시작하는 영어 문자열이 나온다. 이걸 사용해도 되고 아니면 http://domain.blueweb.co.kr/pop_puny.html 와 같이 변환 사이트나 변환 프로그램을 찾아서 써도 된다. 2013. 7. 30.
HTML + PHP 환경의 무료 POS 오픈소스 프로그램 외국 프로그램이긴 하지만 참고가 많이 될것 같아서 가져왔다. http://sourceforge.net/projects/opensourcepos/ 바코드 리더기도 어짜피 스탠다드 인풋이기 때문에 HTML로 구현 가능 하다는것도 알았다. 인터넷 환경이 지금보다 조금만 더 안정적이고 빨라진다면 HTML5를 이용한 괜찮은 POS 상용 프로그램도 만들 수 있을것 같다. 2013. 7. 29.
서버 로그 관리 서버를 직접 돌리는게 처음이거나, 웹 호스팅을 사용하다가 서버 호스팅, 또는 가상서버 호스팅으로 업그레이드 한 경우 직접 log파일을 관리해 주기 시작 해야되는데, 익숙하지 않은 입장에서는 어떻게 해야되는지 모르는 경우가 많다. 우선, 별도의 세팅이 없다면 로그파일은 apache폴더 내의 access_log 에 모든 로그가 다 저장이 된다. httpd.conf 파일을 보면 그 위치를 알 수 있는데 귀찮다면 그냥 find / -name access_log 라고 쳐 보면 된다. CentOS5의 경우 /var/log/httpd/access_log 로 되어 있다. 이 파일만 열어봐도 대략적인 로그는 다 파악 할 수 있다. 어떤 아이피에서 어떤 요청으로 어떤 파일에 접근했고, http 응답이 어떤식으로 나왔는지 .. 2013. 7. 18.
Stable 버전과 Legacy 버전의 차이 Jquery나 다른 라이브러리(플러그인?)을 사용하다 보면 stable와 legacy 두개의 버전으로 배포하는 것을 볼 수 있다. Stable Version 은 최종 버전 중에서 테스트가 완료되고 버그가 수정된 안정된 버전이다. Legacy Version 은 아직 사용이 가능한 예전 버전이다. 최신 버전에서 새로 생긴 기능들은 제공되지 않지만 아직까지 최신 환경에서 사용하기에 문제가 없는 버전을 가리킨다. 예를 들면, 최신 Stable 버전은 IE6, IE7, IE8 에서의 테스트를 중단하고 IE9와 IE10에서만 테스트가 완료된 버전일수도 있다. 이렇게 되면 Stable이라고 하더라도 IE8 이전의 예전 환경에선 제대로 동작이 되지 않을 수 있다. Legacy 버전은 IE6, IE7, IE8, IE9,.. 2013. 7. 14.
삭제 안되는 폴더 강제로 삭제하기 FTP에서 폴더 전체를 지우려고 했는데 유독 안지워지는 폴더들이 있다. 그 폴더를 죽 따라 들어가보면 마지막 하위 폴더에 숨김 파일들이 있는데, 숨김 파일을 지울 수는 있지만 하나하나 지우기 귀찮다. 그럴땐 rm 최상위폴더 -rf 라고 해 주면 폴더 내의 폴더, 그 안의 내용들까지 강제로 싹 다 지워준다. -f : 폴더 안에 파일이 있더라도 강제(force) 삭제 -r : 폴더 안에 하위 폴더들이 있고 그 안에 또 폴더가 있고 개판이더라도 recursive하게 다 삭제. 2013. 6. 18.
반응형