ELK랑 씨름한날

오늘은 ELK랑 씨름했다. 왜냐면 내가 지금 해외에 있으니까 씨름했다. 우선 지금 개발할 때 쓰는 건 5년 넘은 맥북 듀얼코어에 8기가인데 프로젝트를 MSA로 하니까 서비스만 5개를 돌리고 도커 안에 컨테이너도 여러개 띄우고 카프카도 키고 하니까 하루도 빠짐없이 비행기 이륙을 시도한다. 거기다 elk가 필요하게 됐는데 맨날 이륙하는 맥북에 뭔가를 더하기 싫어서 한국 집에 있는 rpi에 elk 설치를 시도했다. 결국엔 되긴 했는데 ek만 됐다 l빼고ㅋㅋ ek는 rpi에 깔고 logstash는 맥에 깔았다. 그리고 연결하는 데 애를 좀 먹었다....

January 14, 2022

@Authenticationprincipal에 대하여

@Authenticationprincipal !이 어노테이션은 Package org.springframework.security.core.annotation 에 있는 어노테이션 입니다. docs.spring.io에서 확인해 보면 이 어노테이션은 Authentication.getPrincipal()메서드 인수를 확인하는 데 사용된다고 하는데 Authentication 인터페이스에 대해서는 다음에 다루고 우선 이 메서드만 확인해 보게 되면 getPrincipal 인증 중인 주체의 ID입니다. 사용자 이름과 비밀번호가 있는 인증 요청의 경우, 이 사용자 이름이 됩니다. 호출자는 인증 요청의 주체를 채워야 합니다. AuthenticationManager 구현체는 응용 프로그램에서 사용할 수 있는 주체로서 더 풍부한 정보를 포함하는 인증을 반환하는 경우가 많습니다. 많은 인증 공급자가 UserDetails 개체를 주체로 만듭니다....

January 14, 2022

JPA 다중 매핑 엔티티 Querydsl 없이 Join 하기

이번 게시물은 JPA를 사용할 때 querydsl 없이 여러 엔티티를 join 하는 방법이다. 단 조건으로 엔티티 중 다른 엔티티 간의 중개자 역할을 하는 엔티티가 필요하다 매핑이 되어 있어야 한다. 코드로 보자 @Entity public class Company { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @OneToMany(mappedBy = "company", fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) @JoinColumn(name = "company_id") private List<Product> products = new ArrayList<>(); @OneToOne(mappedBy = "company", fetch = FetchType....

January 13, 2022

JPA N+1문제와 @EntityGraph

JPA N+1은 많이 겪어본 문제일듯한데. 쉬운 방법으로 해결하는 fetch join 방법을 소개한다. 우선 기본적으로 많이 쓰이는 3가지를 소개한다. @NamedEntityGraph 와 @EntityGraph 를 사용해 해결하기 Querydsl 을 사용해 해결하기 JPQL 을 사용해 해결하기 나는 여기 중에서 1번과 비슷하게 사용하는 방법을 소개한다. 코드를 보자 우선 Entity 클래스들부터 보자 Company와 Product가 있다. @Entity public class Company { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @OneToMany(mappedBy = "company", fetch = FetchType....

January 13, 2022

TheCarbtoon 개발일지 - 1

나는 최근 카툰을 볼 수 있는 서비스를 만들고 있다. 이름은 TheCarbToon. 스프링 클라우드를 사용해 서비스들을 묶어 개발을 진행 중이다. |-------------------------------------------| | | | Auth(java)---\ | | | \ | | | \ | | User(java)-------------- Gateway(java) | | | / | | | | / | | | Media(kotlin)-/ | | | | | | | | | | | Discovery(java) ------------| | | | |-------------------------------------------| 현재 진행은 이러하고 서비스가 추가될 수도 있다고 생각한다....

January 12, 2022