전체 글 161

PHP에서 OwnCloud 사용자 추가하기

OwnCloud에서는 사용자 추가등의 기능을 제공하는 Rest API를 제공하고 있다. 이번 글에서는 PHP에서 API를 통해 사용자 추가를 하는 방법을 알아보려고 한다.사용자 추가 API의 주소 형식은 http://adminusername:adminpassword@localhost/owncloud/ocs/v1.php/cloud/users 와 같다.POST 형식으로 받은 아이디와 비밀번호를 이용해 사용자를 추가하는 코드는 아래와 같다.

키 인증 방식으로 ssh 로그인

키 인증 방식으로 ssh 로그인 기본적으로 리눅스 ssh에서는 사용자명과 비밀번호를 통해 로그인합니다. 하지만 이런 비밀번호 인증 방식은 비밀번호가 네트워크로 교환된다는 단점이 있습니다. 해당 문제를 보완하기 위해 공개 키 방식을 통해 ssh에 로그인 하도록 설정해보겠습니다. 공개 키 생성 우선 로그인 할 때 사용하기 위하 공개키를 생성해야 합니다. 저는 MSYS가 설치되어 있어, ssh-keygen을 사용해서 공개키를 생성하겠습니다. 명령어를 실행하면 키 저장 위치와, 키의 비밀번호를 물어봅니다. 키의 비밀번호는 키를 이용해서 로그인 할 때 입력해야 하는 비밀번호로, 설정해 주지 않아도 사용할 수 있지만 혹시 모를 공개 키 유출에 대비해 설정하고 넘어가겠습니다. 이런 식으로 지정한 경로에 파일 두 개가..

Computer/Server 2018.06.24

Python + Selenium을 통해 자바스크립트로 렌더링 된 페이지 파싱하기

