전체 글141 [Spring Batch] 개념 개인프로젝트때 스프링 배치를 사용했다. 근데 사실 자신감이 없다. 이부분에 대해서는 스프링 배치를 사용해보고 싶어서 , 필요해서 사용한거긴하지만 코드에는 자신이 없었다.. 근데 이걸 멘토님이 보고 알아채셨다.. 혹시 여기 자신없죠? 라고 하셨다... 역시 현업개발자분들의 눈은 못 속이는 군..ㅎㅎㅎ 그래서 정리하는 스프링 배치! 배치란? 배치란 간단하게 일관처리라는 의미이다. 데이터를 실시간으로 처리하는 것이 아니라 일괄적으로 처리하는 작업이다. 근데 왜?? 실시간으로 처리하지 않고 일괄적으로 처리할까?? 예를 들어보자. 대부분의 커머스 사이트에서는 매일 전날의 데이터를 집계한다. 이 집계과정을 어디서 수행해야할까? 1. 매번 검색할때마다 집계를 수행해야할까? -> 그건 좀.. 데이터가 5십만개에서 1억.. 2024. 2. 27. 2024-02-25 일주일 회고록 불안감 나는 이번년도 안에 취준성공을 목표로하고 있다.. 근데 맘대로 되지않는게 취준의 현실... 지금까지 서류 합격 하나했다.. 사실 그 서합도 나는 의심스럽다.. 이부분은 밑에서 말할것이다. 어째든 나는 불안하다.. 내가 서류가 부족한가?? 아님 신입으로서 자질이 부족한가?? 정말 많은 고민에 휩싸인다.. 과연 이번년도안에 취업을 할수 있을까..?? 근데 나의 불안감은 결국 이고민을 부정적으로 생각해서 나타나는 거 아닐까?? 그래서 왜 부정적일까?? 고민해보니.. 내가 그만크 노력을 안하고 있다는 생각이 들어서이다. 생각해보면 요즘 불안감에 잠이 늘었다. 불안하거나 힘들면 자는 버릇이 있어서..ㅎㅎ 물론 나쁜 버릇이 아니다. 다만 잠만 자면 안되고 자고 나서 무엇인가 실행을 해야되지 않을까?? 그래서.. 2024. 2. 25. Spring Context는 모든 빈들을 프록시로 만들까??? 내가 얼핏 듣기로는 스프링 컨텍스트가 프록시로 만든다는 말을 들은 적이 있는데.. 확실하지가 않다.. 모든 빈들을 프록시로 만드는 건지.. 그래서 간단하게 테스트 해보았다. @Component public class Service { public void test(){ System.out.println("test"); } } @Configuration public class Config { @Bean public Service service(){ return new Service(); } } public static void main(String[] args) { ApplicationContext applicationContext = new AnnotationConfigApplicationContext(.. 2024. 2. 22. 프록시??? 스프링 AOP?? 트랜젝션?? (1) 이전 개인프로젝트때 동시성 해결하기 위해 aop와 Redisson을 활용하여 해결한 적이 있다. 그때 이때 aop 프록시와 동시성메서드 트랜젝션 프록시?라고 해야하나 아무튼 두개의 트랜 젝션의 레벨이 동일하여 내가 원하는 대로 호출이 안되는 상황이 있었다. 그래서 동시성 메서드 트랜젝션을 제거하였더니 잘 호출되었다. 이때는 동일한 레벨트랜젝션이라 무엇이 먼저 호출될지 모른다로 이해하고 끝났다... 근데 계속 프로젝트 하다보니... 프록시가 뭔데,,? 그게 트랜젝션이란 뭔상관이고, aop랑은 무슨 상관인데..? 라는 물음표들이 머리속을 꽉채웠다... 그래서 이번 기회에 차분히 정리해보려고 한다. 프록시 공부하기전 나에게 프록시 은 단순히 가짜객체의 느낌이었다.근데 공부해보니 그 방향보다는 프록시 이란 "대.. 2024. 2. 22. [개인프로젝트] 코드 커버리지?? 개인프로젝트때 왠만하면 진짜 꼼꼼하게 테스트 코드를 작성했다. 물론 초반에는 왜 테스트코드를 작성해야되지..? 에 대한 의문이 있었지만.. 작성하면서 느낀점은 1. 작성한 코드가 의도한 대로 작동하는지 검증할 수 있다. -> 테스트코드를 통해서 동작하는 방식과 결과가 내가 작성한 대로 나오는지 활인할 수 있다. 2. 코드를 수정할때 변경에 대한 영향도를 쉽게 파악할 수 있다. -> 아무래도 후반에 리팩토링후 테스트코드 돌릴때 에러가 나올때가 있었다. 근데 만약 내가 테스트코드 안짜놓고 어플리케이션을 돌렸다면어렵게 어디서 에러가 나오는지 찾을 수없을거같다. 즉 테스트코드 덕분에 수정으로 인한 영향력을 빠르게 파악할 수 있었다. 나의 경우 유닛 테스트코드를 많이 짰다. 개별코드 단위가 내가 의도한대로 작동하.. 2024. 2. 22. [개인프로젝트] ElasticSearch와 Mysql 쿼리 실행시간 (2) (인덱스 걸기) 이전블로그에서 mysql 인덱스 안걸려있고 full scan으로 했으때의 elasticsearch와의 검색 실행시간 차이를 알아보았다. 이번에는 mysql에 인덱스를 걸었을때의 상황을 비교해보겠다. 간단하게 데이터베이스에서의 인덱스란 미리 정렬된 정보를 저장하여, 원하는 데이터를 찾는 것이다. 즉 검색 속도를 향상시킬 수 있다. 이부분에 대해서 추후 더 자세하게 알아볼 예정이다. 일단 실행시간 보기전에 알려드릴점... 첫번째원래 이전 블로그에서는 distance가 3km였는데 0.5km로 바꾸었다. 그 이유는 mysql이 인덱스를 타지 않고 full scan을 해서이다. 20만개 데이터중 쿼리를 나리면 2/3이상의 데이터가 결과값으로 나오다보니 full scan을 타버렸다. 그래서 인덱스를 타기 위해 범.. 2024. 2. 19. 이전 1 ··· 4 5 6 7 8 9 10 ··· 24 다음 728x90