본문 바로가기

개발 이야기163

[JAVA, Android] String to Byte array, Byte array to String (문자열을 바이트배열로 바꾸기, 바이트 배열을 문자열로 바꾸기) 안녕하세요 마블랑입니다. 자바나 안드로이드에서 종종 문자열을 바이트 배열로 변환하거나 반대로 바이트 배열을 문자열로 변환해야할때가 있으실 겁니다. 그래서 이번에는 문자열과 바이트 배열의 변환에 대해서 알려드립니다. 방법이 아주 간단합니다. 1. 문자열에서 바이트 배열로 변환하기 (String to Byte array) String str="Mablang";byte[] byteArray=str.getBytes(); 2. 바이트 배열을 문자열로 변환하기 (Byte array to String) byte[] byteArray; //바이트 배열 String strError = byteArray.toString(); //잘못된 문자열 변환String strYes = new String(byteArray); 문자열.. 2018. 12. 4.
[JAVA, Android] Bitmap to byte array, Byte array to bitmap (비트맵을 바이트배열로 바꾸기, copypixelsfrombuffer, copypixelstobuffer) 안녕하세요 마블랑입니다. 프로그래밍을 하다보면 이미지를 전송하거나 데이터베이스에 저장을 하고싶은 경우가 종종 있습니다. 그럴 경우 이미지를 바이트 배열로 바꿔주면 되는데요 JAVA 또는 안드로이드에서 이미지를 바이트 배열로 바꿔주는 방법이 있습니다. 1. 비트맵을 바이트 배열로 바꾸기 (Bitmap to byte array) Bitmap bitmap; //비트맵 이미지 ByteBuffer buffer= ByteBuffer.Allocate(bitmap.ByteCount); //바이트 버퍼를 이미지 사이즈 만큼 선언bitmap.copyPixelsToBuffer(buffer);//비트맵의 픽셀을 버퍼에 저장byte[] byteArray = buffer.ToArray(); //바이트 버퍼를 바이트배열로 변환 2.. 2018. 12. 4.
[JAVA] JDK와 JRE, 그리고 JVM 안녕하세요 마블랑입니다. 이번 포스팅은 자바와 관련된 포스팅입니다. 요즘 프로그래밍 언어중에서 가장 핫 한 언어로 1등이 자바언어라고 인터넷에서 본 기억이 납니다. 마블랑도 자바를 주로 하진 않았지만 컴퓨터가 전공이라 강의를 들은적도 있고 안드로이드를 실제로 실무에서 사용한 적이 있는데요 아무래도 자바를 사용하려면 자바를 설치해야 되는건 당연한 거겠죠? 그런데 자바를 설치하려고 보니까 JDK와 JRE? 그리고 JVM? 강의를 듣지 않고 독학을 하시는 분들은 뭘 설치 해야할지 망설이실 것입니다. 이렇게 망설이는 분을 위해 어떠한 버전을 설치해야하고 JVM이라는 것이 무엇인지 정리하였습니다. 1. JDK Jdk는 Java Development Kit의 약자로 단어를 해석해보면 알수 있듯이 자바를 개발하기 위.. 2018. 11. 20.
[빅데이터] R.Net을 C#과 연동하여 빅데이터 그래프 그리기 (3편 MSChart로 빅데이터 시각화하기) 안녕하세요 마블랑입니다. 드디어 R.Net을 C#과 연동하여 빅데이터 그래프 그리기의 마지막 포스팅입니다. 지난번 R.Net을 설치하고 예제코드를 실행해본 것에 이어서 이제 데이터를 MSChart를 이용하여 그래프로 그려보는 시간입니다. 1. MSChart를 이용하여 그래프로 데이터 시각화를 해보겠습니다. 저번 포스팅에서 사용하던 예제코드의 데이터를 Chart_R 변수의 그래프에 데이터를 추가합니다. 2. 추가된 코드를 빌드하고 실행해보겠습니다.데이터가 차이가 나지않아 차트로 봐도 많이 표시가 안나는군요. 3. 좀 더 명확히 데이터의 차이를 알아보기위해 직접 수치를 입력해줘도 되지만 R언어에서 CSV파일을 읽어와서 데티어를 표시해보려고 합니다. 실제로 R에서 사용하는 CSV파일의 데이터를 읽어오는 함수를.. 2018. 11. 19.
[빅데이터] R.Net을 C#과 연동하여 빅데이터 그래프 그리기 (2편 R.Net 설치하기) 안녕하세요. 마블랑 입니다. 이번 포스팅은 이전과 이어서 R.Net을 C#과 연동하여 빅데이터 그래프 그리기 2편 R.Net 설치하기 입니다. 이번 단계를 진행하기 위해서는 Visual Studio에서 패키지 관리자 콘솔 기능이 있어야합니다. 마블랑은 Visual Studio 2010에 패키지 관리자 콘솔이 없어 2013에서 진행하였습니다. 1. 패키지 관리자 콘솔을 열기 위해 Visual Studio 도구 탭을 클릭하고 NuGet 패키지 관리자 - 패키지 관리자 콘솔을 클릭합니다. 2. Visual Studio 하단에 아래 화면과 같이 패키지 관리자 콘솔이 열리는 것을 확인할수 있습니다. (설정에 따라서 다른 창에 뜰수도 있습니다.) 3. 패키지 관리자 콘솔에 "Install-Package R.NET .. 2018. 11. 19.
[빅데이터] R.Net을 C#과 연동하여 빅데이터 그래프 그리기 (1편 R 설치하기) 안녕하세요 마블랑입니다. 이번 포스팅은 4차 산업혁명의 한가지인 빅데이터에 관련된 것입니다. 빅데이터 분석에 활용되는 R언어를 C#과 연동하는 방법을 알아보고 분석된 결과를 차트로 표현하는 것이 이번 포스팅의 주제입니다. 내용이 어렵지는 않은데 분량이 좀 될거 같아 여러 포스팅으로 나누어서 진행하겠습니다. 첫번째는 R 언어를 사용하기 위해 가장 중요한 단계인 R언어를 설치하는 방법에 대해서 알려드리겠습니다. 1. R 다운로드를 위해 https://www.r-project.org 사이트에 들어갑니다. R은 프리웨어이기 때문에 누구나 다운받을수 있습니다. 사이트에 접속하였으면 왼쪽에 Download 항목의 CRAN을 클릭합니다. 2. CRAN을 클릭하면 여러나라의 서버가 보입니다. 쭉 내려오다보면 Korea.. 2018. 11. 19.
[데이터베이스] ORA-01013 사용자가 현재 작업의 취소를 요청했습니다.(user requested cancel of current operation) 해결방법(CDatabase 타임아웃 설정,timeout set) 안녕하세요 마블랑입니다. 이번 포스팅은 오라클DB를 사용하다 발생하는 에러에 관한 내용입니다. 해당 에러메시지는 "ORA-01013 사용자가 현재 작업의 취소를 요청했습니다" 라는 메시지로 영어버전을 사용하시는 분들은 다음과 같이 영문으로 표시가 됩니다. "ORA-01013 user requested cancel of current operation" 위 에러는 오라클DB에서 쿼리문을 실행하고 데이터를 처리하는 도중에 발생합니다. 에러의 원인은 코드상에서 쿼리문을 실행하고 처리를 요청하였는데 오라클이 이에 대한 응답을 주지 않아 데이터베이스를 연결한 객체에서 요청이 오지 않으므로 작업을 취소하고 중지를 하게됩니다. 작업을 취소하기 때문에 오라클은 처리 도중에 작업자가 취소하였다는 메시지를 출력하고 작업을.. 2018. 11. 18.
[데이터베이스] Window(윈도우)7 과 10 에서의 ODBC 드라이버 등록하기 안녕하세요 마블랑입니다. 시스템을 개발하게 되면 데이터베이스와 연동할 일이 대부분일 것입니다. 이번 포스팅은 데이터베이스와 관련하여 윈도우에서 ODBC드라이버를 등록하는 방법에 대해서 설명하려고 합니다. 먼저 ODBC란 Open DataBase Connectivity의 약자로 마이크로소프트에서 만들었습니다. MS에서 만들었으니 윈도우에서 당연히 사용할수 있고 추후에 표준화가 되어 리눅스나 유닉스에서도 사용할 수 있다고 합니다. (출처 : 위키백과) 어떤 데이터베이스를 쓰던지간에 ODBC로 등록을 하고 DNS와 ID, PW 만 알면 데이터베이스에 접근이 가능합니다. ODBC를 등록할때 몇가지 주의사항이 있습니다. 첫번째로 사용자의 윈도우 환경에 대해서 알아야 합니다. 윈도우가 32bit인지 64bit인지 .. 2018. 11. 16.
[MFC] CString 문자열 추출 안녕하세요 마블랑입니다 지난 번에 CString 문자열을 특정문자로 나누는 방법에 대해서 설명을 드렸는데요, 이번에는 CString문자열에서 문자열을 추출하는 방법에 대해서 설명 하겠습니다. 문자열를 추출을 하려면 정규화된 규칙대로 문자열이 구성되어있어야합니다. 그렇지 않으면 사용자의 입력을 받아서 특정위치의 문자열을 추출해야합니다. (구현하려는 프로그램에 따라 알맞게 구현하시면 됩니다.) 날짜와 시간을 예로 들어봅시다. 다음과 같이 날짜와 시간을 나타내는 문자열이 있습니다. 2018-08-15 13:08:40.1232018-09-30 08:24:35.4562018-10-08 10:57:19.7892018-11-08 12:12:12.012... 마지막 문장에서 월과 일을 추출하려면 왼쪽에서 5번째부터 5.. 2018. 11. 8.
[MFC] CString을 특정문자로 나누기 안녕하세요 마블랑입니다. 이번 포스팅은 MFC 프로그래밍을 할때 문자열로 많이 사용하는 CString에 관한 내용입니다. MFC프로그램을 개발하다 보면 CString 문자열의 특정 문자열만 사용해야하는 경우가 많죠? 문자열을 나누는 방법은 char 배열로 복사하여 캐스팅 변환 후 사용하는 방법 등 여러가지 방법이 있는데요. 그 중 하나인 AfxExtractSubString 함수에 대해서 설명하겠습니다. 먼저 AfxExtractSubString 의 원형에 대해서 살펴볼까요? (출처 : MSDN, https://msdn.microsoft.com/ko-kr/library/aa991543.aspx) BOOL AFXAPI AfxExtractSubString ( CString& rString, LPCTSTR lps.. 2018. 11. 8.
[객체지향]Overloading과 Overriding 안녕하세요 마블랑입니다. 이번에는 Overloading과 Overriding에 대해서 설명을 하겠습니다. 프로그래밍에 관한 서적을 보다보면 간혹가다 Overloading과 Overriding이라는 단어를 보실수 있을거에요 책에도 설명이 되어있긴 하지만 이해하기에는 좀 어려운 기술이지 않을까 싶은데요 조금이라도 도움이 될까하여 알기 쉽게 설명드리려고 합니다. 이번설명에 소개되는 예제는 C#으로 구현하였지만 Overloading과 Overriding에 대한 설명은 C++이나 JAVA 모두 개념이 동일하니 각 언어에 맞게 응용만 하면 구현하는데 어려움이 없을 것입니다. 먼저 Overloading에 대해 설명을 드리면 같은이름의 함수를 매개변수만 다르게 하여 추가하는 것입니다. 아래 예제 코드를 봐주십시오. O.. 2018. 11. 5.
윈도우에서의 ini(초기화)파일 읽고 쓰기 안녕하세요 마블랑입니다. 가끔 컴퓨터 프로그램을 사용하시다보면 이전에 사용하였던 내용들이 그대로 남아있던 적이 있으실거에요 예를 들어 동영상플레이어로 동영상을 불러올때 가장 최근에 불러왔던 동영상의 경로가 이미 선택되어 있다던가, 설정창에 이전에 설정해놓은 정보가 그대로 남아있는 경우가 있습니다. 그러한 기능을 구현하는데 여러가지 방법이 있지만 그중 하나인 ini파일을 이용해서 구현하는 방법에 대해서 설명하겠습니다. ini파일은 프로그램 실행시 초기화 정보를 담고 있는 설정파일로 initialization(초기화)의 앞에 ini를 따서 확장자가 붙여진 파일입니다. 확장자는 다르지만 텍스트파일로 열어볼수 있기 때문에 보안에는 취약한 점이 있어 기밀한정보는 다른방법을 이용해서 저장하시기 바랍니다. 윈도우에서.. 2018. 11. 4.
[Window] 윈도우 화면 나누기 안녕하세요 마블랑입니다. 이번에 소개해드릴 기능은 개발을 하다보면 봐야할 화면을 두개 띄워나야하는 경우가 종종 있습니다. 그때마다 마우스로 창크기를 조절하는 것보다 아주 간편하게 키보드를 입력하는 것만으로도 깔끔하게 화면을 나눌수 있는데요 아래 그림과 같이 두개의 화면울 모니터에 정확히 반씩 나눠서 띄워줄수 있습니다. 바로 키보드의 윈도우키와 좌(←), 우(→) 방향키를 누르면 위 그림처럼 화면을 나눌수 있습니다. 좌측에 표시하고 싶으면 왼쪽 화살표를 우측에 표시하고 싶으면 오른쪽 화살표를 누르시면 됩니다. 추가로 알려드릴 팁으로 윈도우키와 상(↑) 과 하(↓) 방향키를 누르면 화면이 위쪽과 아래쪽으로 나눠지는것이 아니라 위쪽 화살표는 최대화, 아래쪽 화살표는 최소화 하는 기능이 실행됩니다. 개인적으로 .. 2018. 11. 3.