본문 바로가기
728x90
반응형

개발101

[JAVA] 단위 테스트는 무엇이며, Junit5 에 대해 알아보자. 들어가기 전에 개발을 하면서 무엇보다도 중요한 점 중 하나는 안정적인 시스템을 구축하는 것입니다. 안정적인 시스템을 구축하기 위해서는 여러 테스트를 진행해야 하고, 테스트 케이스를 나누어 이상이 있는지 확인해야 합니다. 그러나 실무에서 긴급한 변경사항이나 예상하지 못한 버그는 개발자들을 괴롭힙니다. 때로는 시간에 쫓겨 테스트를 제대로 하지 못하고 구축하신 경험도 있으실 겁니다. 저는 SI 기업에서 프로젝트를 진행하신 경험이 있고, '기한일이 촉박하다' 등 여러 가지 이유로 단위 테스트를 진행하지 않고 통합 테스트를 진행한 경험이 있습니다. 심지어 기능 테스트로만 진행하신 분들도 있을 겁니다. 과연 운영 중에 문제가 없었을까요? 여러 서비스 기업에서는 TDD (테스트 주도 개발)을 진행 중이며, 단위 테스.. 2023. 11. 29.
[Spring Batch] 환율 정보 API 를 간단한 배치 스케줄러 추가 - 예제편 들어가기 앞서 지난 시간 간단하게 만들었던 Batch에 Scheduler(스케줄러)와 Log를 추가한 내용을 작성한 글입니다. 스프링 배치를 사용하면서 언제, 어떻게 호출하고 실행시킬지에 대한 고민을 해야 합니다. 배치는 일괄적인 처리를 위해서 단독으로 사용되기도 하지만 실제 업무에서는 스케줄러와 같이 사용되는 것을 자주 볼 수 있습니다. 그렇다면 스케줄러 이외에 어떤 경우에 배치를 호출할까요? 클라이언트가 특정 URL 주소를 접근하게 되었을 때에도 사용합니다. 코드 내 Controller에서 해당 Service를 호출하고 Service에 특정 Batch를 호출하여 사용합니다. 배치(Batch)라고 떠올리실 때 '특정 시간에 특정 작업을 하는 것'이라고 생각하시면 안 됩니다. 배치는 데이터들을 일괄적으로.. 2023. 11. 24.
[Spring Batch] 환율 정보 Open API를 활용한 간단한 배치 만들기 - 예제편 들어가기에 앞서 이전 블로그 글에 아래와 같은 글을 남겼습니다. 2023.11.15 - [개발/Spring & SpringBoot] - [Spring Boot] 대용량 데이터 처리를 위해 Batch를 알아보자 - 이론 편 [Spring Boot] 대용량 데이터 처리를 위해 Batch 를 알아보자 - 이론편 들어가기 앞서, 스프링 부트는 실무에서 사용할 수밖에 없는 기술 중 하나입니다. 계정계 업무에서는 배치를 스케쥴러와 함께 사용하여 지정된 시간에 수행할 수 있습니다. 예를 들어 재무 파트 seodeveloper.tistory.com 이론 편에서 실전 편으로 넘어가기 전에 배치에 대해서 알아보는 시간을 가지면 좋을 것 같아서, 한국수출입은행의 환율정보 Open API를 활용해서 간단한 배치 예제를 만들어.. 2023. 11. 23.
[Spring Batch] 대용량 데이터 처리를 위해 Batch 를 알아보자 - 이론편 들어가기 앞서, 스프링 부트는 실무에서 사용할 수밖에 없는 기술 중 하나입니다. 계정계 업무에서는 배치를 스케쥴러와 함께 사용하여 지정된 시간에 수행할 수 있습니다. 예를 들어 재무 파트에서는, 은행 마감 시 차변과 대변의 금액이 다른 경우 배치를 실행시켜 알림을 알려주고, 예외 처리를 할 수 있습니다. 또한 특정 일자나 특정 시간에 맞춰 메일 발송을 할 수 있는 로직을 구성한 경험이 있습니다. 대용량 데이터의 기준은 사람마다 다른 것으로 보입니다. 아래 커뮤니티에서는 100만 건이나 1억 이상건이 대부분이지만 개발자나 회사마다 조금씩 다르고 과거와 다르게 지금은 점점 더 성능이 향상되면서 기준을 조금 더 높게 잡는 것 같습니다. 대용량의 데이터 기준 - Okky OKKY - 대용량의 기준에 대해서 질문.. 2023. 11. 15.
[JAVA] ReentrantLock 이란? 들어가기 앞서, 동기화를 위하여 synchronized 키워드를 사용하다 보니, 해당 키워드 말고 다른 것들은 무엇이 있을까 찾아보게 되었습니다. 그러다가 발견한 것이 ReentrantLock입니다. 해당 글에서는 아래 3가지 질문으로 구분 지어 작성해 보도록 하겠습니다. ReentrantLock 이란? ReentrantLock 사용하는 방법 및 예시 ReentrantLock VS synchronized 의 차이점은 무엇이 있나요? 1. ReentrantLock 이란? JAVA 에서 동시에 여러 개의 스레드가 접근하는 것을 제어하기 위한 동기화 메커니즘 중 하나입니다. 수동으로 잠금 영역(Lock) 의 시작점과 끝점을 설정할 수 있는 객체입니다. 즉, 유연한 동기화를 제공합니다. 2. ReentrantL.. 2023. 11. 1.
[DB] Random Access (랜덤 액세스) 란? 들어가기 전에 업무 중에 성능 향상을 위하여 쿼리 튜닝에 대해서 공부하고 있었습니다. "랜덤 액세스"라는 단어를 맨 처음 봤을 때, '접근을 임의로 할 수 있다'라는 용어로 생각했습니다. 당연히 잘못 알고 있었기 때문에 공부하게 되었고, 실제 면접에서도 많이 질문이 들어온다고 하여서 해당 내용을 간단하게 정리하고자 합니다. Random Access(랜덤 액세스) 란? 랜덤 액세스란 데이터를 저장하는 블록을 한 번에 여러 개 액세스하는 것이 아니라 한 번에 하나의 블록만을 액세스 하는 방식입니다. 한 번에 여러 개의 블록을 액세스 한다면(랜덤 액세스와 반대) 같은 양의 데이터에 대해 적은 횟수의 디스크 I/O가 발생하기 때문에 성능이 향상될 수 있습니다. 이렇게만 내용을 봤을 때는 랜덤 액세스 자체가 언제.. 2023. 10. 14.
728x90
반응형