분류 전체보기 65

[Flutter] Everything is a Widget - 플러터 기본기 다지기

Flutter는 현대 모바일 애플리케이션 개발에서 주목받는 UI 프레임워크로, 선언적 UI와 위젯 기반 아키텍처를 통해 개발자에게 높은 생산성과 효율성을 제공합니다. 이번 포스팅에서는 Flutter의 사용자 정의 위젯, 프로젝트 구조, 화면 구성 패턴 등을 알아보겠습니다. "Everything is a Widget"Flutter의 핵심 철학Flutter는 위젯 기반의 UI 프레임워크로, 모든 UI 요소를 위젯으로 표현합니다. 이는 개발의 일관성과 효율성을 크게 높여줍니다.선언적 UI 구성 선언형 UI란?// 빨간색 A가 노란색 B를 child로 가지고 있다.return ViewA( color: red, child: ViewB( color: yello, ),);상태만 선언하면 UI는 자동으로 업데이트..

Flutter 2025.01.08

[Today's Query] 부서별 연봉 3위까지 사원의 이름과 연봉 조회 (2025/01/08)

WITH tbl_ranking AS ( SELECT RANK() OVER(partition by d.dept_no ORDER BY s.salary DESC) AS ranking, CONCAT(e.first_name, ' ', e.last_name) AS name, s.salary, d2.dept_name FROM ( SELECT emp_no, MAX(salary) AS salary FROM salaries GROUP BY emp_no ) AS s JOIN employees AS e ON e.emp_no = s.emp_no JOIN dept_emp AS d ON e.emp_no = d.emp_no JOIN departments AS d2 ON d2.dept_no = d.dept_..

[DART] dart의 추상 클래스

객체지향 프로그래밍(OOP)에서 추상 클래스는 특정 동작이나 속성을 강제하기 위한 강력한 도구입니다. Dart에서도 추상 클래스는 상속을 통해 일반화된 동작을 구체적인 구현으로 확장할 수 있는 기회를 제공합니다. 이번 포스팅에서는 Dart의 추상 클래스에 대해 알아보고, 왜 추상 클래스가 필요한지, 그리고 실전 코드에서 어떻게 활용되는지를 살펴보겠습니다. 1. 추상 클래스란?추상 클래스(Abstract Class)는 완전한 구현을 제공하지 않는 클래스입니다.특정 동작을 서브 클래스가 반드시 구현하도록 강제할 수 있습니다.인스턴스화 불가: 추상 클래스는 직접 객체를 생성할 수 없습니다.추상 메서드: 메서드 본체가 없는, 반드시 구현해야 하는 메서드를 포함할 수 있습니다.상속 필수: 추상 클래스는 다른 클래..

Flutter/Dart 2025.01.07

[DART] OOP 연관관계와 Mixin

객체지향 프로그래밍(OOP)의 중요한 개념 중 하나는 연관관계(Association)입니다. 연관관계는 객체 간의 관계를 정의하며, 특히 객체들의 생명주기와 소유권에 따라 구분됩니다. 이 글에서는 연관관계의 두 가지 주요 형태인 컴포지션(Composition)과 집합(Aggregation) 관계를 Dart 언어를 사용하여 구현하고, 더 나아가 코드 재사용성을 높이는 Mixin에 대해 살펴보겠습니다. 1. 연관관계란?연관관계는 객체 간의 상호작용과 관계를 나타냅니다. 연관관계는 소유권과 생명주기에 따라 다음과 같이 분류됩니다.1.1. 컴포지션 관계 (Composition)강한 소유 관계부분-전체 관계에서 **전체(Whole)**와 **부분(Part)**의 생명주기가 밀접하게 연관되어 있습니다.전체 객체가 ..

Flutter/Dart 2025.01.07

[Flutter] 연습하기2 - flutter recipe app

만들면서 배우는 플러터 앱 프로그래밍을 바탕으로 연습했습니다.코드를 짜기 전, 최상단 폴더에 assets 폴더를 만들고 이미지와 폰트를 넣어줍니다.이미지 폴더 전체 사용 설정 (pubspec.yaml) # To add assets to your application, add an assets section, like this: assets: - assets/images/images/ 해당 경로 하위의 모든 파일을 가져올 수 있게 됩니다.폰트 사용 설정 (pubspec.yaml) # example: fonts: - family: PatuaOne fonts: - asset: assets/fonts/PatuaOne-Regular.ttf해당 폰트를 불러올 때 입력할 폰트의 ..

Flutter 2025.01.07

[Flutter] 연습하기1 - flutter store app

플러터를 이용해서 간단한 store App을 만들며 문법에 익숙해져보도록 하겠습니다.만들면서 배우는 플러터 앱 프로그래밍을 바탕으로 연습했습니다.코드를 짜기 전, 최상단 폴더에 assets 폴더를 만들고 이미지를 넣어줍니다.yaml 파일 설정 # To add assets to your application, add an assets section, like this: assets: - assets/bag.jpeg - assets/cloth.jpegyaml 파일에서 assets 폴더의 이미지를 사용할 거라고 명시해주면 프로젝트에서 이미지를 가져올 수 있습니다. 시나리오 코드 1 - 초기 코드 작성// 플러터 동작시 반드시 있어야 함import 'package:flutter/material.d..

Flutter 2025.01.07

[Today's Query] 부서 이동 경험이 있는 사원들의 현재 부서를 조회 (2025/01/07)

부서 이동 경험이 있는 사원들의 정보와 현재 부서를 조회하세요.SELECT e.emp_no, CONCAT(e.first_name, ' ', e.last_name) AS name, e.hire_date, d.dept_name, de.to_dateFROM dept_emp AS de JOIN departments AS d ON d.dept_no = de.dept_noJOIN employees AS e ON de.emp_no = e.emp_noWHERE to_date = '9999-01-01' AND e.emp_no IN ( SELECT e.emp_no FROM dept_emp AS d JOIN employees AS e ON ..

[Today's Query] 부서 평균 연봉보다 연봉이 높은 사원을 조회 (2025/01/06)

문제최신 연봉이 부서 최신 연봉의 평균보다 높은 사원을 조회하세요.WITH LatestSalaries AS ( SELECT emp_no, salary, ROW_NUMBER() OVER (PARTITION BY emp_no ORDER BY from_date DESC) AS rn FROM salaries),avgSalary AS ( SELECT b.dept_no, AVG(a.salary) AS avg_salary FROM (SELECT emp_no, salary FROM LatestSalaries WHERE rn = 1) AS a JOIN dept_emp AS b ON a.emp..

[Today's Query] 재직 중인 개발부서 사원의 최신 연봉 정보를 출력 (2025/01/04)

문제재직 중인 개발(Development)부서의 사원 목록과 가장 최신 연봉 정보를 출력SELECT a.emp_no, CONCAT(a.first_name, ' ', a.last_name) AS emp_name, b.salaryFROM employees AS aJOIN dept_emp AS c ON a.emp_no = c.emp_noJOIN departments AS d ON c.dept_no = d.dept_noJOIN salaries AS b ON a.emp_no = b.emp_noWHERE d.dept_name = 'Development' AND c.to_date > now() AND b.from_date = (..