반응형

Spring 8

Spring Camp - 테스트 코드에 대하여

테스트 코드의 중요성은 진작에 알고 있었으나, 언제 적용하나? 적용하려면 어떻게 공부하지 막막하던 참에 직장 동료분께서 추천해주시어 영상을 보고 내용이 너무 좋아 정리하게 되었습니다. www.youtube.com/watch?v=YdtknE_yPk4&list=PLdHtZnJh1KdaM0AfxPA7qGK1UuvhpvffL&index=12 왜 작성해야하는가? 가장 큰 이유는 안정감과 자신감입니다. 테스트 코드는 코드에 대한 가장 빠른 피드백을 줄 수 있는 도구입니다. 내가 작성한 코드 대해서 버그를 미리 대비하고 수정을 하였을 때 버그가 없는지 피드백을 해줍니다. 이러한 이유로 안정감과 자심감이 생겨 배포를 자신있게 할 수 있게됩니다. 모든 케이스에 대해 작성 지금은 발생하지 않겠지만 코드 수정으로 발생할 수..

Study/test 2021.03.09

@Autowired vs @Inject vs @Resource

가장 많이 사용하는 @Autowired는 뭘까? 그와 비슷한 @Inject, @Resource는 무엇일까? 오늘 재직중인 회사에서 재미있는 여러가지 키워드를 들었습니다. 궁금한 건 못참으니 학습하여 정리해보겠습니다. 먼저 위에 3가지의 공통점은 의존 관계를 맺어주는 것을 말합니다. 해당 애노테이션을 사용한 후 클래스를 선언하면 작성한 클래스와 작성된 클래스는 의존 관계가 맺어지게 됩니다. @Component public class Load { @Autowired private SuperCar superCar; // superCar class DI @Inject private GoodCar goodCar; // GoodCar class DI } 다음으로 3가지의 차이점으로 아래의 표를 참조해주세요. @Au..

Study/spring 2021.02.18

[Querydsl] Querydsl을 적용하며.. class 파일명 주의

querydsl을 적용한 프로젝트를 진행하면서 나온 이슈를 정리해보겠습니다. JPARepository에서 Querydsl을 사용할 수 있게 Custom(interface), impl 로 세팅이 되어있었습니다. 세팅방법은 여기를 참조해주세요. 데일리 미팅 도중 Custom Interface의 naming을 변경이 확정되었습니다. AS-IS : CustomizedDomainRepository TO-BE : DomainQueryRepository Customized란 단어는 너무 포괄적이어서 변경하기로 결정! 증상 Class명을 변경하고 Application을 실행하자 에러가 발생하였습니다. No property search found for type Staff! Staff는 Entity 객체입니다. 구현 된..

Develop/spring-data 2020.12.18

Spring Triangle [IoC, AOP, PSA] - 3탄 PSA편

Java개발자로 전향한지 4년차가 되었습니다. 문득 저에 대해서 돌아보는 시간을 강제로 갖게되었고 난 개발자로써 살아가고 있는가에 대해서 궁금해졌습니다. 1편 IoC편 2편 AOP편 3편 PSA편 모든 소스는 github에 올려두었습니다. 나에게 질문을 해보았습니다. 기초는 튼튼한가? 자바에 대해서 얼만큼 알고 있지? Spring은? 블로그를 시작한지 한달이 조금 넘어가는 시점에서 다시 개념을 정리하고 복습하는 의미에서 되돌아가기로 하였습니다. 이번 글에서는 Spring Triangle 중 하나인 PSA에 대해서 정리해보겠습니다. PSA란? Portable Service Abstraction 그대로 번역하자면 호환성있는 서비스 추상화이다. 무슨 의미야 한국말인데 무슨말이야? 조금 더 이해하기 쉽게 설명하..

Study/spring 2020.12.15

Spring Triangle [IoC, AOP, PSA] - 1편 IOC편

Java개발자로 전향한지 4년차가 되었습니다. 문득 저에 대해서 돌아보는 시간을 강제로 갖게되었고 난 개발자로써 살아가고 있는가에 대해서 궁금해졌습니다. 1편 IoC편 2편 AOP편 3편 PSA편 모든 소스는 github에 올려두었습니다. 나에게 질문을 해보았습니다. 기초는 튼튼한가? 자바에 대해서 얼만큼 알고 있지? Spring은? 블로그를 시작한지 한달이 조금 넘어가는 시점에서 다시 개념을 정리하고 복습하는 의미에서 되돌아가기로 하였습니다. 이번 글에서는 Spring Triangle 중 하나인 IoC에 대해서 정리해보겠습니다. IoC란? Inversion Of Control 그대로 해석하자면 제어의 역전입니다. 말 그대로 제어를 역전시키는 방법입니다. 개발자는 소스로 얘기하자는 주의라서 예제소스를 작..

Study/spring 2020.12.13

[Querydsl] Querydsl 사용방법 3가지

직장 동료의 조언 덕분에 Querydsl 설정 방법에도 여러가지가 있다는 것을 알았습니다. 지난번에 작성한 Spring Data JPA 기반 Querydsl 사용해보자. ( Entity 관계 매핑 편, 테스트 코드 포함 )글에서는 QuerydslRepositorySupport를 상속받아 사용하는 방법에 대해서 작성하였습니다. 이번글에서는 이 것외에도 2가지가 더 있고 어떤 것을 선택했는지까지 작성하겠습니다. 모든 소스는 Github에 있습니다. 이동욱님의 티스토리를 참조해서 작성하였습니다. (https://jojoldu.tistory.com/372) Querydsl 사용방법 3가지 QuerydslRepositorySupport 상속받아 사용 JpaRepistory에서 Querldsl 사용 가능하도록 설정..

Develop/spring-data 2020.12.07

Spring batch 스케줄 생성! [Jenkins]

이전글에서는 Spring Batch를 만들었습니다. 이번 글에서는 생성된 Spring Batch를 Jenkins로 스케줄 설정하여 실행시켜 보겠습니다. 이 글은 작성하기에 앞서 우아한 형제들 이동욱님의 티스토리를 참조하여 작성하였습니다. 다양한 방법 스케줄에도 다양한 방법이 있습니다. Linux Cron Quartz Cloud Serverless Spring Batch Admin CI Tool Choice 위처럼 다양한 방법이 있지만 CI Tool Jenkins를 사용하였습니다. Linux Cron : 정상적으로 배포했는지 어떻게 알지?? 로그 다 열어봐야하나.. Quartz : 스케쥴링 시간 변경할때마다 소스 수정하고 재배포하고 또 테스트 하고 싶으면 다시 수정하고 배포하고 또 수정하려면 배포하고 수정..

Spring Batch 란? (예제 소스 포함)

작성한 내용은 우아한 형제들의 이동욱님 블로그, 세미나를 참조해서 작성하였습니다. 테스트 및 적용 내용은 Github에 올려두었습니다. 사내에서 배치 프로젝트를 맡아 Spring Batch를 적용하기로 결정하였습니다. Spring Batch 사용 이전 Spring Batch 이전 스케쥴링 작업은 Scheduler, Quartz 등으로 Spring에서 Annotation으로 선언하여 지정된 시간에 스케줄링을 돌려 구현해놓은 클래스를 호출하여 로직을 실행한다. 기존 스케쥴링 방식으로는 대용량 데이터를 처리하는 도중 에러가 발생하면 처리했던 모든 데이터를 롤백시키고 다시 처음부터 처리해야하고, 몇 번째 데이터에서 에러가 발생했는지, 해당 배치 로직이 성공했는지 실패했는지 로그처리를 하여 확인해야하는 불편함이 ..

728x90
반응형