본문 바로가기

분류 전체보기727

SQLite inert or replace(오라클/MS-SQL Merge 기능) 오라클 또는 MS-SQL의 Merge와 유사한 기능으로 SQLite에서는 insert or replace 기능이 있습니다. 사용법은 Merge보다 간단하지만, 디테일한 적용은 조금 부족합니다. insert or replace 기능은 PK 기준으로 해당 데이터가 있으면 insert하지 않고 replace(update)합니다. 1. 테이블 정보 PK는 ID 컬럼 하나만 지정했습니다. 2. 데이터 3. 동일 ID가 없는 경우 insert or replace into TB_USER(ID, NAME, DESC) values('ID-003', '김유신', '') [결과] 4. 동일 ID가 있는 경우 insert or replace into TB_USER(ID, NAME, DESC) values('ID-001', '.. 2021. 2. 8.
C# 파일 유무, 복사, 이동, 삭제, 텍스트 파일 읽기/쓰기 System.IO.File 클래스에는 여러 유용한 메소드가 존재합니다. 파일 유무, 복사, 이동, 삭제를 쉽게 할 수 있습니다. 소스는 아주 간단하니 주석은 생략합니다. ^^ 1. 파일 유무 using System; using System.Diagnostics; using System.IO; namespace FileTest { class Program { static void Main(string[] args) { String filePath = @"D:\temp\test.txt"; if (File.Exists(filePath)) { Debug.WriteLine("파일 있음"); } else { Debug.WriteLine("파일 없음"); } } } } 2. 파일 복사 using System; usi.. 2021. 2. 6.
E/RecyclerView: No layout manager attached; skipping layout 아래의 오류는 RecyclerView에 Layout Manager를 설정하지 않아 서 발생합니다. E/RecyclerView: No layout manager attached; skipping layout 아래와 같이 RecyclerView에 layoutManager를 설정하면 됩니다. app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" 2021. 2. 5.
[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.
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.
안드로이드 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.