BE 109

[Sping Boot] Spring Initializr, 프로젝트 구조

https://start.spring.io/  1. 설정Project, Language, Spring Boot 확인, 빨간줄 부분 자유롭게 설정2. Dependencies필요한 dependency 설정 (ex. Spring Boot DevTools, Spring Web, Lombok 등)3. GENERATE 후 압축 해제 및 프로젝트 열기settings.gradle프로젝트 설정 파일build.gradle빌드 설정 파일의존성 관리src/main/resources/static정적 파일이미지, 자바스크립트, CSS 등src/main/resources/templates템플릿 파일HTML 등src/main/resources/application.properties설정 파일포트번호, 데이터베이스 설정 등

[Java] 람다식

람다식은 메서드를 하나의 식으로 표현할수 있게 해주며, 간결한 함수표현을 제공한다 람다식의 구성요소매개변수(parameters)메서드에 전달되는 입력값매개변수 타입은 생략 가능화살표 연산자 ->매개변수와 본문(실행코드)를 구분하는 역할본문(body)실행할 코드한줄일 경우 중뢀호{}생략 가능(parameters) -> {body}// 기존 방식: 익명 클래스 사용Runnable runnable = new Runnable() { @Override public void run() { System.out.println("Hello, World!"); }};// 람다식 방식Runnable runnable = () -> System.out.println("Hello, World!");예..

BE/Java 2024.12.10

[Java] 스트림

1.  스트림스트림은 컬렉션이나 배열같은 데이터 소스를 처리하기 위한 강력하고 선언적인 방식이다데이터 처리 파이프라인을 만들도록 돕는 기능데이터 저장소가 아니라 데이터의 흐름원본데이터를 변경하지 않음선언형파이프라인 방식으로 연속적 작업을 연결 2. 핵심 구성 요소중간연산 : 스트림을 변환하는 작업 (filter, map, sorted 등)종결 연산 : 스트림을 소모하여 최종 결과를 반환 (forEach, collect, reduce 등) 3. 특징1회성 사용 : 한번 사용하면 재사용할 수 없다게으른 연산 : 중간 연산은 결과가 필요할때까지 실행되지 않는다병렬처리 지원 : parallelStream() 을 통해 병렬 처리가 가능하다 4. 장점코드 간결화병렬 처리함수형 스타일 5. 예제List words =..

BE/Java 2024.12.09

[Java] Map

키-값을 쌍으로 저장하고 관리하기 위한 인터페이스`Map`은 리스트나 배열처럼 순차적으로 값을 저장하지 않는다.1. 특징키-값을 쌍으로 저장`("name","alice")` 에서 name이 키, alice가 값이다키는 고유값(Unique)동일한 키를 중복해서 저장할 수 없다기존 키에 새 값을 넣으면 이전 값이 덮어씌워진다값은 중복 허용`("key1","value")`, `("key2","value")` 는 허용됨Null 허용 여부`HashMap`은 `null`키와 `null`값을 허용`TreeMap`은 `null`키 허용 x2. 주요 메서드데이터 추가/수정`put(key,value)`map.put("key","value");  데이터 조회`get(Object key)`주어진 키에 연결된 값을 반환Stri..

BE/Java 2024.12.07

[Java] Optional

값을 포함하거나 포함하지 않을수 있는 객체`null`값을 직접 반환하는 대신 `Optional`객체를 반환하여 값의 유무를 명시적으로 처리하도록 함 1. Optional 생성1.1. Optional.of()`null`이 아닌 값을 가진 객체를 생성`null`값을 전달하면 NullPointerException이 발생Optional opt = Optional.of("Hello"); 1.2. Optional.ofNullable()`null`값을 허용하며, 값이 `null`이면 비어있는 객체를 생성Optional opt = Optional.ofNullable(null);// opt 는 Optional.empty(); 1.3. Optional.empty()값이 비어있는 객체 생성 2. 메서드2.1. isPrese..

BE/Java 2024.12.06

[Java] List

