[Lombok] Builder란? toBuilder를 사용해서 DB 내용 수정하기
·
Spring
toBuilder를 사용하기 전까지는 따로 method를 사용해서 기존 내용을 수정하고 Dirth Checking을 통해 DB내용을 수정하는 방식을 사용하였다.하지만 이 방식은 Setter메서드를 사용하는 방식이기 때문에 누군가 이 setter를 사용해서 값을 변경할 수도 있고, 안전하다고 느껴지지 않았다. 그래서 다른 방식을 찾아보고 @Builder에서 toBuilder를 속성으로 설정하면 해당 엔티티의 값을 편하게 수정 할 수 있다는 것을 찾아냈다! 우선 Builder 어노테이션에 대한 개념과 특징을 살펴보고 toBuilder 사용 방법을 알아보자.  Builder란?우선 우리가 자주 사용하는 보일러 플레이트 메서드(직접 코드를 작성하지 않아도 대신 작성해주는 메서드)인 Getter,Setter,Co..
자바(java) - Optional이란?
·
JAVA-기초/JAVA기본
Optional이란? Java8에서부터 지원하는 기능 java.util의 하위 클래스 NPE를 방지할 수 있도록 도와준다. null이 올 수 있는 값을 Wrapper클래스로 감싸준다. NPE란? NullPointerException 가장 많이 발생하는 예외중 하나 null 여부를 검사함으로써 예외가 터지는것을 방지할 수 있다. 검증하는 코드는 복잡하고 번거롭다. NPE 예시 코드 @Test public void test01() { String name = null; System.out.println(name.charAt(0)); // name은 null이기 때문에 NPE가 발생한다. if (name == null) { name = "userA"; //null을 체크해서 값이 없는 경우 새로운 값을 삽입하..
[국비지원과정19] JVM 구조
·
회고록
그동안 너무 바빠서 한동안 못 올렸던 국비지원과정 교육 내용을 다시 기록하려고 한다... 나태한 내 자신 스스로 채찍질 해야해..ㅠㅠ 우선 JVM의 구조를 간단히 보자. 그림은 좀 깔끔하지 못하지만 최선을 다했다. 🟰메서드 영역(Method area) ☀️ 프로그램 실행 중에 어떤 클래스가 호출되면, JVM은 해당 클래스의 컴파일 된 클래스파일(.class)을 읽어서 분석하여 해당 클래스에 대한 정보를 이곳에 저장한다. 이 때 해당 클래스의 클래스변수도 이 영역에 함께 생성된다. ☀️만약 클래스 메서드와 인스턴스 메서드가 있다면 먼저 호출되는 것은 클래스 메서드이다. ☀️왜냐하면 인스턴스 메서드보다 메서드 영역의 클래스 메서드가 먼저 호출되기 떄문이다. 🟰힙(Heap) ☀️인스턴스가 생성되는 공간. 프로..
[국비훈련과정13] while 과 for
·
회고록
package loop; public class Ex02 { public static void main(String[] args) { //일정한 횟수만큼 반복하기 int cnt = 0; while(cnt < 5) {//반복을 수행할 조건 System.out.println("Hello World !!");//실질적인 종속문장 cnt ++;//증감식 } System.out.println("반복 종료"); System.out.println(); //변수선언 및 초기화; 반복조건; 증감식 for(int i=0;i
[국비훈련과정13] if 와 while
·
회고록
package loop; public class Ex01 { public static void main(String[] args) { int num = 10; if(num < 20 ) {// 조건이 참이면, 종속문장을 한 번만 실행한다. num +=1; System.out.println("if) num : "+ num); } while(num < 20) {// 조건이 참이면, 종속문장을 실행하고 num +=1; System.out.println("while) num : "+num); // 다시 조건절로 돌아가서 조건을 체크한다. } } }
[국비훈련과정11] Java - Control(제어문) If
·
회고록
package control; import java.util.Scanner; public class Ex01 { public static void main(String[] args) { 제어문 control statement 코드의 흐름을 분기하거나, 일정 구간을 반복하여 코드의 흐름을 제어하는 구문 1) 분기문 : 조건에 따라서 서로 다른 코드를 실행할 수 있다. 2) 반복문 : 조건에 따라서 일정 구간의 코드를 반복 수행할 수 있다. 3) 기타 제어문 : 반복을 중단하거나, 함수를 중단할 수 있다. Scanner sc = new Scanner(System.in); int select; System.out.println("1) 고민 시작"); System.out.println("2) 과제를 내손으로 마..