전체 글 234

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

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

Redux

State  상태- 컴포넌트 안에서 관리되는 것- 자식 컴포넌트들 간의 다이렉트 데이터 전달은 불가능하다- 자식 컴포넌트들 간의 데이터를 주고 받을 때는 상태를 관리하는 부모 컴포넌트를 통해서 주고 받는다- 상태를 관리하는 상위 컴포넌트에서 계속 내려 받아야 한다. Redux- 여러 컴포넌트가 공유하는 상태를 관리하기 위한 라이브러리- 리액트 컨텍스트에 기반을 둔 라이브러리로 Provider 컴포넌트가 항상 취상위로 동작해야 한다.- 자바스크립트 앱을 위한 예측 가능한 상태 컨테이너이다.- 서로 다른 환경(서버, 클라이언트, 네이티브)에서 작동하고, 테스트하기 쉬운 앱을 작성하도록 도와준다.- 리덕스를 사용하면 상태값을 컴포넌트에 종속시키지 않고, 상태 관리를 컴포넌트의 바깥에서 관리할 수 있게 된다.-..

IT/React 2024.12.27

Java 란

- 객체 지향 프로그래밍 언어로, "한 번 작성하면, 어디서나 실행된다 (Write Once, Run Anywhere)"라는 특징을 가지고 있다.- 자바로 작성된 프로그램이 JVM을 통해 운영체제와 관계없이 동일한 자바 어플리케이션을 실행할 수 있어 다양한 환경에서 일관된 동작을 보장한다.- 객체 지향 언어로, 코드의 재사용성, 유지보수성, 확장성을 높이기 위해 클래스와 객체, 상속, 다형성, 캡슐화와 같은 원칙을 따른다. 이러한 객체 지향 특성 덕분에 복잡한 시스템을 모듈화하고 관리하기 용이하다.- 강력한 메모리 관리와 가비지 컬렉션이다. 자동으로 메모리를 관리하며, 더 이상 사용되지 않는 객체를 가비지 컬렉터가 자동으로 제거해 주어 메모리 누수를 방지한다.- 멀티스레딩을 기본적으로 지원하여, 병렬 처..

IT/JAVA 2024.12.27

Go 변수, 데이터타입

var 키워드 사용한 변수 선언var 변수이름 타입  값의 할당 var 변수이름 타입변수이름 = 값  선언과 할당의 통합var 변수이름 타입 = 값|   := 단축 선언 연산자 사용- 변수 선언 시 := 를 사용하여 타입을 생략하고 값을 자동으로 추론- 이 방법은 함수 내부에서만 사용 가능 - 권장X변수이름 := 값예시x := 10 // x는 int 타입으로 자동 추론|   여러 변수 선언 예시var x, y intvar x, y int = 100, 200x, y := 10, 20|   상수 선언 const 키워드 사용const Pi = 3.14|   전역 변수 선언 - 전역 변수는 var 키워드 사용하여 함수 외부에서 선언- 모든 함수에서 접근 가능데이터 타입 (C와 많이 비슷)  기본형 (Primit..

IT/Go 2024.12.26

Go언어란

1. 타입스크립트 (TypeScript)개발 회사: 마이크로소프트(Microsoft)발표 연도: 2012년목적: 타입스크립트는 자바스크립트의 상위 집합(Superset)으로, 자바스크립트의 동적 타이핑을 보완하는 정적 타이핑을 제공하여 코드 품질과 유지 보수성을 개선하는 데 초점을 맞추었다.배경: 자바스크립트는 웹에서 널리 사용되는 프로그래밍 언어지만, 동적 타이핑으로 인해 큰 프로젝트에서는 버그나 오류를 찾기 어려운 문제점이 있었다. 마이크로소프트는 이 문제를 해결하기 위해 타입스크립트를 만들었다. 타입스크립트는 컴파일 타임에 오류를 잡아내어 개발자들이 더 안전하고 효율적으로 코드를 작성할 수 있도록 도와준다.주요 특징:정적 타입 시스템클래스 기반 객체 지향 프로그래밍ES6+ 기능을 지원자바스크립트와의..

IT/Go 2024.12.26

Swagger

https://swagger.io/ API Documentation & Design Tools for Teams | SwaggerSwagger and OpenAPI go hand‑in‑hand. Swagger offers powerful and easy to use tools to take full advantage of the OpenAPI Specification. See how we do itswagger.io Spring Boot 프로젝트에서 Swagger-UI를 통해 개발한 Rest API 들의 목록을 확인하고 테스트 할 수있다. Swagger- 개발한 Rest API를 문서화 한다. - API 호출을 통한 테스트를 가능하게 한다. => api 단위테스트, 명세서 다 가능하다 build.grad..

IT/Spring 2024.12.24

COALESCE 와 IFNULL 차이

SQL에서 Null 값 처리하기 위해 사용되는 함수 IFNULL 과 COALESCE 가 있다. IFNULL 은 MySQL에서만 사용 가능하고,COALESCE 은 SQL 표준 함수이다. IFNULL(val, x)  =>  single argument 처리val 값이 null 이면 x 반환, null 아니면 val 반환 COALESCE(val1, val2, val3, ... )  =>  multiple argument 처리val1이 null이면 val2 반환, val2도 null이면 val3 반환val1이 null이면 val2 반환, val2 null 아니면 val2 반환         refer tohttps://qingmi-53.tistory.com/260

IT/Database 2024.12.23

BETWEEN 절에서 날짜 범위

BETWEEN 절에서 날짜 범위 에러 SELECT date, total FROM today_sales WHERE date BETWEEN DATE(NOW()) AND DATE(DATE_ADD(NOW(), INTERVAL -7 DAY)) ORDER BY date DESC; 시작 날짜가 더 작고 끝 날짜가 더 커야 한다 따라서 DATE(NOW())와 DATE(DATE_ADD(NOW(), INTERVAL -7 DAY))의 순서를 바꿔야 한다.▶SELECT date, total FROM today_sales WHERE date BETWEEN DATE(DATE_ADD(NOW(), INTERVAL -6 DAY)) AND DATE(NOW()) ORDER BY date;

IT/Database 2024.12.23

MySQL collation 에러

데이터베이스 복구 중 에러Illegal mix of collations (utf8_general_ci,COERCIBLE) and (utf8_unicode_ci,COERCIBLE) for operation '=' when trying to dump tablespaces 다른 문자 collation을 사용하는 컬럼들을 비교하려 할 때 발생하는 문제이다utf8 collation(utf8_general_ci와 utf8_unicode_ci)컬럼의 collation을 동일하게 변경한다두 컬럼의 collation이 다르면, MySQL에서 비교하는 과정에서 오류를 발생시킬 수 있다Collation 변경하기문제를 일으키는 컬럼들의 collation을 동일하게 변경한다예를 들어, utf8_general_ci로 변경하려면 ..

IT/Database 2024.12.07
반응형