본문 바로가기

SW LAB/Java

Java에서 자주 사용하는 lamda식 문법 저는 Java에서 Lamda를 자주 사용하는 편입니다.. Front End 개발을 한 동안 하면서 Lamda식 문법이 헷갈려서 한 곳에 정리를 하려 합니다. List 를 Map 으로 변환 Map의 Value에 Instance를 그대로 넣고 싶을 때는 Function.identy()를 사용합니다. public Map convertLitToMap(List objectList) { return objectList.stream().collect(Collectors.toMap(InstanceNm:getId, Function.identy(), (v1, v2) -> v1, HashMap::new)); } 더보기
Effective Java : (1) 소개 C언어 개발자로 신입으로 입사하여 2년을 보낸 후, JAVA 개발자로 전환하여 어느덧 3년이 지났습니다. 이 시기에 필도서로 꼽히는 Effective Java를 읽으며서 한 층 더 앞으로 도약하고자 합니다. Java의 아버지인 제임스 고슬링(James Gosling)이 말했다. 자바는 '아주 단순한' '노동자용 언어' 다. C++의 아버지인 비아네 스트롭스트룹(Bjarne Stroustrup)이 말했다. C++는 '한 가지 방식만 지원하도록 고안된 언어들과는 현격히 다른' '다중-패러다임 언어' 다 그리고 그는 초창기 Java를 보고 이렇게 말했다. 갓 탄생한 언어 대부분이 그렇듯, 자바가 상대적으로 간결해 보이는 이유는 어느 정도는 허상이도 어느.. 더보기
Java의 Mybatis ParameterType Mybatis의 XML을 작성할 때 Single / Multiple ParamterType 사용법에 대해 기술해봅니다. Single Parameter 다음과 같이 Mapper 용 Interface를 선언하였습니다. public interface HumanResourceSyncMapper { // Single Parameter List selectHumanResourceConfig(int syncTypeCd); // Multiple Parameter int insertHumanResourceConfig(HumanResourceSyncCommon humanResourceSyncCommon); } _parameter를 이용하여 조건문 if에서 활용이 가능하고, SQL 내에는 #{id}를 이용하여 Paramet.. 더보기
IntelliJ 자동 주석 완성 Back-End 개발을 수행하면 주석을 자동으로 완성하여 넣어야 할 일이 많이 있습니다. 클래스나 메소드의 용도 및 히스토리를 넣는 것이지요. IntelliJ 에서 이를 수행하기 위한 세팅 방법을 알아봅니다. [File]-[Setting]를 선택하거나, [Ctrl] + [Alt] + [S] 단축키를 누릅니다. Live Template를 검색합니다. 우측에 [+]를 클릭하여 [Template Group]를 추가합니다. 저는 Java 로 생성하였습니다. 그리고 Java 그룹을 선택 후, 다시 [+]를 클릭하여 [Live Templates]를 선택합니다. 다음과 같이 정의하였습니다. Abbreviation : cmtClass Description : 클래스 주석 Template text : /** * * $p.. 더보기
IntelliJ 설치 및 세팅 1. IntelliJ 설치 https://www.jetbrains.com/ 로 접속하여 IntelliJ 를 다운로드 합니다. 저는 Ultimate Edtion으로 설치하려 합니다. 설치 후 실행합니다. 최초 실행 시 라이선스 인증을 수행합니다. 다음 파일을 설치합니다. sliksvn 세팅 https://sliksvn.com/download/ lombok 설치 Ctrl + Alt + S 를 누른 후, Plugins 로 들어가서 Marketplace를 이용하여 원하는 플러그인을 설치해도 됩니다. lombok을 검색하여 설치합니다. Ctrl + Alt + S 를 누른 후, 'Annotation Processings '에서 'Enable annotation processing' 체크.. 더보기
JAVA : JPA 소개 JPA는 Java Persistent API 의 약자입니다. JPA는 여러 ORM 전문가가 참여한 EJB 3.0 스펙 작업에서 기존 EJB ORM이던 Entity Bean을 JPA라고 바꾸고 JavaSE, JavaEE를 위한 영속성(persistence) 관리와 ORM을 위한 표준 기술입니다. JPA는 ORM 표준 기술로 Hibernate, OpenJPA, EclipseLink, TopLink Essentials과 같은 구현체가 있고 이에 표준 인터페이스가 바로 JPA입니다. ORM(Object Relational Mapping)이란 RDB 테이블을 객체지향적으로 사용하기 위한 기술입니다. RDB 테이블은 객체지향적 특징(상속, 다형성, 레퍼런스, 오브젝트 등)이 없고 자바와 같은 언어로 접근하기 쉽지 .. 더보기
Java : Gradle Dependency 로컬 라이브러리 dependency에 포함시키는 법 프로젝트 root 경로에 lib 폴더 생성 후, 하위에 jar 를 넣습니다. 그리고 아래와 같이 fileTree 를 활용하면, maven 이나 별도의 repository 없이 jar로 넣을 수 있습니다. dependencies { compile fileTree (dir: 'lib', include:['*/.jar']) } 뚱뚱한 jar 만들기 소스코드 외 사용중인 lib를 모두 포함하는 jar를 만들려면? // 다음과 같이 shadow plug-in 을 추가 buildscript { repositories { jcenter() } dependencies { classpath 'com.github.jengelman.gr.. 더보기
Java Logging Framework 란? Application Project 를 진행하면 필수 요소 중 하나가 Log 를 남기는 Framework 구성입니다. 제품 개발이나 운영 시, 발생하는 문제를 추적하여 원인을 파악하기 위함이죠. 굉장히 유용한 Framework 이기 때문에 종류 또한 꽤 다양합니다. 또한, Logging 작업이 굉장히 많은 Project 를 위해 관리해주는 또 다른 Framework 가 있기도 하죠. 심지어 비용을 지불하고 구매할 정도로 막강한 기능을 갖고 있죠. 우선, 종류에 대해 간단히 살펴보고 자세히 알아보도록 하겠습니다. Java Util Logging (JUL) 제가 직접 Performance Test 를 한 것은 아니지만, Log4J 와 Logback 에 비해 평가가 그리 좋지 못합니다. 평가의 척도는 속도나 .. 더보기