전체 글(278)
-
[플러터 2] 플러터 기본 문법 2
map 함수 스트링 배열을 풀면서 반복되는 값을 하나씩 변형하기위해 사용 예) 1. 컬렉션에 담긴 데이터를 반복해서 플러터 위젯에 담고 화면에 출력할 때 많이 사용하며 이 때 for 문을 사용하지 않는 이유는 for 문은 값을 return 하지못하기 때문 2. 컬렉션에 담긴 데이터를 반복해서 플러터 위젯에 담는데 그 값을 조금씩 변형해야할 때 많이 사용 3. map 함수는 Iterator 타입을 return 하기때문에 끝에 toList() 함수를 추가해서 List타입으로 반환하는 것이 좋고, List 타입이 Iterator 타입보다 활용하기 좋다. where 연산자 반복되는 값에서 필요없는 값을 필터링하거나 필요한 값을 찾을 때 사용한다. (*) 조건을 필터링할 때 사용하므로 컬렉션에 담긴 데이터를 삭제..
2021.08.14 -
[플러터 2] 플러터 기본 문법 1
타입 확인 runtimeType을 활용하여 변수의 타입을 확인 타입 추론 var : 타입변경 불가 var 로 한번 초기화된 데이터 타입은 다른 타입으로 변경이 불가능 dynamic : 타입변경 가능 dynamic 타입은 모든 타입을 받을 수 있고, 다른 타입으로도 변경가능하다. 연산자 몫 계산 : 숫자~/숫자 나머지 계산 : 숫자%숫자 조건문 null 대체 연산자 변수값이 null 이면 ?? 뒤에 값이 출력 null이 아니면 변수값이 출력 익명함수와 람다식의 차이 람다식 : return 키워드를 안적어도 값이 반환 - (파라미터) => 동작 혹은 리턴값 익명함수 : return 키워드를 반드시 적어야 값이 반환 - (파라미터) { 동작 또는 반환값 } - 함수를 전달받을 때는 Function() 사용 클..
2021.08.14 -
플러터 설치 및 환경설정
JDK (Windows x64) 다운로드 및 설치 1. JDK 공식 사이트 다운로드 페이지로 이동 다운로드 2. JDK 시스템 변수 등록 1) 새로 만들기 > JAVA_HOME : jdk 설치경로 (*) JDK 폴더위치는 실제로 존재하는지 확인할 것 3. Path에 추가 : %JAVA_HOME%\bin 4. JDK 버전 확인 CMD 창에서 javac -version 안드로이드 스튜디오 다운로드 및 설치 1. 안드로이드 스튜디오 공식 사이트 다운로드 페이지로 이동 안스 다운로드 2. 설치 Android Virtual Device 가 선택되어있는지 확인 3. 실행 Configure > SDK Manager : 8.0 (Oreo) 추가 설치 4) 실행 : Configure > Plugins flutter 검색..
2021.08.13 -
플러터의 특징
플러터의 특징 개발 시에는 핫 리로드 기능이 있는 가상머신(VM)을 사용하여, 빌드 시에는 다트언어를 네이티브 코드로 컴파일하여 사용한다. 또한, Skia 엔진을 통해 앱에 직접 렌더링을 하므로 빠르다. 플러터 2.0 에서는 맥OS, 윈도우, 리눅스, 웹을 지원 및 Null Safety 를 지원한다. AOT (Ahead Of Time) 지원 : 운영(프로덕션) 모드 개발완료된 코드를 빌드 전에 스마트폰의 네이티브 코드로 사전 컴파일하여 코드를 빌드할 수 있으므로 네이티브 성능을 낼 수 있다. Flutter > iOS Native Flutter > Android Native JIT (Just In Time) : 개발 모드 런타임에서 실행할 수 있는 중간 언어로 변환 후 가상머신(VM)을 통해 중간 언어를 ..
2021.08.13 -
[SQL 튜닝 실습] SQL 튜닝 중급 5
대소문자가 섞인 데이터와 비교하는 나쁜 SQL문 튜닝 전 SQL문 튜닝 전 SQL문은 사원테이블에서 입사일자가 1990년 이후이고 이름이 MARY인 사원정보를 조회하는 쿼리로 MARY와 1990-01-01은 화면에서 입력된 변숫값이므로 매번 입력되는 영문의 대소문자는 고정되지 않는다. select 이름, 성, 성별, 생년월일 from 사원 where lower(이름) = lower('MARY') and 입사일자 >= STR_TO_DATE('1990-01-01', '%Y-%m-%d') 튜닝 전 실행계획 where 조건문에 이름과 입사일자 컬럼이 명시되어 있지만 테이블 풀 스캔으로 수행된다 이름 컬럼은 기본적으로 lower() 함수가 가공하므로 이름 컬럼으로 만들어진 인덱스가 존재하더라도 활용은 불가능하다...
2021.08.10 -
[SQL 튜닝 실습] SQL 튜닝 중급 4
비효율적인 인덱스를 사용하는 나쁜 SQL 문 튜닝 전 SQL 문 select 사원번호, 이름, 성 from 사원 where 성별 = 'M' and 성 = 'Baba'; 튜닝 전 실행 계획 explain select 사원번호, 이름, 성 from 사원 where 성별 = 'M' and 성 = 'Baba'; I_성별_성 인덱스를 활용해서 사원테이블에 접근 성별과 성 컬럼에 고정된 값으로 조건절 ref 항목 : const, const를 작성해서 인덱스 스캔으로 원하는 데이터에 접근 튜닝 수행 select count(distinct 성) 성_개수, count(distinct 성별) 성별_개수 from 사원; 사원 테이블의 인덱스 show index from 사원; 데이터값이 다양하지 않은 성별 컬럼을 선두로 구..
2021.08.10