Builder 어노테이션
📌 @Builder 란? Lombok 의 @Builder 는 빌더 패턴을 자동으로 생성하는 어노테이션이다. @Getter @Builder public class User { private String name; private String email; private int age; private String address...
📌 @Builder 란? Lombok 의 @Builder 는 빌더 패턴을 자동으로 생성하는 어노테이션이다. @Getter @Builder public class User { private String name; private String email; private int age; private String address...
📌 개요 개인적으로 어떤 기술을 도입하거나 코드를 작성할 때, 개략적으로라도 근거가 있어야 한다고 생각한다. 그렇다고 ‘근거를 먼저 찾고 그 다음 작업을 진행하자!’라는 입장은 아니다. 남들이 닦아 놓은 길을 굳이 외면할 필요는 없다고 생각한다. 실제로 모든 기술 도입이나 코드 작성에 완벽한 근거를 사전에 마련하는 것은 현실적으로 불가능하다. 중요한...
📌 문제 https://www.acmicpc.net/problem/2228 📌 설명 배열의 누적 합을 구하고, m개의 구간을 선택하며 구간 합의 최대값을 구하는 문제이다. 📌 코드 #include <iostream> #include <algorithm> #define INF 3276701 using namespace ...
📌 Dirty Checking이란? Dirty Checking(변경 감지)란 JPA가 영속 상태인 엔티티의 값이 바뀌었는지를 자동으로 감지해, 트랜잭션을 flush하는 순간 필요한 UPDATE 쿼리를 동적으로 생성하여 실행하는 기능이다. 따로 save 또는 saveAndFlush 메서드를 호출하지 않아도 트랜잭션이 끝날 때 자동으로 엔티티 변경 내...
📌 문제 https://www.acmicpc.net/problem/1640 📌 설명 N * M 크기로 동전을 배치한다. 앞면을 0, 뒷면을 1이라고 할 때, 행 또는 열에 있는 동전들을 뒤집어서 행과 열에 위치한 모든 동전의 뒷면(1)의 개수를 짝수로 바꾸는 최소 횟수를 구하는 문제이다. 처음에는 무슨 알고리즘을 써야 할지 감이 안 잡혔는데, ...
📌 Lambda Function Lambda 함수는 함수를 하나의 식처럼 표현하는 방법이다. 함수명이 없기 때문에 ‘익명 함수’라고 부르기도 한다. 익명 함수는 함수형 인터페이스의 인스턴스로 취급되므로 ‘일급 객체’이다. 일급 객체란 다른 객체들에게 일반적으로 적용 가능한 연산을 모두 지원하는 객체로, 익명 함수 또한 정수나 문자열과 동일한 방법으로...
📌 문제 https://www.acmicpc.net/problem/1328 📌 설명 접근 방법만 잘 찾으면 어렵지 않은 문제라고 생각한다. 개인적으로 bottom-up 접근법보다 top-down 접근법으로 생각하는 것이 도움이 되었다. 물론 후술할 풀이는 bottom-up으로 접근하던 top-down으로 접근하던 충분히 떠올릴 수 있는 풀이이다....
📌 JUnit이란? JUnit 은 자바의 단위 테스트 프레임워크이다. 단위 테스트를 자동화하여 메서드 수준까지 독립적으로 테스트를 수행할 수 있다. 또한 어노테이션과 여러 라이브러리를 통해 간결하고 직관적으로 테스트 코드를 작성할 수 있다. JUnit은 테스트 메서드 실행 순서를 보장하지 않고 독립적으로 테스트를 수행하므로 테스트 간 의존성이 존재...
📌 개요 EntityManager 관련 메서드를 알아보자. find 메서드를 제외한 대부분의 메서드는 트랜잭션 범위 내에서 수행되어야 한다. 📌 persist persist 는 새로운 엔티티(비영속 상태)를 영속성 컨텍스트의 1차 캐시에 저장하여 영속 상태 엔티티로 만드는 메서드이다. DB에 엔티티를 저장하는 메서드가 아니라 영속성 컨텍스트에 ...
📌 문제 https://www.acmicpc.net/problem/2568 📌 설명 같은 위치에는 두 개 이상의 전깃줄이 연결되지 않는다. 그렇다면 A 전봇대를 기준으로 정렬 후 B 전봇대에 연결된 위치가 LIS를 이루는 위치들은 서로 교차하지 않는다는 것을 알 수 있다. 즉, 풀이 순서는 다음과 같다. 1. A 전봇대 위치를 기준으로 정렬한다...