728x90 반응형 지식17 [Database] Transaction Transaction 이란 하나 또는 그 이상의 database operations 의 묶음을 의미한다. 이 묶음은 하나의 작업으로 수행된다. Transaction 은 operation 들이 한번에 일관적으로 수행되는 것을 보장하고 error 가 났을 때 operation 하나하나의 결과 상태가 아닌 transaction 수행 전의 상태로 돌아갈 수 있도록 rollback 할 수 있다. 4 가지 주요 원칙이 있는데 앞글자를 따서 ACID 라고 부른다. Atomicity: 여러 명령들이 나눠질 수 없는 하나의 작업으로 취급된다. 성공하면 모든 것이 성공하는 것이고 실패한다면 모든 것이 실패하는 것이다. Consistency: 모든 데이터는 정의된 규칙에 의해 일관적이어야 한다. Isolation: 한 tr.. 지식/Python 2023. 8. 24. [Database] #1 SQL? SQL Tutorial - Full Database Course for Beginners - YouTube 모든 것이 데이터.. DBMS - A special software program that helps users create and maintain a database - create, read, update, delete - user tell dbms to do those thing Relational Database (SQL) - Organize data into one ore more tables - each table has columns and rows - A unique key identifies each row Non-Relational (no SQL / not just SQL) - O.. 지식 2023. 4. 24. [python] Factory Pattern 개요 메이플스토리에 나오는 주황버섯 클래스를 만들어보자. class OrangeMushroom: def __init__(self): self.max_hp: int = 50 self.hp: int = self.max_hp def hit(self, damage: int): self.hp -= damage def is_dead(self) -> bool: return self.hp bool: return self.hp bool: return self.hp int: return self.w * self.h def aspect_ratio(self) -> float: return self.h / self.w xywh 를 인자로 받고 area, aspect_ratio 메소드가 구현되어 있다. 근데 만약에 내가 가지고 .. 지식/Python 2023. 2. 26. [python] 시간, 타입 체크 데코레이터 개요 파이썬에는 데코레이터라(decorator)는 것이 있다. 직역하면 꾸미다 라는 뜻인데 말그대로 함수를 꾸미는 것이다. 만약 함수의 시간을 체크 하고 싶다고 해보자. 그럼 이렇게 할 것 이다. import time import random def func(): time.sleep(random.random() * 1) start = time.time() func() ellapsed_time = time.time() - start print(f"Ellapsed Time: {ellapsed_time:.2f} seconds") # Ellapsed Time: 0.55 seconds 시간을 재는 곳마다 저런 구조로 코드를 짜야한다면 매우 더러울 것이다. 시간을 재는 함수를 짜보자. def func(): time.. 지식/Python 2023. 2. 26. [Ultralytics Hub Flutter Clone Coding] #1. 사이드 메뉴 만들기 강의가 지루해서 클론 코딩을 시작해보려고 한다. 클론 코딩의 대상은 Yolo 를 만든 Ultralytics 라는 회사의 딥러닝 플랫폼 제품이다. https://hub.ultralytics.com/ Ultralytics HUB hub.ultralytics.com 프론트엔드 코딩에 대한 지식이 전무하지만 어떻게든 되겠지 하는 마음으로 해보려한다 ㅎㅎㅎ 홈 화면 왼쪽에는 접어지는 메뉴가 있고 홈, 데이터 셋, 프로젝트, 모델, 기타로 구성되어 있다. 클론 코딩 대상은 홈 ,데이터 셋, 모델 정도로 하려고 한다. 오른쪽에는 튜토리얼과 빠른 액세스, 계정 정보가 보여진다. 사이드 메뉴 flutter 위젯 중에 비슷한게 생긴 것을 찾아 보니 side_navigation 이라는 것이 있었다. pubspec.yaml .. 지식/Flutter 2023. 2. 11. [Flutter] Constructor(생성자) 기본적인 생성자 사용법은 다른 언어들과 크게 다르지 않다. 하지만 독특한 문법이 있어서 정리해본다. 단순한 사용법은 다음과 같다. class Person { String name; int age; // 기본 Person(String name, int age) { this.name = name; this.age = age; } // 조금 다르게 Person(String name, int age) : this.name = name, this.age = age; // 조금 짧게 Person(this.name, this.age); } 너무 방법이 다양해서 헷갈리는 것 같다..ㅠ 다른 언어에서는 인자의 개수나 타입을 다르게하여 여러개의 생성자를 만들 수 있다. 하지만 Dart 에서는 생성자 이름이 같으면 erro.. 지식/Flutter 2023. 2. 4. [Flutter] Stateless vs Stateful react 를 잠깐 공부했을 때 state 라는 개념을 접했었다. 그것과 똑같은 개념으로 Flutter 에도 state 가 존재한다. gui 프로그래밍을 해 본 적이 있는 사람은 알고 있겠지만 우리가 보는 화면에서는 계속 rendering 이 발생하고 있다. 이 때 모든 위젯 들을 다시 rendering 한다면 속도가 매우 느릴 것 이다. 이를 최적화 하기 위해 나타난 개념이 state 이다. flutter 에서 stateless 위젯은 위젯을 생성할 때 외에는 rendering 되지 않는다. 다만 stateful 위젯은 내부 변수가 바뀔 때 rendering 을 다시 수행한다. 이러한 철학 때문에 StatelessWidget의 변수를 final 이나 const 로 지정하지 않으면 기분 나쁜 줄이 생긴다.. 지식/Flutter 2023. 2. 3. [Flutter] 개요 본 포스팅은 udemy 의 강의를 기반으로 작성되었습니다. Flutter & Dart - The Complete Guide [2023 Edition] | Udemy Why Flutter Flutter 는 하나의 코드 베이스만으로 다양한 플랫폼에서 구동이 가능하다. 이는 크로스 플랫폼을 개발하기 위한 개발 비용 절감에서 큰 이득을 볼 수 있다. 네이버 블로그에서 Flutter 를 통해 지식IN 을 개발하게 된 이유와 과정을 잘 써주셨는데, 이런쪽에 경험이 전혀 없어서 모든 것을 이해하진 못했지만 좋은 글인 것 같다. 지식iN 앱을 Flutter로 개발하는 이유 (naver.com) 요약하면 기존에 사용하던 라이브러리를 사용하지 못하는 이슈나 아예 새로운 언어를 배워야한다는 단점을 제외하면 Flutter 를.. 지식/Flutter 2023. 1. 29. Dart 반복문 For loop c 언어와 동일하게 사용가능하다. for (var i = 0; i 2 -> do something -> 3 -> 2 -> do something -> 3 -> 2 -> ... python 의 for-in 구문도 사용 가능하다. for (final obj in objs) { // do something } in 뒤의 객체가 iterable 일 경우 사용 가능하다. while while (반복조건) { // do something } do { // do something } while (반복조건) 반복 조.. 지식/Flutter 2023. 1. 23. Dart 조건 분기 if else 문이다 이 이상 설명이 필요하지 않은 것 같다. 때로는 새로운 언어를 배울 때 그냥 그냥 넘어가는 것도 좋은 것 같다 Conditional Expression 은 짚고 넘어가자. 간단한 조건 로직의 경우 한 문장으로 쓸 수 있다. condition ? expr1 : expr2 condition 이 만족하는 경우 expr1 을 아닌경우 expr2 를 수행(리턴)한다. expr1 ?? expr2 expr1 값이 null 이 아니라면 expr1 을 null 이라면 expr2 를 수행(리턴)한다. 상황에 따라 잘 골라쓰면 될 것 같다. 예상하기로는 우선순위가 고려되는 로직의 경우 ?? 구문을 쓰는 것이 훨씬 가독성이 좋을 것 같다. 반대로 우선순위가 없는 단순 조건 분기의 경우에는 ? : 를 쓰는.. 지식/Flutter 2023. 1. 23. Dart functions 다트는 기본적으로 object-oriented language 로 python 과 유사한 점이 매우 많다. python 과 마찬가지로 function 도 function type 의 object 이다. 다음과 같이 함수 역할을 하는 클래스를 만들 수도 있다. class WannabeFunction { String call(String a, String b, String c) => '$a $b $c!'; } var wf = WannabeFunction(); var out = wf('Hi', 'there,', 'gang'); void main() => print(out); python 에서는 __call__ 을 정의하면 위와 똑같이 만들 수 있다. 함수 정의 함수를 정의하는 방법은 c 언어와 매우 유사하다... 지식/Flutter 2023. 1. 23. Dart Final 과 Const Language tour | Dart A tour of the Dart language A tour of all the major Dart language features. dart.dev Dart 에서는 상수를 두가지 방법으로 선언할 수 있다. Final 값을 수정할 수 없는 변수이다. 하지만 초기화를 안해도 된다. 선언 후에 딱 한번 값을 할당할 수 있다. final int a = 3; 이렇게도 할 수 있다. 타입 지정을 안하면 var 로 간주되어 dynamic 하게 받아온다. Const final 과 같이 값을 수정할 수 없다. 하지만 동작 과정에서 큰 차이가 있는데, final 은 runtime 중에 값이 메모리에 올라가고 Const 는 compile 타임에 올라간다. 런타임 중에 메모리 부하가 .. 지식/Flutter 2023. 1. 21. 이전 1 2 다음 728x90 반응형