본문 바로가기

전체 글487

전자정부 표준 프레임워크 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.
삼성 흑백 레이저 프린터 SL-M2030을 구입했습니다. 기존에 사용하던 오래된 잉크젯 프린터가 고장이 났습니다. 자주 사용하지는 않는데, 없을때는 불편하네요. 가끔 사용할 것이므로 저가의 프린터를 고르던중에 삼성 흑백 레이저 프린터인 SL-M2030을 구입하게 되었습니다. 프린터 크기도 작고 가격도 저렴한게 장점인것 같습니다. 토너 가격도 정품은 오만원대이지만, 재생은 만원대로 살 수 있는것 같아서 부담이 없는것 같습니다. 이전처럼 컬러출력과 스캔/복사 기능은 쓸 수 없지만, 사실 그 기능을 넣으면 가격이 매우 상승하는데다 기능의 사용빈도가 현저히 낮았으므로 포기했습니다. 오늘 택배로 받아서 설치하고 테스트 출력을 해 보았습니다. 스펙은 분당 20장 출력이고, 첫장 출력에 걸리는 시간이 8.5초 라고 되어 있습니다. 테스트 출력은 만족스럽습니다. 개봉기 겸 .. 2021. 7. 14.
엑셀 조건에 맞는 데이터의 합을 구하기 - SUMIF 데이터 중에서 원하는 조건에 맞는 데이터의 합만을 구하기 위해서 사용할 수 있는 함수로 SUMIF 함수가 있습니다. 이름 그대로 SUM(합)과 IF(조건)이 합쳐진 함수 입니다. 1. 함수 구조 SUMIF 함수를 다음과 같은 세개의 인자를 가집니다. =SUMIF( range , criteria , [sum_range] ) - range : 조건을 적용하려는 범위 입니다. - criteria : 데이터를 선택하기 위한 조건 입니다. - sum_range : 조건에 맞는 합계를 구하기 위한 범위 입니다. 이 인자는 선택 사항으로 지정하지 않으면 range 범위의 값을 계산에 사용합니다. 2. 사용예 일자별 출하실적에서 품종별 판매금액을 구합니다. 함수의 첫 번째 인자로 조건을 적용하는 범위를 지정합니다. 이.. 2019. 12. 18.
에어프라이어 구입(디디오랩 14L) 에어프라이어를 구입했습니다. 지금까지 사용해오던 오래된 전자렌지가 잘 동작하지 않게 되어서 새로 구입을 해야할 상황이 되었는데, 고민하다가 요즘 유행인 에어프라이어를 구입하게 되었습니다. 에어프라이어는 오븐처럼 열을 직접 가하는 방식이라, 햇반처럼 플라스틱 용기를 사용하는 즉석 식품을 데울수는 없습니다. 전제렌지에 비해 사용 용도가 상당히 제한적이게 되지만 그래도 유행이니까.-,.- 다음으로 어떤 제품을 구매할지 고민을하게 되었습니다. 요즘에는 오븐 형식의 대용량 에어프라이어가 나오더군요. 찾아본 것중에 가장 용량이 큰것은 17L였고, 16L가 오븐형 대용량 에어프라이어의 주류를 이루고 있었습니다. 그런데 왜 14L 짜리를 구매했는가? 디디오랩의 14L 짜리 에어프라이어를 선택하게된 이유는 용량이 좀 적.. 2019. 10. 29.
스프링 프레임워크 뷰로 사용되는 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.
아이폰 스팸 문자 메세지 차단 방법 아이폰에서 문자 메세지를 차단하는 방법을 알아 봅니다. 사실 문자 메세지만 차된되는 것이 아니라 차단한 번호로부터 전화, 메세지, FaceTime이 모두 차단됩니다. 현재 사용중인 기계는 iPhone 8 이고, 운영체제 버전은 iOS 13.1.3 입니다. 버전에 따라 차단 방법이 다를수도 있다고 생각됩니다(실제 확인은 해보지 못했습니다) 문자 보기로 들어가면 위쪽에 발신자 번호가 나오고 그 오른쪽에 작은 화살표가 보입니다. 이것을 터치합니다. 발신자 번호 아래에 아이콘에 세 개 보여집니다. 오른쪽 끝의 "정보" 아이콘을 터치합니다. 세부사항 화면입니다. 세부사항 화면에 별로 내용이 없네요.-.-; 발신자 번호 오른쪽 끝에 또 조그한 화살표가 보입니다. 이것을 터치합니다. 연락처 앱에서 보는 화면과 비숫한.. 2019. 10. 16.
스프링 프레임워크 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.
Spring Boot 웹애플리케이션에서 서비스 포트와 컨텍스트 패스를 변경하기 Spring Boot 웹애플리케이션을 Spring Boot Web Starter 설정을 사용해서 만들어서 실행하면 서비스 포트와 컨텍스트 패스는 다음 설정을로 실행됩니다. - 내장 톰캣 서비스 포트 : 8080- 컨텍스트 패스 : ''(root context) 이 설정을 바꿔려면 어떻게 하는지 알아보겠습니다. 이번에 사용된 예제는 "Spring Boot + Kotlin + Thymeleaf 프로젝트 만들기" 의 예제를 Spring Boot + Java + Thymleaf로 바꿔서 테스트 했습니다.(Kotlin을 공부할 시간이 잘 나지 않네요. 자바에 Thymeleaf로 Thymeleaf를 먼저 공부해봐야 겠습니다.T.T) 앞의 프로젝트 생성과 바뀐점은 언어를 Kotlin에서 Java로 바꾼것과 Sprin.. 2019. 9. 29.
Spring Boot + Kotlin + Thymeleaf 프로젝트 만들기 이때까지 스프링 프레임워크를 사용한 웹 애플리케이션을 개발하는데 항상 xml설정 방식과 Java, JSP를 사용해 왔었습니다. 스프링 프레임워크에 대해서 계속 공부하던 중 Spring Boot, Kotlin, Thymeleaf등에 대해서 알게 되었고, 이것들을 조합하여 사용하는 것을 테스트해 보기로 마음 먹었습니다. 먼저 테스트를 위한 프로젝트를 생성해 보겠습니다. 사용된 개발툴은 다음과 같습니다. - JDK 1.8(Java 8) 이미 12버전까지 나와 있지만 못따라 가겠네요.T.T - Eclipse IDE 1918-12 Photon이후로 Eclipse의 명명방식이 년월을 붙이는 방식으로 바꼈네요. - Spring Tools 4 Eclipse 플러그인으로 사용하고 있습니다. Spring Boot 프로젝트.. 2019. 8. 19.
Kotlin - 클래스와 상속 코틀린에서 클래스를 만드는 방법에 대해 알아봅니다. 코틀린도 객체지향언어 이군요. 뭐, 요즘은 자바스크립트도 PHP도 모두 객체를 사용할 수 있도록 변해 왔으니까 특이할 것도 없겠죠. 클래스(class)는 객체가 어떤 데이터를 가지고, 어떻게 동작할지를 나타내는 코드 정보라고 할 수 있겠습니다. 실제 프로그램이 실행되어 정의된 클래스에 따라 컴퓨터의 메모리상에 객체가 만들어지면 이것을 인스턴스(instance)라고 합니다. 1. 클래스(Classes) 코틀린에서 클래스는 class 키워드를 사용해서 정의합니다. class Invoice { ... } class Box(t: T) { ... } 클래스의 선언은 클래스 이름, 클래스 헤더(클래스의 타입 파라미터의 정의, 기본 생성자 등), 중괄호로 둘러싸인 .. 2019. 8. 15.