본문 바로가기

Programming/Languages (Java, etc)40

[Java] Java 8 사용하기 : default method 목차 Interface를 업데이트하면 일어나는 일 Interface의 한계와 default method default method 사용 예제 심화 : resolution 규칙 정리 Java 8에 추가된 새로운 기능 default mehtod를 소개한다. Java 8부터 Interface에 static method, default method를 생성할 수 있게 되었고, 이미 public 하게 공개된 API Interface에 대해 더 편리하게 method를 추가할 수 있게 되었다. 라이브러리 개발자들은 public Interface API를 업데이트할 때 부담을 덜 수 있게 되었고, 라이브러리 사용자들은 Interface를 더 유연하고, 기능적으로 조합해서 구현할 수 있게 되었다. Interface를 업데.. 2023. 9. 3.
[Java] Java 8 사용하기 : Optional로 Null 지혜롭게 다루기 목차 Null을 다루는 방식 (Java 8 이전) Java 8에 추가된 Optional 유용한 case와 기타 API Java 8에 추가된 주요 기능 중 개인적으로 손에 꼽는 것은 Streams와 Optional이다. Optional은 java.util 패키지에 Java 8부터 추가된 클래스로 클래스명 그대로 Optional 한 값을 다룰 때 유용하게 사용할 수 있는 클래스이다. 포스팅을 간단히 요약하면 Optional을 사용해 아래와 같이 코드를 개선해 볼 수 있게 된다. // Java 8 이전 if(idol != null) { Leader leader = idol.getLeader(); if(leader != null) { Car car = member.getCar(); if(car != null) .. 2023. 9. 3.
[Java] Java 8 사용하기 : 가독성과 유연성, 람다와 Streams API 목차 Java 8로 향상되는 가독성과 유연성 익명 클래스 -> 람다 표현식 람다 표현식 -> 메서드 참조 명령적 데이터 가공 -> Streams API 함수형 인터페이스 Java 8 이상의 버전을 사용하면서 legacy를 Java 8로 리팩터링 하는 방법을 정리한다. 같은 주제로 2개 이상의 포스팅을 할 건데, 처음에는 Java 8에 추가된 스펙으로 코드 수준에서 어떻게 리팩터링 해내는지 본다. 이후 포스팅에는 디자인 패턴, 테스트, 디버깅 등의 부분에서 Java 8로 개선해 보겠다. 이 포스팅에서는 Java 8의 주요 스펙에 대해 문법적인 수준의 설명을 생략한다. 필요하다면 oracle java 문서나, 책 modern java in action을 추천한다. https://docs.oracle.com/.. 2023. 8. 16.
[JPA] Querydsl 사용해서 스칼라 서브쿼리 작성하기 목차 실행환경 테이블 소스 예제 sql 로그 JPA에서 스칼라 서브쿼리를 작성하는 방법을 포스팅해봅니다. 실행 환경 MySQL 8.0.32 Java 8 Spring Framework 4.3.6 Hibernate 5.4.4 final Querydsl 4.3.1 테이블 create table jpa_book.member ( id bigint auto_increment primary key, city varchar(255) null, street varchar(255) null, zipcode varchar(255) null, name varchar(255) null ); create table jpa_book.item ( DTYPE varchar(31) not null, id bigint auto_incre.. 2023. 8. 8.
[JAVA, SPRING] 버전 선택 가이드 2023 Java와 Spring을 선택함에 있어 Java version과 Spring version은 매우 중요합니다. 특히 Java 8부터 소개된 lamda, stream, Java 11의 var 타입추론 등은 같은 Java여도 버전에 따라 꽤 다른 가독성, 문법을 보여주기 때문에 현재 Java 8이 가장 많이 쓰이는 상황에서 Java 진영은 일종의 변곡점에 있습니다. 개발팀의 상황을 볼까요. 어떤 팀은 Java 8을 이미 도입한 채로 다음 버전을 준비 중 Java 8을 사용중 아직 Java 8 이전을 사용 중 일단 세 번째라면 어서 빨리 java 8으로 올라와서 다음 release를 준비해야 합니다. 이번 포스팅에서는 각 공식 문서를 바탕으로 현재 Spring 진영에서 선택할 수 있는 버전과 현실적인 방안을 .. 2023. 7. 5.
[SPRING] 테스트 코드 - 테스트 소개 제 PC에선 잘 되는데요? -> 테스트 코드는 확인해보셨어요? 목차 테스트 코드를 작성하는 이유 JUnit framework TDD DI in Test 정리 참고 테스트 코드가 중요한 것은 부인할 수 없는 사실입니다. 대부분의 회사들이 채용 조건 (우대사항)에 테스트 코드에 대한 작성법, TDD 방법론을 언급하니까요. 작성 여부와 상관없이 테스트 코드의 중요성은 모든 개발조직이 공감하고 있을 겁니다. 실무에서 테스트 코드를 작성하시나요? 대형 플랫폼 기업들은 작성하는 것으로 알고 있고, 그 외 선진적인 개발리더들은 본인이 리드하는 팀에 테스트 코드를 작성하도록 할 것입니다. 그러나 대부분의 SI 기업이나 시니어를 두지 않고 주니어 혼자 모든 것을 개발하는 환경에 놓인 개발팀이라면 경력이 몇 년이든 테스트.. 2023. 3. 21.