분류 전체보기 (236) 썸네일형 리스트형 [SQLAlchemy] 연관관계 설정 ORM 에서는 매핑된 객체들이 서로를 참조하는 구조를 연관관계를 통해서 표현한다. SQLAlchemy 에서는 relationship() 메서드를 사용하여 매핑된 모델 클래스를 정의할 때 연관관계를 표현한다. 연관관계는 1대1, 1대N, N대1, N대M 등의 구조로 이루어져 있다. 1. sqlalchemy.orm.relationship SQLAlchemy 에서는 relationship() 메서드를 사용하여 두 객체 클래스의 연관관계를 지정한다. relationship() 메서드에 연관관계를 맺으려는 클래스의 이름을 입력하여 참조 객체를 생성한다. from sqlalchemy.orm import relationship class User(Base): __tablename__ = "user" # ... tea.. [SQLAlchemy] SQLAlchemy 기본 설명 SQLAlchemy 는 파이썬의 ORM 라이브러리 중 하나이다. 이 글에서는 SQLAlchemy 의 Quick Start 내용을 기반으로 SQLAlchemy 의 기본적인 내용들을 기술한다. 1. Database 연결 - Engine Engine 은 SQLAlchemy 라이브러리의 시작점이다. SQLAlchemy 의 Pool 과 Dialect 기능을 사용하여 실제 Database 에 접근하고 DB API 를 사용할 수 있도록 해준다. 여기서 Pool 은 DB Connection Pool 을 추상화한 클래스로 connect() 를 통해서 DBAPI 연결을 생성한다. Dialect 는 SQLAlchemy 를 여러 종류의 database 와 DB API 들과 연동하여 사용할 수 있도록 하는 역할을 한다. 각 d.. [Spring] Swagger 3.0.0 적용 1. Swagger 란? Swagger 는 간편하게 API Spec 문서를 자동으로 작성하고 이를 편집하여, 화면에 출력할 수 있게 해주는 기능 들을 제공하는 오픈 소스 툴이다. 서버의 API 리스트를 문서화하여 화면에 출력하여 보여주고, 파라미터를 직접 입력하여 API 테스트도 수행할 수 있다. RESTful 하게 구현한 SpringBoot 에도 Swagger 를 적용하여 REST api 들의 문서화와 테스트를 수행할 수 있다. 아래의 예제에서는 Swagger 3.0.0 을 사용하여 Swagger 를 적용하였다. 2. Swagger 설정 Swagger 를 SprintBoot 에 적용하기 위해서는 우선 build.gradle 에 의존성을 추가해주어야 한다. implementation 'io.springf.. [Linux] 리눅스 locale 설정 리눅스 기반의 OS 에서 개발을 진행하다 보면 한글의 인코딩 문제로 에러가 나는 경우가 있다. 파이썬으로 개발을 하던 도중 한글명의 파일을 다룰 때 ascii encoding 과 관련된 에러가 발생했다. 파이썬의 encoding 설정을 확인하기 위해서 sys 모듈의 메서드를 확인했는데, getdefaultencoding() 을 호출하는 경우 utf8 로 설정되어 있지만 getfilesystemencoding() 을 호출하는 경우 ascii 로 되어있는 것을 확인하였다. 이로 인해서 filesystem 의 encoding 설정을 바꾸는 방법을 찾아보았다. 1. locale locale 은 리눅스 명령어이자 사전적으로 장소, 지역 등을 의미한다. 지역에 따라서 해당 코드의 세트, 날짜 및 시간 형식 지정 규.. [JPA] JPQL 경로표현식과 fetch join 1. 경로 표현식 JPA 에서 경로 표현식은 엔티티 객체에 점을 찍어 객체 그래프를 탐색하는 방식을 의미한다. 경로 표현식을 통해서 엔티티가 가지고 있는 값들, 필드에 접근할 수 있다. 경로 표현식을 통해서 접근하는 필드는 기본 값 데이터를 저장하는 상태 필드와 연관관계 매핑으로 연결된 객체를 저장하는 연관 필드로 구분된다. - 상태 필드 단순히 값을 저장하기 위한 필드이다. 더이상 탐색을 할 수 없는 경로 탐색의 마지막 필드이다. # JPQL select m.username, m.age from Member m # SQL select m.username, m.age from Member m - 연관 필드 연관 관계를 저장하는 필드. 연관관계의 매핑 형식에 따라 단일 값 연관 필드와 컬렉션 값 연관 필드.. [JPA] JPQL 기본 문법 1. JPQL JPQL 은 SQL 을 추상화하여 사용하는 객체지향 쿼리 언어이다. 따라서 테이블을 대상으로 하지 않고 엔티티 객체를 대상으로 쿼리를 수행한다. 또한 추상화를 통해서 특정 데이터베이스 SQL 에 의존되지 않게 개발할 수 있다. 실제 수행할 때는 JPQL 로 작성한 쿼리가 매핑정보 등을 통해서 SQL 로 변환되어 DB 에 수행된다. 2. JPQL 기본 문법 JPQL 의 문법은 SQL 과 유사하다. 다만 다른점은 테이블의 이름이 아니라 엔티티의 이름을 사용한다는 것이다. 아래의 예시에서 Member 는 테이블이 아닌 엔티티 클래스의 이름이다. // Member 는 테이블이 아닌 엔티티이다. em.createQuery("select m from Member as m where m.age > 18.. [git] git 브랜치 병합 전략 (merge, rebase) git 을 사용하여 작업을 할 때 기능별로 작업별로 브랜치를 새로 생성하여 작업을 하게된다. 각각의 브랜치는 작업이 끝나면 병합을 진행해주어야 하는데 git 에서는 크게 merge 와 rebase 두가지 방법을 사용한다. 병합 전략이 여러가지인 이유는 병합을 진행한 후에 두 브랜치 간의 commit history 를 어떻게 남길지 선택해야 하기 때문이다. 어떤 전략을 선택하느냐에 따라서 각각의 브랜치에서 작업을 수행한 기록인 commit history 를 하나의 브랜치로 합쳤을 때 어떤 형식과 순서로 기록이 남겨질지 달라진다. 그렇기 때문에 개발자는 자신의 상황과 함께 개발하는 조직에 알맞은 방식을 사용하여서 commit history 가 관리되도록 해야한다. 1. merge merge 는 일반적으로 알.. [Linux] df Linux 에서 현재 디스크의 용량을 확인할 때가 있다. 이때는 디스크의 남은 용량을 화면에 출력하는 명령어 df 를 사용하면 된다. 1. df df 는 'display free disk space' 라는 의미로 파일 시스템의 전체 용량, 사용중인 용량, 사용률, 마운트 위치 등의 정보를 출력한다. 매개변수로 filesystem 또는 file 등을 넘겨주어 특정 파일시스템의 정보만 출력되도록 할 수 있다. filesystem 은 파일 시스템이 위치하는 장치 이름, 파일 시스템이 마운트 된 디렉토리 또는 파일 시스템의 상대 경로 이름으로 지정할 수 있다. 만약 filesystem 이 지정되지 않은 경우 현재 마운트 된 모든 파일 시스템에 대한 정보를 표시한다. 파일이나 디렉토리가 지정되는 경우 해당 파일이.. 이전 1 ··· 5 6 7 8 9 10 11 ··· 30 다음