일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- React JS
- 파이어베이스
- HTML
- AnimationController
- 애니메이션
- Animation
- 마우이
- Firebase
- spring boot
- listview
- MSSQL
- 바인딩
- page
- typescript
- 닷넷
- db
- 플러터
- MVVM
- Flutter
- GitHub
- 자바스크립트
- 오류
- 리엑트
- MS-SQL
- 함수
- JavaScript
- Maui
- .NET
- 깃허브
- Binding
- Today
- Total
목록전체 글 (238)
개발노트
결론만 말하면,포괄열은 Leaf 페이지에 해당 키를 추가해주는 것(단, 정렬은 안함 넣는대로 쌓임)그렇다면..논클러스터 인덱스 + 포괄열를 만들면논클러스터 인덱스 키로 지정된 열은 Leaf 노드에 정렬되어있지만,포괄열로 넣은 키들은 정렬되어 있지않다.-> 인서트 했을 때 적어도 포괄열 때문에 정렬을 다시 하지않아도 된다.-> Select 했을 때 Leaf 페이지에서 Seek 하고싶다면 포괄열에 키를 넣어주면 RID 나 Key Look Up을 줄일 수 있다. 클러스터 + 논클러스터 인덱스 + 포괄열 이라면 Non-Clustered Index / Clustered Index / Include Index 좀 더, 정리해서 말하자면 포괄열 (Included Columns)포괄열은 비클러스터 인덱스의 리프 노..
IList 사용으로 인한 변화 및 이점1. 구체적인 구현에 의존하지 않음기존 방식 (List 사용):Order 클래스가 특정 구현인 List에 의존합니다.만약 나중에 아이템을 배열(Array)이나 다른 컬렉션(LinkedList, ObservableCollection)으로 바꾸고 싶다면 Order의 코드를 수정해야 합니다.IList 사용:Order는 IList 인터페이스를 통해 아이템 목록을 관리하므로, 내부에서 사용하는 컬렉션의 구현에 대해 알 필요가 없습니다.이후 List 대신 다른 컬렉션 구현으로 쉽게 교체할 수 있습니다.//예시1// List을 전달IList gameItems = new List();gameItems.Add(new EquipmentItem("Sword"));gameItems.Add..
DIP (Dependency Inversion Principle)란?DIP(의존성 역전 원칙)는 SOLID 원칙 중 하나로, 상위 모듈이 하위 모듈에 의존하지 않도록 설계하는 것을 말합니다.즉, 구체적인 클래스 대신 추상화(인터페이스나 추상 클래스)에 의존해야 합니다.DIP 적용 전public class Dog{ public void Eat() { Console.WriteLine("The dog is eating."); }}public class Cat{ public void Eat() { Console.WriteLine("The cat is eating."); }}// AnimalFeeder 클래스가 Dog와 Cat에 의존public class ..
1. 의존성 주입(DI)란?**의존성 주입(Dependency Injection)**은 객체 간의 의존성을 외부에서 주입하여 객체를 생성하고 관리하는 디자인 패턴입니다.이를 통해 코드의 재사용성, 테스트 용이성, 유지 보수성을 높일 수 있습니다.왜 DI를 사용하는가?객체가 서로 강하게 결합(Coupling)되어 있으면 변경이 어렵습니다.의존성을 분리하면 코드 변경과 테스트가 용이해집니다.서비스, 리포지토리, 데이터베이스와 같은 의존성을 명확히 관리할 수 있습니다.2. IoC란?IoC(Inversion of Control, 제어의 역전)은 객체의 생성과 생명 주기를 개발자가 직접 관리하지 않고, 컨테이너 또는 프레임워크가 관리하는 것을 말합니다. (제어권이 컨테이너에게 있음)이를 통해 코드가 DI 컨테이너..
ASP .NET Core를 사용하여 RESTful API를 구축하고, Dapper를 사용한 SQL Server와의 데이터베이 이 API는 사용자를 생성, 조회, 수정, 삭제하는 기능을 제공합니다. 목표:C#과 .NET을 사용하여 서버를 구축Dapper를 활용한 데이터베이스 접근 (SQL Server와 연결)RESTful API로 CRUD 작업을 제공하는 Users 관리 시스템 구축주요 컴포넌트: Controller: 사용자 관리 API (CRUD 작업) UsersController에서 HTTP 요청을 받아 사용자 데이터를 처리하고 반환 Repository: Dapper를 사용하여 SQL Server에서 데이터를 조회하고 관리 비동기 방식으로 데이터베이스와 통신하여 효율적으로 처리 Model: Users ..
1. ASP .NET Core 프로젝트 만들기(with Web API)2. 프로젝트 빌드 시, 크롬에서 아래 처럼 뜬다면 3. chrome://flags/ 에 들어가서 아래 설정을 사용가능으로 변경, 잘나옴 Dapper 사용을 위해 아래 2개 누겟 설치RabbitMQ 설치이제 내가 사용할 DB를 연결해서 보여주자 4. 연결할 DB 만들기 uesrs라는 테이블을 갖는 sunppy DB를 만들고 레코드를 넣어줌(MS-SQL 사용) appsettings.json 에 내 DB Connection 정보 등록
메시지 큐 흐름도Client → Producer : 메시지 요청 Producer → Exchange (Routing Key 사용) → Queue (Binding Key 기준 라우팅)Queue → Consumer (라운드 로빈으로 분배)Consumer: 메시지 처리 후 ACK 전송기본 개념 정리Exchange (교환기):Producer 가 발행한 메시지를 어느 큐로 전달할지 결정하는 역할을 합니다.Exchange는 메시지를 받아 특정 조건에 따라 큐로 메시지를 라우팅합니다.RabbitMQ에서는 여러 유형의 Exchange가 있으며, 가장 일반적인 유형은 다음과 같습니다:Direct Exchange: 특정 Routing Key를 가진 메시지를 해당 키와 일치하는 큐에 전달합니다.Topic Exchange: ..
const VS finalconst와 final은 둘 다 변수를 상수로 선언할 때 사용되지만, 사용하는 방식과 타이밍이 다릅니다.1. const의 특징컴파일 타임 상수로, 값이 컴파일 타임에 결정됩니다.주로 변경되지 않는 값을 선언할 때 사용합니다.const로 선언된 위젯은 재사용이 가능하며, Flutter의 위젯 트리 재구성에서 불필요한 렌더링을 줄여 성능 최적화에 도움을 줍니다.예: const color = Colors.blue;2. final의 특징런타임에 한 번만 할당되며, 이후 변경되지 않는 값입니다.값은 런타임에 결정될 수 있습니다.final 키워드는 DateTime.now와 같은 런타임에 생성되는 값을 저장할 때 주로 사용합니다.예: final date = DateTime.now();컴파일타..
문제: 화면 여러개를 거쳐 맨 마지막 화면에 도착했을 때, 처음 화면으로 이동하고 싶다면 GetX에서 네비게이션을 어떻게 해야할까? 시나리오: 현재 Get.toNamed() 로 pag1 > page2 > page3 로 네비게이션 한 상태이다.따라서 현재 화면 위치는 'page3'여기서 나는 page3, page2 를 닫고 page1으로 이동하고 싶다.즉, page1이 나올때 까지 화면을 다 닫아버리고 싶다. 닫아버린 화면들의 GetxController 들은 삭제되어야한다. 다만, page1에 Binding 되어있는 GetxController들은 살아있어야한다.class Page1Binding implements Bindings { @override void dependencies() { Get...
PopScope의 핵심은 뒤로가기 버튼의 순기능인 뒤로가기를 막고 다른 액션을 줄 수 있다는 것이다.이 위젯을 이용하여 뒤로가기 버튼을 Player의 크기가 작아지는 버튼으로 사용해본다. AnimatedContainer의 핵심은 특정 값을 분기를 두고 컨테이너의 크기나 다른 번동사항이 애니메이션으로 편하게 적용된다는 점이다. 이로 크기를 변동시켜본다.작아졌다 커졌다 하는 Player 소스 (GetX의 GetBuilder 사용함)import 'dart:math';import 'package:flutter/material.dart';import 'package:get/get.dart';class MiniPlayerController extends GetxController { late bool isMin..