본문 바로가기

전체 글678

[JS] 대용량 데이터에 성능 좋은 SlickGrid 시작하기 얼마전 프로젝트에서 DevExpress의 Web Component를 사용해서 Grid를 구현했었습니다. DevExpress는 많은 기능을 제공하고 있었지만 대용량의 데이터 처리에 문제가 발생했습니다. 컬럼이 60개, 데이터가 2000개 이상일 때 데이터 바인딩 시 화면에 너무 많은 시간이 걸리더군요. 그래서 해결책으로 찾은 것이 SlickGrid입니다. 1. 아래의 GitHub에서 SlickGrid 소스를 받으세요. https://github.com/6pac/SlickGrid 6pac/SlickGrid A lightning fast JavaScript grid/spreadsheet. Contribute to 6pac/SlickGrid development by creating an account on G.. 2021. 2. 5.
Java - HTML 문자 Escape 하기 JSP로 게시판을 등에서 사용자가 입력한 문자에 HTML Tag와 Javascript를 입력하여 리다이렉트를 시키는 경우가 있습니다. 이러한 크로스사이트 스크립팅을 방지하기 위해서 게시판 내용의 HTML을 Escape 처리해야 합니다. 아파치 프로젝트 중 Common Lang에서 이러한 작업을 할 수 있습니다. 1. Common Lang Jar 파일을 다운로드하기 위해서 아래의 URL에 방문하세요. https://commons.apache.org/proper/commons-lang/download_lang.cgi Lang – Download Apache Commons Lang Download Apache Commons Lang Using a Mirror We recommend you use a mirro.. 2021. 2. 3.
Java - SQLite 데이터베이스 사용하기 안드로이드 개발 시 SQLite 데이터베이스를 자주 활용하고 했습니다. Java Application에도 SQLite 데이터베이스를 어떻게 구현하는지 차근차근 설명드리겠습니다. 1. SQLite 데이터베이스 파일 생성 (1) 무료 SQLite 툴 다운로드 https://docko.tistory.com/entry/%EB%AC%B4%EB%A3%8C-SQLite-%ED%88%B4?category=589478 무료 SQLite 툴 안드로이드 개발 중에 데이터베이스(SQLite) 사용을 위해서 파이어폭스에 플러그인 된 프로그램을 사용했었습니다. 그렇지만 이놈의 툴이 너무 투박하고 불편해서 다른 무료 툴을 찾다가 DB Browse docko.tistory.com (2) SQLite 데이터베이스 생성 https://.. 2021. 2. 1.
Android resource linking failed(error: unexpected element <queries> found in <manifest>) 갑자기 안드로이드 스튜디오에서 프로젝트를 컴파일하니 아래와 같은 오류가 발생해서 당황했습니다. 구글링을 하니 프로젝트를 클리어 후 재컴파일 해보며 된다는 등의 처리방법이 있는데 그래도 해결하지 못했습니다. [오류] Execution failed for task ':app:processDebugResources'. > Android resource linking failed D:\Project\TVSchedule3\app\build\intermediates\merged_manifests\debug\AndroidManifest.xml:15: AAPT: error: unexpected element found in . [해결] android/build.gradle Android Gradle plugin 버전을.. 2021. 1. 30.
Java SQL 인젝션(SQL Injection) 해킹 방지를 위한 Escape 문자 변환 방법 SQL 인젝션을 방비하기 위해서는 PreparedStatement를 이용하는 것이 좋습니다. 하지만 문자열로 SQL을 생성 시에는 SQL 조건절의 상수 문자내의 Escape 문자를 변경해야 합니다. 예로 홀따옴표(')의 경우는 홀따옴표를 두개('')로 변환해서 SQL 문자열을 만들어야 하죠. 아파치 프로젝트 중 Common Lang에서 이러한 작업을 할 수 있습니다. 1. Jar 파일을 다운로드하기 위해서 아래의 URL에 방문하세요. https://commons.apache.org/proper/commons-lang/download_lang.cgi Lang – Download Apache Commons Lang Download Apache Commons Lang Using a Mirror We recom.. 2021. 1. 22.
넷플릭스 영상 녹화하기 넷플리 영상의 녹화해서 오프라인으로 보고 싶은 분들이 많으시죠. 하지만 녹화 프로그램으로 화면을 녹화하면 검정화면과 소리만 녹화됩니다. 구글링하던중 아래의 사이트로 가능하네요. ※ 넷플릭스 녹화는 크롬 브라우저에서 진행했습니다. https://www.flexclip.com/tools/screen-recorder/ Free Online Screen Recorder - Record Screen with One-Click | FlexClip Make a Video for Free with FlexClip Now Get Started www.flexclip.com 1. 크롬에서 넷플릭스를 방문하고 위의 URL을 다른 탭으로 열어서 아래의 이미지에서와 Start Recording을 클릭합니다. 2. 소리 녹음을 .. 2021. 1. 13.
일곱개의 대죄 - 1.5주년 절대제 정오의 상자 코드 공개 일곱개의 대죄 모바일 게임이 1.5주년이 되어서 이벤트를 하고 있답니다. 점심때 이벤트 상자를 주는데 상자를 열기 위해서는 패스워드가 필요합니다. 넷마블에서 친절하게도 공지로 패스워드를 일자별로 공개했네요. 1일차 theone 2일차 777777 3일차 no1rpg 4일차 comebacknow 5일차 the1escanor 6일차 thankyouall 7일차 great7ds 2020. 12. 20.
C# 폴더내의 파일 목록 특정 폴더내의 파일들을 찾는 코드입니다. 간단 하지만 자주 사용하는 코드랍니다. System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"c:\Windows"); foreach (System.IO.FileInfo file in di.GetFiles()) { Debug.WriteLine("파일명 : " + file.Name); } [결과] 2020. 11. 5.
C# 윈도우(창) 이름으로 핸들(hWnd) 찾기 다른 프로세스에 SendMessage 또는 PostMessage로 처리하기 위해서 핸들을 찾는 방법입니다. user32.dll의 함수를 사용해서 윈도우(창)의 이름으로 쉽게 찾을 수 있습니다. 아래의 코드를 참고하세요. using System; using System.Diagnostics; using System.Runtime.InteropServices; namespace ConsoleApp { class Program { [DllImport("user32.dll")] private static extern IntPtr FindWindow(string lpClassName, string lpWindowName); static void Main(string[] args) { IntPtr hWnd = Fi.. 2020. 11. 4.
C# 프로젝트로 생성한 EXE 또는 DLL의 실제 경로 얻기 프로젝트로 생성된 exe나 dll의 경로를 알아야 할 경우가 종종 있습니다. 작업 디렉토리(Working Directory)가 아닌 다른 폴더에 exe나 dll이 존재 하는 경우 경로를 찾아서 처리해야겠죠. exe나 dll내의 클래스를 이용하여 실제 경로를 간단히 얻어 올 수 있습니다. 코드는 아래와 같습니다. string fileName = new ClassName().GetType().Assembly.ManifestModule.Name; string filePath = new ClassName().GetType().Assembly.Location; Debug.WriteLine("파일이름 : " + fileName); Debug.WriteLine("파일경로 : " + filePath); 2020. 11. 4.
유니티(Unity) 설치 2020.1.10 버전 유니티 설치하는 방법입니다. 1. 유니티 허브(Unity Hub) 다운로드 유니티를 설치 하려면 유니티 허브를 다운로드 후 설치 해야 합니다. 다운로드는 아래의 사이트에서 하면 됩니다. https://unity3d.com/kr/get-unity/update?_ga=2.40982945.285902932.1571065765-953708571.1569851476 Get Unity - Update - Unity Looking to update Unity? Download it here! unity3d.com 2. 유니티 허브(Unity Hub) 설치 유니티 사이트에서 다운로드 한 설치파일을 실행합니다. 3. 유니티 허브의 좌측 메뉴에서 설치를 클릭합니다. 4. 설치화면의 오른쪽 상단의 추가 버튼을 클릭합니다. .. 2020. 10. 28.
제9호 마이삭 한미일 태풍경로 예보 현재 제9호 마이삭이 태풍이 대한민국으로 다가오고 있습니다. 한반도로 마이삭이 상륙하는 것은 한미일 동일하게 예보하고 있습니다만, 한미일 3국의 예보는 약간 차이가 있습니다. 한미일 태풍 경로 예보를 알아보겠습니다. 해당 정보는 안드로이드 태풍앱에서 정보를 캡처했습니다. 아래의 URL에서 다운로드 할 수 있습니다. https://play.google.com/store/apps/details?id=com.jmsys.typhoon 태풍 - Google Play 앱 북태평양 남서부에서 발생하여 아시아 대륙 동부로 불어오는 맹렬한 열대성 저기압인 태풍에 대한 정보를 보여줍니다. 1. 태풍 경로 - 태풍경로를 보여줍니다. 2. 태풍이란 - 태풍이 무엇인지에 � play.google.com 한국 기상청 한국의 기상.. 2020. 9. 2.
귀하의 앱에서 Google AdMob 광고 게재가 중지되었습니다 귀하의 앱에서 Google AdMob 광고 게재가 중지되었습니다 위와 같은 제목으로 애드몹으로부터 메일을 받았습니다. 해당 앱은 게시를 중지했던 앱인데 몇개월 후가 지난 지금에서야 정책 위반으로 광고 게재를 중지한다고 합니다. 애드몹의 계정이 여러번의 정책 위반을 하게 되면 계정 정지가 될 수도 있다는 불안한 마음 때문에 조치를 하려고 합니다. 그래서 정책 센터에 해당 정책 위반에 대해서 "앱이 게시 중지인데 어떻게 해야 하냐?"고 문의를 했으나 답변에 별다른 내용 없이 정책 위반이라고 다시 메일이 왔습니다. 그래서 이것 저것 구글링을 해보니 광고단위를 삭제하면 된다고 해서 광고 단위를 삭제하고 검토 요청을 하였습니다. 애드몹에서는 앱은 삭제 할 수는 없고, 광고 단위는 삭제 할 수 있는데 방법은 아래와.. 2020. 8. 17.
안드로이드 외부 폰트 Layout XML에 적용하기 안드로이드 앱 개발 시 외부 폰트를 적용하는 방법은 Typeface 객체를 이용하는 방법이 있습니다. 하지만 이 방법은 Layout 디자인에는 표시가 안되기 때문에 디자인 적용을 디버깅에서 확인 해야 하죠. Layout XML에 외부 폰트를 적용하는 방법인데 간단합니다. 1. res(리소스) 하위에 font 디렉토리를 생성하고 외부 폰트를 복사해서 넣습니다. (주의 할 것은 외부 폰트명은 소문자와 "_" 만으로 구성해야 합니다.) 2. Layout XML에 아래와 같이 fontFamily를 지정하면됩니다. 3. 안드로이드 스튜디오 Layout 편집기에서 아래와 같이 확인 할 수 있습니다. 2020. 8. 7.
일곱개의 대죄 : 행동력 회복 물약 매일 모으기 일곱개의 대죄 게임을 하다보면 행동력이 부족하여 퀘스트를 진행 못하는 경우가 종종 발생합니다. 그래서 행동력 회복 물약을 대량으로 보유하는 것이 좋습니다. 저는 매일 우정코인으로 코인 상점에서 행동력 회복 물약을 모으고 있답니다. 여러분도 꼭 우정코인으로 물약을 많이 얻고 즐겜하세요~~ 친구들이 보낸 우정 코인을 수령하세요. 상점으로 이동해서 코인 상점으로 이동하세요. 우정에서 행동력 회복 물약을 선택하세요. 우정 코인으로 행동력 회복 물약을 사세요. 행동력 회복 물약이 추가됩니다. 2020. 8. 6.
일곱개의 대죄 : 챕터1 퀘스트 100프로 클리어하고 다이아 30개 얻기 챕터의 퀘스트를 100%로 완료하면 다이아 30개를 보상으로 받을 수 있습니다. 챕터1의 퀘스트를 전부 클리어 하지 않았는데, 다이아를 모으기 위해서 클리어를 하였답니다. 참고로 챕터1에서 6까지는 스토리와 퀘스트를 클리어해야 100%로 완료 할 수 있습니다. 83%에서 100%로까지 클리어하는데 약 30분이 걸렸답니다. 퀘스트 83%에서 100%로 완료 다양한 퀘스트를 있습니다. 보상은 다이아 30개를 얻었습니다. 2020. 8. 5.
안드로이드 Action Bar 숨기기, Full Screen을 Style XML로 설정하기 안드로이드 프로젝트를 생성하고, styles.xml에서 Action Bar를 숨기거나 Full Screen을 설정하는 방법입니다. styles.xml 은 아래의 경로에 있습니다. 1. Actin Bar 표시 styles.xml 설정 windowActionBar = true, windowNoTitle = false, windowFullscreen = false 로 설정 2. Actin Bar 숨기기 styles.xml 설정 windowActionBar = false, windowNoTitle = true, windowFullscreen = false 로 설정 3. Full Screen styles.xml 설정 windowFullscreen = true 로 설정 (windowActionBar = true 와.. 2020. 8. 4.
OK 캐쉬백 상품쿠폰 적립 방법 맥심 믹스 커피를 마트에서 샀는데, OK 캐쉬백 쿠폰이 있네요. 200포인트를 준다고 해서 OK 캐쉬백에 회원가입하고 상품 쿠폰을 적립해보았습니다. 아래의 OK 캐쉬백 사이트로 이동 후 로그인을 하세요. http://www.okcashbag.com/index.do 메인 | OK캐쉬백 카페/제과 탐앤탐스 을지로입구점 서울 중구 을지로2가 www.okcashbag.com 좌측 상단 메뉴에 상품쿠폰을 클릭하세요. 상품쿠폰 화면에서 쿠폰번호 입력에 쿠폰번호를 입력후 적립을 클릭하세요. 아래의 같이 적립되었다고 나오는데, 이런 10%로를 차감하고 적립한다고 합니다. 2020. 8. 4.
윈도우즈10 화면 보호기 설정 윈도우즈 10의 화면 보호기 설정방법입니다. 1. 윈도우즈10의 시작 아이콘을 클릭 후 설정 아이콘을 클릭합니다. 2. Windows 설정 화면에서 개인 설정 메뉴를 클릭합니다. 3. 개인 설정 화면에서 잠금 화면 메뉴를 클릭합니다. 4. 잠금 화면에서 화면 보호기 설정을 클릭합니다. 5. 아래와 같이 화면 보호기 설정 화면에서 "화면 보호기"를 설정하면됩니다. ※ 화면 보호기를 해제 할 때 로그인 패스워드를 입력하도록 하려면 "다시 시작할 때 로그온 화면 표시"를 체크하세요. 2020. 7. 25.
React-Native iOS 애드몹(Admob) 적용 React-Native에서 iOS 애드몹 적용 순서입니다. 화면(Screen)의 View에 적용은 생략합니다. 1. Module 설치 npm i --save react-native-admob@next - 자세한 내용은 아래의 사이트를 참고하세요. https://github.com/sbugert/react-native-admob sbugert/react-native-admob A react-native component for Google AdMob banners. Contribute to sbugert/react-native-admob development by creating an account on GitHub. github.com 2. Info.plist에 Admob 앱ID를 입력 (Info.pli.. 2020. 7. 21.
자동차검사기간 인터넷 확인 방법 자동차 검사기간을 한국교통안전공단에서 쉽게 확인 할 수 있습니다. 저도 잦은 출장으로 고지서를 못 보는 경우가 있는데, 인터넷으로 확인이 가능해서 편리하네요. 아래의 한국교통안전공단 홈페이지로 방문하세요. http://www.ts2020.kr/ 한국교통안전공단 www.ts2020.kr 홈페이에서 자주 찾는 메뉴 > 자동차 > 자동차검사 예약을 클릭하세요. 아래의 화면에서 차량번호 및 차량 소유주의 생년월일을 입력하면 검사기간을 확인 할 수 있습니다. 2020. 7. 17.