골치 아픈 브라우저 호환성 문제 프론트엔드 웹 개발자들에게 브라우저 호환성을 유지하는 것은 굉장히 골치아픈 일이다. 특히 사용자의 브라우저 환경을 인식하여 ActiveX 실행 여부를 결정해야 한다면 브라우저 환경 및 버전을 정확하게 확인할 수 있어야 한다. 문제의 브라우저, Internet Explorer 11 JavaScript에서 브라우저 환경을 확인할 수 있는 방법은 굉장히 많다. 대표적으로 아래와 같은 방법이 있다. navigator.appName 값을 확인하면 Microsoft Internet Explorer으로 인식한다. if (navigator.appName == 'Microsoft Internet Explorer') { // 처리 로직 작성 } 하지만 Internet Explorer 11 ..
계속 작성 중인 문서입니다. 지속적으로 내용을 보강하겠습니다. Java에서 액셀 파일은 어떻게 제어하지? Java의 강점은 오래된 역사만큼이나 다양한 라이브러리가 존재한다는 것인데 엑셀 파일에 대한 제어를 제공하는 라이브러리 또한 존재한다. Apache POI는 엑셀 뿐만 아니라 모든 MS 오피스 문서에 대한 파일 제어를 지원한다. 다운로드는? Apache POI는 꽤나 덩치가 큰 라이브러리이다. 아래 순서대로 다운로드한다. https://poi.apache.org에 방문하여 왼쪽 메뉴에서 Download 메뉴를 클릭한다. 화면 중앙의 Binary Distribution 항목의 poi-bin-3.10-FINAL-20140208.tar.gz를 클릭하여 다운로드한다. 압축 해제 후 모든 .jar 파일을 프로..
main() 메써드에서 테스트 코드를 작성하던 시대는 지났다. 아직도 적지 않은 Java 개발자가 습관상 main() 메써드 안에서 자신이 작성한 소스 코드를 테스트한다. 하지만 JUnit이 등장하면서 소스 코드를 테스트하기 훨씬 편해졌다. 테스트 클래스를 생성하고 메써드 앞에 @Test 어노테이션을 부여하면 간단하게 코드 테스트가 가능하다. 그렇다면 테스트 코드는 어디에 작성해야 할까? 프로젝트 구조를 변경하자. Eclipse에서 Java Project를 새로 생성하면 기본적으로 아래 구조로 프로젝트가 생성되며 src 폴더 밑에 새로운 패키지를 생성하여 소스 코드를 작성하게 된다. src org.jsonobject.someproject 하지만 최근 추세는 메인 소스 코드와 테스트 소스 코드를 분리하여 ..
영원한 고민거리, Java에서의 데이터베이스와 SQL 접근 Java 개발자에게 있어 데이터베이스와 SQL 접근은 영원한 고민거리이다. 요즘같이 생산성이 중요시되는 시대에 공부 목적이 아닌 이상 java.sql.* 패키지만을 사용하여 Plain JDBC로 데이터베이스 접근 코드를 구현하는 사람은 적을 것이다. Plain JDBC만을 사용하면 간단한 SQL 쿼리 결과를 얻기 위해 불필요한 Boilerplate Code(보일러플레이트 코드)가 너무 많아 프로젝트의 규모가 조금만 커져도 생산성의 발목을 잡게 된다. MyBatis, JdbcTemplate, Hibernate... 이러한 생산성을 향상시켜주는 라이브러리가 존재한다. 먼저 너무나도 유명한 MyBatis는 iBatis의 전신으로 국내 프로젝트 환경에서..
- Total
- Today
- Yesterday
- Kendo UI
- jpa
- kotlin
- bootstrap
- graylog
- chrome
- 태그를 입력해 주세요.
- maven
- Kendo UI Web Grid
- node.js
- 평속
- CentOS
- Tomcat
- DynamoDB
- spring
- 알뜰폰
- JavaScript
- Eclipse
- MySQL
- JHipster
- Spring Boot
- 자전거
- 로드 바이크
- Spring MVC 3
- java
- Docker
- jsp
- 구동계
- 로드바이크
- jstl
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |