Java Spring Boot (82) 썸네일형 리스트형 Java ForEach * Java의 forEach는 컬렉션(Collection)이나 배열(Array)의 각 요소를 반복적으로 처리하는 데 사용됩니다. 이 메소드는 Java 8에서 추가되었으며, 함수형 프로그래밍 스타일을 지원하는 스트림(Stream) API에서 자주 사용됩니다. forEach 메소드는 각 요소를 인자로 받는 함수형 인터페이스(Consumer 인터페이스)를 사용하여 요소를 반복적으로 처리합니다. 이 함수형 인터페이스는 주어진 요소에 대한 작업을 정의하고, forEach 메소드가 각 요소에 이 함수를 적용합니다. import java.util.ArrayList; import java.util.List; public class ForEachExample { public static void main(String[].. Buffer 버퍼 개념 / buffering 개념 (클립보드) 출처: https://taewooblog.tistory.com/entry/Buffer-%EB%B2%84%ED%8D%BC-%EA%B0%9C%EB%85%90-buffering-%EA%B0%9C%EB%85%90 버퍼, 버퍼링 이란 ? 무엇일까 버퍼는 쉽게 말해 일시적으로 데이터를 보관하는 저장 공간이다. 버퍼는 우리가 일상적으로 자주 사용하고 있었다. 예를들어, 우리가 유튜브 동영상을 보는데, 인터넷이 약간 불안정하다. (인터넷이 원활할때도 있고, 불안정할때도 있다.) 그러면 인터넷이 원활할 때, 재빨리 동영상 프레임을 받아와서 버퍼에 저장하고, 불안정할때 동영상 프레임을 보여준다. 그래야 동영상을 끊김 없이 보여줄 수 있다. 위키에서는 이렇게 설명하고 있다. 컴퓨터 용어로 버퍼(buffer, 문화어: 완충기.. @Transaction(트렌젝션) / Transaction 관리를 위한 DBMS의 전략 참조: https://gyoogle.dev/blog/computer-science/data-base/Transaction.html DB 트랜잭션(Transaction) #트렌잭션이란? 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위 상태를 변화시킨다는 것 → SQL 질의어를 통해 DB에 접근하는 것 - SELECT - INSERT - DELETE - UPDATE 작업 단위 → 많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것 예시) 사용자 A가 사용자 B에게 만원을 송금한다. * 이때 DB 작업 - 1. 사용자 A의 계좌에서 만원을 차감한다 : UPDATE 문을 사용해 사용자 A의 잔고를 변경 - 2. 사용자 B의 계좌에 만원을 추가한다 : UPDATE 문을 사용해 사용자 B의 잔고를.. @Modifying , @Transactional @Modifying : @Query 어노테이션을 통해 작성된 insert,update,delete쿼리에서 사용되는 어노테이션이다. 1.@Query에 벌크 연산 쿼리를 작성하고 , @Modifying을 붙이지 않으면 오류가 발생한다 . 2. 벌크연산 : 단건 Update , delete 연산을 제외한 다건의 update,delete연산을 하나의 쿼리로 하는것을 의미함 @Transactional : 데이터베이스에 상태를 변환시키는 하나의 논리적인 기능을 수행하기 위한 작업의 단위 또는 일련의 연산을 뜻한다 1. 단순 쿼리문이라면 괜찮지만 여러 쿼리문으로 인해 데이터의 부정합이 발생하는 경우 해당 어노테이션을 사용하게되면 원래 상태로 원상 복귀하게 된다. 2. jpa에서 트랜잭션이 끝나는 시점에 변화가 생.. Java method chaining(메소드 체이닝) * 메소드 체이닝 -> 메소드를 한줄로 만들어서, 가시성을 높여준다. public class training { public static void main(String[] args) { String name = "bro"; // name = name.concat("code"); // name = name.toUpperCase(); // name = name.trim(); name = name.concat(" code ").toUpperCase().trim(); } } Soft Delete & Hard Delete 출처: https://velog.io/@tjrqh/Soft-Delete-Hard-Delete Soft Delete vs Hard Delete에 대해서 왜 생각하게 되었는가? 처음 DB를 구성하고 User의 회원탈퇴를 만들때 '회원탈퇴를 하면 단순히 DB에서 삭제 처리 하면 되겠다'라고 막연하게 생각하였습니다. 그러다 다른 개발자와의 대화에서 Soft Delete와 Hard Delete에 대해서 들었으며 이것이 왜 필요한지에 대해서 생각해보게 되어 찾아보게 되었습니다. Soft Delete란? Soft Delete는 DB 레코드를 삭제하지 않고, 삭제된 것처럼 처리하는 기술을 의미합니다. Soft Delete는 삭제된 데이터를 복원하기 쉽게 하며, 데이터의 무결성을 유지하기 위한 목적으로 사용됩니다. 일반.. 반복문(while, do-while, for) / break, continue * while문 public static void main(String[] args) { int count = 0; while (count < 5){ count = count + 1; System.out.println(count); } *while문(조금 더 심화) public static void main(String[] args) { int sum = 0; int i = 1; int endNum = 3; while (i 10){ System.out.println("합이 10보다 코믄 종료: i=" + i + "sum" + sum); break; } i++; } } * continue1 while(조건식){ 코드1; countinue; // 참 일 경우, 다시 조건식으로 이동, 조건식이 참이면 whil.. 삼항연산자 (조건) ? A : B ** (age가 18보다 크거나 같다면, "성인"을 반환하고, 그게 아니라면 "미성년자" 반환함 package cond; public class CondOp2 { public static void main(String[] args) { int age = 16; String status = (age >= 18) ? "성인" : "미성년자"; System.out.println("age = " + age + " status = " + status); } } 이전 1 ··· 4 5 6 7 8 9 10 11 다음