Java 49

[프로그래머스 181893] [Java] 배열 조각하기

import java.util.Arrays;public class PG181893_배열조각하기 { public int[] solution(int[] arr, int[] query) { for ( int i=0; i Arrays 클래스는 배열과 관련된 여러 메서드를 지원한다.*java.util 패키지에 포함되어 있으므로  import 필요import java.util.Arrays; Arrays.copyOf(복사할 배열, 복사할길이)복사할 배열의 인덱스 0부터 원하는 길이만큼 복사한다.복사할 배열이 복사할 길이보다 작으면 존재하지 않는 인덱스 이후의 값은 배열의 타입 기본값으로 초기화되어 복사된다. Arrays.copyOfRange(복사할 배열, 시작인덱스, 끝인덱스)복사할 배열의 ..

[백준 11720] [Java] 숫자의 합

풀이방법 1)public class BJ11720_숫자의합 { public int solution(String numbers) { int answer = 0; for (int i=0; ijava.lang.Character.getNumericValue(char)숫자 형태의 char형을 int형으로 변환그렇지 않으면 -1 반환 - Java 표준 라이브러리의 일부로, java.lang.Character 클래스에 포함된 기본 메서드- Java 표준 라이브러리는 Java 프로그래밍 언어와 함께 제공되는 기본클래스와 메서드의 집합이다. - 메서드 시그니처: public static int getNumericValue(char ch) - char 값이 숫자 형태(예: '0' ~ ..

스택 Stack, 큐 Queue, 덱 Deque

스택 Stack한쪽 끝에서 자료를 넣거나 뺄 수 있는, 데이터를 제한적으로 접근할 수 있는 구조후입 선출  LIFO  Last In First Out깊이 우선 탐색  DFS  Depth First Search백트래킹 종류의 알고리즘에 효과적이다후입선출은 개념 자체가 재귀 함수 알고리즘 원리와 비슷하기 때문사용 예 )  브라우저의 뒤로가기,  실행 취소 (Ctrl + z),  재귀 함수,  역순 문자열 (문자열 거꾸로 뒤집기)스택의 자료구조는 삽입과 삭제시에 O(1),  탐색에는 O(n)의 시간복잡도를 가지게 된큐 Queue한 쪽에서는 데이터 삽입, 다른 한 쪽에서는 데이터의 삭제만 가능선입선출  FIFO  First In First Out  ( 먼저 삽입된 데이터가 가정 먼저 제거된다 )작업 스케줄링, ..

Stream vs IntStream

2025.01.03 - [IT/JAVA] - Stream StreamStream스트림(Stream)은 Java 8에서 도입된 기능으로, 컬렉션(예: 리스트, 배열) 등의 데이터 소스를 처리하고 변환하는 데 사용된다.스트림은 데이터의 흐름을 추상화한 것으로, 데이터를 필터링, 매iamsh.tistory.com   2025.01.04 - [IT/JAVA] - IntStream IntStreamIntStreamJava8의 Stream API에서 기본 타입 int를 처리하기 위해 제공되는 Stream 클래스박싱(Integer)없이 숫자 데이터를 효율적으로 처리할 수 있다int에 대한 순차 및 병렬 집계 연산 수행하는데 사용반iamsh.tistory.com  특징 StreamIntStream타입참조타입(Integ..

IntStream

IntStreamJava8의 Stream API에서 기본 타입 int를 처리하기 위해 제공되는 Stream 클래스박싱(Integer)없이 숫자 데이터를 효율적으로 처리할 수 있다int에 대한 순차 및 병렬 집계 연산 수행하는데 사용반복문 없이도 배열이나 컬렉션의 데이터를 처리할 수 있다불필요한 박싱/언박싱 작업을 줄여 성능을 향상시킨다숫자와 관련된 연산을 쉽게 처리할 수 있다import java.util.stream.IntStream;생성방법IntStream.of(values): 개별 값을 사용하여 스트림 생성.Arrays.stream(int[]): 배열을 기반으로 스트림 생성.IntStream.range(start, end): 시작값부터 끝값 전까지 연속된 숫자 생성.IntStream.rangeClos..

IT/JAVA 2025.01.04

Stream

Stream스트림(Stream)은 Java 8에서 도입된 기능으로, 컬렉션(예: 리스트, 배열) 등의 데이터 소스를 처리하고 변환하는 데 사용된다.스트림은 데이터의 흐름을 추상화한 것으로, 데이터를 필터링, 매핑, 축소 등의 작업을 통해 처리할 수 있다.불변 데이터 흐름 : 데이터 소스를 변경하지 않고 처리한다.선언적: 스트림 API는 선언적 스타일을 사용하여 데이터 처리 작업을 표현한다. 이는 코드의 가독성을 높이고 유지보수를 쉽게 한다.더보기더보기명령형 스타일 명령형 스타일은 데이터 처리 작업을 수행하는 방법을 단계별로 명시적으로 작성하는 방식이다. 이는 반복문과 조건문을 사용하여 데이터를 처리하는 전통적인 방식이다.  int[] numbers = {1, 2, 3, 4, 5}; int sum = 0;..

IT/JAVA 2025.01.03

@ResponseBody

@ResponseBody 애노테이션은 Spring MVC에서 컨트롤러 메서드가 반환하는 값을 HTTP 응답 본문으로 직접 변환하여 클라이언트에게 전송할 때 사용한다 주로 RESTful 웹 서비스에서 JSON 또는 XML 형식의 데이터를 반환할 때 사용된다@ResponseBody를 사용하면, 반환된 객체가 JSON 또는 XML 형식으로 변환되어 HTTP 응답 본문에 포함된다.  @RestController 애노테이션은 @Controller와 @ResponseBody를 결합한 것이다따라서 @RestController를 사용하면 메서드에 @ResponseBody를 명시적으로 추가하지 않아도 된다

IT/Spring 2024.12.03

Thymeleaf

Thymeleaf 템플릿 엔진을 사용하여 숫자를 형식화하고 HTML 요소에 값을 삽입하는 구문이 구문은 cart.price 값을 천 단위 구분 기호(쉼표)를 사용하여 형식화하고,그 값을 요소의 텍스트로 설정한다 Thymeleaf 표현식#numbers는 Thymeleaf의 유틸리티 객체로, 숫자 형식화를 위한 메서드를 제공한다formatInteger 메서드는 정수를 형식화한다첫 번째 인수: 형식화할 숫자 값 (cart.price). 두 번째 인수: 최소 자릿수 (1). 세 번째 인수: 천 단위 구분 기호 ('COMMA').

IT/Spring 2024.11.26

Spring 프로젝트 구성

패키지 정보패키지 이름 (com.hyeon.cookie)GroupId  :  com.hyeonArtifactId  :  cookie의존성 설정프로젝트 생성 과정에서 dependencies 항목에 대해 아래의 항목을 선택Spring Boot DevTools Spring Boot Acturator Ops Spring WebThymeleaf Template EnginesLombok(Java Mail Sender)추가 설정logback 설정파일 추가/src/main/resources/logback-spring.xml 파일 추가프로젝트명 변경라이브러리 설정필요한 라이브러리 추가UserAgent 라이브러리 추가MyWebConfig.java,  application.properties 파일 추가 및 설정패키지 추가 ..

IT/Spring 2024.10.16

웹 개발 발전

- 1990년대 후반: 동적 웹의 등장- 초기 웹은 주로 정적 페이지로 구성되었으나, 1995년 자바스크립트(JavaScript)가 등장하면서 브라우저에서 클라이언트 측에서 실행되는 동적 웹 페이지 제작이 가능해졌다- 이를 통해 사용자와 상호작용할 수 있는 웹 페이지가 탄생.- 1995년에는 PHP와 MySQL 같은 서버 측 스크립트 언어와 데이터베이스가 등장하여 동적 콘텐츠 생성이 가능해졌고, 이는 웹 애플리케이션의 기본 요소가 되었다- 2000년대 초: 웹 2.0과 AJAX의 등장- 2000년대: 웹 2.0이라는 개념이 등장. 사용자 생성 콘텐츠, 소셜 네트워킹, 블로그, 위키와 같은 동적 웹 애플리케이션의 확산- AJAX(Asynchronous JavaScript and XML)가 대두되면서 웹 페..

IT/IT 2024.10.15

MyBatis Log4j Error

### Error updating database.  Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for ProfessorMapper.insert = 매핑된 컬렉션에 ProfessorMapper.insert 값이 포함되어 있지 않다= ProfessorMapper 인터페이스에서 insert 메서드에 대한 매핑이 정의되어 있지 않다 원인 )- MyBatis 설정에서 매핑 파일의 경로가 잘못되었거나, 매핑 파일이 로드되지 않았을 수 있다- 매핑 파일에 정의된 ID와 인터페이스 메서드의 이름이 일치하지 않는 경우에 이 오류가 발생할 수 있다    => Mapper의 기능명(id)와 Jav..

IT/JAVA 2024.10.10

JDBC

- Java에서 데이터베이스와 상호작용할 수 있도록 해주는 API- JDBC는 데이터베이스 독립적인 API를 제공하여, Java 애플리케이션이 다양한 데이터베이스 시스템과 쉽게 연결되고 SQL 쿼리를 실행할 수 있게 해준다- 데이터베이스 연결:JDBC는 Java 애플리케이션에서 데이터베이스와의 연결을 설정하는 방법을 제공한다연결을 설정한 후 SQL 명령을 통해 데이터를 삽입, 삭제, 갱신, 조회할 수 있다 - SQL 실행:JDBC는 SQL 쿼리를 실행하기 위한 메서드를 제공하여 데이터베이스의 테이블에서 데이터를 가져오거나 변경하는 등의 작업을 수행할 수 있다SQL 문은 Statement, PreparedStatement, CallableStatement와 같은 객체를 통해 실행된다 - 데이터베이스 독립성..

IT/JAVA 2024.10.08

CRUD

JSON 예제 ▽  폴더구조 - Lombok을 사용한 데이터 모델 클래스 또는 엔티티 클래스- 일반적으로 데이터베이스의 테이블 구조와 매핑되기도 한다@Data 어노테이션:- Lombok 라이브러리에서 제공하는 어노테이션- 자동으로 getter, setter, toString, equals, hashCode 메서드를 생성해준다 > model > Department.java ▽package com.hyeon.model;import lombok.Data;@Datapublic class Department { private int id; private String dname; private String loc;} - Retrofit 라이브러리를 사용한 API 인터페이스 메서드 정의- servic..

IT/JAVA 2024.10.01

Java Exception Error

MissingFormatArgumentException- String.format() 또는 System.out.printf() 와 같은 메서드에서 사용된 포맷 문자열의 포맷 지정자에 맞는 인자가 부족할 때 발생  UnsupportedEncodingException - 이 예외는 요청한 인코딩이 지원되지 않을 때 발생한다- 예를 들어, 문자열을 바이트 배열로 변환할 때 사용하려는 인코딩이 잘못되었거나 Java에서 지원하지 않는 경우에 발생한다- content.getBytes("utf-8");  메서드를 사용할 때 "utf-8" 에 오타가 있다거나 FileNotFoundException - 이 예외는 지정한 파일을 찾을 수 없거나 접근할 수 없을 때 발생한다- 파일이 존재하지 않거나 파일 경로가 잘못된 경우..

IT/JAVA 2024.09.30

Lombok (Gradle)

- Java 프로그래밍 언어에서 코드의 보일러플레이트( 프로그램이나 코드에서 반복적으로 나타나는 고정된 구조나 코드 ex: getter,setter, 데베접근, API호출 등 )를 줄여주는 라이브러리- getter, setter, 생성자, toString, equals, hashCode 메서드를 자동으로 생성해주어, 코드의 가독성과 유지보수성을 높여준다- Lombok을 사용하면 코드가 더 간결해지고, 개발자가 실제 로직에 더 집중할 수 있다주요 어노테이션@Getter: 해당 필드에 대한 getter 메서드를 생성한다@Setter: 해당 필드에 대한 setter 메서드를 생성한다@ToString: 객체의 문자열 표현을 자동으로 생성한다@EqualsAndHashCode: equals() 및 hashCode(..

IT/JAVA 2024.09.30

for-each

Java의 for-each 구문- 컬렉션이나 배열에 있는 모든 요소를 순차적으로 반복할 때 사용된다- 이 구문은 **향상된 for문(enhanced for loop)** 라고도 부른다for (타입 변수 : 배열이나 컬렉션) { // 반복할 코드} - "변수"  : - 배열이나 컬렉션에서 각 요소를 담을 변수- 각 반복마다 변수에 배열에서 하나씩 순차적으로 요소가 저장된다- "배열이나 컬렉션  :- 반복 대상이 되는 배열 또는 컬렉션- 이 배열이나 컬렉션에 있는 요소들이 반복문을 통해 하나씩 "변수"에 할당된다String[] items = {"Apple", "Banana", "Cherry"};for (String item : items) { System.out.println(item);} - 간..

IT/JAVA 2024.09.30
반응형