IT 200

[프로그래머스 12932] [Java] 자연수 뒤집어 배열로 만들기

✏️ 1번 방법import java.util.Arrays;public class 프로그래머스_자연수뒤집어배열로만들기 { class Solution { public int[] solution(long n) { String str = String.valueOf(n); int end = str.length(); int[] answer = new int[end]; for(int i=0; i  String.valueOf()파라미터를 문자열로 형변환해주는 메서드 특징1. null값에 대한 처리가 가능하다  - 빈 값이 들어왔을 때 예외를 던지는 것이 아니라 "null" 문자열 반환해줌으로써 ..

StringBuilder

String 객체끼리 더하는 방법은 메모리 할당과 해제를 발생시키는데 덧셈 연산 많아진다면 성능적으로 좋지 않다많은 문자열을 연결하면 중간 문자열 객체가 생성되어 비효율적인 코드가 생성된다 Java에서 String  객체는 변경이 불가능하다. (불변 객체 (immutable) )한 번 생성되면 내용을 바꿀 수 없다.따라서 하나의 문자열을 다른 문자열과 연결하면 새 문자열이 생성되고, 이전 문자열은 가비지 컬렉터로 들어간다. (JVM의 GC가 처리)StringBuilder 는 변경 가능한 문자열을 만들어 주기 때문에, String 을 합치는 작업 시 하나의 대안이 될 수 있다. StringBuilder        ( java.lang.StringBuilder )mutable한 성질.  값이 변할 수 있다..

IT/JAVA 2025.01.19

[필기] 요구사항 검증 방법

Q) 시스템 명세, 설계 결과, 프로그램 코드 등을 각각 여러 사람이 검토하게 함으로써 그 안에 포함되어 있는 오류를 조기에 발견하고자 하는 활동은? 1) 인스펙션(Inspection) 2) 워크 스루(Work-Through) 3) 디버깅(Debugging) 4) 검사(Testing) [소프트웨어 설계]25년 필기 1회차 278번Q)  프로그램 품질관리의 한 방법으로서 워크 스루(Walk-through)와 인스펙션(Inspection)이 있다. 워크 스루에 대한 설명으로 옳지 않은 것은? 1) 소프트웨어 품질을 검토하기 위한 기술적 검토 회의이다. 2) 제품 개발자가 주최가 된다. 3) 오류 발견과 발견된 오류의 문제 해결에 중점을 둔다. 4) 검토 자료는 사전에 미리 배포한다. 소프트웨어 개발 25년 ..

[필기] 익스트림 프로그래밍 XP

Q) 익스트림 프로그래밍(XP)에 대한 설명으로 틀린 것은? 1) 빠른 개발을 위해 테스트를 수행하지 않는다.2) 사용자의 요구사항은 언제든지 변할 수 있다.3) 고객과 직접 대면하며 요구사항을 이야기하기 위해 사용자 스토리(User Story)를 활용할 수 있다. 4) 기존의 방법론에 비해 실용성(Pragmatism)을 강조한 것이라고 볼 수 있다. 해설) XP에서는 테스트 주도 개발(Test-Driven Development, TDD)과 같은 테스트 활동을 수행하여 소프트웨어의 품질을 유지하고 개선한다 |  익스트림 프로그래밍 5가지 가치, 기본원리 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법 1. 의사소통2. 단..

[필기] 객체지향 분석 기법

Q) 객체지향 분석 기법 중 다음 설명에 해당하는 것은? - 미시적 개발 프로세스와 거시적 개발 프로세스를 모두 포함한다.- 클래스와 객체들을 분석 및 식별하고 클래스의 속성과 연산을 정의한다.- 클래스와 객체들의 관계를 식별한다.- 각 작업에 대한 다이어그램, 클래스 계층 정의, 클래스들의 클러스터링 작업을 수행한다.- 클래스와 객체를 구현한다. A) Booch 방법 - 미시적 개발 프로세스와 거시적 개발 프로세스를 모두 포함하는 방법은 Booch 방법이다. |  객체지향 분석 방법론 종류 - 소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링하는 객체지향 분석 기법- 가장 일반적으로 사용하는 방법- 럼바우의 분석 절차   - 객체 모델링 => 동적 모델링 => 기능 모델링순서분석 활동내용1객체 모..

