본문 바로가기
728x90

프레임워크(Framework)17

[Spring Boot] Exception (예외 처리) 예외 (Exception) 와 에러 (Error) # 예외 - 입력 값의 처리가 불가능하거나 참조된 값이 잘못된 경우 등 애플리케이션이 정상적으로 동작하지 못하는 상황을 의미 - 개발자가 직접 처리할 수 있는 것이므로 미리 코드 설계를 통해 처리할 수 있음 # 에러 - 에러는 주로 자바의 가상머신에서 발생 - 예외와 달리 애플리케이션 코드에서 처리할 수 있는 것이 거의 없음 - 대표적인 예로 메모리 부족, 스택 오버플로 등이 있음 BasicErrorController - 스프링 부트의 기본 예외처리 Controller - 별다른 설정을 하지 않았다면 예외가 발생했을 때 BasicErrorController로 예외처리 요청이 전달 - 예외 발생 시 요청 전달 흐름 더보기 WAS -> 필터 -> 서블릿 ->.. 2024. 4. 16.
[Spring Boot] YAML 파일 YAML(YAML Ain't Markup Language) - 스프링부트 애플리케이션의 설정을 구성하는데 사용되는 파일 형식 - 사람이 쉽게 읽고 쓸 수 있는 데이터 직렬화 형식, XML, JSON보다 간단하고 가독성 높음 - 'application.yml' 이라는 이름으로 프로젝트의 리소스 폴더에 위치 - 데이터베이스 연결 정보, 서버 포트, 보안 설정, 로깅 구성 등과 같은 구성 요소 포함 # 문법 규칙 1. 들여쓰기 - 데이터의 계층 구조를 표현 - 하위 항목은 상위 항목보다 한 단계 더 들여써야 함 (공백으로 표시, 2개의 스페이스) - 콜론(:) 이전에는 스페이스 X - 콜론(:) 이후에는 스페이스가 있거나 없음 (일반적으로는 하나의 스페이스) server: port: 8080 servlet: .. 2024. 4. 15.
[Spring Boot] Validation (유효성 검사) Validation (유효성 검사) - 애플리케이션의 비즈니스 로직이 올바르게 동작하기 위해 데이터를 사전 검증하는 작업 - 여러 계층에서 들어오는 데이터에 대해 의도한 형식대로 값이 들어오는지 체크하는 과정 - 프로그래밍에서 매우 중요한 부분, 가장 신경 써야 하는 것 중 하나 NullPointException 예외 - 스프링 부트에서는 계층 간 데이터 전송에 대체로 DTO 객체를 활용 → DTO 객체를 대상으로 유효성 검사 수행 # 의존성 추가 // build.gradle implementation 'org.springframework.boot:spring-boot-starter-validation' // pom.xml org.springframework.boot spring-boot-starter-.. 2024. 4. 15.
[Spring Boot] ResponseEntity ResponseEntity - 'HttpEntity' 를 상속받아 HTTP 응답을 나타내는 클래스 - HTTP 응답의 상태 코드와 함께 헤더(headers)와 본문(body)을 포함 ('HttpEntity' 의 모든 기능을 활용할 수 있으면서도 추가적으로 HTTP 응답을 설정하고 반환할 수 있음) → 클라이언트에게 보다 구체적인 응답 제공, 효과적인 통신 구현 - RESTful 웹 서비스나 웹 애플리케이션 개발할 때 유용 ResponseEntity - '' 는 제네릭 타입을 지정하는 부분 - 제네릭 타입은 컬렉션과 같은 클래스나 인터페이스를 정의할 때 사용(컴파일 시점에 타입 안정성 보장, 재사용성 높여줌) - '' 안에는 반환되는 데이터의 형식을 지정 # ResponseEntity - '' 는 와.. 2024. 4. 15.
[Spring Boot] 파라미터 전달 방식 # 파라미터 전달 방식은 클라이언트가 서버로 데이터를 전달하는 방법을 의미 쿼리 스트링 방식 (Query String, Query Parameter) - URL 끝에 '?' 를 붙이고, 파라미터를 'key-value' 형태로 전달하는 방식 - 여러개이 매개변수를 전달할 때는 '&' 로 구분 - 주로 GET 메소드를 사용하여 데이터를 전달할 때 사용 - 간단하고 직관적인 방식이지만, 데이터가 URL에 노출되므로 보안에 취약할 수 있음 - 스프링 부트에서는 '@RequestParam' 을 통해 컨트롤러 메서드의 매개변수로 받아올 수 있음 ex) 'http://example.com/search?keyword=springboot&page=1' 에서 'keyword'와 'page'는 쿼리 문자열의 파라미터 @Re.. 2024. 4. 15.
[Spring Boot] 개요 스프링 부트 (Spring Boot) - 자바 기반의 오픈 소스 프레임워크인 스프링을 기반 - 마이크로서비스 및 웹 애플리케이션을 쉽게 개발하고 실행할 수 있도록 도와주는 도구 - 스프링 프레임워크의 기능을 쉽게 사용할 수 있도록 제공, 복잡한 설정 작업을 최소화 →개발자가 핵심 비즈니스 로직에 집중할 수 있도록 해줌 특징, 장점 # 스타터 의존성 - 스타터 : 필요한 라이브러리들의 그룹화된 집합 - 다양한 기능을 미리 패키지화하여 스타터 의존성을 제공 - 개발자는 필요한 기능을 갖춘 프로젝트를 빠르게 설정 가능 - 예) spring-boot-starter-web 을 추가하면 웹 애플리케이션 개발에 필요한 모든 의존성을 가져올 수 있음 # 자동 설정 - 애플리케이션의 설정을 자동화, 개발자가 별도의 설정.. 2024. 4. 5.
[Flutter] MV 패턴 예시 import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( home: HomeView(), ); } } // View class HomeView extends StatefulWidget { const HomeView({super.key}); @override State createState() => _HomeViewState(); } class _HomeViewState extends Stat.. 2024. 3. 19.
[Flutter] MVVM 패턴 예시 import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( home: HomeView(), ); } } // View class HomeView extends StatefulWidget { const HomeView({super.key}); @override State createState() => _HomeViewState(); } class _HomeViewState extends Stat.. 2024. 3. 19.
[Flutter] 안드로이드 스튜디오 플러터 프로젝트 세팅 안드로이드 스튜디오 다운 Android 스튜디오 및 앱 도구 다운로드 - Android 개발자 | Android Studio | Android Developers Android Studio provides app builders with an integrated development environment (IDE) optimized for Android apps. Download Android Studio today. developer.android.com 안드로이드 스튜디오 Settings 에 들어가서 추가 해주기 플러그인에서 flutter, Dart 다운 Fltter SDK 다운 Start building Flutter native desktop apps on Windows Configure your.. 2024. 3. 12.
728x90