본문 바로가기

전체 글

(74)
Dart 제네릭 이해하기 📝 Dart의 제네릭타입을 매개변수로 사용하여 코드를 재사용할 수 있게 해주는 기능 1️⃣ 제네릭 클래스 (Generic Class)✔ 개념클래스를 만들 때, 클래스가 다루는 타입을 외부에서 지정할 수 있게 하는 구조➡ 클래스 안에서 타입을 고정하지 않고 라는 타입 변수(type parameter)로 받아서 사용하는 방식✔ 왜 필요한가 ?여러 타입에 대해 재사용 가능타입 안전성 확보중복 코드 제거// 제네릭 클래스 정의class Cup { T value; Cup(this.value); T getValue() { return value; } void setValue(T newValue) { value = newValue; }}// 제네릭 클래스 사용void main() { // S..
Dart 타입 시스템 한눈에 정리 📝 Dart의 타입 시스템 정리Dart는 정적 타입 언어로, 컴파일 시간에 타입 검사를 수행타입 추론을 지원하여 타입 선언을 생략할 수 있는 유연성도 제공Dart 2부터는 타입 안전성이 강화되었고, Dart 2.12부터는 null 안전성이 도입 ✅ 기본 제공 타입 // 숫자 타입int a = 12; // 정수만 저장 double b = 2.91; // 실수만 저장num c = 15; // int나 double의 모두 포함하는 상위 타입// 문자열String text = '하이 하이';// 불리언bool flag = false;// 리스트(배열)List numbers = [1, 2, 3];// 맵(Dictionary -> Key + Value 구조)Map person = {'name': '뽀로..
왜 Flutter는 Dart를 선택했을까? ✅ Dart란 무엇인가 ?2011년 구글이 만든 현대적 프로그래밍 언어로, Flutter의 공식 개발 언어초기에는 주목받지 못했지만, 2017년 Flutter의 등장 이후 사용량이 폭발적으로 증가기본적으로 C 언어의 문법과 비슷하며 Java, C#, JavaScript와 같은 기능적 스트럭처를 추가한 언어로, 간결하고 강력한 기능을 지원하기에 현대적이라는 평가를 받고 있다 ✅ Dart를 사용하는 이유(1) Flutter의 공식 언어: Flutter 앱은 Dart로만 작성됨 → Flutter 개발하려면 Dart는 필수 (2) 하나의 코드로 iOS + Android 모두 개발: 이전엔 플랫폼별 개발자·코드가 따로 필요했지만, Flutter + Dart로 단일 코드베이스에서 두 OS를 동시에 제작 가능➡ 개..
초보자를 위한 Flutter 소개서 ✅ Flutter란 무엇인가 ?: Flutter는 구글이 개발한 오픈 소스 UI 프레임워크(UI Toolkit)로, 하나의 코드로 Android, iOS, Web, Desktop 앱을 동시에 개발할 수 있는 “크로스 플랫폼” 기술개발 언어 : Dart구성 요소 : UI 프레임워크 + 렌더링 엔진 + 위젯 시스템핵심 목표 : 빠른 개발 · 높은 성능 · 플랫폼별 일관된 UI/UX🔔 크로스 플랫폼 (Cross-platform): 하나의 프로그램(앱/소프트웨어)을 여러 운영체제나 환경에서 공통으로 실행할 수 있게 만든 기술 또는 방식ex) 윈도우, 맥, 리눅스 모두에서 실행되는 프로그램 / iOS와 안드로이드 모두에서 동작하는 앱 🧩 왜 Flutter가 특별한가? (핵심 장점)(1) 진정한 Cross-Pl..
MyBatis 핵심 가이드 MyBatis란 ?: 데이터베이스를 쉽게 다룰 수 있도록 도와주는 오픈 소스 ORM(Object-Relational Mapping) 프레임워크 [ MyBatis 사용 목적 ]: 데이터베이스 쿼리와 프로그래밍 언어 코드를 분리하여 유지보수성과 생산성을 높이기 위해 사용 [ MyBatis 장점 ]유연성 : SQL 쿼리를 직접 작성할 수 있으므로 매우 유연하고 또한, MyBatis는 동적 쿼리를 작성간결성 : MyBatis는 SQL 쿼리와 프로그래밍 언어 코드를 분리 → 코드가 간결해져 유지보수 용이성능 : MyBatis는 캐시 기능을 제공하여 데이터베이스 연산 속도 향상다양한 데이터베이스 지원 : MyBatis는 다양한 데이터베이스에 대한 지원을 제공 🔔 동적쿼리: 실행 시점에 조건에 따라 SQL 쿼리를 ..
eGov 전자정부 프레임워크 구조 ✔ eGov 전자정부 프레임워크 XML 구조 설명: 전자정부프레임워크는 스프링 설정을 분리하는 방식을 강제하여 보통 아래 4개가 기본으로 들어가 있다. (1) context-common.xml ⇒ 모든 모듈에서 공통으로 쓰는 “기본 설정 모음”👉 공통 bean 설정공통 유틸공통 Service공통 AOP 설정메시지 리소스(messageSource)파일 업로드 설정공통 인터셉터 등 (2) context-datasource.xml ⇒ DB 연결 관련 설정만 모아놓은 파일👉 DB 연결 정보(DataSource)DB 드라이버(driverClassName)JDBC URLusername, passwordConnection Pool 설정Spring Boot라면 application.yml에 들어갈 내용 (3) ..
RAM 부족? 5분 만에 swap 파일로 구원하기 Swap은 RAM이 부족할 때 디스크의 일부를 임시 메모리로 활용해 시스템을 지켜주는 안전지대이다 EC2와 같은 소규모 인스턴스에서도 손쉽게 메모리 여유를 확보해 자 !# 1. 2GB 크기의 swapfile 생성sudo dd if=/dev/zero of=/swapfile bs=1M count=2048# 2. swapfile 권한 설정 (보안상 필수)sudo chmod 600 /swapfile# 3. swap 영역으로 초기화sudo mkswap /swapfile# 4. 즉시 swap으로 사용 시작sudo swapon /swapfile# 5. swap이 잘 적용되었는지 확인sudo swapon -sfree -h ✅ 현재 상태 정리2.0GiB 스왑 파일 생성 완료/swapfile 위치에 정상 등록됨현재 메모..
VYBZ 서비스 도메인 & Nginx 라우팅 설정 완벽 가이드 우리 서비스는 유저 앱, 버스커 앱, 관리자 앱, 백엔드 API로 구성되어 있어각 앱마다 진입점을 다르게 두어 서브 도메인 기반으로 라우팅을 설정했다💡 알아두면 좋은 용어CNAME (Canonical Name Record)다른 도메인으로 연결할 때 사용하는 레코드.예: www.vybz.kr → vybz.kr (도메인 별칭 설정)A 레코드 (Address Record)도메인을 특정 서버의 IP 주소로 직접 연결할 때 사용.예: vybz.kr → 123.45.67.891. 도메인 레코드 설정A 레코드 : 도메인을 특정 IP로 직접 연결할 때 사용CNAME 레코드 : 다른 도메인으로 연결할 때 사용예를 들어, www.vybz.kr 서브 도메인을 vybz.kr과 동일한 IP로 연결하려면 : www.vybz.k..