본문 바로가기

Java

[Handlebars] Handlebars.java 버전의 with helper 버그 패치 커밋 회사에서 Handlebars.java 와 관련된 이슈가 공유가 되었다. Handlebars 가 Javascript 버전과 Java 버전의 #with helper 결과가 동일하지 않습니다. 우선 이 이슈 버그를 해결한 코드는 필자의 github 저장소 https://github.com/powerumc/handlebars.java.bug-fix 에 커밋 되어 있고, 원본 저장소의 이슈 번호 #314, Pull Request #315 에 등록 되었다. Handlebars vs Handlebars.java 이 테스트에서 사용되는 handlebars 데이터는 다음과 같습니다. { "company": { "ko": "쿠팡", "en": "Coupang" }} 그리고 handlebars 템플릿은 다음과 같다. {{#.. 더보기
[Java] Java 8 Interface, default 메서드의 고찰 얼마 전 자바8 람다 나머지 이야기를 보면서 평소 필자가 알던 Java와는 완전히 달라 보였다. 필자가 알고 있던 Java는 보수적이지만 정통적이라고 생각 해왔는데 과감히 이 생각을 깨졌다. Java 8 Lambda 에 대해 궁금한 부분은 필자가 예전에 작성한 아티클을 참고하기 바란다. [Java] Java 8 의 Lambda(람다) 표현식에 대한 고찰 Java 8 Interface 변경 사항 default 키워드 오라클의 Defining an Interface 문서에 의하면 Java Interface의 정의는 변경되었다. Java Interface는 abstract methods, default methods, static methods 를 정의할 수 있다고 한다. The interface body c.. 더보기
[MySQL/C/JAVA] MySQL 5.6 버전의 DATETIME 이슈 프로그래밍은 언제나 숫자와의 경쟁인 것 같다. 반올림이 되느냐, 부동소수점이냐, 정수 오버플로우(integer overflow) 등은 백발이 되어 코드를 만질 때 까지 항상 따라다니는 문제가 될 것이다. MySQL 날짜 관련 이슈 얼마 전 필자가 다니는 회사에서 발생한 데이터베이스 관련 이슈로 다음과 같은 문제가 발생하였다. 아래는 MySQL 관련 문제에 대하여 공유된 내용이다. MySQL 5.6.4 부터 시간값 저장시 밀리세컨드를 지원한다. 하지만 DATETIME의 경우 길이가 6일 경우에만 가능하다. 그런데, DATETIME 타입(이는 DATETIME(4)와 같다)일 경우 밀리세컨드 부분을 반올림(round)하는 버그가 있다. #68760 이 버그로 인해 1999년 12월 31일 23시 59분 59초.. 더보기
[Gradle] Java 버전 업그레이드 후 Gradle 빌드 오류 Gradle 로컬 캐시로 인한 빌드 실패 얼마 전 회사에서 Java 버전을 Java 7 버전으로 업그레이드 했다. 이에 따라 JDK, Tomcat 7을 구성하고 언어 스팩을 @1.7 버전으로 설정한 후 다음과 같은 오류가 발생하였다. MCPOWERUMC:coupang powerumc$ ./gradlew FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring root project 'coupang'. > Could not resolve all dependencies for configuration ':classpath'. > Timeout waiting to lock artifact cache (/U.. 더보기
[IntelliJ] Tomcat 구동 오류 해결 IntelliJ 배포 오류 Gradle로 구성된 프로젝트가 여러개 있는데, 그 중 하나만 IntelliJ에서 제대로 인식하는데 실패한 적이 있다. Tomcat으로 올바로 구동이 되어야 하는데, 배포가 되었다고만 나오고 Tomcat Context에 로드되지 않는 현상이 발생한다. 관련된 오류를 검색해 보았다. 하지만 전혀 다른 문제의 답변이었다. Artifact XXX:war exploded: Server is not connected. Deploy is not available. 그러다가 Modules 구성을 살펴보니 여기에 문제가 있었다. 일전에 우리팀 루피님께서 Spring 구성이 잘 안되었다고 봐준적이 있는데, 어찌어찌 시간이 없어 이제서야 다시 살펴보게 되었다. 아래는 올바른 모듈의 Spring .. 더보기
[Eclipse] STS 설치 실패 오류 유형 및 GEF(Graphical Editing Framework) 개요 SpringSource Tool Suite for Eclipse Juno(이하 STS) 를 Eclipse Marketplace 를 통해 설치를 하고자 할 때, Dependencies 체크 후에 아래와 같은 메시지와 함께 설치가 되지 않는다. Cannot complete the install because one or more required items could not be found. Software being installed: Spring IDE Security Extension (optional) 3.1.0.201210040510-RELEASE ... ... 이하 생략 이 문제는 인터넷을 통해 필자와 같은 문제의 Thread를 찾을 수 있었다. Thread: cannot install Spr.. 더보기
[Java] Java 8 의 Lambda(람다) 표현식에 대한 고찰 개요 Java 8 버전에서 Lambda 표현을 지원한다. 아직 Java 8은 Beta 버전이다. 여러 언어 중에서 Lambda 표현을 지원하지 않는 언어로 손꼽힌다. Wikipedia에서 Anonymous Function을 참고해보면 Java 언어가 언어의 표현력에 있어서 추세를 따라가지 못하는 것이 아닐까 생각한다. 반면, C#은 2007년도에 C# 3.0 버전에 LINQ 라는 대주제를 중심으로 Lambda, Anonymous Class, Extension Methods를 내놓았고, C# 4.0은 2010년도에 Dynamic이라는 대주제를 중심으로 동적 프로그래밍이 가능해졌다. C# 5.0은 2012년도에 비동기 라는 대주제를 중심으로 비동기 프로그래밍을 언어적으로 지원한다. Wikipedia에서 C#.. 더보기
[Eclipse] Eclipse 에서 MinGW GCC 컴파일러로 C++11 사용하기 개요 간단하게 작성한 C++ 코드가 컴파일이 되지 않는다. auto 키워드와 lambda 식을 제대로 해석을 하지 못하는 모양이다. 인터넷을 통해 쉽게 문제를 해결할 수 있었다. 아래의 원문의 링크를 참고하면 된다. 필자는 아래의 링크를 참고하여 스샷좀 뜨고, 예제 샘플 정도만 만들었으니 설정에 어려움이 없다면 아래의 참고 링크만으로 충분할 것이다. C++11 eclipse MinGW configuration 필자가 받은 GCC 4.7.2 버전의 Release 변경 사항을 보면 도움이 될 것이다. GCC 4.7 Release Series Changes, New Features, and Fixes : http://gcc.gnu.org/gcc-4.7/changes.html 그리고 몇 가지 std 함수 중 t.. 더보기
[Eclipse] Eclipse Visual C++을 MinGW GCC 프로젝트로 변환하기 Qt 개발 환경을 만들려는 참에 Eclipse에서 Visual C++로 만든 프로젝트를 MinGW GCC로 변환해야 할 필요가 생겼다. '인터넷 검색 링크를 잊어버려서… 다시 참고 원문 링크는 찾으려니 찾아지지 않아서... 패스....'우선 프로젝트를 변환하는 방법은 크게 두 가지가 있는데, 예를 들어, 첫 번째는 전혀 다른 프로젝트를 Dynamic Web Application으로 바꾼다거나… 이런 경우에는 Project Explorer에서 -> Propject Properties -> Project Facet에서 변경하면 된다고 한다. 두 번째, 필자가 필요한 것은 이 방법이다. Eclipse에서 Visual C++로 만든 프로젝트를 MinGW로 변경하고자 한다. Project Explorer -> P.. 더보기
[Eclipse] Eclipse에서 Visual C++ 개발 환경 구성 Eclipse 개발 도구의 장점이라면 많은 벤더가 Eclipse 개발 환경을 지원하고, 오픈 커뮤니티 포럼도 굉장히 활성화가 되어있다는 장점이 있다. 그리고 오픈 소스이며 순수 Java로만 구현이 되어있어 Eclipse를 확장하거나 개발 환경을 구성하기 매우 쉽다. Eclipse에서 여러 언어를 지원하고 다양한 무료 플러그 인을 제공한다. (일부 언어는 컴파일러를 별도로 설치해야 한다.) 그 중 인터넷 자료를 찾아보면 Eclipse에서 C++ 개발 환경을 구성할 수 있는데, GCC(GNU C Compiler)에 포함된 컴파일러를 대상으로 소개하고 있어, 이를 Visual C++ 환경을 구성하는데 몇 가지 시행착오를 겪은 부분이 있어 이를 공유하고자 한다. 물론, Microsoft에서는 Visual Stu.. 더보기