개요 Java 기반의 프로젝트는 크게 2개로 파일의 성격을 구분할 수 있다. 첫째는 .java로 끝나는(빌드시 .class로 컴파일될) Source 파일이고 둘째는 소스가 아닌(컴파일의 대상이 아닌) Resource 파일이다. 흔히 작성하게 되는 각종 .xml 파일부터 .html, .js, .css 파일까지 모두 이 리소스 파일에 해당한다. 이번 글에서는 이러한 리소스 파일을 획득하는 방법을 설명하고자 한다. 리소스 파일 획득하기 // /src/main/resources/something.txt 파일을 읽어 온다. String something = IOUtils.toString(getClass().getResourceAsStream("/something.txt"), "UTF-8"); Maven 또는 Gr..
개요 만약 내가 작성한 모든 메써드의 실행 전후로 로그를 남기고 싶다면? 데이터베이스에 대한 쓰기 작업 전후의 트랜잭션 관리를 일일이 명시하지 않고 자동으로 하고 싶다면? 전통적인 클래스 관점의 OOP 세계에서는 깔끔하게 대응하기가 쉽지 않다. 답은 Aspect 관점의 AOP(Aspect Oriented Programming)를 도입하는 것이다. Java 진영에는 AspectJ라는 훌륭한 AOP 프레임워크가 존재하며 이를 이용하여 개발자는 커스텀 어노테이션을 적용한 자신 만의 편리한 Aspect를 작성할 수 있다.(AspectJ의 훌륭한 적용 사례 중 하나는 jcabi-aspects 라이브러리이다.) Spring 또한 AspectJ 스타일을 수용한 프록시 기반의 Spring AOP를 제공한다. 대상 클래..
아스키코드? 유니코드가 뭐지? 컴퓨터가 처음 발명되었을 때 표현 가능한 문자는 128개였다. 이를 ASCII 코드라고 한다. 영어 알파벳과 통화를 포함한 여러 기호를 표현할 수 있었기에 미국을 중심으로 한 영어권에서는 사용하는데 아무 문제가 없었다. 컴퓨터가 보다 대중화되면서 대부분의 서유럽 언어의 알파벳을 추가하여 256개의 문자를 표현할 수 있게 되었다. 이를 ISO-8859-1 코드라고 한다. 유명한 오픈 소스 서블릿 컨테이너인 Apache Tomcat의 기본 언어 코드가 바로 ISO-8859-1이다. 이 문제로 쿼리 스트링에 포함된 한글 문자열이 깨지는 것을 누구나 경험해봤을 것이다. 초창기 HTML의 표준 언어 코드였기 때문에 아직도 서유럽의 적지 않은 웹사이트들이 이 코드로 제공된다. 초창기 ..
개요 Java EE에는 HTTP 요청에 대한 응답을 수행하는 HttpServlet(@WebServlet)이 존재하며 이러한 서블릿 실행 전후 시점에 임의의 처리를 가능하게 해주는 Filter(@WebFilter)가 존재한다. 필터는 체인 형태로 여러 개를 사용할 수 있다. Spring Web MVC 또한 동일한 기능의 HandlerInterceptor를 제공한다. Filter는 로우 레벨의 처리 로직을, HandlerInterceptor는 회원 인증 검사 등의 비즈니스 레벨의 처리 로직을 작성하는데 적합하다. 이번 글에서는 HandlerInterceptor의 사용 예를 간단히 설명하고자 한다. HandlerInterceptor 작성 package com.jsonobject.example; import o..
- Total
- Today
- Yesterday
- JavaScript
- jstl
- 로드바이크
- Spring MVC 3
- 구동계
- Tomcat
- chrome
- kotlin
- maven
- JHipster
- CentOS
- jpa
- Spring Boot
- java
- 자전거
- node.js
- Kendo UI
- graylog
- DynamoDB
- bootstrap
- MySQL
- 로드 바이크
- spring
- jsp
- Eclipse
- 태그를 입력해 주세요.
- Kendo UI Web Grid
- 평속
- 알뜰폰
- Docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |