본문 바로가기

2018/04/0213

실행 흐름에 끼어들기(Filter,Interceptor,AOP) 3 - AOP 실행 흐르에 끼어들기 마지막으로 AOP(Aspect Oriented Programming) 관점 지향 프로그래밍 입니다. 웹프로그램에서 하나의 요청의 실행 단계를 보면 공통적인 부분들이 존재합니다. 각 요청을 처리하는 비지니스 로직은 요청 마다 다르겠지만, 요청의 끝에서 작업 로그를 기록한다던지, 데이터베이스 트랜잭션을 요청의 앞에서 시작하고, 끝에서 커밋 또는 롤백을 한다던지 하는 코드 들이 있습니다. 이런 코드들은 모든 프로그램에 반복적으로 나타나게 됩니다. AOP 에서 이런 반복적으로 나오는 부분이 아래 이미지 에서 처럼 프로그램을 횡단하는 곳에 공통적인 코드가 나타난다고 해서 횡단적 관심사(Cross-cutting concern)라고 합니다. PGM1 PGM2 PGM3 +-----+ +-----+.. 2018. 4. 2.
실행 흐름에 끼어들기(Filter,Interceptor,AOP) 2 - Interceptor Java 웹프로그래밍에서 실행 흐를에 끼어들 수 있는 방법에 대해 알아보고 있습니다. 앞의 글에서 서블릿 필터에 대해 알아 봤습니다. 이번에는 스프링 프레임웍에서 사용할 수 있는 인터셉터에 대해서 알아보겠습니다. 필터와 인터셉터는 적용 시점이 다릅니다. 필터는 스프링 프레임웍과는 무관하게 지정된 자원에 대해 동작합니다. 스프링은 Dispatcher 서블릿으로 부터 시작됨으로 필터는 스프링 컨텍스트의 바깥에 존재 하게 됩니다. 인터셉터는 스프링의 Dispatcher 서블릿이 컨트롤러를 호출할 때 전, 후에 끼어듭니다. 그러므로 스프링 컨텍스트 내부에 존재하게 됩니다. 인터셉터는 여러개를 사용할 수 있으며, 실행 순서는 에 나오는 순서 입니다. 인터셉터를 주로 사용하는 곳은 로그인 체크, 권한 체크, 프로그.. 2018. 4. 2.
실행 흐름에 끼어들기(Filter,Interceptor,AOP) 1 - Servlet Filter Java 웹 프로그래밍에서 프로그램 흐름의 앞이나 뒤에 공통적인 처리를 추가할 수 있는 방법이 있습니다. 서블릿에서 지원하는 서블릿 필터와 스프링 프레임웍을 사용하면 쓸 수 있는 인터셉터, AOP 가 있습니다. 먼저 Servlet Filter에 대해 알아 봅니다. Servlet Filter 는 Servlet Specification 2.3 부터 지원합니다. 필터가 동작하도록 지정된 자원의 앞단에서 요청 내용을 변경하거나 여러가지 체크를 수행할 수 있습니다. 또한 자원의 처리가 끝난 후 응답 내용에 대해서도 변경하는 처리를 할 수 있습니다. 1. web.xml 에서 필터를 등록합니다. /WEB-INF/web.xml 파일 입니다. firstFilter com.tistory.pentode.filter.Firs.. 2018. 4. 2.
VirtualBox로 Linux 서버 만들기 3 - network 설정, 게스트 확장, X11 VirtualBox에 가상머신을 만들고, CentOS 7 을 최소 설치로 설치했습니다. 이제 추가적인 설정을 해봅니다. 그전에 용어를 좀 정리하면 호스트는 자신의 PC 를 뜻하고, 게스트는 가상머신을 뜻합니다. 호스트 키는 키보드 잡기 하거나 해제할 때 사용하는 키 입니다. 키보드 잡기가 되면 모든 키보드 입력과 마우스 입력이 가상 머신으로만 가게 됩니다. 1. 이전 글에서 호스트 키를 오른쪽 Shift 키로 설정을 했었는데, 대문자 입력시 불편해서 왼쪽 Shift + Ctrl 키로 변경하겠습니다. 파일 -> 환경 설정 을 선택하여 뜬 팝업창에서 입력 -> 가상머신(M) 의 호스트키 조합으로 변경합니다. 2. NAT 모드로 설정된 네트워킹 모드를 변경 브리지 어댑터 방식으로 변경합니다. 가상머신을 종료한.. 2018. 4. 2.
VirtualBox로 Linux 서버 만들기 2 - CentOS7 설치하기 "VirtualBox로 Linux 서버 만들기 1 - 설치 및 가상머신 생성" 에서 생성한 가상머신에 CentOS7을 설치해 봅니다. 일단 여기서는 최소 설치를 하여서 필요한 것들을 나중에 하나 하나씩 설치를 해 보겠습니다. 전체 설치를 하는것이 사용하는 것은 편리하지만, 하나씩 설치하면서 배울 수 있는 것도 많이 있습니다. 요즘은 GUI를 많이 사용하지만 Linux는 아직도 많은 명령어 들의 조합으로 필요한 기능을 구현하고 있습니다.다음 사이트에서 CentOS7 배포판을 다운로드 받습니다. https://www.centos.org/download/ DVD 하나짜리 CentOS-7-x86_64-DVD-1611.iso 파일을 받았습니다. VirtualBox 를 실행 합니다. 미리 만들어둔 CentOS7 가.. 2018. 4. 2.
안드로이드 앱 실행하기 - AVD "안드로이드 스튜디오를 설치하기" 에서 안드로이드 스튜디오를 설치하고 Hello World! 를 출력하는 간단한 앱을 AVD(Android Virtual Device)에서 실행해 봤습니다. 앱을 실행하려면 AVD를 사용하거나 실제 휴대폰을 연결해서 테스트 해볼 수 있습니다. "안드로이드 스튜디오를 설치하기" 에서 가상 디바이스에서 앱을 처음 실행했을때 시스템 이미지가 없어서 기본값으로 ARM EABI v7a System Image 를 다운받아 실행했었습니다. 이때 x86 컴퓨터에서는 x86 시스템 이미지를사용하는것이 더 나은 성능을 보인다는 메세지가 떴었습니다. 그래서 이번에는 AVD 를 설정하는 방법을 확인해 봅니다. x86 시스템이미지를 설정하는 것을 보기 전에 전에 최초로 실행했을 때의 화면을 보도.. 2018. 4. 2.
SQLyog - MySQL 관리툴 설치하기 MySQL 클라이언트/관리툴 인 SQLyog community Edition 을 설치하고, 데이터베이스 생성 및 사용자 생성하는것을 해봅니다. MySQL 은 관리툴로는 Command line 클라이언트 툴과 , phpMysqlAdmin 이라는 웹 툴이 많이 사용됩니다. 물론 기능이 많은 유료 툴도 많이 있지만, 요즘은 SQLyog Community Edition 이 많이 사용되고 있는것 같습니다. SQLyog 도 유료 툴 이지만 Community Edition은 무료로 사용할 수 있습니다. MySQL 은 MariaDB 와 호환이 됩니다. SQLyog 는 MySQL 에서와 동일하게 MariaDB 용으로 사용할 수 있습니다. 설치를 해봅니다. https://github.com/webyog/sqlyog-com.. 2018. 4. 2.
Windows.old 폴더 삭제하기 Windows 7을 Windows 10 으로 무료로 올릴 때 이전 버전의 윈도우즈로 돌아가기 위해서 Windows.old 폴더가 생깁니다. 그때 지웠었는데, 이번에 보니 또 생긴걸 발견했습니다. 아마 Windows 10 1주년 기념 업데이트에서 생긴걸로 추측이 됩니다. 삭제하겠습니다. 설정창을 열어서 시스템(디스플레이, 알림, 앱, 전원) 아이콘을 클릭합니다. 거기에서 저장 공간을 선택합니다. 이 화면에서는 새 앱, 새 문서, 새 사진, 새 영화 등을 기본적으로 저장될 위치를 지정할 수 있습니다. C: 드라이브를 선택합니다. 동영상, 메일, .. , 임시파일 등의 항목별로 사용중인 용량을 계산합니다. 처음 실행한다면 상당히 시간이 오래 걸릴 수 있습니다. 임시파일 을 클릭합니다. 이 임시파일 항목내에 이.. 2018. 4. 2.
VirtualBox로 Linux 서버 만들기 1 - 설치 및 가상머신 생성 가상 하드웨어 프로그램으로는 잘 알려진 것이 VirtualBox 와 VMware Workstation 이 있습니다. VirtualBox 는 GPLv2 라이센스 이고, VMware Workstation 의 경우 유료 버전와 무료 버전이 있습니다. 유료버전은 VMware Workstation Pro 이고, 무료 버전은 VMware Workstation Player 로 개인, 비상업용으로 사용할 경우 무료 입니다. 여기서는 VirtualBox에 Linux(CentOS7) 을 설치하여 여러가지 테스트용 서버들을 설치해 보겠습니다. 이번에는 먼저 VirtualBox를 설치하고, 가상머신을 생성합니다. linux 를 설치하는것은 다음번 글에서 해보겠습니다. Windows 용 VirtualBox 를 다운 받습니다. .. 2018. 4. 2.
CPU 가상화 지원여부 확인하기 컴퓨터에 VirtualBox 등 가상화 프로그램을 설치해서 사용할 때 64bit 운영체제를 지원하려면 CPU 가 가상화 기술을 지원해야 합니다. 자신의 CPU 가 가상화(Virtualization) 을 지원하는지 알아보고, 지원한다면 사용이 가능하도록 BIOS 에서 활성화 시키는 방법을 알아 봅시다. 자신의 CPU가 가상화를 지원하는지 확인해보는 방법은 여러가지가 있겠지만, 확인 소프트웨어를 이용하여 알아보는 방법을 보도록 합시다. https://downloadcenter.intel.com/ko/download/7838 에서 인텔 프로세서 식별 유틸리티를 받아서 확인해 볼 수 있습니다.아래쪽으로 스크롤 해서 한국어 버전의 프로그램을 다운로드 받습니다. (pidkor45.msi) 다운 받은 프로그램을 더블.. 2018. 4. 2.
Spring Framework 메세지 국제화(다국어 지원) 사용하기 스프링 프레임웍에서 다국어 지원기능을 사용해 보겠습니다. 기본적으로 텍스트로 저장되는 properties 파일을 언어별로 만들어서 사용합니다. 이번에 해볼것은 다음과 같습니다. 1. 메세지 프로퍼티 파일을 작성합니다. 2. 스프링프레임웍에서 사용할 수 있도록 설정을 합니다. 3. 언어를 변경할 수 있도록 구현합니다. 4. 자바코드과 jsp 코드에서 다국어 메세지를 사용하는 방법을 알아봅니다. 파일구조는 다음과 같습니다. /WEB-INF/messges 폴더 아래에 메세지를 담은 파일이 있습니다. message.properties 파일은 기본 파일 입니다. 언어가 맞지 않으면 이것이 선택되어질 것입니다. message_ko.properties 파일은 한국어 메세지 파일 입니다. message_en.prope.. 2018. 4. 2.
PHP 7.1 실행시 VCRUNTIME140.dll 오류 문제 해결하기 테스트 목적으로 PHP 7.1 (php-7.1.0-nts-Win32-VC14-x64) 을 받아서 실행을 해보니 아래와 같은 에러가 발생하였습니다. "컴퓨터에 VCRUNTIME140.dll 이(가) 없어서 프로그램을 시작할 수 없습니다. 프로그램을 다시 설치하여 이 문제를 해결하십시오." 라는 에러 메세지 입니다. PHP의 설치는 zip 파일 받아서 적당한 위치에 풀어만 두면 되는데 다시 설치해서 해결될 문제는 아니란것을 알 수 있습니다. 다운받은 전체 PHP의 zip 파일명을 보면 VC14 라는 단어가 들어 있습니다. 이 VC14 는 Microsoft Visual C++ 2015 버전으로 컴파일 되었다는것을 나타냅니다. Microsoft 에서 이런 경우를 위해서 필요한 dll 파일들만 배포를 합니다. 다.. 2018. 4. 2.
PHP 7 에서 Oracle 연결하기 PHP에서 Oracle 사용할 수 있도록 연결 작업을 해봅니다. PHP의 설치는 "Windows용 XAMPP 설치하기 - (Apache, PHP, MariaDB)" 를 참조 합니다. 그때 설치된 PHP 버전은 7.0.13 입니다. XAMPP 로 설치가 되었고, win32 입니다. 테스트 환경도 이때 생성한 프로젝트를 사용하겠습니다. 현재 운영체제는 Window 10 x64 이고, Oracle 은 Express Edition 11g r2 입니다. 이 같은 환경에서 PHP와 Oracle 의 연동을 위해서는 한가지가 더 필요합니다. 바로 Oracle instant client 입니다. php가 win32 이니 instant client도 win32, 11g용을 받아서 설치하겠습니다. 1. Oracle Inst.. 2018. 4. 2.