요즘은 웹 환경에서 자바스크립트로 렌더링 하는 페이지가 많습니다. 그런 페이지들은 아래 사진과 같이 소스 보기를 통해서는 HTML 소스 확인이 불가능하고 개발자 도구에서만 확인이 가능합니다. 이런 페이지의 경우 자바스크립트를 실행시킬 수 있는 WebDriver가 필요합니다. 게시글과 같이 이미 Selenium을 통해서 WebDriver를 사용하고 계시다면, 아래 코드를 통해 렌더링 된 페이지의 HTML을 가져오실 수 있습니다. from selenium import webdriver from bs4 import BeautifulSoup driver = webdriver.Chrome('./chromedriver.exe') html = driver.execute_script('return document.bo..

JSP + Oracle DB를 통한 로그인 시스템 만들기

JSP + Oracle DB를 통한 로그인 시스템 만들기 안녕하세요, kentakang 입니다.오늘은 전공 과목 수행평가를 준비할 겸 JSP + Oracle DB를 통한 로그인 시스템 제작을 해보려고 합니다.우선 제 개발 환경은 이렇습니다. 개발 환경 Oracle Express Edition Express Edition 11g Release 2Java 10 + Java EE 8Apache Tomcat 9.0.7 데이터베이스 만들기 우선 로그인 시스템에 사용할 데이터베이스를 만들도록 하겠습니다. 우선 테이블을 생성하겠습니다.제 로그인 시스템에 들어갈 정보는 아이디, 비밀번호, 이름, 전화번호, 성별 입니다. CREATE TABLE MEMBER(name varchar2(20), id varchar2(20),..

Computer/Java, Kotlin 2018.06.17 (1)

Daily Algorithm - 부녀회장이 될테야

문제평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다.이 아파트에 거주를 하려면 조건이 있는데, “a 층의 b 호에 살려면 자신의 아래(a-1)층에 1호부터 b 호까지 사람들의 수의 합만큼 사람들을 데려와 살아야한다” 는 계약 조항을 꼭 지키고 들어와야 한다.아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정 했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있나를 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층에 i호에는 i명이 산다.입력첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수..

Computer/Algorithm 2018.06.04

Android에서 네이버 검색 API 사용하기

Android에서 네이버 검색 API 사용하기 본 글의 내용은 안드로이드에서 네이버 검색 API를 통해 XML을 받아온 뒤, 해당 내용을 가공해서 출력하는 과정입니다.본 글을 따라서 진행하기 전에 네이버 개발자 센터에서 애플리케이션을 등록하신 뒤, Client ID와 Client Secret을 준비해두셔야 합니다. XML 가져오기 네이버 개발자 센터에 나와있는 Java 예제 코드는 안드로이드에서는 사용이 불가능 한 코드입니다. 안드로이드에서 네트워크 연결을 위해서는 Thread를 별도 생성해서 처리해줘야 합니다.우선 검색어를 입력하면 해당 검색어를 통해 검색한 백과사전 데이터를 String 자료형으로 return 해주는 코드를 작성하겠습니다. public String getNaverSearch(Strin..

Daily Algorithm - ACM 호텔

문제 ACM 호텔 매니저 지우는 손님이 도착하는 대로 빈 방을 배정하고 있다. 고객 설문조사에 따르면 손님들은 호텔 정문으로부터 걸어서 가장 짧은 거리에 있는 방을 선호한다고 한다. 여러분은 지우를 도와 줄 프로그램을 작성하고자 한다. 즉 설문조사 결과 대로 호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다. 문제를 단순화하기 위해서 호텔은 직사각형 모양이라고 가정하자. 각 층에 W 개의 방이 있는 H 층 건물이라고 가정하자 (1 ≤ H, W ≤ 99). 그리고 엘리베이터는 가장 왼쪽에 있다고 가정하자(그림 1 참고). 이런 형태의 호텔을 H × W 형태 호텔이라고 부른다. 호텔 정문은 일층 엘리베이터 바로 앞에 있는데, 정문에서 엘리베이터까지의 거리는 무시한다. 또 모..

Computer/Algorithm 2018.05.31

Daily Algorithm - 음계

문제 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8부터 1까지 차례대로 연주한다면 descending, 둘 다 아니라면 mixed 이다. 연주한 순서가 주어졌을 때, 이것이 ascending인지, descending인지, 아니면 mixed인지 판별하는 프로그램을 작성하시오.입력첫째 줄에 8개 숫자가 주어진다. 이 숫자는 문제 설명에서 설명한 음이며, 1부터 8까지 숫자가 한 번씩 등장한다.출력 첫째 줄에 ascending, descending, mixed 중 하나를 출력한다. 예제 입력1 2 3 4 5 6 7 8..

Computer/Algorithm 2018.05.30

Daily Algorithm - 스택

문제정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 다섯 가지이다.push X: 정수 X를 스택에 넣는 연산이다.pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.size: 스택에 들어있는 정수의 개수를 출력한다.empty: 스택이 비어있으면 1, 아니면 0을 출력한다.top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.입력첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다...

Computer/Algorithm 2018.05.29

Daily Algorithm - 비밀편지

문제셀던과 레오나드는 암호화화여 문자를 주고 받았다.암호화하는 방법은 숫자 S 만큼 알파벳을 이동하는 대치 문자를 이용하였다. (알파벳은 대문자만 사용)여기서 S를 구하는 방법은 S = 3P + K 이다.K는 입력으로 주어지고, P는 문자열의 각 자릿수값이다.예를 들어, K=3이고, ZOOM이라는 문자를 암호화한다면,S = 3*1 + 3 = 6 , Z ==> FS = 3*2 + 3 = 9 , O ==> XS = 3*3 + 3 = 12 , O ==> AS = 3*4 + 3 = 15 , M ==> B이다.이 문제에서는 암호화된 문자를 원문으로 바꾸는 것이 문제이다.즉, 암호문 FXAB가 입력되면 원문 ZOOM을 출력해야한다.입력첫째줄에 K값이 입력된다. (K < 10)둘째줄에 20글자이내의 대문자로 이루어진..

Computer/Algorithm 2018.05.28