application.yml은 깃허브나 외부로 절대 유출되어서 안되는 파일이다. 따라서 배포를 위해서는 .gitignore를 통해 깃허브에 커밋되지 않도록 하는 것이 기본이다. 1. git 인덱스 리셋: 이 명령어는 현재 디렉토리의 모든 파일을 Git 인덱스에서 제거하지만, 실제 파일은 삭제하지 않음 git rm -r --cached . 2. 변경사항 추가: 이 과정에서 .gitignore에 명시된 파일은 제외됨. git add . 3. 커밋 생성: 변경사항 커밋 git commit -m "update .gitignore and reset cache" 4. 원격 저장소 푸시 git push
왜 엔티티를 직접 사용하지 말고 DTO를 사용해야 하는 걸까? - DTO와 Entity 구분 DTO(Data Transfer Object): 클라이언트와 서버 간 데이터 전송을 위해 설계된 객체 Entity: 데이터베이스에 저장되는 데이터 객체로, 데이터베이스와 직접적으로 연결 - Entity를 직접 반환할 경우 생기는 문제점 필요한 데이터만 전송하기 어렵다. 엔티티를 직접 반환하면 엔티티에 존재하는 모든 데이터가 반환된다. 모든 데이터를 반환하게 되면 트래픽이 증가할 수 있으며 성능 및 비용면에서도 현저한 차이를 가져올 수 있다. 즉, 사용자가 필요로 하는 데이터만 전송하기 어려움이 있다. 이로 인해 불필요한 데이터를 사용자에게 전달될 수 있다. 보안 문제가 생긴다. 엔티티를 반환하면 테이블을 공개하는..
@Entity와 @Table은 JPA (Java Persistence API)에서 사용되는 어노테이션(Annotations)으로, 엔티티 클래스와 데이터베이스 테이블과의 관계를 설정하는 데 사용됩니다. 각각의 역할과 차이점을 아래와 같이 설명할 수 있습니다. @Entity @Entity 어노테이션은 클래스가 JPA 엔티티임을 나타냅니다. 이것은 해당 클래스가 데이터베이스 테이블에 매핑될 것이라는 것을 의미합니다. 이 어노테이션은 클래스 수준에 적용되며, JPA가 해당 클래스의 인스턴스를 엔티티로 관리하도록 합니다. @Entity가 적용된 클래스는 반드시 식별자(Primary Key)를 가지는 필드를 포함해야 합니다. 이는 @Id 어노테이션으로 표시됩니다. @Table @Table 어노테이션은 엔티티가 매..
자동 import Intellij Setting(Ctrl+Alt+S) -> import 검색 -> Add unambiguous imports on the fly 체크 후 적용 그런데, 자동 import설정을 했어도 아래와 같이 import 할 동일한 class 이름이 두 개 이상일 때는 직접 선택을 해야함 자동 import 삭제 아까 전에 본 자동으로 import를 설정한 곳 체크박스 바로 아래 optimize imports on the fly intellij 체크 후 적용 참고 https://www.jetbrains.com/help/idea/creating-and-optimizing-imports.html#exclude-from-auto-import Auto import | IntelliJ IDEA w..
더보기 git clone --bare [복사할 저장소의 git 주소] git push --mirror [새로운 저장소의 git 주소] 여기서 가져오면서 The requested URL returned error 에러 발생하여 구글링 해보니 해당 주소에 접근 권한이 없어서 발생하는 에러라고 한다. 해결 방법 1. git remote -v 2. git remote set-url origin https://[YourUserGitName]@github.com/[RepositoryGitName]REPOSITORY.git (우선 remote 확인 후 옮기려고 하는 레파지토리로 remote 변경) 이랬는데도 unable to access~라고 뜨길래 SSH key 등록 방법을 찾으면서 SSH에 대해서도 검색해보았다...
FastAPI와 SQLite 데이터베이스를 연결하고 API 경로에서 데이터를 조회하기 위해 FastAPI를 사용하게 되었다. 1. 개요 fastAPI란? 파이썬 3.6부터 제공되는 트랜디하고 높은 성능을 가진 파이썬 프레임워크 위에서 알 수 있듯이 FastAPI는 파이썬 프레임워크이다. 우리가 알고 있는 기존에 가장 대중적으로 사용되고 있던 파이썬 프레임워크는 Django, Flask이다. 비교적 가벼운 웹개발이라면 Flask를 사용했고 조금 더 볼륨있는 프로젝트라면 Django를 사용했다. 하지만, 이 쌍둥이 타워 사이에 "조작법은 단순하면서도 성능적으로는 우세함을 보장한다"는 FastAPI라는 녀석이 비집고 들어온 것이다. FastAPI의 특징에 대해 정리해본다면 아래와 같다. API 문서 자동 생성..
* 트랜잭션이란? - 데이터베이스의 상태를 변경하고자 할 때, 한번에 수행되어야 하는 연산을 의미하고 예외 발생시 rollback 처리를 자동으로 수행함 - 쿼리문중 insert, select, update, delete 등의 동작들의 작업 단위를 트랜잭션이라고 함 - 어떤 한 서비스 로직 안에 서로 다른 엔티티의 값을 변경한다고 예를 들면 A 엔티티 속성이 바뀌고 B 엔티티 속성이 바뀌기 전에 에러가 나게 되면 A 엔티티 속성을 다시 전으로 돌려줘야 함(ACID에 근거) → 그래서 데이터가 바뀌는 곳에는 @Transactional 어노테이션을 붙여 트랜잭션을 처리한다 * @Transaction의 readOnly 속성 - 트랜잭션을 읽기 전용으로 설정하는 속성 - default 값이 false * 조회한..
1. 싱글톤 패턴이란? 애플리케이션이 시작될 때, 어떤 클래스가 최초 한 번만 메모리를 할당(static)하고 해당 메모리에 인스턴스를 만들어 사용하는 패턴입니다. 정리하자면, '하나'의 인스턴스만 생성하여 사용합니다. 싱글톤 패턴 구현 방법에는 여러가지가 있지만, 객체를 미리 생성하고 가져오는 가장 단순하고 안전한 방법을 사용한 코드입니다. public class Singleton { private static Singleton instance = new Singleton(); private Singleton() { // 생성자는 외부에서 호출못하게 private 으로 지정해야 한다. } public static Singleton getInstance() { return instance; } publi..