본문 바로가기

분류 전체보기735

728x90
반응형
윈도우에서 php_ssh2 모듈을 써보자 본 글은 2017년 7월 17일 14시 34분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. 윈도우에서 php_ssh2 모듈을 쓰는 이유 아무래도 보안 때문에 sftp를 써야해서 php_ssh2 모듈을 설치했다. 설치하면서 생각보다 착오를 많이 겪어서 다음에 진행하기 용이하도록 이 글에 설치법을 남긴다. 설치를 진행했던 컴퓨터의 환경은 Windows Server 2012 R2 x64와 php5.5, IIS 8.5.9600.16384이다. 먼저 사용가능한 버전을 확인하면 아래와 같다. 윈도우 php_ssh2 모듈 다운로드 php_ssh2 다운로드 주소 : https://pecl.php.net/package/ssh2 php_ssh2 모듈은 이렇게 버전들이 있다. 대부분 리눅스에서 구.. 2020. 10. 11.
[자바/JAVA] 네이버 SMTP를 활용해 메일을 발송해보자 본 글은 2017년 7월 19일 08시 32분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. JAVA 기반의 SMTP 메일 발송 샘플코드를 기록하는 글이다. JavaMail 이라는 라이브러리를 가져다 쓰자 여기에서(https://javaee.github.io/javamail/) 받을 수 있다. 이 라이브러리는 SMTP와 IMAP, POP3을 지원한다. 개발환경 : JDK 1.8.0_111 x64, Windows 7, Eclipse Mars.1 Release (4.5.1), JavaMail 1.6.0 위에 있는 링크에 가서 javax.mail.jar을 받는다. 그 후 이클립스에 프로젝트를 생성하고 SMTP 클래스를 생성한 후 외부라이브러리를 위와 같이 추가한다. package ex.. 2020. 10. 5.
IoTivity에서 no oc_logger 에러가 발생할 때 해결법 본 글은 2017년 12월 13일 00시 48분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. 세미나 때문에 오랜 만에 IoTivity를 할 일이 생겼다. 그런데 라즈베리파이에서 IoTivity 예제를 실행하니 다음과 같은 오류가 떠서 서버 프로그램이 실행되지 않았다. 에러는 'no oc_logger in java.library.path' 이다. 말 그대로 라이브러리 경로에서 oc_logger가 없다는 건데 내가 예전에 환경 변수 설정을 잘 못 해둬서 나는 거였다. 환경 변수 설정을 다시 해주면 된다. 나의 경우 문제가 있던 환경 변수가 다음과 같았다. export JAVA_HOME=/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt export LD_LIB.. 2020. 10. 4.
[윈도우 10] 원격데스크톱 - CredSSP 암호화 Oracle 수정 때문일 수 있습니다. 본 글은 2018년 8월 21일 00시 39분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다. 어느 순간 내 컴퓨터로 원격 접속을 하려니 'CredSSP 암호화 Oracle 수정 때문일 수 있습니다.' 라는 오류 메시지가 나타나면서 접속이 불가능했다. 알아보니까 2018년 3월에 발견된 CredSSP의 취약점으로 인한 피해를 방지하기 위해 2018년 5월 윈도우 서버 업데이트에서 보호 수준이 완화로 기본 설정되었다고 한다. 취약점이 있다하더라도 일단 내 컴퓨터로 접속은 해야하니 원격 데스크톱의 클라이언트가 될 컴퓨터(원격 접속을 시도할 컴퓨터)의 설정을 바꿔야 한다. 1. 윈도우키 + R 를 입력하여 실행 창을 연다. 2. gpedit.msc 를 입력한다. 3. 로컬 컴퓨터 정책 .. 2020. 9. 27.
IIS 7.5에서 TLS 1.2를 활성화 하자. 어느 날 아주 예전에 구축해놓은 홈페이지와 웹서버를 점검하고 있던 중에 'TLS 1.2'를 지원하지 않아서 크롬의 보안 정책으로 인해 홈페이지의 기능이 정상적으로 동작하지 않고 있는 것을 발견하였다. 2020년 5월부터 크롬에서는 TLS 1.2를 지원하지 않는다고 한다[1]. 다행히 'IIS 7.5'는 간단한 설정만으로 'TLS 1.2'를 지원한다. 방법은 다음과 같다. 1. 실행 - regedit 입력 2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols 로 이동 3. 'TLS 1.2' 키 생성 4. 'TLS 1.2' 키 안에 'Client'와 'Server' 키 생성 5. 'Client', .. 2020. 9. 26.
미디어위키에 인터넷 익스플로러(IE) 호환성 보기용 메타 태그 추가하기 안타깝게도 2020년인 지금도 인터넷 익스플로러(IE) 호환성을 고려해야하는 상황이 한국에는 있다. 특정 IE 버전으로 호환성 보기를 하기 위해서는 IE 호환성 보기용 meta 태그를 html 페이지에 추가하면 된다[1]. 미디어위키에 meta 태그를 추가하는 방법은 여러가지가 있다 그 중 BeforePageDisplay라는 Hook을 이용하여 페이지의 HTML이 생성될 때 meta 태그를 추가하는 방법이 가장 보편적이다[2]. 하지만 인터넷 익스플로러(IE)의 경우 비표준 meta 태그 형태라서 이 기능을 이용하는 것은 적합하지 않다. 진짜 온갖 방법을 써봤는데 먹히지가 않는다. 아래처럼 IE 호환성 보기용 meta 태그를 넣으면 $out->addMeta( 'http:X-UA-Compatible', '.. 2020. 9. 25.
스프링 프레임워크에서 트랜잭션을 설정할 때 주의해야할 것 스프링 프레임워크에서 트랜잭션을 설정하는 것은 인터넷에 잘 나와있다. 하지만 몇 가지 중요한 포인트를 놓쳐서 하루 종일 시간을 날렸다. 트랜잭션 어노테이션 혹은 트랜잭션을 위한 AOP를 설정할 때는 서블릿 컨텍스트 설정 파일(servlet-context)에다가 해당 내용을 기입해야한다는 것이었다. "설정 값만 보면 정상인데 왜 이게 동작을 안 하지?"라는 생각을 하며 있었는데 참 허탈하다. 이거 외에도 컨트롤러가 아닌 @Component, @Service, @Repository 유형의 클래스 또는 그 클래스의 메서드에다가 트랜잭션을 설정한다는 점과 트랜잭션을 위해서는 인터페이스가 필요하다는 것을 알았다. 아직은 어떤 이유로 이렇게 써야하는 건지를 모르겠다. 나중에 알게 되면 내용을 추가하겠다. [참고] .. 2020. 9. 7.
스프링 시큐리티를 쓸 때 한글 관련 인코딩으로 주의해야할 점 스프링 시큐리티(Spring Security)를 쓴다면 주의해야할 것이 있다. 내가 이것 때문에 오랜 시간 삽질을 했었다. 스프링 시큐리티는 ISO/IEC 8859-1 인코딩을 쓰는데 필터 순서를 제대로 안 맞춰주면 스프링 시큐리티의 필터가 먼저 동작하여 인코딩이 의도한 대로 동작하지 않는다. 나는 한글을 사용해야하고 웹프로젝트와 DB 모두 UTF-8로 설정되어 있었기 때문에 UTF-8로 데이터가 통신되어야 하는데 web.xml 설정 파일에서 필터 순서를 잘 못 지정해줘서 데이터가 ISO/IEC 8859-1로 통신되고 있었다. 설정 파일에서 필터는 위에(낮은 라인 번호) 있는 것이 먼저 실행된다. 검색하다보니 정통적으로 실수하는 내용인 것을 알았다. 다시는 실수하지 않기 위해 글을 남긴다. [참조] [1.. 2020. 9. 6.
마인크래프트 서버에 공개된 월드 맵을 다운로드 받아 적용하자 공개된 월드 맵을 사용하는 이유 인터넷에 보면 자신이 제작한 마인크래프트 월드 맵을 공유하고 다운로드할 수 있게 해놓은 사람들이 많이 있습니다. 그 사람들이 공유한 월드 맵을 다운로드 받아서 자신의 마인크래프트 월드 맵에 적용한다면 매번 해야하는 번거로운 건축 일을 대폭 줄일 수 있습니다. 이번 글에서는 이런 식으로 인터넷에 공개된 월드 맵을 다운로드 받고 페이퍼(PaperMC) 서버에 적용하는 방법에 대해서 소개하려고 합니다. 공개된 마인크래프트 월드 맵을 찾는 방법 마인크래프트 월드 맵이 공유되어 있는 곳은 네이버 카페, 마인크래프트 관련 커뮤니티, 유튜브 등 많이 존재하지만 저는 유튜브에서 검색해서 찾아보겠습니다. 데스매치 관련 플러그인을 제작 중이므로 데스매치하기 위해 필요한 지형을 찾아보겠습니다.. 2020. 8. 31.
마인크래프트에서 공지와 귓속말을 하는 플러그인을 만들어 보자 이번 글에서는 마인크래프트 페이퍼(PaperMC) 서버에서 공지와 귓속말을 특정 주기에 따라 반복적으로 하는 플러그인을 만드는 것을 소개합니다. 동영상 설명 마인크래프트에서 공지와 귓속말을 하는 플러그인을 만들어 보자 마인크래프트에서 귓속말은 중요 지금 만들려고 하는 기능은 서버의 이벤트를 필요에 따라서 서버에 접속해 있는 모든 인원 또는 몇 명에게만 알리는 기능을 구현할 때 무조건 쓰이는 기본 기능이므로 매우 중요합니다. 마인크래프트에서 귓속말 플러그인 소스 불러오기 이클립스를 실행하여 아래 주소로 소스코드를 받아옵니다. 이 주소를 복사부터 하자. 이클립스 프로젝트 탐색기에서 오른쪽 버튼을 누르고 'Import'→'Import'로 이동합니다. 소스코드 저장소 주소 : https://github.com/.. 2020. 8. 26.
마인크래프트에서의 메세지(채팅/글씨) 색상 및 형식 코드표 마인크래프트 색상코드는 무엇인가? 마인크래프트 채팅창이나 공중에 떠 있는 글자를 보시면 색상이 하얀색이나 검정색이 아닌 여러가지 색으로 이루어져 있는 것을 쉽게 볼 수 있습니다. 아래의 사진에 나타나 있는 것 처럼 '1년', '1월', '1주', 'Tias' 등의 글자에 색상이 입혀져 있는데 이는 마인크래프트 색상코드를 사용하면 구현이 가능합니다. 이 기능은 아래의 코드를 활용하면 사용이 가능합니다. 사용법은 들면 "§0반갑습니다.", "§1오랜만입니다." 가 있으며 기본적으로 서버에서 해당 글씨 기능을 지원하지 않으면 구동되지 않습니다. 마인크래프트 색상코드표 마인크래프트 형식코드표 위의 코드표를 잘 활용하면 아래와 같이 글씨를 바꿀 수 있습니다. 아래는 제가 예시로 작성한 코드입니다. §n마인크래프트.. 2020. 8. 20.
초간단 마인크래프트 페이퍼(PaperMC) 서버 여는 법 이번 글에서는 마인크래프트 페이퍼 서버(PaperMC)를 여는 법에 대해 설명하고자 합니다. 동영상 설명 2분만에 마인크래프트 페이퍼 서버를 여는 법! 페이퍼 서버 다운로드 페이퍼 서버는 PaperMC 공식홈페이지(https://papermc.io/)에서 다운로드가 가능합니다. PaperMC 공식홈페이지로 이동하여 우측 상단의 DOWNLOAD 버튼을 누릅니다. 원하는 버전의 페이퍼 서버 프로그램을 다운 받습니다. 저는 1.16.1 빌드136을 받겠습니다. 페이퍼 서버 설치 페이퍼 서버 실행 프로그램을 제작해야합니다. 오른쪽 버튼을 누르고 [새로만들기]-[텍스트문서]로 파일을 생성합니다. 생성된 파일의 이름을 사진처럼 start.bat으로 변경한 후 오른쪽 버튼을 눌러서 [편집] 을 누릅니다. 사진 처럼 .. 2020. 8. 19.
마인크래프트 페이퍼 서버 플러그인 개발 환경을 구축하는 방법 이번 글에서는 마인크래프트 페이퍼 서버라고 흔히 불리는 PaperMC의 플러그인을 개발할 수 있는 환경을 구성하는 방법에 대해 소개하려고 합니다. 동영상 설명 마인크래프트 페이퍼 서버의 플러그인 개발환경을 구축하자 PaperMC는 무엇인가? PaperMC는 빠른 실행 속도와 활동적이고 성장 중인 커뮤니티, 확장된 API를 제공하는 것이 특징인 마인크래프트 서버 프로그램입니다. PaperMC와 Bukkit, Spigot 모두 이 특징을 가지고 있지만 저작권 관련 문제가 있기 때문에 PaperMC로 서버를 여는 추세입니다. 이런 추세에 맞춰서 PaperMC 플러그인 개발환경을 구축하는 것이 활용도 측면에서 좋습니다. PaperMC 개발 환경 구축 방법 먼저 자바 환경에서 개발하기 쉽도록 구성한 무료 개발 툴.. 2020. 8. 18.
'이것만 알면 누구나 하는 자바 프로그래밍' 프로젝트 개요와 현황 1. 진행 배경과 목표 시중에 있는 자바 서적과 강의는 훌륭하나 너무나 많은 내용을 담고 있어서 조사 또는 취미로 자바를 학습하는 사람과 당장 실무를 시작해야 하는 사람에게는 적합하지 않습니다. 그러므로 저는 어려운 개념이면서 이해하기 어려운 내용은 최소한으로 줄이고 실습 위주로 빠르게 자바를 학습할 수 있는 강의를 만들어 자바를 짧은 기간에 익힐 수 있는 강의를 만들고자 합니다. 2. 수강대상 본 강의는 프로그래밍의 특성상 중등수학을 익힌 자에게 적합하게 설계되었습니다. 물론 초등수학만 알아도 수강은 충분히 가능하나 방정식과 실수라는 개념을 이해하지 못 해서 어려움을 겪을 수 있습니다. 3. 학습방법 본 강의는 아래의 순서로 학습하는 것을 권장드립니다. 강의 목차에 따라 실습합니다. 실습이 잘 되지 않.. 2020. 8. 13.
NS-3에서 수중 통신 시뮬레이션하는 방법 조사 본 글은 2017년 12월 14일 21시 07분에 썼던 글이며 블로그 자료 이전으로 날짜만 갱신된 글입니다. 우리 연구실에 6년 동안 진행하는 수중 센서 네트워크 연구 프로젝트가 들어오면서 나의 연구 주제에 수중도 추가되었다. 어차피 기존에 익혀두었던 지식을 토대로 수중환경의 특징을 고려해서 연구하면 되니 시간이 충분하다면 주제를 바꾸는 건 큰 문제가 없기에 전환하였다. 우리 연구실은 2007년부터 수중 네트워크 연구를 했었기에 관련 연구 경험이 있는 편이었다고 한다. 지금까지는 시뮬레이터를 주로 NS-2를 썼다고 한다. 이번에 연구 기간이 긴 프로젝트가 생긴 김에 현재 가장 활발히 사용되는 NS-3에서 수중 시뮬레이션이 가능한 지 조사해보았다. 1. UAN(Underwater Acoustic Netwo.. 2020. 5. 19.
이제 PaperMC 기반 플러그인 개발 방법을 기록하고자 한다. 너무 일만 하고 있다보니 의욕이 완전히 없어지는 시점이 온 것 같다. 그래서 내가 좋아하는 게임의 플러그인을 개발하는 것으로 내가 흥미있어 하는 것을 해보고자 한다. 최근 마인크래프트 서버 유행을 조사해보니 과거에는 바닐라 서버로 게임할 것 아니면은 버킷 외에는 사실상 쓸만한 대안이 없는 수준이었던 것으로 기억하는데 최근에는 몇몇 분쟁으로 인해 버킷에서 파생된 서버 프로그램들이 많이 생긴 것으로 확인했다. 그래서 이것 저것 조사한 결과 PaperMC 기반의 서버를 구축하여 개발한 플러그인을 구동하는 것이 가장 빠르고 재미있을 것으로 판단하였고 개발하면서 알게된 자료를 본 블로그에 기록하고자 한다. 오랜만에 마인크래프트 계정으로 로그인하니 닉네임이 KSaGiTo 나온다. 그리운 닉네임이다. 2020. 4. 22.
[윈도우 10] 자동 업데이트와 디펜더(백신)을 비활성화 하는 법 컴퓨터를 쓰다보면 컴퓨터의 가용자원은 적은데 안에 데이터가 중요하지 않은 경우가 종종 발생한다. 그 경우 윈도우10에서 자원을 너무 많이 가져다 쓰는 두 가지 서비스를 비활성화만 해도 상당히 많은 가용자원 확보가 가능하다. 그 두가지 서비스는 윈도우 자동 업데이트와 윈도우 디펜더이며 비활성화 방법은 아래에 기술하겠다. 먼저 윈도우 디펜더부터 비활성화 하겠다. 윈도우키를 눌러서 '정책'을 입력하면 '그룹 정책 편집'이라는 프로그램이 나타난다. 클릭해서 실행한다. '컴퓨터 구성-관리 템플릿-Windows 구성 요소-Windows Defender 바이러스 백신'에 가서 'Windows Defender 바이러스 백신 사용 안 함'을 더블 클릭한다. 사용에 체크를 하고 확인을 누른다. 윈도우키를 누르고 '서비스'.. 2020. 2. 27.
시놀로지 DS218J 프로토콜별 파일 전송속도 비교 파일 전송 프로토콜을 비교한 이유 시노롤지 DS218J는 파일 전송을 위해 다양한 프로토콜을 지원하는데 워낙 지원하는 수가 많다보니 어떤 프로토콜을 써야 파일 전송속도가 가장 좋을 지가 궁금하여 테스트해보았다. 비교한 프로토콜은 FTP와 FTPS, SFTP, HTTP, HTTPS, SMB이다. 단순히 생각해보면 암호화-복호화 과정을 거치지 않는 FTP와 HTTP, SMB(평문통신)가 가장 성능이 좋을 것으로 예상한다. 파일 전송 프로토콜 비교를 위한 환경 클라이언트 프로그램으로 FTP와 FTPS는 파일질라(FileZilla)를 활용하였고 SFTP와 HTTP, HTTPS는 레이드라이브(RAIDRIVE) 1.8.0(2019.11.29), SMB는 윈도우 파일 탐색기를 사용하였다. 통신환경은 NAS와 PC는 .. 2019. 12. 25.
시놀로지 DS218J에서 점보프레임(9K)을 설정해보았다. 점보프레임을 테스트한 이유 최근에 시놀로지 DS218J를 장만하여 시놀로지에 입문하게 되면서 여러가지를 테스트해보고 있다. 예상했던 것 처럼 구매한 NAS 하드웨어 스펙의 한계로 통신속도가 썩 마음에 들지는 않아 이것 저것을 설정해가며 실험 중이다. 실험해본 것 중 하나가 '점보프레임 설정에 따른 통신속도는 어떻게 변화할 것인가?' 인데 결론부터 말하자면 점보프레임을 안 쓰는 것이 통신 속도가 훨씬 좋았다. ※ 점보프레임은 이더넷 네트워크에서 전송 속도를 높이기 위해 데이터 프레임(MTU) 크기를 늘려서 통신하는 것을 말한다. 표준상(RFC 894) 데이터 프레임이 최대 1500 바이트로 제한되어 있으나 점보프레임은 이를 그 이상으로 늘려서 사용한다. 점보프레임은 비표준 기술이므로 업체별로 자체표준이 있.. 2019. 12. 18.
XE3에서 COMPOSER_HOME 설정하기 XE3는 라라벨(Laravel) 기반으로 작성된 CMS(Content Management System)이다보니 라라벨에서 사용하는 컴포저(Composer)라는 의존성 관리 툴을 활용하고 있다. 이 툴을 활용해서 플러그인과 같은 것들을 생성할 수 있다고 한다. 필자의 경우 이 Composer 설치 경로를 설정하지 않아서 'COMPOSER_HOME environment variable must be set for composer to run correctly.'라고 에러가 났었다. XE3의 경우 컴포저를 내장하고 있으므로 XE3 내에서 컴포저 관련 파일들이 저장될 공간을 만들고 그 경로를 XE3 관리자 페이지에서 설정하면 해결된다. 사이트 루트경로로 가서 컴포저 저장소로 활용할 폴더를 '.composer'라.. 2019. 10. 3.