[프로그래머스 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(복사할 배열, 시작인덱스, 끝인덱스)복사할 배열의 ..

Web3

- Web3는 블록체인을 비롯하여 인터넷에서의 데이터 소유권과 제어를 분산시키는 기술을 포괄하는 용어이다.- 대부분의 인터넷 애플리케이션은 최종 사용자 데이터를 저장하고 사용하는 방법을 결정하는 중앙 집중식 기관에서 제어한다.- Web3(Web 3.0, 분산형 웹 또는 시맨틱 웹이라고도 함) 기술은 중앙 집중식 관리 구조와는 달리 커뮤니티 기반 프로젝트를 가능하게 한다.- 커뮤니티 기반 프로젝트에서는 최종 사용자가 데이터를 제어하고, 가격을 결정하고, 기술 개발에 직접적으로 기여하고, 프로젝트 방향에 대한 더 강한 발언권을 갖는다.- 이러한 기술에는 사용자의 상호 작용 방식을 자동으로 규제하는 메커니즘이 있다.- 따라서 중앙 집중식 기관이 이러한 상호 작용을 관리할 필요가 없다.- Web 3.0의 네 가..

IT/IT 2025.01.17

[백준 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' ~ ..

배열, 리스트 (Java)

배열- 검색 연산은 빠르지만, 추가/삭제 연산이 느리다- 추가/삭제 : 새로운 데이터가 입력되거나 중간에서 특정 항목이 삭제될 경우 메모리 상의 주소를 모두 바꿔야 한다.- 배열의 검색  :  O(1)- 배열의 수정/삭제  :  O(ͷ)연결 리스트 Linked List- 배열과 같이 연속된 데이터를 저장하는 자료구조로서 추가/삭제 연산은 빠르지만, 검색이 느리다.- 아무 메모리에나 저장하고 기존 데이터에 부가 정보로 다음 데이터의 주소를 저장한다.- 검색  :  5번째 데이터를 찾고 싶다면 처음 주소지에서 다음 데이터의 주소를 찾는데 연산이 4번- 추가/삭제  :  기존 데이터 구조가 변하지 않고 데이터간의 주소 연결만 수정한다.- 리스트의 검색  :  O(ͷ)- 리스트의 추가/삭제  :  O(1)  기..

[필기] 요구사항 정의 및 분석·설계

Q)  요구사항 정의 및 분석·설계의 결과물을 표현하기 위한 모델링 과정에서 사용되는 다이어그램이 아닌 것은? 1) Data Flow Diagram2) UML Diagram3) E-R Diagram4) AVL Diagram [해설]AVL 트리는 자가 균형 이진 검색 트리의 한 종류로, 데이터 구조와 관련이 있지만 요구사항이나 시스템 모델링 과정에서 사용되는 다이어그램은 아니다.1. 요구사항 정의 단계유스케이스 다이어그램 (Use Case Diagram): 시스템이 사용자의 요구를 어떻게 처리할지를 나타내는 다이어그램으로, 주요 기능(유스케이스)과 이를 이용하는 사용자(액터) 간의 관계를 보여준다.유스케이스 명세 (Use Case Specification): 유스케이스 다이어그램에서 각 유스케이스의 상세한..

가비지 컬렉션

가비지(Garbage)- 더 이상 사용되지 않거나 참조되지 않는 메모리 상의 객체나 데이터- 가비지는 프로그램 실행 중에 동적으로 할당되었지만, 현재는 어떤 변수나 코드에서도 접근할 수 없는 상태가 되어 메모리에서 제거되어야 하는 대상이 된다- 가비지 컬렉터는 이러한 불필요한 객체들을 자동으로 식별하고 메모리를 회수하여, 메모리 누수를 방지하고 시스템의 안정성을 유지한다  가비지 컬렉션(Garbage Collection, GC)- 프로그래밍 언어에서 동적으로 할당된 메모리 중 더 이상 필요하지 않은 영역을 자동으로 해제하는 메모리 관리 기법- 개발자는 메모리 관리에 대한 부담을 덜고 코드 작성에 집중할 수 있다.- 가비지 컬렉션은 주기적으로 힙 메모리를 스캔하여 사용되지 않는 객체를 찾아 메모리를 회수하..

IT/IT 2025.01.13

DML DDL

DML (Data Manipulation Language)DML은 데이터 조작 언어로, 데이터베이스 내의 데이터를 조회, 삽입, 수정, 삭제하는 작업을 담당하는 SQL 명령어들의 집합이다주요 명령어:SELECT: 데이터 조회INSERT: 새로운 데이터를 데이터베이스 테이블에 삽입UPDATE: 기존 데이터를 수정한다DELETE: 데이터를 삭제한다 DDL (Data Definition Language)DDL은 데이터 정의 언어로, 데이터베이스 구조(스키마)를 정의하거나 수정하는데 사용되는 SQL 명령어들의 집합이다.테이블, 뷰, 인덱스 등의 객체를 정의하거나 변경하는 데 사용된다.주요 명령어:CREATE: 새로운 데이터베이스 객체(테이블, 뷰 등)를 생성한다.ALTER: 기존 데이터베이스 객체의 구조를 수정..

IT/Database 2025.01.07

스택 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

React 프로젝트 Spring으로 가져오기

✅ DashboardController.java 만들기  ✅ proxy 변경✅ "proxy": "http://localhost:8080"  ➡️  "homepage": "/dashboard"  ✅ yarn start 후 페이지 뜨는 것 확인 후 ✅yarn build✅ build 후 index.html 이름 변경   dashboard.html  (컨트롤러 맵핑 주소 맞춤)✅ Spring 프로젝트의 📁templates 폴더 안에 dashboard.html   복붙 ✅  📁 resources > static > dashboard 폴더 만들기✅ dashboard 폴더 안에 yarn build 후 생성된 파일 중 html 파일 제외하고 모두 복사✅ spring 재가동  끝 !

IT/Spring 2024.12.31