분류 전체보기 75

build.gradle > dependencies 의존성 옵션

- Compile 시점 의존성 : 프로젝트를 컴파일할 때 사용, 해당 라이브러리의 API 사용 가능- Runtime 시점 의존성 : Application을 실행할 때 사용, 실행 시에도 라이브러리 필요- 은닉성 : 'implementation'으로 추가된 의존성은 다른 프로젝트 모듈에서 직접 접근불가 (모듈간 캡슐화) implementation직접적인 의존성을 추가할 때 사용특정 라이브러리나 모듈이 컴파일 시에 필요하고 프로젝트 외부로 공개될 필요가 없는 경우 runtimeOnlyRuntime 시점에만 필요한 라이브러리를 추가할 때 사용ex. Logging, DB 관련 라이브러리 등 testImplementation테스트 코드를 수핼할 때 적용할 라이브러리를 추가할 때 사용라이브러리나 빌트인 DB를 테스..

TIL 2024.10.01

JPA 연관관계

@OneToOne일대일 관계를 나타내는 매핑 정보1:1 관계를 지정하기에 앞서 이것이 꼭 물리적으로 테이블이 분리되어야 하는지에 대해 생각해 봐야 합니다.1:1 관계로 구성 한다는 것은 결국 하나의 목적에 부합되는 공통된 데이타를 관리한다고 볼 수 있으며 이것은 하나의 테이블에서 관리 할 수 있는 데이타일 가능성이 높다는 의미입니다.즉, 의도적 중복이 아니라면 사용할일이 없다는 말의도적 중복 예시) 버블 구독상품을 사서 채팅방이 생길경우. 구독상품과 채팅방은 1:1 관계 @OneToMany일대다 관계를 나타내는 매핑 정보@OneToMany가 단방향으로 쓰이면 문제가 발생할 수 있다.속도를 위해 기본적으로 FetchType 설정이 LAZY 로 설정되어 있습니다.속성mappedBy : 연관관계의 주인 필드를..

TIL 2024.10.01

트랜잭션의 3가지 특징 (원자성, 일관성, 독립성)

원자성 (All or Nothing)트랜잭션이 데이터베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야 한다는 것이다.트랜잭션은 사람이 설계한논리적인 작업 단위로서, 일처리는 작업단위 별로 이루어 져야 사람이 다루는데 무리가 없다.만약 트랜잭션 단위로 데이터가 처리되지 않는다면, 설계한 사람은 데이터 처리 시스템을 이해하기 힘들 뿐만 아니라, 오작동 했을시 원인을 찾기가 매우 힘들어질것이다.일관성 (Keeps Data Correct)트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다는 것이다.트랜잭션이 진행되는 동안에 데이터베이스가 변경 되더라도 업데이트된 데이터베이스로 트랜잭션이 진행되는것이 아니라,처음에 트랜잭션을 진행 하기 위해 참조한 데이터베이스로 진행된다.이렇게 함으로써 각 사용자는 일관..

면접준비 2024.09.28

참조타입 Boolean 기본값 문제

@Column(nullable = false)private Boolean popularity;Menu엔티티의 인기메뉴 상태를 관리하는 컬럼인 ‘popularity’를 참조타입으로 선언하여 메뉴 등록시 기본값 적용이 안되는 에러 발생@Column(nullable = false)private boolean popularity;Null값을 가질 수 없는 컬럼이기 때문에 원시타입으로 변경하여 데이터의 복잡성을 낮추고 별도의 초기화 없이 기본값 설정이 가능함

트러블슈팅 2024.09.24

객체지향 프로그래밍의 네가지 특징 : 추상화 상속 다형성 캡슐화

객체지향 프로그래밍 (Object-Oriented Programming, OOP)실제 사물처럼 객체의 특징과 행동을 필드와 메소드로 표현하는 방법코드의 재사용유연성과 확장성유지보수대규모 프로젝트 관리추상화 (Abstraction)객체의 공통적인 특징과 행동을 추출하여 정의함공통된 속성을 추상화 해두면 고유 기능 개발에 대한 집중이 가능함경적메소드 -> 뛰뛰와 빵빵으로 각각 구현상속 (Inheritance)상속받은 부모클래스의 특징과 행동을 모두 사용할 수 있듬엑셀을 밟으면 전진을 한다 -> 모든 회사의 자동차가 동일함다형성 (Polymorphism)상황에 따라 다양한 형태를 가질 수 있는 성질오버로딩과 오버라이딩캡슐화 (Encapsulation)외부로부터 클래스에 정의된 필드와 메소드를 보호하여 각 객체..

면접준비 2024.09.20