일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 애니메이션
- MS-SQL
- React JS
- Animation
- Maui
- GitHub
- 바인딩
- 자바스크립트
- 파이어베이스
- page
- Flutter
- HTML
- db
- AnimationController
- typescript
- 리엑트
- MSSQL
- 오류
- .NET
- JavaScript
- 함수
- 플러터
- spring boot
- listview
- 마우이
- Firebase
- Binding
- 닷넷
- MVVM
- 깃허브
- Today
- Total
목록분류 전체보기 (240)
개발노트
JPA를 이용하여 삽입, 조회, 수정, 삭제 등 API 호출 기능을 만들어 보겠습니다. 여기에 ResponsEntity를 이용하여 http 상태코드에 따른 응답도 만들어봅니다. 만들어볼 기능들 예시로 사용될 Ingredient 모델과 리포지토리 Ingredient.java (Model) package com.homebar.apiserver.model; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; @Entity //어노테이션이 있으면 Getter,Setter 자동 생성 @..
Optional 자바 개발자라면 누구나 한 번쯤 NullPointerException(NPE) 문제를 직면하게됩니다. 이런 문제를 해결하기 위한 방법 중 하나가 Optional입니다. NullPointerException을 방지하려면 모든 객체 참조에 대해 null 체크를 수행해야 합니다. 이는 코드를 복잡하게 만들고 가독성을 해치며 실수를 유발할 수 있습니다. Optional은 이 문제에 대한 해결책을 제공합니다. Optional은 값이 존재하지 않을 수 있는 상황을 고려하여 설계된 컨테이너 클래스입니다. Optional로 객체를 감싸고, 값이 존재하지 않을 때 NPE를 방지할 수 있습니다. Optional을 사용하는 이유 명시적인 Null 처리: Optional은 값이 없을 때 명시적으로 처리할 수 ..
JPA로 Data를 가져오기 위한 어노테이션 종류와 함께, 폴더구조(Model - Repository - Service - Controller)와 관계에 대해서 알아봅니다. 최종적으로 엔드포인트로 JSON 데이터를 가져오는 것을 예제로 만들어보겠습니다. 예제는 JPA의 findAll() 메소드를 통해 DB에 있는 Ingredient 테이블에서 모든 재료 데이터를 가져옵니다. 폴더 구조. 구조 설명. Model: 역할: 데이터 모델이나 엔티티 클래스를 정의하는데 사용됩니다. 특징: 모델은 애플리케이션에서 사용되는 데이터의 구조를 정의합니다. DB 테이블(@Table)의 엔터티(@Entity)를 표현하고, 클라이언트와 서버 간의 데이터 교환에 사용됩니다. 주로 Java Beans 규칙을 따르며, 필드, 게터..
1. MySQL 연결과 JPA 사용을 위해 아래와 같이 dependency 를 설정해줍니다. build.gradle org.springframework.boot:spring-boot-starter-data-jpa: Spring Data JPA를 사용하여 데이터베이스와 상호 작용하기 위한 스타터 의존성입니다. JPA(Java Persistence API)를 사용하여 객체-관계 매핑(ORM)을 할 수 있게 해줍니다. org.springframework.boot:spring-boot-starter-web: Spring Web을 위한 스타터 의존성입니다. Spring MVC를 사용하여 웹 애플리케이션을 구축할 수 있게 해줍니다. mysql:mysql-connector-java: MySQL 데이터베이스와의 연결을..
이전에 만들어보았던 Mybatis가 아닌 JPA로 API 서버를 구축하였다. 현재 DB와 연동이 완료된 상태이며, Flutter 소스를 조금 수정하여 http 로 json 데이터를 받아와 UI에 뿌려주면된다. 이번 기회에 http 패키지로 API 서버 통신을 한번 더 구현하였고, 이전 포스팅에서 지금까지 백엔드에 대한 지식이 많이 부족했다라는 것을 알았고 공부하려고한다. Model - Repository - Service - Controller 로 이루어진 구조로 어노테이션을 통해 이부분이 어떤 부분인지를 명시하고 하는 방식들이 새로웠다. Mybatis와 달리 실제 쿼리를 적어 Mapping 하는것이 아니라 메소드로 자동쿼리를 맨들어내 CRUD가 가능했다. 더 공부해서 풀스택 근처라도 가보자. 스프링부트..
아래와 같은 환경에서 API Server를 만들기 위해 무료 버전인 spring initializr 로 프로젝트를 생성합니다. - DataBase : MySQL - API Server: Spring Boot (Gradle), JPA - Application: Flutter - spring initializr 링크: https://start.spring.io/ Gradle / Groovy: 프로젝트를 Gradle로 설정하며, Groovy 언어를 사용합니다. Spring Boot Version: Spring Boot의 버전을 선택할 수 있습니다. 여기서는 3가지 버전이 제공됩니다. Project Metadata: 프로젝트 메타데이터를 설정합니다. Group: 패키지 구조를 나타내는 그룹명으로, com.hom..
http 패키지 Flutter에서 네트워크 요청을 보내고 받는 데 사용되는 가장 일반적인 패키지 중 하나가 http 패키지입니다. 이 패키지는 HTTP 요청을 만들고 응답을 처리하는 데 도움이 되는 다양한 클래스와 함수를 제공합니다. HTTP 패키지의 주요 특징 간단한 인터페이스: http 패키지는 간단한 API를 제공하여 HTTP 요청을 쉽게 생성하고 수행할 수 있습니다. 이를 통해 개발자는 쉽게 네트워크 요청을 관리할 수 있습니다. 비동기 지원: 대부분의 네트워크 작업은 비동기적으로 처리되므로 http 패키지는 Future 기반 API를 제공하여 비동기 코드 작성을 간단하게 해줍니다. 이를 통해 UI를 차단하지 않고 네트워크 요청을 수행할 수 있습니다. HTTP 요청 설정: http 패키지를 사용하면..
1. 소스 컨트롤 클릭 > Clone Repository 클릭 2. 깃허브에 로그인 > 원하는 프로젝트 클릭 > 프로젝트를 저장할 폴더 클릭 첨언: *Flutter Window 환경이랑 Mac 환경이 달라서 오류가 발생할 줄알고 있었다. 체크사항들 flutter --version (플러터 버전 확인) flutter channel (플러터 채널 확인) flutter upgrade 를 둘다 해도 서로 버전이 다르다면 채널이 다를 것이다. 안정화된 버전, 마스터 버전 등 각각 제공하는 최신버전이 다르기 떄문.. 따라서 각각 채널을 먼저 확인하고 맞춘다. 그 다음 flutter upgrade로 최신화 시켜주면 동일한 버전이된다. 그리고, pubspec.yaml 에서 "Ctrl"+ "S" 를 눌러 패키지를 모두 ..
1차적으로 스키마를 구성하였다. 칵테일의 정보나 기타 값을 넣는 것에는 챗 GPT의 도움을 받았으며 추후에 정보를 수정할 예정이다. 원래 하고자했던 ERD와 Table 구성으로 한번에 가기 어렵다는것을 알고 있기 때문에 만들고 수정하여 아래와 같이 도달하였다. 아래 그림은 정규화된 인스턴스 값들을 한번에 보여주기위해 JOIN을 사용하였다. 아래 계획된 ERD에서 build -> mixtype 으로 테이블명 변경, 영어이름, Foreign Key 수정 등 몇번의 작업을 거쳐야했다. 이제 스프링부트로 넘어가 API 서버를 구축하고, Flutter http로 json 데이터를 fetch하면 된다. API Server 구축과 Flutter http 패키지 사용을 이번 중점으로 둬야 하기 때문에 DB는 필요에 따..
일반 칼럼을 추가할 때 ALTER TABLE 테이블명 ADD COLUMN 칼럼명 데이터형 ALTER TABLE cocktail ADD COLUMN mixtype_id INT 외래키 칼럼 추가할 때 ALTER TABLE 테이블명 ADD COLUMN 칼럼명 INT, ADD CONSTRAINT 제약조건명 FOREIGN KEY (칼럼명) REFERENCES 테이블명(칼럼명); ALTER TABLE cocktail ADD COLUMN mixtype_id INT, ADD CONSTRAINT cocktail_ibfk_1 FOREIGN KEY (mixtype_id) REFERENCES mixtype(mixtype_id); *제약조건명은 본인이 정하면 됨