Yun Blog

기술 블로그

스프링 Application Event

해당 코드는 Github를 확인할 수 있습니다. 스프링에서는 Application Event를 재공해주고 있습니다. Application Event Publisher, Application Event Subscriber 방식으로 결합도를 낮춰 느슨한 결합 관계를 갖을 수 있습니다. 시나리오 주문 단계에 (주문, 결제)가 완료되면 주문 완료 이후 ......

스프링 트랜잭션 단위

해당 코드는 Github를 확인할 수 있습니다. 123456789101112@RestController@RequestMapping("/sample")class SampleController( private val aRepository: ARepository, private val bRepository: BRepository......

스프링 Immutable으로 Properties 설정하기

해당 코드는 Github에 공개되어 있습니다. Spring Boot 2.2 버전에서부터는 Immutable으로 Properties 설정을 할 수 있습니다. 커스텀 하게 설정한 값들은 Properties 객체로 관리하는 것이 좋습니다. 해당 내용은 Properties 설정값 가져오기를 참조하시면 됩니다. 기존 Properties의 단점은 Mutable이......

Junit5 with Spring boot

해당 코드는 Github를 확인해주세요. Spring boot 2.2 버전부터는 Junit5 디펜던시를 기본으로 포함하고 있습니다. Junit5 주요 테스트 어노테이션과 Spring boot에서 활용법을 정리해보았습니다. @ValueSource @ValueSource어노테이션을 사용하면 배열을 값을 테스트 메서드로 손쉽게 전달할 수 있습니다. 12......

JPA N+1 발생원인과 해결방법

해당 코드는 Github를 확인할 수 있습니다. JPA를 사용하다면 보면 N+1문제를 많이 만나게 됩니다. 그에 따른 발생 원인과 해결법을 정리해보았습니다 ERD 12345678910111213141516171819@Entity@Table(name = "member")class Member private constructor() { ......

IntelliJ Execute Gradle task로 Gradle를 쉽게 사용하자

IntellIj를 이용하면 Gradle Task의 명령어 assistant 해주는 기능을 통해서 보다 쉽게 Gradle을 사용할 수 있습니다. 설정 방법 Find Action에서 Execute Gradle Task을 열어 볼 수 있습니다. 단축키를 지정해서 사용하는 것을 권장드립니다. Keymap -> Execute Gradle Task -&......

Mysql Explain

해당 글은 MySQL 5.7 완벽 분석을 정리한 내용입니다. MySQL 옵티마이저 구조 MySQL 옵티마이저는 비용 기반으로 어떤 실행 계획으로 쿼리를 실행했을 때 비용이 얼마나 발생하는지를 계산해하여 비용이 가장 적은 것을 택하게 됩니다. 어디까지나 추정 값이므로 정확한 비용은 실행 전까지 정확하게는 알 수 없습니다. EXPLAIN EXPLAI......

ConstraintValidator을 이용해서 효과적인 검증

코드는 Github에 공개 되어있습니다. 스프링에서는 JSR 303 기반 어노테이션 기반으로 일관성 있는 Validation을 진행할 수 있습니다. 하지만 @NotNull, @NotEmpty, @Email과 같은 검증은 가능하지만 비즈니스적에 맞는 Validation은 별도로 진행해야 합니다. 예를 들어 주문에 대한 결제 정보를 받는 경우 카드 결......

Utterances 적용하기

Utterances 소개 Utterances는 GitHub Issue 기반으로 Comment를 작성할 수 있게 해줍니다. Utterances의 장점 GitHub Issue 기반이기 때문에 블로그 플랫폼을 이전해도 기존 Comment을 그대로 가져갈 수 있음 개발 블로그 라면 Github 계정으로 댓글을 작성할 수 있기 때문에 사용성이 용이함 뭔가 있......

생산성 향상 - 비기는 없다

들어가기 앞서 생산성에 대해서 더 정확히는 생산성을 위해서 많은 것들을 도입하는데 왜 다 실패하는 것인지에 대해서 이야기해보고 싶다. 나는 2016.05 년부터 사회에 나와서 이제 3년 2개월 정도 프로그래밍 경험이 있다. 이런 짧은 경험으로 생산성과 프로세스에 대해서 논하는 게 조금은 부끄럽지만 내 생각을 한번 글로 정리해보고 싶어 이렇게 포스팅을 ......