본문 바로가기

프로그래밍458

안드로이드 스튜디오에서 개발용으로 스마트폰 인식 안될 때 사용해 볼 방법 안드로이드 앱개발에 코틀린을 사용해 보려고 오랜만에 안드로이드 스튜디오를 실행해 봤습니다. 업데이트를 마구 하다보니 안드로이드 스튜디오의 버전이 2020.3.1이 되어 있네요. 안드로이드 개발자 사이트에 들어가보니 이게 최신 버전이었습니다. 테스트용 앱을 만들고, 에뮬레이터에서 실행해보니까 잘됩니다. 이제 스마트폰을 연결하여 실행해 보려고하니까, 스마트폰이 인식 되지 않습니다. 좀 당황스럽네요. 스마트폰을 안드로이드 스튜디오에 연결하는 일반적인 방법은 예전에 작성한 글인 "안드로이드 앱 실행하기 - AVD"를 참고하시면 되겠습니다. 안드로이드 스튜디오 예전 버전에 관한 내용이지만 현재도 유효할 것 같습니다. 간단히 말해서 첫 번째로 스마트폰 회사에서 제공하는 전용 USB 드라이버가 필요한 경우가 있습니다.. 2021. 7. 31.
전자정부표준프레임워크 3.10 과 OpenJDK 16에서 WebappStructureSerializer 에러 전자정부표준프레임워크 3.10을 설치하고 이것저것 해보고 있습니다. 처음 했던게 업데이트 하는데 몇몇 업데이트 사이트 변경으로 오류가 발생해서 해결 했던 것입니다("전자정부 표준 프레임워크 eGovFrame 3.10 업데이트 오류 수정하기"). 두 번째는 Kotlin 플러그인을 설치하려고 하는데, JDK 11이 필요하다는 오류로 인해서 현재 최신인 OpenJDK 16을 설치하여 해결 하였습니다("전자정부표준프레임워크 3.10에 Kotlin 플러그인 설치오류 및 OpenJDK 16 설치하기"). 오늘 전자정부표준프레임워크 3.10의 모든 업데이트 가능한 항목을 업데이트 했습니다. 그랬더니 eclipse의 버전이 2020-06에서 최신인2021-06으로 바껴 버렸네요. 이클립스가 시작할때 스플래시 스크린이 .. 2021. 7. 28.
Kotlin - 함수(function) ※ 함수의 정의 함수는 fun 키워드로 시작합니다. ※ main 함수 - main 함수는 프로그램의 시작점입니다. 프로그램을 실행하면 메모리로 로드된 프로그램에서 main 함수를 찾아서 실행합니다. - 매개변수 args는 문자열 배열로 명령행에서 실행 프로그램명 뒤에 따라오는 인자들을 받아들입니다. fun main(args : Array) { /* ... */ } // 명령행 인자를 받지 않는 형태도 가능합니다. fun main() { /* ... */ } - 매개변수는 함수내로 값을 보내기 위해 사용됩니다. 여러개의 매개 변수가 콤마(,)로 분리되어 사용될 수 있습니다. 매개 변수가 없을 수도 있습니다. - 함수가 값을 반환하면 반환 타입을 지정해 줘야 합니다. - 값의 반환은 return 문 뒤에 값.. 2021. 7. 26.
Kotlin - 변수, 상수, Non-null, Nullable ※ 값을 저장할 수 있는 변수와 상수를 만드는 방법입니다. - 값을 변경할 수 있는 변수 var title: String = "offbyone" - 값을 변경하지 못하는 상수 val count: Int = 20 ※ 변수와 상수에 초기값을 주지 않고 사용하려고 하면 컴파일시 에러가 발생합니다. ※ 변수가 null값을 가질 수 있는지 지정합니다. null은 아무것도 없다는 뜻입니다. - Non-null 은 Null값을 가질 수 없는 타입입니다. 기본적으로 Null을 가질 수 없습니다. - Nullable은 null값을 가질 수 있는 타입입니다. 타입 뒤에 물음표(?)를 붙입니다. String title: String? = null ※ 한 변수의 값을 다른 변수에 할당합니다. var count: Int var.. 2021. 7. 24.
전자정부표준프레임워크 3.10에 Kotlin 플러그인 설치오류 및 OpenJDK 16 설치하기 전자정부표준프레임워크 10 버전을 설치하고, Kotlin 플러그인을 설치하려고 하니까 다음과 같은 오류가 발생합니다. Cannot complete the install because some dependencies are not satisfiable Software being installed: a.jre.javase 1.6.0 Software being installed: Wild Web Developer 0.10.6.202102181620 (org.eclipse.wildwebdeveloper.feature.feature.group 0.10.6.202102181620) Cannot satisfy dependency: From: Wild Web Developer: web development in Ecl.. 2021. 7. 24.
Windows용 Git 서버인 Bonobo Git Server 설치하기 이제 까지는 Subversion을 사용해 왔었는데, 요즘은 Git이 대세라더군요. Git서버를 설치해서 사용법을 테스트 해보고자 합니다. Git 서버 소프트웨어는 Linux용이 많고 안정적이라고 하네요. 하지만 Linux서버를 만들기 귀찮으므로 Windows용으로 찾아보았습니다. Bonobo Git Server는 IIS 상에서 실행되는 오픈소스 Git 서버입니다. 라이센스는 MIT 라이센스를 따르므로 회사에서 사용해도 문제가 없겠습니다. 하지만 IIS상에서 실행되므로 성능은 장담하지 못하겠네요. 장점으로는 웹으로 관리 기능이 제공된다는 것입니다. Git 서버 사용법을 배우기 위해서 테스트용으로 사용해보기에는 무리가 없겠습니다. ※ 설치를 위해 필요한 조건 * IIS 7 이상 필요합니다. - 현재 설치되어.. 2021. 7. 23.
전자정부 표준 프레임워크 eGovFrame 3.10 업데이트 오류 수정하기 오랜만에 전자정부표준프레임워크 사이트에 들어가보니 새 버전이 나왔길래 다운로드 받아서 설치해보았습니다. 새버전은 eGovFrame 3.10.0으로 2021년 3월 2일 등록되었네요. eclipse 2020-06(4.16.0)이 적용되었고, Spring 4.3.25 버전이 적용되어 있습니다. 설치하고 바로 업데이트를 실행해 보았는데, 오류가 발생했습니다. Some sites could not be found. See the error log for more detail. No repository found at http://dl.bintray.com/pmd/pmd-eclipse-plugin/updates/4.16/. No repository fount at http://dl.bintray.com/haraw.. 2021. 7. 17.
GIMP 2 사용법 - EXIF 메타데이터 제거하는 방법 이전 글 "Windows 10 파일 탐색기로 EXIF 정보 제거하기"에서 파일 탐색기로 사진 파일의 EXIF 정보를 제거하는 방법을 알아 보았습니다. 하지만, 원본 사진을 그대로 사용하기 보다는 사진에서 필요한 부분만 잘라내거나, 사진의 크기를 줄이거나 하는 작업을 경우가 많습니다. 사진에 포함된 EXIF정보를 사진을 자른다거나, 크기를 변경하여도 없어지지 않습니다. 여기서는 GIMP 2 를 사용해서 사진에 포함된 EXIF 정보를 제거하는 방법을 알아보겠습니다. - GIMP를 사용해서 이미지를 수정한후에 수정된 파일을 저장을 하게됩니다. 이때 EXIF를 제거할 수 있습니다. - "파일" 메뉴에서 "Export As..." 메뉴를 선택합니다. 단축키는 Shitf + Ctrl + E 입니다. - 내보내기 창.. 2021. 7. 16.
Windows 10 파일 탐색기로 EXIF 정보 제거하기 디지털 카메라로 사진을 찍거나 스마트폰으로 카메라로 사진을 찍으면 사진파일 안에 사진을 찍은 위치, 날짜와 시간, 카메라 설정 등의 정보가 저장됩니다. 이런 정보를 EXIF(Exchangeable Image File Format) 메타데이터라고 합니다. 주로 JPEG 파일에 저장되는데, 이 이외에도 여러종류의 파일에 저장됩니다. 이런 EXIF 정보를 그대로 둔채 사진을 인터넷에 올리거나 하게 되면 쉽게 개인 정보가 낯선 사람에게 노출될 수 있습니다. Windows 10의 파일 탐색기를 사용해서 이미지 파일의 EXIF 정보를 간단히 제거할 수 있습니다. 다음 이미지는 디지털 카메라로 찍은 사진의 EXIF 정보를 이미지 뷰어 프로그램으로 본 것입니다. 사진은 찍은 날짜, 시간, 카메라 제조사/모델, 사진을 .. 2021. 7. 15.
엑셀 조건에 맞는 데이터의 합을 구하기 - SUMIF 데이터 중에서 원하는 조건에 맞는 데이터의 합만을 구하기 위해서 사용할 수 있는 함수로 SUMIF 함수가 있습니다. 이름 그대로 SUM(합)과 IF(조건)이 합쳐진 함수 입니다. 1. 함수 구조 SUMIF 함수를 다음과 같은 세개의 인자를 가집니다. =SUMIF( range , criteria , [sum_range] ) - range : 조건을 적용하려는 범위 입니다. - criteria : 데이터를 선택하기 위한 조건 입니다. - sum_range : 조건에 맞는 합계를 구하기 위한 범위 입니다. 이 인자는 선택 사항으로 지정하지 않으면 range 범위의 값을 계산에 사용합니다. 2. 사용예 일자별 출하실적에서 품종별 판매금액을 구합니다. 함수의 첫 번째 인자로 조건을 적용하는 범위를 지정합니다. 이.. 2019. 12. 18.
스프링 프레임워크 뷰로 사용되는 Thymeleaf 와 jsp 의 비교 스프링 부트를 공부하면서 Thymeleaf를 알게 되었습니다. Thymeleaf는 템플릿 엔진으로 스프링 프레임워크의 MVC 구조에서 V 즉, 뷰(View)를 담당하는 라이브러리 입니다. 스프링 프레임워크의 뷰로 사용되는 가장 일반적인 기술은 jsp 입니다. Thymeleaf와 같은 템플릿 엔진은 사용해 보지 않아서 두 기술을 비교해 보았습니다(스프링 프레임워크에서 사용되는 템플릿엔진은 Thymeleaf외에도 Freemarker, Velocity등 많이 있는것 같습니다). 1. Thymeleaf와 jsp의 차이점 Thymeleaf는 HTML, XML, JavaScript, CSS 및 일반 텍스트를 처리 할 수 있는 웹 및 독립형 환경에서 사용할 수 있는 Java 템플릿 엔진입니다. Thymeleaf는 h.. 2019. 10. 28.
Spring Boot 웹 애플리케이션에서 jsp와 Thymeleaf 두 가지 같이 사용하기 이전에 작성한 글 "스프링 프레임워크 Thymeleaf 설정하기(XML 설정, Java 설정, Spring Boot 설정)" 에서 스프링 프레임워크에서 Thymeleaf를 사용하기 위해서 설정하는 방법을 알아보면서 xml설정과 java 설정에서는 jsp와 Thymeleaf를 같이 사용할 수 있도록 설정을 해보았는데, Spring Boot 에서는 같이 사용하는것을 알아보지 못했었습니다. 이번에는 Spring Boot 웹 애플리케이션에서 뷰로 jsp와 Thymeleaf를 같이 사용하도록 설정을 해봅니다. 예제는 Spring Boot에서 최초에 jsp를 사용하도록 설정된 프로젝트에 Thymeleaf도 사용 가능하도록 추가하는 것입니다. 1. 프로젝트에 사용된 개발 도구 및 라이브러리 - Eclipse 2018.. 2019. 10. 27.
Spring Boot 국제화(다국어 지원) 설정하기 Spring Boot 웹 애플리케이션에서 다국어 지원을 위해서 설정하는 방법을 알아 봅니다. Spring Boot의 Starter라고 불리는 미리 설정되어 있는 것이 있는지 찾아보니 찾지 못했습니다. Java 설정을 이용해서 직접 설정하는 방법들을 주로 찾을 수 있었습니다. 이 예제는 이전 글 "Java Config로 메세지소스(MessageSource) 설정하기(다국어 지원)" 의 설정을 가져와서 만들었습니다. Spring Boot 관련 해서 검색을 해보면 jsp 보다는 다른 템플릿 엔진(주로 Thymeleaf)을 사용하는 경우가 많은 것 같습니다. 하지만 여기서는 jsp를 사용해 봅니다. 설정은 Thymeleaf를 사용하는 경우와 jsp를 사용하는 경우가 똑같고 jsp에서는 jstl을 사용하기 위한 .. 2019. 10. 19.
스프링 프레임워크 Thymeleaf 설정하기(XML 설정, Java 설정, Spring Boot 설정) 스프링 프레임워크에서 Thymeleaf를 사용하기 위해서 설정하는 방법을 알아봅니다. 스프링 프레임워크 설정은 xml을 사용하는 방법, Java를 사용하는 방법, Spring Boot를 사용하는 방법이 있습니다. 각각의 경우에 설정하는 방법을 알아보겠습니다. 1. XML 설정에서 Thymeleaf 설정하기 요즘은 Java 설정이나 Spring Boot를 사용하는 쪽으로 바뀌어가고 있지만, 아직도 대부분은 xml 설정을 사용하는것 같습니다. 주로 이걸 사용해와서 가장 익숙한 설정입니다. 예전에 올렸던 "스프링 프레임웍에서 MyBatis, Oracle 사용하기" 예제를 MySQL을 사용하도록 수정해서 예제를 만들었습니다. 1.1 pom.xml 파일에 Thymeleaf에 대한 의존성을 추가합니다. org.th.. 2019. 10. 14.
아노테이션 드리븐 트랜잭션(@Transactional)에서 Exception을 throw할 경우 롤백(rollback)이 안됩니다. 스프링 프레임웍에서 데이터베이스 트랜잭션 처리를 아노테이션 드리븐으로 설정을 하면 클래스 또는 메소드에 @Transactional 아노테이션을 붙이는 것으로 트랙잭션을 처리할 수 있습니다. 이 경우 주의해야 할 것이 하나 있는데, 직접 Exception 클래스를 던져서 예외를 발생시켜서 트랜잭션을 롤백(rollback) 하려고 하면 롤백이 되지 않는다는 것입니다. 이전에 작성한 글인 "스프링프레임워크 Java config로 MyBatis 사용하기"에 댓글로 질문해 주신 내용중에 이 롤백이 되지 않는 상황에 대한 것이 있어서 답변을 해드렸는데, 글로 작성을 해 두는게 좋을 것 같아서 쓰게 되었습니다. 스프링 프레임워크 설정을 Java Config로 하면서 트랜잭션 처리는 아노테이션 드리븐으로 하는 예제 였.. 2019. 10. 7.