#hashmapHash와 HashMap서비스를 개발하거나 알고리즘, 자료구조를 공부하면서 Map, Set 등의 자료구조를 자주 이용했었다. Map 이나 Set 자료구조를 사용하면 자료의 양이 엄청 많아도 검색하는데 O(1) 만큼의 시간복잡도를 가지게 된다. 이렇게 빠른 검색을 위해 Ma…
#asynchronous동기와 비동기 with webClient‘여기서 만나’ 프로젝트를 진행하면서 초반에는 RestTemplate을 통하여 외부 API와 데이터를 주고받았다. 이후 WebClient가 비동기 방식으로 쓰여 더 좋다고 하여 WebClient로 변경했다. 그리고 이전 글에서 RestTemplate…
#databaseReplication과 Clustering프로젝트를 진행하면서 서버를 늘리게 되었다. 서비스 이용자가 당장 많아서 적용한 것은 아니었지 만 미래에 많은 사용자가 이용하기를 바라는 마음과 그때 허겁지겁 대비하는 것보다는 미리 대비하자는 차원에서 적용하였다. 하지만 서버는 늘렸는데 과연 효율적으…
#RedisRedis 알아보기이글은 Redis에 대해 들어봤거나 어렴풋이 알고 있는 독자들을 대상으로 작성하였습니다. 우테코 레벨 3 에서 프로젝트를 진행하면서 Redis를 적용해보게 되었다. Redis라는 단어를 많이 들어봤고 어렴풋이 캐싱을 통하여 속도를 빠르게 해준다는 것…
#dockerdocker 이해하기이 글은 도커를 처음 사용해보거나 아직 도커에 익숙하지 않은 독자들을 대상으로 작성하였습니다. 도커란? 도커는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼이다. 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 컨…
#springRestTemplate과 WebClient이 글은 자바에서 HTTP 요청을 써봤거나 써보려고 하는 독자를 대상을 작성하였습니다. 스프링 어플리케이션에서 HTTP 요청할 때 사용하는 방법으로 RestTemplate과 WebClient가 있다. 스프링 5.0 이전까지는 클라이언트에서 HTTP …
#databaseDatabase Transaction트랜잭션 이란? SQL을 사용하여 INSERT나 UPDATE 명령을 사용할 때 COMMIT을 해주어야 실제 데이터베이스에 반영이 된다. 트랜잭션에 대하여 아직 깊게 공부하지 않은 사람이라면 ‘나는 COMMIT 한 적이 없는데 데이터베이스에 반영이 되…
#springbean wiring스프링을 처음 공부하는 사람을 대상으로 작성한 글입니다. 빈 와이어링(wiring) 이란? 스프링을 사용하는 애플리케이션에서 각 객체가 필요한 다른 객체를 직접 찾거나 생성할 필요가 없다. 컨테이너가 협업할 객체에 대한 정보를 주기 때문 이다. 애플리…
#httpServlet 과 ServletContainerServlet 서블릿(Servlet)은 클라이언트 요청을 처리하고, 그 결과를 반환하는 웹 프로그래밍 기술이다. 클라이언트가 요청을 하면 그에 대한 결과를 다시 전송해주는 역할을 자바 프로그램이 하는 것이다. 이전의 웹 프로그램들은 클라이언트의 요청…
#javaExceptionHandler 와 ControllerAdvice@ExceptionHandler @ExceptionHandler 는 @Controller , @RestController 가 적용된 Bean 에서 발생하는 예외를 잡아서 하나의 메서드에서 처리해주는 기능이다. @ExceptionHandler 에 설정…
#testBigInteger_BigDecimalBigInteger, BigDecimal? , 은 java.math 패키지 안에 있는 숫자를 다루는 클래스이다. 두 클래스 모두 숫자를 다루는 클래스이다. 의 경우 정수형으로 표현할 수 있는 값을 다룰 때 사용하고 은 소수점이 있는 수를 다룰…