FrameWork 56

FrameWork/Flutter
visual studio code에서 flutter 코드 정렬 할 때, 위젯 별로 정렬되지 않은 문제 해결하기

1. 문제main.dartimport 'package:flutter/material.dart';void main() { runApp( const MaterialApp(home: Scaffold(body: Center(child: Text("hello world"),),),), );}# 코드 포맷터 사용 후import 'package:flutter/material.dart';void main() { runApp( const MaterialApp(home: Scaffold(body: Center(child: Text("hello world")))), );}# 내가 원하는 것import 'package:flutter/material.dart';void main() { runApp( c..

FrameWork/Django
장고 개발 환경에서 프로세스 2개가 실행되는 이유

django에서 프로세스 2개가 실행되는  이유최근에 django에서 스케쥴러를 공부하고 있었는데, 스케쥴러를 장고 앱에 등록하고, "python manage.py runserver"로 서버를 실행했는데 출력이 2번 일어나는 현상을 보게 되었다. 이는 프로세스가 2개가 돌아가고 있다는 것인데,  해당 이유를 찾기 위해서 구글을 통해 정보를 찾아보기 시작했고 스택오버플로우에 문제에 대한 대답을 들을 수 있었다.   Why django runserver command starts 2 processes? What are they for? And how to distinguish between each in the code?While building some standalone Django app, which ..

FrameWork/Django
유저 커스텀 모델 사용하기

유저 커스텀 모델 사용하기 Django에서는 유저 모델을 기본적으로 제공하고 있다.  django.contrib.auth.models.User에 보면 장고의 유저 모델은 다음과 같이 명시되어 있다.  📁 django.contrib.auth.models.Userclass User(AbstractUser): class Meta(AbstractUser.Meta): swappable = 'AUTH_USER_MODEL' 아래는 User 모델에서 사용하고 있는 속성들이다. username = models.CharField()first_name = models.CharField()last_name = models.CharField()email = models.EmailField()is_staff ..

FrameWork/Django
Django에서 static, media 관리하기

static, media 폴더 관리하기장고에서는 static, media와 같이 용도에 맞는 파일을 제공하기 위해서 settings.py에서 파일을 제공하는 경로를 비롯한 설정을 할 수 있다. 여기서 나오는 static, media의 폴더들은 다음과 같은 역할을 지닌다. static: 주로 장고에서 제공하는 정적 파일을 관리할 때 주로 사용한다. (html, css, javascript)media: 유저로부터 받은 파일을 저장하거나 제공할 때 주로 사용한다. 로컬 파일에서 static, media을 사용할 때는 프로젝트의 시작 urls.py에 static, media 경로를 입력해 사용한다.  🛣️ urls.pyfrom django.contrib.auth import settingsfrom django..

FrameWork/Django
N + 1 쿼리 문제

오늘은 n + 1 문제에 대해서 알아보고자 한다.   N + 1 문제연관관계에서 발생하는 문제로, 연관 관계가 설정된 엔티티를 조회할 경우에 데이터 개수(N)만큼 연관관계의 조회쿼리가 추가로 발생하여 데이터를 읽어오게 되는 문제를 말한다.   예를 들어 아래처럼 각 모델과 연관관계를 설정해 두었다고 가정한다. from django.db import modelsclass Post(models.Model): title = models.CharField(max_length=20) contents = models.TextField()class Comment(models.Model): contents = models.TextField() post = models.ForeignKey("Post..

FrameWork/Django
select_related와 prefetch_related

오늘은 select_related와 prefetch_related에 대해서 정리해보고자 한다. 해당 주제를 다루기 전에 Django의 ORM 특징과 쿼리 셋에 대해서 알고 가면 좀 더 이해에 도움이 된다. https://jheaon.tistory.com/274 Django ORM과 QuerySet오늘은 Django의 ORM과 QuerySet에 대해 알아보고자 한다. Django ORM과 QuerySetORM (Object Relational Mapping)ORM이란 Object Relational Mapping의 약자로 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해 주jheaon.tistory.com  정참조, 역참조일단 설명하기전에, 다음과 같이 모델이 정의되어 있다고 가정한다. from dja..

FrameWork/Django
orm과 queryset

오늘은 Django의 ORM과 QuerySet에 대해 알아보고자 한다. Django ORM과 QuerySetORM (Object Relational Mapping)ORM이란 Object Relational Mapping의 약자로 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해 주는 기술을 의미한다. 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 SQL 쿼리문 없이도 데이터베이스 데이터를 다룰 수 있게 해 준다. QuerySetQuerySet이란 데이터베이스에서 전달받은 객체들의 모임을 말한다.  Django에서는 ORM을 사용하여 각 객체를 관계형 데이터베이스와 매핑해서 사용하는데 이때 모델과 데이터베이스 간의 연산을 수행하기 위해 모델매니저(Model Manager)가 존재한다. 이때 사용..

FrameWork/Spring
연관관계

오늘은 연관관계에 대해서 알아보고자 한다.   연관관계연관관계란 객체와 데이터베이스 테이블을 서로 매핑(매칭)시켜주는 것을 의미한다.  방향객체들이 연관관계를 맺을 때, 한쪽에서만 참조가 가능한지 양방향에서 참조가 가능한지에 대한 방향을 의미한다. 일반적으로 DB테이블간에는 어떤 테이블을 기준으로 하든 원하는 정보를 JOIN을 사용하여 조회가 가능하기 때문에 방향이라는 개념이 없지만, 객체 지향에서는 다른 객체에서 또 다른 객체를 조회하기 위해서 조회하고자 하는 객체의 정보를 가지고 있지 않으면 조회가 불가능하기 때문에 조회를 하기 위해서 방향을 설정해주는 것이 중요하다.  단방향 : 객체들이 연관관계를 맺을 때, 한쪽에서만 참조 가능한 경우 양방향 : 객체들이 연관관계를 맺을 때, 양쪽에서 참조 가능한..

FrameWork/Spring
RestTemplate

오늘은 ResetTemplate에 대해서 알아보고자 한다.   RestTemplateRestTemplate은 Spring Framework에서 Restful HTTP 요청을 위해 제공하는 클래스이다. 주로 아래와 같은 상황때 사용한다. Spring Boot 애플리케이션이 외부 RESTful API와 상호작용해야 할 경우다양한 목적으로 다른 웹 서비스의 데이터를 가져와야할 경우복잡한 구성없이 HTTP 클라이언트를 구축하는 간단한 효율적인 방법을 원하는 경우 작동은 다음과 같이 진행된다. 1. 어플리케이션이 RestTemplate을 생성하고, URI, HTTP 메소드 등을 헤더를 담아 요청한다.2. RestTemplate는 HttpMessageConverter을 사용하여 requestEntity를 요청 메세..