썸네일 [자바/Gradle] build.gradle dependency Configuration Gradle1) 자바와 같은 언어로 작성된 프로젝트의 빌드를 자동화하기 위한 도구2) 프로젝트의 구조와 의존성을 정의하는 build.gradle 파일을 사용하여 프로젝트를 구성3) build.gradle을 기반으로 빌드 스크립트를 실행하고 프로젝트를 빌드4) 쿠버네티스 환경에서는 Groovy나 Kotlin과 같은 스크립트 언어를 사용하여 빌드 스크립트를 작성(유연성)할 수 있어 Maven보다 더 많이 사용되고 있음5) 쿠버네티스와 관련된 작업을 자동화하기 위한 플러그인을 사용하여 쿠버네티스 리소스를 빌드 및 배포하기 위한 작업을 간편하게 수행할 수 있음6) 병렬 빌드와 캐시 기능을 통해 더 빠른 빌드를 제공. 쿠버네티스와 같이 빠른 개발 및 배포 사이클이 필요한 환경에서는 빌드 성능이 매우 중요함  Gr..
썸네일 [백엔드/자바] Optional.findAny Optional.findFirst 개념 및 샘플코드 Optional1) JDK 8에서 도입된 클래스. 함수형 프로그래밍2) 값이 있을 수도 있고 없을 수도 있는(Nullable) 객체를 감싸고 있는 Wrapper 클래스3) NullPointerException을 방지 코드의 안정성과 가독성을 높일 수 있음4) 메소드의 리턴값이나 컬렉션 등에서 사용되며 값이 없을 수도 있는 상황에서 명시적으로 처리할 때 유용함  Optional.findAny1) parallelStream(병렬 스트림)에서 주로 사용2) 여러 개의 요소를 가진 Stream에서 무작위 값을 리턴3) 여러 스레드가 동시에 작업할 때 유용  Optional.findFirst1) Stream(순차 스트림/일반적)에서 주로 사용2) Stream의 첫번째 값을 리턴3) parallelStream에서는..
썸네일 [백엔드/Java] HTTP통신 JSON 데이터 요청 및 응답 처리 개념 및 샘플코드 HTTP 통신1) 하이퍼텍스트 전송 프로토콜. 웹에서 데이터를 전송하고 검색하는 데 사용되는 프로토콜 중 하나2) 애플리케이션에서 데이터를 주고받는 데 핵심적인 역할3) Java에서 HTTP 통신을 수행하기 위해서는 주로 HttpURLConnection 또는 HttpClient와 같은 라이브러리를 사용  HTTP 메소드1) GET: 리소스를 가져오기 위해 사용됨2) POST: 서버에 데이터를 제출하기 위해 사용됨3) PUT: 리소스를 업데이트하기 위해 사용됨4) DELETE: 리소스를 삭제하기 위해 사용됨※그 외 다른 메서드도 있지만 주로 GET/POST가 일반적으로 가장 많이 사용됨  JSON1) "JavaScript Object Notation"의 약어로, 데이터 교환을 위한 경량의 형식2) 주로 웹..
썸네일 [BE/Java] JSON To DTO 파싱 개념 및 샘플코드 JSON1) "JavaScript Object Notation"의 약어로, 데이터 교환을 위한 경량의 형식2) 주로 웹에서 데이터를 주고받거나 저장하는 데 사용3) 키-값 쌍의 집합으로 구성되며, 중괄호 {} 안에 각 키-값 쌍이 위치JSON 예시{ "name": "John", "age": 30, "isStudent": false, "hobbies": ["reading", "swimming", "painting"], "address": { "street": "123 Main St", "city": "New York", "country": "USA" }, "favoriteNumbers": [7, 21, 45], "car": null}  ObjectMapper1) Jackson..
썸네일 [BE/Java] Optional 개념 및 샘플코드 Optional 1) JDK 8에서 도입된 클래스. 함수형 프로그래밍 2) 값이 있을 수도 있고 없을 수도 있는(Nullable) 객체를 감싸고 있는 Wrapper 클래스 3) NullPointerException을 방지 코드의 안정성과 가독성을 높일 수 있음 4) 메소드의 리턴값이나 컬렉션 등에서 사용되며 값이 없을 수도 있는 상황에서 명시적으로 처리할 때 유용함 Optional.of / Optional.ofNullable 1) Optional.of(value): 주어진 값으로 Optional 객체를 생성. 주어진 값이 Null이라면 Exception 발생 2) Optional.ofNullable(value): 주어진 값으로 Optional 객체를 생성. 주어진 값이 Null이라면 빈 Optional ..
썸네일 [BE/Java] Stream.map().collect() 개념 및 샘플코드 Stream 1) JDK 8에서 추가된 데이터 컬렉션을 다루는 데 사용되는 인터페이스 2) 함수형 프로그래밍 스타일을 지원하여 간결하고 효과적인 처리방법을 제공 3) 기존의 컬렉션 API와 함께 사용됨 4) 코드를 간결하고 가독성 있게 작성할 수 있도록 도와줌 Stream.map() 1) Stream의 요소들을 특정 함수에 매핑하여 새로운 스트림을 생성 2) 각 요소를 변환하거나 다른 형태로 매핑할 수 있음(캐스팅) Stream map(Function
썸네일 [BE/Java] Stream.of()를 사용한 값체크 샘플코드 Stream 1) JDK 8에서 추가된 데이터 컬렉션을 다루는 데 사용되는 인터페이스 2) 함수형 프로그래밍 스타일을 지원하여 간결하고 효과적인 처리방법을 제공 3) 기존의 컬렉션 API와 함께 사용됨 4) 코드를 간결하고 가독성 있게 작성할 수 있도록 도와줌 Stream.of() 1) Stream API에서 제공하는 메소드 2) 전달된 요소들로 구성된 새로운 Stream을 생성 샘플코드 import java.util.stream.Stream; public class StreamOfExample { public static void main(String[] args) { // 정수 요소를 갖는 스트림 생성 Stream integerStream = Stream.of(1, 2, 3, 4, 5); } } St..
썸네일 [BE/Java] 커맨드 명령어(리눅스/윈도우) 실행 개념 및 샘플소스 Process1) 패키지: java.lang.process2) 명령어를 스트링으로 받아 서버(리눅스.윈도우)에서 실행  Command1) 리눅스의 경우 "/bin/sh", "-c" 선입력 필요2) 명령어는 String 고정배열에 담아 처리  주의사항1) cp mv 등의 명령어는 폴더가 미리 생성되어있어야 함2) 명령어별 허용되는 옵션에 대한 분기처리 필요  샘플소스import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.List;import java.util.ArrayLisy;public class LinuxCommandExecution { public static ..
썸네일 [BE/JAVA] Reflection 개발방법 개념 및 샘플코드 Reflection(리플렉션) 1) 클래스, 인터페이스, 메소드, 필드 등의 정보를 동적으로 가져오고 수정할 수 있음 2) ReflectionAPI를 사용해 클래스와 객체에 대한 정보를 조회할 수 있음 3) 동적으로 객체를 생성하거나 메소드를 호출할 수 있음 4) 필드값을 가져오거나 값을 설정할 수 있음(필드 생성은 불가 / 상속을 통한 필드 추가는 가능) java.lang.reflect.Field 1) Field 클래스는 Reflection API를 사용해 접근한 클래스 내의 필드를 나타냄 2) 접근한 클래스의 특정 필드의 정보를 가져오거나 동적으로 값을 수정하는데 사용 3) API i) getName(): 필드의 이름을 리턴 ii) getType(): 필드의 자료형을 리턴 iii) getModifie..
썸네일 [BE/JAVA] Stream.anyMatch().allMatch() Stream1) Iterator와 같은 외부반복자를 사용하지 않아도 데이터에 접근할 수 있음 (내부반복자 사용)2) 한번 사용하면 close되어 다시 사용할 수 없음 (1회용)3) parallelStream() 메소드를 사용하여 손쉽게 병렬처리가 가능4) 람다식으로 표현하기 때문에 가독성이 좋음출처: Baeldung  anyMatch1) Predicate 인터페이스를 매개변수로 받아 이를 만족하는 요소가 있는 경우 true를 리턴2) 최소 한개 이상이 조건에 만족한다면 true를 리턴 샘플코드import java.util.Arrays;import java.util.List;public class AnyMatchExample { public static void main(String[] args) {..
썸네일 [BE/JAVA] Stream.filter() 2022.06.08 96번째 포스팅 프로젝트를 진행하다보면 난생 처음보는 메소드와 객체를 볼때가 있다. 일반적으로는 운영을 위해 쉽고 누구나 아는 메소드와 객체를 사용해서 개발을 진행한다. 하지만 프로젝트중에도 공부를 하는 개발자들은 자신이 새로 알게 된 지식들을 프로젝트에 적용한다. 오늘은 나의 바로 옆자리에서 같이 응용개발을 진행한 대리님이 사용한 Stream에 대해서 적어보려고 한다. 0. Stream ① Iterator와 같은 외부반복자를 사용하지 않아도 데이터에 접근할 수 있다. (내부 반복자를 사용) ② 1회용이다. 한번 사용하면 close되어 다시 사용할 수 없다. ③ parallelStream() 메소드를 사용하여 손쉽게 병렬처리가 가능하다. ④ 람다식으로 표현하기 때문에 가독성이 좋다. ..
썸네일 큐(Queue) 2022.04.24 93번째 포스팅 0. Queue? ① 선입선출(FIFO)의 자료구조. 대기열이라고도 한다. ② Queue에 자료를 추가하는 것을 EnQueue라고 하고 반대로 넣어둔 자료를 꺼내는 것을 DeQueue라고 한다. ③ 데이터가 들어오는 위치는 가장 뒤(Rear 또는 Back이라고 한다.)에 있고, 데이터가 나가는 위치는 가장 앞(Front라고 한다.)에 있어서, 먼저 들어오는 데이터가 먼저 나가게 된다. 1. 선언 및 초기화 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 package develog; import java.util.LinkedList; import java.util.Queue; public class Develog { public static ..