전체 글 (374) 썸네일형 리스트형 롬복과 리팩토링 1. 롬복코드를 간소화해 주는 라이브러리이다. 롬복을 사용하면 여러 필수 코드가 반복되는 것을 최소화할 수 있고 println() 문을 로깅 기능으로 대체할 수 있다. 2. 로깅프로그램의 수행 과정을 기록으로 남기는 것을 말한다. 일종의 자동차 블랙박스와 같다. 3. 리팩토링코드의 기능에는 변함이 없이 코드의 구조 또는 성능을 개선하는 작업을 말한다. 리팩토링하면 코드의 가독성이 좋아지고 길이도 짧아져서 개발 시간을 단축할 수 있다. 4. @AllArgsConstructor클래스 안쪽의 모든 필드를 매개변수로 하는 생성자를 만드는 어노테이션으로, 이를 사용하면 클래스 내에 별도의 생성자를 만들지 않아도 된다. 5. @ToStringtoString() 메서드를 사용한 것과 똑같은 효과를 낸다. 별도의 to.. 게시판 만들고 새 글 작성하기 : Create 1. 폼 데이터와 태그폼 데이터는 태그에 실려 전송하는 데이터를 말한다. 태그에는 전송할 데이터를 어디에 어떻게 보낼지도 설정하는데, 어디에 보낼지는 action 속성으로, 어떻게 보낼지는 method 속성으로 설정한다. 2. DTO폼 데이터에 실어 보낸 데이터는 서버의 컨트롤러가 객체에 담아 받는데, 이 객체를 DTO(Data Transfer Object)라고 한다. DTO로 받은 데이터는 최종적으로 데이터베이스(DB, DataBase)에 저장된다. 3. 폼 데이터를 DTO로 받는 과정[클라이언트]① 뷰 페이지 만들기[서버]② 컨트롤러 만들기③ DTO 만들기④ 폼 데이터를 전송 받아 DTO 객체에 담기 4. 데이터베이스데이터를 관리하는 창소로 줄여서 DB라고 한다. DB의 모든 데이터는 행과 열로.. MVC 패턴 이해와 실습 1. 뷰 템플릿웹 페이지를 하나의 틀로 만들고 여기에 변수를 삽입해 서로 다른 페이지를 보여 주는 기술이다. 2. MVC 패턴웹 페이지를 화면에 보여주고(View), 클라이언트의 요청을 받아 처리하고(Controller), 데이터를 관리하는(Model) 역할을 영역별로 나누어 하는 기법을 말한다. 3. 뷰 템플릿 생성 위치뷰 템플릿은 src > main > resources > templates 디렉토리에 만든다. 머스테치 뷰 템플릿의 확장자는 .mustache이다. 4. 컨트롤러 생성 위치컨트롤러는 src > main > java > 기본 패키지 안에 컨트롤러 패키지를 만든 후 자바 클래스 파일을 생성하는 방식으로 만든다. 이때 확장자는 .java 이다. 5. 모델을 통해 변수 등록하는 방법모델은 컨.. 스프링부트 시작하기 1. 스프링 부트자바 웹 프로그램을 더욱 쉽고 빠르게 만들기 위해 개발된 도구이다. 스프링 부트에는 자바 웹 프로그램을 만들기 위한 기능과 노하우가 모여 있다. 따라서 원하는 기능을 찾아 조립하기만 하면 편리하게 자바 웹 프로그램을 만들 수 있다. 2. 스프링 부트 환경 개발스프링 부트의 개발 환경은 JDK 설치하기 → IDE 설치하기 → 프로젝트 만들기 과정을 거쳐 설정한다. 3. 스프링 부트 프로젝트 생성스프링 부트 프로젝트를 만들기 위해서는 start.spring.io 사이트에 접속한다. Project, Language, Spring Boot 버전, Packaging, Java 버전, Project Metadata 등의 항목을 설정하고 각종 도구들을 추가한 후 압축 파일을 내려받으면 프로젝트를 실행.. riverpod 과 MVVM 활용 - 게시글 생성 화면의 뷰 모델(PosCreateViewModel) 만들어 보자(12) 기본 생성 화면import 'package:flutter/material.dart';class PostCreatePage extends StatefulWidget { const PostCreatePage({super.key}); @override State createState() => _PostCreatePageState();}class _PostCreatePageState extends State { @override Widget build(BuildContext context) { return const Placeholder(); }} ConsumerStatefulWidget 활용import 'package:flutter/material.dart';import 'package:f.. riverpod 과 MVVM 활용 - PostDetailView 화면 완성 하기(11) PostListPage 에서 PostDetailPage 위젯 생성 : ListView.separated( itemBuilder: (context, index) { Post post = postList[index]; return ListTile( onTap: () { Navigator.push(context, MaterialPageRoute(builder: (context) { return PostDetailPage(postId: post.id); .. riverpod 과 MVVM 활용 - PostDetailViewModel을 Provider 통해서 관리 해보자(10) lib/providers/state_noti_provider/post_detail_view_model_provider.dart// 새로운 개념 추가import 'package:class_riverpod_mvvm/providers/provider/post_respisitory_provider.dart';import 'package:flutter_riverpod/flutter_riverpod.dart';import '../../models/post.dart';import '../../view_models/post_detail_view_model.dart';final postDetailViewModelProvider = StateNotifierProvider.family, int>((ref, postId) .. riverpod 과 MVVM 활용 - PostDetailViewModel 만들기(상세보기 화면 데이터 관리) (9) PostListPage - onTab() 추가 onTap: () { Navigator.push(context, MaterialPageRoute(builder: (context) { return PostDetailPage(); })); } PostDetailPage 기본 화면 설정 import 'package:flutter/material.dart';class PostDetailPage extends StatelessWidget { const PostDetailPage({super.key}); @override Widget build(BuildContext context) { print("여기는 상세보기 화면 입니.. 이전 1 2 3 4 5 6 ··· 47 다음