반응형

분류 전체보기 39

[기초] Flutter State 관리

StatelessWidget기본 구조class StateLessExample extends StatelessWidget { const StateLessExample({super.key}); @override Widget build(BuildContext context) { return const Placeholder(); }}State 상태 값 없이 정적인 페이지에 사용StatefulWidget기본 구조class StatefulExample extends StatefulWidget { const StatefulExample({super.key}); @override State createState() => _StatefulExampleState();}class _StatefulExamp..

[기초] Flutter Widget, Layout

WidgetFlutter UI 는 매우 중요하다Flutter UI의 구성은 Widget으로 구성한다Widget TreeWidget을 블록과도 같기 때문에 수평, 수직 관계를 나타내는데 중요한 개념이다Stateless / Stateful Widget상태관리는 프론트엔드에서 중요한 요소이다Flutter에서는 이를 Stateless / Stateful Widget으로 나누었다말그대로 less에서는 정적페이지 구성, ful에서는 동적페이지 구성에 쓰인다 기본 위젯MaterialApp꼭대기 위젯최상위 위젯앱의 전반적인 구조와 동작을 정의 Scaffold앱 구조appBarbody 등.. 시각적 레이아웃 구조 배치 LayoutContainer기본 박스형 위젯 Column여러개의 위젯을 top down 형식으로 배치R..

[기초] Dart Language 기초 변수, 연산자, 클래스, 함수, 분기문, 반복문, 예외처리

