본문 바로가기

일단 해보기

(11)
[Java] Tika를 이용한 MimeType 확인 & FilenameUtils로 확장자 추출 Tika로 MimeType 체크 spring에서 파일을 업로드할 시 파일 확장자를 제한하기 위해 MimeType을 체크하려 한다. Tika를 이용하면 파일 확장자가 아닌 파일 내용을 기반으로 판단하기 때문에, 확장자를 변경해도 MimeType을 알아낼 수 있다. 1. Maven을 이용해 Tika 추가 org.apache.tika tika-parsers 1.14 pom.xml에 Tika를 추가한다. 다른 버전을 추가하고 싶으면 링크에서 확인. 2. 업로드 컨트롤러에 코드 구현 public void fileUpload(MultipartFile file) { // ... Input Stream inputStream; try { inputStream = file.getInputStream(); String mi..
[Ubuntu] Ubuntu 16.04에 DNS 설정 ubuntu 16.04는 /etc/resolv.conf 파일을 수정해도 네트워크를 재시작하면 초기화 된다. 변경사항을 시스템에 반영하기 위해서는 다른 파일을 수정해야 한다.(/etc/resolvconf/update.d/libc에서 resolvconf에 대한 설정 확인 가능) /etc/resolvconf/resolv.conf.d 디렉토리 안을 보면 DNS설정을 위한 head와 base 파일이 있다. 우리는 여기에 tail 파일을 추가할 것이다. 추가한 tail 파일에 다음과 같이 nameserver를 입력해준다. resolv 서비스를 재시작한 뒤 /etc/resolv.conf를 확인해보면 변경사항이 반영된 것을 확인할 수 있다.
[Ubuntu] Ubuntu 16.04의 connect: Network is unreachable 오류 VMware에 ubuntu 16.04를 설치한 뒤 네트워크 인터페이스를 확인했더니 제대로 잡히지 않았다. ifconfig -a로 확인해보니, ens33에서 ip주소를 받아오지 못한 상태였다. 이를 해결하기 위해 /etc/network/interfaces 파일에 아래와 같은 내용을 추가했다. eth0은 인터페이스 명을 보고 그에 따라 입력해주면 된다. auto eth0 iface eth0 inet dhcp 네트워크를 재시작하여 ip주소를 받아 온 것을 확인했다.
[Python] Class에 대한 수다 클래스에 대해 친구와 얘기하다 결국 파이썬에서 우리가 쓰는 명령어들도 클래스라는 말이 나왔다. 그런데 ()가 붙고 말고의 의미는 무엇일까? 파이썬으로 직접 실험해봤다. A = list B = list() C = A() A는 클래스 그 자체를 의미한다. B는 list 클래스를 이용해 생성된 객체, 즉 실제로 메모리를 할당받은 인스턴스다. list 클래스의 __init__()이 실행되면서 빈 리스트가 형성되어 담긴다. C는 B와 동일하다. 클래스 그 자체인 A를 이용해 메모리를 할당받은 인스턴스. 클래스가 무슨 행동을 할지 지정하는 것이 Method.
파이썬 __str__ 메쏘드 Django를 이용해 웹을 배포하려 하다가 의문이 생겼다. Django는 DB를 models.py파일을 이용, 테이블을 클래스로 만들어 쉽게 관리가 가능하다. 예시들을 찾아보다보니 클래스 말미에 아래와 같이 __str__을 정의해 주는 경우가 많았다. 해당 메쏘드에 대한 의문점이 생겨서 간단히 찾아봤다. __str__ 메쏘드는 왜 사용할까? __str__ 는 해당 클래스로 만들어진 인스턴트를 자체를 출력할 때, 문자열로 설명해주기 위한 메쏘드다. Django의 models.py에서는 class가 admin 페이지에서 어떻게 출력되는지 정의해주는 역할이라 볼 수 있겠다. 필자도 글로만 읽으니 잘 와닿지 않아 직접 실험해봤다. 1. __str__ 미사용시 from django.db import models ..
파이썬 가상환경 설정 파이썬에서 가상환경을 이용해 개발을 진행할 수 있다. 프로젝트마다 사용하는 앱의 버전이 다를수도 있으므로, 가상환경을 사용하면 편리하다. cmd를 기준으로 설명해본다. 1. 가상환경 생성 가상환경을 생성할 경로에서 아래 명령어를 입력한다 python -m venv [가상환경이름] 위 명령어를 실행하면, 해당 경로 안에 가상환경 폴더가 생성된다. 2. 가상환경 실행 [가상환경폴더]\Scripts\activate 위 명령어를 입력 뒤, 콘솔의 프롬프트 앞에 (가상환경이름) 접두어가 붙어있다면 가상환경이 제대로 실행된 것이다. 3. pip 업그레이드하기 가상머신을 실행한 뒤, 다른 앱들을 설치하기 전 pip의 버전을 업그레이드 시켜주는게 좋다. python -m pip install --upgrade pip ..
파이썬으로 클립보드 제어하기 파이썬에서 클립보드를 제어할 수 있는 pyperclip을 설치한다. pip install pyperclip copy()를 이용해 복사할 내용을 클립보드에 입력하고, paste()를 이용해 불러올 수 있다. 간단한 예제를 보자. import pyperclip pyperclip.copy('HelloWorld') txt = pyperclip.paste() print(txt) >> HelloWorld 출력
티스토리에서 PDF를 바로 읽어보자 pdf 파일들을 티스토리에서 편하게 보고 싶어 여러가지 방법을 찾아봤다. 그 중 가장 나은 방법이 구글드라이브를 이용해 띄우는 방법인것 같아 소개해본다. 본 게시글을 따라하면 아래와 같이 pdf를 불러올 수 있고, 아래의 새 창에서 열기를 클릭하면 새로운 탭에서 보는 것도 가능하다. 새 창에서 열기 우선 구글 드라이브에 파일을 업로드한 뒤 공유가 가능하도록 설정을 변경해준다. 1. 읽어들일 pdf나 ppt 등을 구글드라이브에 올린다. 2. 공유할 파일 우클릭 > 공유 선택 3. 공유창에서 오른쪽 아래의 '고급' 클릭 4. 액세스 권한 '변경' 클릭 5. '모든 웹 사용자'로 변경하고 저장 6. 파일 위에서 우클릭해 공유가능한 링크 가져오기 그럼 클립보드에 다음과 같이 공유할 수 있는 링크가 복사된다. h..