요소들은 인덱스로 관리된다 (0부터 시작)삽입 순서를 유지한다중복된 값을 허용한다주요 메서드메서드설명`add(E e)`요소를 리스트 끝에 추가`add(int index, E e)`특정 위치에 요소 추가`get(int index)`인덱스에 있는 요소 반환`set(int index, E e)`특정 인덱스의 요소를 변경`remove(int index)`특정 인덱스의 요소 삭제`size()`리스트의 크기 반환`isEmpty()`리스트가 비어있는지 확인ArrayList내부적으로 배열을 사용하여 데이터를 관리하는 `List`의 구현체초기 크기를 정하지 않아도 필요에 따라 자동으로 크기가 증가읽기/검색이 빈번한 작업에 적합함public class Main { public static void main(Strin..

BE/Java 2024.12.05

[Java] 컬렉션

컬렉션은 데이터를 저장하고 관리하기 위한 데이터 구조 클래스와 인터페이스의 집합.1. 기본 개념데이터 그룹(객체들)을 저장하고 조작하는데 사용되는 프레임워크배열처럼 데이터를 저장하지만 크기가 동적으로 조정되고 다양한 데이터 구조를 제공한다2. 구조2.1. 순서가 있는 List요소들이 순서대로 저장, 중복을 허용인덱스를 사용하여 요소를 관리대표 클래스ArrayList : 배열 기반으로 구현, 읽기 성능이 우수LinkedList : 연결 리스트 기반으로 구현, 삽입/삭제 성능이 우수Vector : ArrayList와 비슷하지만 동기화가 지원됨2.2. 중복이 없는 Set중복 허용 x순서가 중요하지 않은 데이터 저장에 사용됨대표 클래스HashSet : 요소들을 해시기반으로 저장, 순서가 없음LinkedHashS..

BE/Java 2024.12.04

[Java] 래퍼 클래스

List, Map 등 에서는 객체만 저장할수 있기 때문에 기본자료형을 객체로 변환하여 사용한다기본자료형래퍼 클래스`byte``Byte``short``Short``int``Integer``long``Long``float``Float``double``Double``char``Character``boolean``Boolean` 래퍼 클래스를 사용하면 박싱, 언박싱을 통해 기본자료형과 객체간 변환이 가능해진다박싱, 언박싱박싱기본자료형을 객체(래퍼클래스)로 변환하는 과정int num = 10;// 수동 박싱Integer boxedNum = Integer.valueOf(num);// 자동 박싱Integer autoBoxedNum = num;언박싱객체(래퍼클래스)를 기본자료형으로 변환하는 과정Integer boxed..

BE/Java 2024.12.03

[Java] break, continue, return

1. `break`문반복문이나 `switch`문을 즉시 종료한다반복문에서의 `break`for (int i = 1; i `switch`문에서의 `break`int day = 2;switch (day) { case 1: System.out.println("월요일"); break; case 2: System.out.println("화요일"); break; case 3: System.out.println("수요일"); break; default: System.out.println("주말");}// 화요일레이블과 함께 `break`레이블을 사용하여 중첩된 반복문에서 특정 반복문을 종료할수 있다outer:..

BE/Java 2024.12.02

[Java] 연산자

1. 산술 연산자연산자기능예제결과`+`덧셈`5 + 3``8``-`뺄셈`5 - 3``2``*`곱셈`5 * 3``15``/`나눗셈`5 / 2``2`(정수 나눗셈)`%`나머지`5 % 2``1`2. 비교 연산자연산자기능예제결과`==`값이 같은지 비교`5 == 5``true``!=`값이 다른지 비교`5 != 3``true``>`왼쪽이 오른쪽보다 큰지 비교`5 > 3``true``왼쪽이 오른쪽보다 작은지 비교`5 `false``>=`크거나 같은지`5 >= 5``true``크거나 작은지`5 `false`3. 논리 연산자연산자기능예제결과`&&`논리 AND (둘다 만족)`true && false``false``||`논리 OR (둘중 하나)`true || false``true``!`논리 NOT(부정)`!true``fals..

BE/Java 2024.12.01