Java - optional
강의 : 김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍 1. Optional이 필요한 이유 1-1. NullPointerException 문제 null 참조에 대해 메서드를 호출하면 NullPointerException이 발생해 프로그램이 예기치 않게 종료될 수 있다. null 체크를 하기 위해 if (obj != nu...
강의 : 김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍 1. Optional이 필요한 이유 1-1. NullPointerException 문제 null 참조에 대해 메서드를 호출하면 NullPointerException이 발생해 프로그램이 예기치 않게 종료될 수 있다. null 체크를 하기 위해 if (obj != nu...
강의 : 김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍 1. 스트림 API - 기본 1-1. 스트림 API 시작 map, filter 기능을 제공하는 MyStreamV3을 만들어 List Collection에 원하는 연산을 선언적으로 구현할 수 있게 지원했다. MyStreamV3을 사용해 작업을 어떻게 수행해야 하는...
강의 : 김영한의 실전 자바 - 고급 3편, 람다, 스트림, 함수형 프로그래밍 1. 람다가 필요한 이유 아래와 같이 주사위 값을 무작위로 구하고 값을 더하는 동작의 실행 시간 측정하는 코드가 있다. public class Ex1Main { private static void helloDice() { long startNs =...
대규모 시스템으로 설계된 게시판의 성능 - 테스트 도구 시스템의 성능, 부하 테스트를 위한 도구로 K6를 사용한다. K6의 특징은 다음과 같다. JavaScript로 테스트 스크립트를 작성할 수 있다. JMeter, Grinder에 비해 부가 기능은 부족하지만 가볍고 더 많은 동시 요청을 보낼 수 있음 별도의 플러그인 없이 테스트 결과...
대규모 시스템으로 설계된 게시판의 성능 - DB 조회 1200만 건의 게시글 데이터가 있는 article 테이블에 쿼리를 실행하면 많은 시간이 걸린다. 이 문제를 해결하기 위한 과정을 설명한다. 게시글 서비스와 MySQL을 실행한 PC는 8세대 i5 CPU와 8GB 메모리 그리고 디스크는 SSD를 사용한다. MySQL 서버는 같은 PC에서...
대규모 시스템으로 설계된 게시판의 구조 - Article Read 0. 서비스 별로 다루는 기술들 No 서비스 목적 기술 1 Article 게시글 관리 DB Index(clustered, secondary, coveri...
대규모 시스템으로 설계된 게시판의 구조 - Hot Article 0. 서비스 별로 다루는 기술들 No 서비스 목적 기술 1 Article 게시글 관리 DB Index(clustered, secondary, coverin...
대규모 시스템으로 설계된 게시판의 구조 - Article, Comment, Like, View 0. 서비스 별로 다루는 기술들 No 서비스 목적 기술 1 Article 게시글 관리 DB Index(clustered, s...
대규모 시스템으로 설계된 게시판에 사용된 Spring 문법과 요소 기술 - Java 1. LocalDateTime/Duration 1-1. LocalDateTime 1-1-1. LocalDateTime.now() 현재 로컬 컴퓨터의 날짜와 시간을 반환 // 2025-02-23T11:58:20.551705 LocalDateTime.now(); ...
대규모 시스템으로 설계된 게시판에 사용된 Spring 문법과 요소 기술 - Repository 1. JPA JPA는 자바의 표준 ORM(Object Relational Mapping)으로서 객체와 DB를 매핑한다. 1-1. Persistence Unit Persistence Unit은 데이터베이스를 연결을 위한 설정이다. url, 사용자 이름, ...