일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- k8s
- 김영한
- 스프링 핵심원리
- java
- kubernetes
- 이차전지관련주
- Sort
- 이펙티브 자바
- Effective Java 3
- 코딩테스트
- 엘라스틱서치
- 알고리즘
- 예제로 배우는 스프링 입문
- 카카오
- 클린아키텍처
- 스프링부트
- 스프링핵심원리
- 카카오 면접
- 알고리즘정렬
- ElasticSearch
- effectivejava
- 자바
- 스프링
- Spring
- 이펙티브자바
- 자바스크립트
- 오블완
- 티스토리챌린지
- Effective Java
- JavaScript
- Today
- Total
목록개발 (125)
Kim-Baek 개발자 이야기
Fetch Type 이란 Fetch Type 은 JPA 가 하나의 Entity 를 조회할 때, 연관관계에 있는 객체들을 어떻게 가져올 것이냐를 나타내는 설정값입니다. Fetch Type 은 크게 Eager 와 Lazy 두가지 전략이 있습니다. Fetch Type Issue 상황이라는 것은 하나의 Entity 를 로드할 때, 아래의 두가지 전략 중 고민하는 상황을 말합니다. 연관 관계에 있는 Entity 들 모두 가져온다 → Eager 전략 연관 관계에 있는 Entity 가져오지 않고, getter 로 접근할 때 가져온다 → Lazy 전략 N+1 문제는 이럴 때 발생합니다. ManyToOne, OneToOne 컬럼의 FetchType 을 LAZY 로 하였을 경우 발생합니다. 이렇게 하위 엔티티들을 첫 쿼리..
JPA란? ORM vs Sql Mapper 차이점 JPA ( Java Persistent API )와 ORM ( Object Relational Mapping ) JPA란 자바 ORM 기술에 대한 API 표준 명세를 의미합니다. JPA는 ORM을 사용하기 위한 인터페이스를 모아둔 것이며, JPA를 사용하기 위해서는 JPA를 구현한 Hibernate, EclipseLink, DataNucleus 같은 ORM 프레임워크를 사용해야 합니다. Persistence Framework는 SQL Mapper와 ORM으로 나눌 수 있다. ORM은 데이터베이스 객체를 자바 객체로 매핑함으로써 객체 간의 관계를 바탕으로 SQL을 자동으로 생성해주지만 SQL Mapper는 SQL을 명시해줘야 한다. ORM은 관계형 데이터베..
1. JPA 트랜잭션의 전파방식, 격리 수준에 대한 설명 @Transactional을 클래스 또는 메써드 레벨에 명시하면 해당 메써드 호출시 지정된 트랜잭션이 작동하게 된다. 단, 조건이 있다. 해당 클래스의 Bean을 다른 클래스의 Bean에서 호출할 때만 @Transactional을 인지하고 작동하게 된다.(같은 빈 내에서 @Transactional이 명시된 다른 메써드를 호출해도 작동하지 않는다.) Spring Framework는 내부적으로 AOP를 통해 해당 어노테이션을 인지하여 프록시를 생성하여 트랜잭션을 자동 관리하기 때문이다. Propagation.REQUIRED @Transactional(propagation = Propagation.REQUIRED) 특정 메써드의 트랜잭션이 Propaga..
Spring 앱을 만들다보면 로그를 저장하고 확인해야 할 일이 많다. 앱을 띄우고, 하나의 파일에 로그를 쌓다보면 무한정 커지게 되고, 나중에는 로그 파일을 여는 것 조차 오래걸리는 문제가 발생한다. 또, 앱을 재시작하면, 동일 파일에 로그가 남기 때문에, 이전 로그가 날아가는 문제 또한 생긴다. 이를 해결하기 위해 Spring 에서 logback 설정을 하여, daily 로 rolling 로그를 남길 수 있다. src/java/resources 폴더 아래에 logback.xml 파일을 만든다. 파일의 예시로는 true /home/marble_admin/container-deploy/logs/application.%d{yyyy-MM-dd}.%i.log 30 50MB 1GB INFO %d{yyyy:MM:d..
1. Filezilla 사용 - 기본적으로 가장 많이 사용하는 방식이였음 - UI를 통해서 드래그 앤 드랍으로 가장 편하게 사용한 형식이였다 - sftp 방식 2. 리눅스의 scp 명령어 - scp [파일명] [로그인할 계정]@[아이피]:[보낼 위치] - scp 명령어가 더 빠른지는 모르겠으나, 명령어를 알면 편하게 보낼 수 있다 - scp를 사용할 경우, 해당 인스턴스에 계정 및 비밀번호로 접근하게 되는데, ppk 같은 인증을 사용할 경우 scp -C i- [key] -r [파일명] [계정명]@[보낼 아이피]:[파일 보낼 경로] 를 쓸 수 있다. 여기서 key의 경우, ppk를 사용할 수 없고 pem으로 변환하여 사용해야 한다. 이를 위해서 리눅스에서는 putty를 설치하여 변환하고 사용하면 된다. s..