2025/08 9

로컬 커머스) 준비작업1

현존하는 중고거래앱의 기본기능을 구현하고 차별화 지점을 만든다 ◆ 역할분담 1 회원가입 로그인 (1명) (약관? 동의) -> 동의여부 테이블 저장 회원가입시 현재위치로 위치정보 인증 및 저장 2 동네 인증 위치기반 (2명이 같이) 몇키로 반경 api.. 자기 위치를 저장할 수 있게 현재 위치/ 즐찾 위치 3 중고거래 게시판 (1명)상품을 등록하면 위치정보 기록 비회원도 전체/상세 조회 가능 5 커뮤니티 (1명)댓글 좋아요 + 위치정보 비회원도 전체/상세 조회 가능 6 거래관리 판매상태 (거래테이블의 status 칼럼) 4 채팅 (1명)소켓 4-2 알림 SSE 5 뷰(1명) 테이블명_tb pk : id jwt 사용 h2 콘솔 create ◆ 내가 맡게된 부분 백엔드의 회원가입, 로그인, 인증, 예..

Flutter 2025.08.27

로컬 커뮤니티 커머스) 피드백

파이널프로젝트를 위한 기획안 후보를 3개 추렸다.1) 당근의 클론앱2) 러닝크루를 위한 실시간 지도게임앱3) 유튜브 같이보기 앱이 기획안들에 대해 신우철 망고트리 대표님이 피드백을 주셨다."당근으로 가자. 결국 기업이 원하는 것은 커머스다. 다만 차별화된 컨셉과 BM은 꼭 생각해보자. 솔직히 경찰도둑, 유튜브는 게임회사 같은 곳이 아니면 관심 없을거라고 본다. 다만 경찰도둑처럼 쇼핑에 게이미피케이션을 붙이는 시도는 의미가 있다. 특히 당근과 경찰도둑은 GPS기능이 겹친다. M2E 캐시워크 개념과 비슷한데 참고해보자.유튜브 플랫폼도 화상채팅 메타버스 솔루션으로 발전가능성이 있는데 문제는 당신들이 작업량을 감당할수 있느냐 문제다. 커머스 얘기로 돌아와 요즘은 쇼핑몰을 네이버나 카페24가 다 만들어준다고 하는..

Flutter 2025.08.25

플러터) 게시물작성 코드 구조

1️⃣ post_write_form.dart 사용자 인터페이스(UI)를 구성하며 제목과 내용을 입력받는 폼을 제공사용자의 입력 데이터를 받아 PostWriteFormNotifier로 전달하는 중간 연결자class PostWriteForm extends ConsumerWidget { final _formKey = GlobalKey(); final _title = TextEditingController(); final _content = TextEditingController(); PostWriteForm({Key? key}) : super(key: key); @override Widget build(BuildContext context, WidgetRef ref) { return Form(..

Flutter 2025.08.22

통신을 위한 모델과 리포지터리 설계

◆ 모델과 리포지터리의 역할 △ 모델(Model) ① 역할: 서버와 주고받는 데이터의 구조를 정의하는 설계도 역할을 한다. ② 핵심: JSON 데이터를 앱에서 사용할 Dart 객체로 변환하는 역할을 한다. ③ 예시: 서버에서 {"id": 1, "title": "첫 글"}을 보내면, 이 모델을 사용해 Post(id: 1, title: "첫 글") 객체로 만들어 사용한다. △ 리포지터리 (Repository)레포지토리, 레파지토리 등 다양한 표기법이 있는데 국립국어원 외래어표기법에 따르면 리포지터리라고 한다.① 역할: 데이터 통신을 전담하는 관리자 역할을 한다. ② 핵심: - GET, POST와 같은 HTTP 요청 로직을 모두 레포지토리 안에 캡슐화한다. - UI 코드와 서버 통신 로직을 분리하여..

Flutter 2025.08.19

플러터 안드로이드 버전 호환문제 해결방법

백엔드 문서를 바탕으로프론트엔드 구현을 위해 여러 의존성을 도입하려고 했더니로그에 다음과 같은 메시지가 출렸됐다. 너무 최신 도구를 가져와서 썼기 때문인데도구의 버전을 낮추거나안드로이드 버전을 수정해 해결할 수 있다.1) 그레이들 래퍼 파일 수정버전을 올려준다. 2) 세팅 파일 수정역시나 버전을 올려준다. 3) 리빌드터미널을 열어 직접 설정을 재적용해준다.

error note 2025.08.19

플러터에 MVVM 패턴을 적용해 관심사를 분리

기존의 모노리스 monolith...모든 로직과 상태관리를 하나의 파일에 통합 간단한 앱 빠르게 개발 MVVM 패턴 모델-뷰-뷰모델 소프트웨어의 세 가지 핵심 영역인 데이터, UI, 그리고 그 둘을 연결하는 로직을 분리하는 디자인 패턴이다.관심사의 분리(Separation of Concerns) 를 통해 쉬운 유지보수 독립적인 개발 테스트 용이성...등의 이점을 가져갈 수 있다. 예제) 간단한 카운팅 프로그램 변경import 'package:flutter/material.dart';void main() => runApp(CountApp());class CountApp extends StatelessWidget { const CountApp({super.key}); @override Widget bu..

Flutter 2025.08.18

SharedPreferences

Flutter 앱에서 가볍고 간단한 데이터를 영구적으로 저장 앱의 개인 메모장 키-값으로 데이터 저장 사용자 경험 크게 향상 비동기(Asynchronous) 프로그래밍 Null Safety와 기본값 설정 사용하는 법shared_preferences: ^2.5.3import 'package:shared_preferences/shared_preferences.dart'; 예제)버튼을 누르면 카운터에 변수 반영저장하면 현재 카운터값이 영구저장영구저장값은 앱 실행시, 새로고침 클릭시 호출삭제를 클릭하면 영구저장값 삭제import 'package:flutter/material.dart';import 'package:shared_preferences/shared_preferences.dart';void main()..

Flutter 2025.08.13

CRUD 이후 필요한 고급 기능 체크리스트

기능 분류 기능명 중요도 구현 난이도 사용 기술 사전 검토 필요검색 및 필터링키워드 검색☆☆SQL, JPA, Elasticsearch○검색 및 필터링조건 필터☆☆SQL, JPA, QueryDSL○검색 및 필터링카테고리별 조회 SQL, JPA 페이징 및 정렬페이징 처리☆ JPA, Spring Data Paging○페이징 및 정렬정렬 기능 JPA, SQL 권한 및 인증본인만 수정/삭제 가능☆☆Spring Security○권한 및 인증관리자 전체 목록 보기☆☆Spring Security○권한 및 인증공개 범위 제한 Spring Security 태그 및 카테고리스킬태그 등록☆☆JPA, DB 관계설정○태그 및 카테고리태그별 목록 필터링 JPA, QueryDSL 상호작용스크랩/좋아요 DB, JPA 추천 및..

My Project 2025.08.06