Flutter 3rd Study
ยท
๐Ÿ’ป Programming Language/Flutter-Dart
StatefulWidgetstateful ์„ ์ด์šฉํ•ด ์ƒํƒœ๋ฅผ ๊ฐ€์ง€๋Š” ์œ„์ ฏ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. import 'package:flutter/material.dart'; void main() { runApp(const MyApp2()); } class MyApp2 extends StatefulWidget { const MyApp2({Key? key}) : super(key: key); @override State createState() => _MyApp2State(); } class _MyApp2State extends State { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo&..
Flutter 2nd Study
ยท
๐Ÿ’ป Programming Language/Flutter-Dart
flutter๋Š” ์›น์—์„œ๋„ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ํ”„๋กœ์ ํŠธ ๋‹จ์œ„๋กœ ์›น์„ค์ • ํ›„ ์‹คํ–‰ - ํฌ๋กฌ์œผ๋กœ ์ง„ํ–‰ ์œ„์ ฏ(Widget) Flutter๋Š” ์œ„์ ฏ์—์„œ UI๋ฅผ ๋นŒ๋“œ ์œ„์ ฏ์€ ํ˜„์žฌ ๊ตฌ์„ฑ ๋ฐ ์ƒํƒœ์—์„œ ํ•ด๋‹น view์˜ ๋ชจ์Šต์„ ์„ค๋ช…ํ•œ๋‹ค. ์œ„์ ฏ์˜ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ์œ„์ ฏ์€ ํ•ด๋‹น view์˜ ๋ฌ˜์‚ฌ๋ฅผ ๋‹ค์‹œํ•œ๋‹ค. ๊ธฐ๋ณธ ๋ Œ๋”๋ง ํŠธ๋ฆฌ์˜ ํ•œ ์ƒํƒœ์—์„œ ๋‹ค์Œ ์ƒํƒœ๋กœ ์ „ํ™˜ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ตœ์†Œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด ํ”„๋ ˆ์ž„ ์›Œํฌ๊ฐ€ ์ด์ „ ์‚ฌํ•ญ๊ณผ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋น„๊ตํ•œ๋‹ค. Flutter ์˜ ๋ ˆ์ด์•„์›ƒ Flutter Sturdio => figma์™€ ๋น„์Šท flutter์˜ ๋ ˆ์ด์•„์›ƒ์„ ์งœ๋Š”๋ฐ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ
Flutter Start
ยท
๐Ÿ’ป Programming Language/Flutter-Dart
import "package:flutter/material.dart"; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { Widget build(BuildContext context) { return MaterialApp( title : "Flutter Demo", theme: ThemeData(primarySwatch: Colors.blue), home: MyHomePage(title: '๋“œ๊ฐ€์ž~~~'), ); } } class MyHomePage extends StatefulWidget { MyHomePage({Key? key, required this.title}) : super(key : key); final String ..
7๋ฒˆ์งธ ์Šคํ„ฐ๋””
ยท
๐Ÿ’ป Programming Language/C#
C# ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ !!! ์†Œํ”„ํŠธ์›จ์–ด ์‹ ๋ขฐ์„ฑ ํ…Œ์ŠคํŒ…์„ ํ•˜๊ธฐ์œ„ํ•ด ์†Œํ”„ํŠธ์›จ์–ด ์‹ ๋ขฐ์„ฑ ํ…Œ์ŠคํŒ…์— ์žˆ์–ด ํƒ€ ์–ธ์–ด๋“ค๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ C#์— ๋น„ํ•ด ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต๊ฑฐ๋‚˜ ๋ณต์žกํ•จ Window ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ์ž‘ํ• ๋•Œ C++, C#, Java ๋“ฑ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์‹ ๋ขฐ์„ฑ์‹œํ—˜ ๋ฉด์—์„œ C#์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ์ด์ ์ด ์žˆ๋‹ค. ๋ฌด์—‡๋ณด๋‹ค๋„ ์œˆ๋„์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์–ธ์–ด๋กœ๋Š” ์ตœ์‹ ! ์ถ”๊ฐ€์ ์œผ๋กœ ์ƒ์‚ฐ์„ฑ์ด ์ข‹๋‹ค๋Š” ์ธก๋ฉด๋„ ์žˆ๋‹ค. UI๋ฅผ ์˜ˆ์˜๊ฒŒ ํ•ด์ฃผ๋Š” ํˆด๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ ๋™๊ธฐํ™”์— ์žˆ์–ด ๋‹ค๋ฅธ ๋ฉ”์†Œ๋“œ์—๋„ lock ์ถ”๊ฐ€! Output ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ์Šค๋ ˆ๋“œ ๊ฐ์ฒด ์ƒ์„ฑํ•ด๋ณด๊ธฐ Output ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ vs ๋ถ„์‚ฐ์ฒ˜๋ฆฌ ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ ํ•˜๋‚˜์˜ ์ž‘์—…(work)๋ฅผ ๋‚˜๋ˆ ์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค. Divide & Merge ๊ฐ๊ฐ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ์ง์ด ๊ฐ™์€๊ฒฝ์šฐ์— ์‚ฌ์šฉ ํ˜„์žฌ ์‹œ์Šคํ…œ์—์„œ๋Š” ๊ฑฐ์˜ ์‚ฌ..
6๋ฒˆ์งธ ์Šคํ„ฐ๋””
ยท
๐Ÿ’ป Programming Language/C#
๊ณผ์ œ [๊ตฌํ˜„๋‚ด์šฉ] ์ž…๋ ฅ Thread ๋Š” ์ž‘์—… ์ˆœ์„œ์™€ ์ž‘์—… ๋‚ด์šฉ์„ ์ฒ˜๋ฆฌ Thread๋กœ ์ „๋‹ฌํ•˜๊ณ  ์ฒ˜๋ฆฌ Thread๋Š” ์ž‘์—… ์ˆœ์„œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž‘์—… ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜์—ฌ ์ถœ๋ ฅ ์กฐ๊ฑด ์ž…๋ ฅ Thread 2๊ฐœ Thread ๋ฏธ๋ฆฌ ์ •์˜๋œ ํŒŒ์ผ ์„ ์ฝ์–ด์„œ ์ฒ˜๋ฆฌ Thread๋กœ ์ „๋‹ฌ ํŒŒ์ผ์„ ๋‹ค ์ฝ์œผ๋ฉด Thread ์ข…๋ฃŒ ์ฒ˜๋ฆฌ Thread 1๊ฐœ Thread ์ž…๋ ฅ Thread์™€ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉํ•  List ์ƒ์„ฑ ์ฒ˜์Œ ์ž‘์—…์ด ์ž…๋ ฅ๋  ๋•Œ ๊นŒ์ง€ ์ฒ˜๋ฆฌ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜์ง€ ์•Š์Œ(์ฒ˜์Œ ์ž‘์—… ๋ฒˆํ˜ธ 0) ๋งˆ์ง€๋ง‰ ์ž‘์—…์ด ์ž…๋ ฅ๋˜๋ฉด Thread ์ข…๋ฃŒ (9๋ฒˆ ์ž‘์—…์ด ์ž…๋ ฅ๋˜๋ฉด ์ข…๋ฃŒ) ๊ตฌํ˜„ ์ฝ”๋“œ using System; using System.IO; using System.Collections.Generic; using System.Threading.Tasks; na..
5๋ฒˆ์งธ ์Šคํ„ฐ๋””
ยท
๐Ÿ’ป Programming Language/C#
์ด๋ฒคํŠธ ๋ฐ์ดํ„ฐ๋ž€?!!? public delegate void EventHandler(object sender, EventArgs e); Public delegate void EventHandler(object sender, TEventArgs e); public delegate void EventHandler(object sender, EventArgs e); ์ด๋ฒคํŠธ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋ฉ”์„œ๋“œ๋ฅผ ๋‚˜ํƒ€๋ƒ„ Public delegate void EventHandler(object sender, TEventArgs e); ์ด๋ฒคํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•  ๋•Œ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋ฉ”์„œ๋“œ๋ฅผ ๋‚˜ํƒ€๋ƒ„ ์ด๋ฒคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ๋‘๋ฒˆ์งธ ์ธ์ž๋กœ ์žˆ๋Š” e ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ฉด 1 ๋ฒˆ ๋ฉ”์†Œ๋“œ์˜ ๊ฒฝ์šฐ ๋‘๋ฒˆ์งธ e ๊ฐ์ฒด๋Š” ์ด๋ฒคํŠธ์˜..
4๋ฒˆ์งธ ์Šคํ„ฐ๋”” ์ดํ›„ ์ •๋ฆฌ
ยท
๐Ÿ’ป Programming Language/C#
catch ์ˆœ์„œ ๋’ค์ฃฝ๋ฐ•์ฃฝํ•ด์„œ ํ™•์ธ class Program { class A { public int field; public static int getField(A obj) { return obj.field; } } static void Main(string[] args) { try { // DivideByZeroException int a = 10; int b = 0; Console.WriteLine(a / b); // NullReferenceException A obj = null; Console.WriteLine(A.getField(obj)); // IndexOutOfRangeException int[] arr = { 1, 2, 3 }; for (int i = 0; i < 4; i++) { Cons..