일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 깃허브
- 오류
- AnimationController
- Flutter
- Maui
- 닷넷
- Firebase
- JavaScript
- Binding
- page
- 애니메이션
- Animation
- 바인딩
- GitHub
- listview
- 플러터
- db
- 자바스크립트
- MS-SQL
- 리엑트
- .NET
- spring boot
- MVVM
- 함수
- 마우이
- typescript
- React JS
- MSSQL
- HTML
- 파이어베이스
- Today
- Total
목록분류 전체보기 (246)
개발노트
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..

SliverFillRemaining를 사용하자CustomScrollView 로 Sliver [] 을 구성하는 중에 다른 Scroll류 위젯을 안에 사용하고싶을 경우가 있습니다.보통은 Expanded로 화면의 빈곳을 전부 차지하며 랜더링 오류를 막아주지만, 이를 위해 Expanded를 사용하면 오류가 발생합니다.이를 해결하기 위해서는 Scroll류 위젯을 SliverFillRemaining 위젯으로 감싸주면 사용이 가능합니다.!예시로 ScrollablePositionedList라는 패키지를 설치하여 넣어줬습니다.예시소스) class TestView extends StatelessWidget { const TestView({super.key}); @override Widget build(BuildCon..
하나의 위젯에 실시간 감시를 요구하는 값이 2개이며, 각각 다른 컨트롤러에 있기 때문에 컨트롤러를 2개 사용해야하는 상황이 와서 고민을 해보았습니다. 1. GetBuilder목적: 특정 시점에만 UI를 리빌드하기 위한 도구입니다. 컨트롤러의 상태가 변경될 때 update() 메서드를 호출하여 수동으로 UI를 리빌드합니다.성능: GetBuilder는 필요한 시점에만 리빌드를 트리거하므로, 성능 최적화 측면에서 더 유리합니다. 특히 UI 업데이트 빈도가 낮고, 성능이 중요한 경우 GetBuilder가 더 적합합니다.사용 사례: 예를 들어, 페이지 내 특정 UI 요소만 드물게 업데이트되는 상황에 적합합니다.GetBuilder를 사용할 경우class ProfileView extends StatelessWidge..