기초에 대한 정리JavaScript 와 매우 비슷하고, 다른 언어들과 크게 다르지 않은 모습이다. 변수참 / 거짓bool정수int실수double문자열StringNullnull  연산자산술+, -, *, /, % ....비교==, =, != ....논리&&, ||, ??할당=, *=, -=, /= ...  클래스객체 만들기 위한 Template필드, 메서드, 생성자로 구성필드클래스 내부 선언된 데이터메서드클래스 내부 선언된 기능생성자클래스 인스턴스 생성시 사용 함수/메서드리턴타입 함수명 (매개변수) {    return 리턴} ex) int sum(int a, int b) {    return a+b;} 분기문if else if elseif (condition1) {// 실행 1}else if (condi..

[기초] Dart Language 는 무엇인가!

Dart는누가 만든 언어인가구글에서 만들었고 flutter보다 오래된 역사(?)를 가지고 있다 왜 만든 언어인가JavaScript를 대신한 웹브라우저 언어지원을 위해서였지만 지금은 flutter에서 쓴다 무슨 장점이 있는가Dart는 컴파일러 최적화와 함께 빠른 성능을 제공하도록 설계되었다.Just-In-Time (JIT) 및 Ahead-Of-Time (AOT) 컴파일을 모두 지원JavaScript의 영향을 많이 받아서 배우기 쉽다.타입지정이 있다객체지향언어이다근데 함수형 프로그래밍도 지원한다 https://dartpad.dev DartPad dartpad.dev 에서 쉽게 테스트 가능하다

[JAVA] 컴파일과 실행하는 과정

컴파일 컴퓨터에서 컴파일은 기계가 해석할 수 있는 언어로 바꾸는 과정 JAVA 컴파일 OS마다 기계어를 읽어드리는 방식이 다르기 때문에 JAVA는 컴파일러를 통해 .class(바이트코드)로 변환 후 JVM으로 OS에 맞춰서 기계어로 바꾼다 자바 소스코드를 자바 컴파일러를 통해 컴파일한다 컴파일된 .class(바이트코드)를 JVM 클래스 로더에 전달 JVM(JAVA Virtual Machine) 클래스 로더를 통해 컴파일된 JAVA코드를 읽어 들여 OS에 맞게 기계어로 해석해준다 OS에 따라 다르게 컴파일할 필요없이 JVM이 그 역할을 한다 Class Loader Loading -> Linking -> Initialization 클래스 파일 -> 사용하기 위해 검증 -> 기본 값으로 초기화 Runtime ..

[자바스크립트] 프로미스(Promise)의 개념과 사용

Promise Promise 객체에는 state 와 result가 있다 Promise가 만들어 지면 state : pending result : undefined 상태이다 Promise 생성은 생성자 new를 사용해서 생성 인자로는 resolve, reject 콜백함수가 있다 resolve는 성공했을때 실행하는 함수 reject는 실패했을때 실행하는 함수다 실제로 생성해서 각각 실행해 보면 resolve함수에 "success"를 넣고 생성하면 state : fulfilled result : "success" 로 바뀐다 반대로 reject함수에 "fail"를 넣고 생성하면 state : rejected result : "fail" 로 바뀐다 이렇게 실행해도 되지만 함수로 만들어서 실행해도 된다 예제 ..

[알고리즘]너비우선탐색(BFS)

너비 우선 탐색 a와 인접한 노드들을 차례로 방문 후 인접한 노드들의 이웃들을 차례로 방문한다 큐 : 방문 차례를 기록 BFS 구현 DFS보다 구현하기 쉽다 DFS에서 스택을 큐로 바꾼다 BFS의 큐는 방문한 순서대로 넣어진다 방문한 순서대로 들어가 지금 탐색하고 있는 노드의 인접한 노드를 다 방문했다면 큐에 저장된 순서대로 빼서 그 노드의 인접한 노드를 탐색 python

[알고리즘]깊이우선탐색(DFS)

깊이 우선 탐색 하나를 깊이 파고 든다 a와 인접한 다른 노드 차례로 순회한다 a와 인접한 노드 b를 방문했다면, a와 인접한 다른 노드를 방문하기 위해서는 b와 인접한 노드를 전부 방문한 뒤 a와 인접한 b를 제외한 다른 노드를 방문할 수 있다 스택 : 경로 정보의 추적을 기록 DFS 구현 딕셔너리와 스택을 활용 인접한 노드를 저장하는 adjDict는 연결리스트로 노드의 데이터를 key로 갖는다 방문 정보를 확인하는 visitedInfo는 노드의 데이터를 key로 value에는 방문했을때 1을 저장 python

[알고리즘]정렬

버블정렬 일반적인 정렬 앞과 뒤를 비교해서 순차적으로 계속 비교해 나가는 모습이 거품이 일어나는 모습에 비유되어 버블정렬이다 O(n2)의 성능을 보인다 버블정렬 구현 이중for문으로 구현한다 for문 한 사이클 돌 때마다 제일 큰 수는 맨 뒤로 간다 python 선택정렬 정렬순서상 가장 앞서는 것을 찾아서 왼쪽에 정렬 원래 정렬에 필요한 별도의 메모리 공간이 필요하지만 위치 교환이 좀 더 효율적이다 O(n2)의 성능을 보인다 선택정렬 구현 이중for문으로 구현한다 for문 한 사이클 돌 때마다 제일 작은 데이터부터 정렬 된다 python 삽입정렬 정렬된 부분과 정렬이 되지않은 부분을 나눠서 정렬된 부분에 정렬이 안된 데이터를 하나씩 뽑아 정렬된 부분의 위치를 찾아 삽입하는 정렬 위치 교환이 아닌 정렬된 ..

[자료구조]이진탐색트리

이진 탐색 트리 이진 탐색 트리는 이진트리와 다르게 저장 규칙이 있기 때문에 이진 탐색 트리이다 저장규칙 이진 탐색 트리의 노드에 저장된 키는 유일 루트 노드의 키가 왼쪽 서브 트리를 구성하는 노드의 키보다 크다 루트 노드의 키가 오른쪽 서브 트리를 구성하는 노드의 키보다 작다 왼쪽과 오른쪽 서브 트리도 이진 탐색 트리이다 즉 루트 노드 키보다 작으면 왼쪽 크면 오른쪽 이진 탐색 트리 구현 기존 이진 트리를 활용해서 구현하다 삽입, 탐색 연산 삽입 : 새로운 노드가 추가될 위치를 찾는다 중복을 검사 새 노드를 생성 찾은 위치에 노드 삽입 탐색 : 현재 노드 데이터와 타겟 데이터를 비교 타겟 데이터 크다면 현재 노드를 오른쪽 서브트리로 작다면 현재 노드를 왼쪽 서브트리로 반복해서 타겟데이터를 찾으면 ret..