본문 바로가기
728x90
반응형

분류 전체보기320

[ 디자인패턴 ] 콜백 메서드 직접 만들어 보기 학습 목표 1. 콜백 메서드의 개념과 동작 방식을 이해할 수 있다. 2. 콜백 메서드를 활용한 코드를 작성할 수 있다. 3. 콜백 메서드가 필요한 상황과 그 장점을 설명할 수 있다. 사전 기반 지식인터페이스: Java 인터페이스의 개념을 이해하고, 메서드를 선언하고 구현하는 방법을 알고 있어야 합니다.익명 클래스: 클래스 정의 없이 인터페이스를 바로 구현하는 익명 클래스의 사용법을 알고 있어야 합니다.콜백 메서드 개념콜백 메서드는 특정한 작업이 완료되었을 때 또는 특정 이벤트가 발생했을 때 호출되는 메서드입니다. 콜백 메서드는 주로 비동기 작업이나 이벤트 기반 시스템에서 사용됩니다. 콜백 메서드를 활용하면 동작을 정의하고 나중에 실행할 수 있기 때문에, 프로그램이 더 유연해지고 모듈화될 수 있습니다.  .. 2025. 1. 9.
[ 디자인패턴 ] 디자인 패턴이란? 디자인 패턴 디자인 패턴(Design Patterns)은 소프트웨어 개발에서 자주 반복되는 문제들을 해결하기 위해 만들어진 재사용 가능한 코드 설계 방법입니다. 즉, 소프트웨어 설계 시 발생할 수 있는 문제를 효율적으로 해결하기 위한 설계의 모범 사례라고 할 수 있습니다.장점개발자간의 원활한 소통소프트웨어 구조 파악이 용이재사용을 통한 개발 시간 단축설계 변경 요청에 대한 유연한 대처단점객체지향 설계에 대한 깊은 이해도가 필요간단한 문제에 대해 디자인 패턴을 적용하는 것이 오히려 더 복잡하고 비효율적일 수 있습니다.모든 문제에 대해 디자인 패턴을 적용하는 것은 적절하지 않습니다.디자인 패턴은 크게 생성(Creational), 구조(Structural), 행동(Behavioral)으로 구분할 수 있습니다... 2025. 1. 9.
[1일1쿼리] 오늘이 생일인 사람이 각 부서마다 몇명인가 ? select right(e.birth_date,5) as 'birthDay' , d.dept_name, count(e.emp_no) as 'count'from employees as ejoin dept_emp as m on m.emp_no = e.emp_noleft join departments as d on d.dept_no = m.dept_nowhere right(e.birth_date,5)= substring(now(),6,5) and m.to_date = '9999-01-01'group by d.dept_namewith rolluporder by d.dept_name desc, e.emp_no asc; 2025. 1. 8.
[Flutter00] Flutter 기초다지기3 _ List ListView 사용법과 주요 property가장 일반적으로 사용되는 스크롤 위젯ListView는 주로 다음과 같은 방식으로 사용일반적인 ListView를 명시적으로 호출하고 children 전달하는 방법 (적은 데이터에 사용시 용이함)ListView.builder를 사용하여 동적으로 호출ListView.separated는 ListView.builder 기능에 구분선 사용 가능주요 propertyreverse: true이면 bottom에서부터 리스트 표시padding: 리스트 아이템 간격 (EdgeInsets로 적용)itemCount: 동적 리스트 아이템 개수 (ListView.builder/ListView.separated에서 사용 가능)itemBuilder: 각 동적 리스트 아이템 정의 (ListVi.. 2025. 1. 8.
[Flutter00]플러터 기본기 다지기2 home: Scaffold( appBar: AppBar(title: const Text('FunCoding')),),나만의 Flutter 위젯 분류위젯들을 이해하고 활용하는 것이 Flutter 개발의 핵심입니다.위젯의 종류Flutter는 풍부한 UI 위젯을 제공합니다. 자세한 내용은 공식 문서에서 확인할 수 있습니다.위젯들을 이해하기 쉽게 직접 나누어 봅시다(공식적인 분류는 아직 존재하지 않는 것 같음)1. 플랫폼별 위젯Material (Android) 위젯Google의 Material Design 가이드라인을 따르는 위젯들입니다.Cupertino (iOS) 위젯Apple의 Human Interface Guidelines를 기반으로 한 iOS 스타일 위젯들입니다.대부분의 경우 Material 위젯을 사.. 2025. 1. 8.
[Flutter00] 플러터의 기본개념 다지기1 "Everything is a Widget" — Flutter의 핵심 철학Flutter는 위젯 기반의 UI 프레임워크로, 모든 UI 요소를 위젯으로 표현합니다. 이는 개발의 일관성과 효율성을 크게 높여줍니다. 선언적 UI 구성Flutter는 React에서 영감을 받은 선언적 프로그래밍 방식을 채택했습니다. 개발자는 원하는 UI 상태를 직접 선언하며, 프레임워크가 이를 효율적으로 렌더링합니다=> 이것과 반대 : 명령적 UI   명령형 UI어떠한 상태가 되도록 명령한다.ViewA a = ViewA();ViewB b = ViewB();a.setColor(red) // 빨간색이 되어라b.setColor(yello) // 노란색이 되어라a.add(b) // b는 a의 child가 되어라 선언형 UI어떠한 최종 상.. 2025. 1. 8.
[1일1쿼리] 현재 재직중인 Technique Leader 의 월급중 가장 높은 사람의 부서는? ## 현재 재직중인 Technique Leader 의 월급중 가장 높은 사람의 부서는?WITH RankedSalaries AS ( SELECT t.emp_no, t.title, t.from_date, s.salary, m.dept_no, ROW_NUMBER() OVER (ORDER BY s.salary DESC) AS rnk FROM titles AS t JOIN salaries AS s ON s.emp_no = t.emp_no JOIN dept_emp AS m ON m.emp_no = t.emp_no WHERE t.title = 'Technique Leader' AND s.to_date = '9999-01-01')SELECT R.emp_no, R... 2025. 1. 7.
[Flutter 18] Dart에서 추상 클래스와 동적 바인딩 활용 이번 글에서는 Dart에서 추상 클래스와 동적 바인딩을 활용한 객체 지향 설계를 예제로 설명합니다.추상 클래스의 개념부터 동적 바인딩을 사용해 유연하고 확장 가능한 코드를 설계하는 방법까지 살펴보겠습니다.1. 팀장의 요청: 동물의 행동 구현1-1. 초기 설계처음에는 각각의 동물 클래스에 독립적인 메서드를 정의했습니다. 하지만, 물고기(Fish) 클래스에 다른 메서드(hungry())를 사용하면서 일관성이 깨졌습니다. class Dog { void performAction() { print('멍멍 배고파'); }}class Cat { void performAction() { print('야옹 배고파'); }}class Fish { void hungry() { print('뻐금뻐금 .. 2025. 1. 7.
[Flutter 17] Dart Mixin과 Java 관계 개념 정리 Java 객체 간의 관계 개념Java는 단일 상속만 허용합니다.(최상위 클래스인 Object를 제외한 모든 클래스는 하나의 부모 클래스만 상속 가능)1. 연관 관계객체들이 서로 연결된 일반적인 관계를 의미합니다.2. 컴포지션 관계 (Composition)정의:부분-전체 관계 중에서 생명주기가 밀접히 연관된 강한 소유 관계입니다.특징:전체 객체가 소멸되면 부분 객체도 함께 소멸됩니다.의존성이 매우 높습니다.예시:자동차(전체)와 엔진(부분) 관계class Engine { final String type; Engine(this.type); void startEngine() { print('${type} 엔진이 시동됩니다.'); }}class Car { final Engine engine; Ca.. 2025. 1. 7.
[Flutter 15] storeApp 만들기1 1. 프로젝트 생성 2. 필요한 이미지 프로젝트 내에 내장하는 방법     3. 초기코드 작성해보기 import 'package:flutter/material.dart';//코드의 시작점void main() { runApp(MyApp());} //end of main 자동정렬 필요 ( ctrl + alt  + l(엘))  시나리오1 - 초기 코드 작성// 플러터 동작시 반드시 있어야 함import 'package:flutter/material.dart';// 코드의 시작점void main() { // 플러터는 거의 모든 것이 위젯 // 전달된 위젯을 최상위 위젯으로 설정하고 앱을 시작하는 함수이다. runApp(MyApp());}// stl 단축키 활용class MyApp extends State.. 2025. 1. 6.
728x90
반응형