java

· JAVA
0. 이 글을 쓰는 이유 remove, add 등의 연산 속도가 LinkedList와 ArrayList의 구조에 따라 차이가 있는 것은 data structure를 공부하다보면 자연스레 알게된다. 그럼 java코드로는 어떻게 구현이 되어있을지 많이 깊게는 보지 않지만 그래도 좀 보면서 정리하기 위해 작성함 1. ArrayList의 remove /** * Removes the element at the specified position in this list. * Shifts any subsequent elements to the left (subtracts one from their * indices). * * @param index the index of the element to be removed ..
· JAVA/spring
0. 이 글을 쓰는 이유 통신 과정에서 method에 대한 정보를 가져온 후 특정 어노테이션이 붙은 경우에 대해 필터링을 하는 방법을 정리하기 위함 1. 가장 필요한 건 HandlerMethod Spring 공식 문서에 보면 HandlerMethod클래스에 이런 말이 적혀있다. Provides convenient access to method parameters, the method return value, method annotations, etc. 메서드의 어노테이션이나 파라미터, 리턴 등에 대해 쉽게 제공할 수 있게 해준다고 한다. 이걸로는 정보가 좀 부족한 것 같다. 요새 ChatGPT가 코딩조무사처럼 잘 도와주고 있던데 한번 예제 코드를 달라고 해 봤다. @RequestMapping("/use..
0. 이 글을 쓰는 이유 java를 완전 처음 접하면 try catch와 throw에 대해 생각이 좀 많아질 수 있는데 최대한 간단하게 설명을 하고 내 생각을 정리하기 위함 1. throw? 이름 그대로 생각하면 던진다는 뜻이다. java에서는 에러를 "다른 메서드에게 던진다" 정도로 생각하면 될 것 같다. 2. try - catch (- finally) 이름 그대로 생각하자. 시도하고 잡고 마침내 뭔가를 한다. try 블록에서 시도하다가 문제가 발생한 경우 catch문에서 후속조치를 할 수 있다. 이후 옵션 사항으로 finally문을 통해 try가 다 끝나던 catch로 후속조치를 하던 아무튼 무조건 실행해야 하는 로직은 finally 블록에서 진행한다. 3. 본론 3-1. throw는 책임전가? tr..
· JAVA/spring
0. 이 글을 쓰는 이유 평온하게 개발을 하던 중 환경에 따라 동적으로 flyway의 sql파일에서 값을 변경하여 넣어줘야 할 일이 생겼다. 다른 곳들은 뭐 @Value로 잘 가져오면 괜찮던데 Flyway는 딱 하나가 달라서 리마인드 겸 정리를 해보고자 한다. 1. 사건의 발단 proxy table(db link)를 위해 외부 ip를 가져와야하는데 flyway는 모든 프로파일에 걸쳐 동작을 하고 외부 database ip는 각 상황(dev, live)등에 따라 고정값이지만 다른 값이었다. 그러면 믿을 수 있는 부분은 application의 properties파일이고 어떻게 가져와야 할까 create table tmp_table( //중략 ) engine=CONNECT table_type=MYSQL dbn..
· JAVA/spring
0. 이 글을 쓰는 이유 스프링에서는 컨트롤러를 통해 서비스가 동작하는 도중 내가 에러 핸들링을 하지 않은 경우에 대해도 was가 죽지 않고 계속 떠있는 것을 볼 것이다. 우리가 일반적으로 자바로 프로그램을 수행해 보면 별도의 예외 처리가 없는 경우 해당 애플리케이션은 바로 죽게 되는데 스프링에서는 그렇지 않다. 어떻게 이게 가능한 것일까에 대해 궁금해져서 알아보고자 했다. 1. 사전 지식 1-1. Filter 스프링에는 Filter라는게 존재한다. 이게 뭐 하는 놈이냐 하면 WAS가 servlet container에게 request를 던져주면 그걸 적절히 필터링한 후 servletrequest와 servletresponse를 servlet에게 던져준다. 이후 response가 나올 시점에 다시 Filt..
1편 : https://developer-youn.tistory.com/124 jvm 조금씩 알아가기 1편 - jvm이란 2편 : https://developer-youn.tistory.com/125 jvm 조금씩 알아가기 2편 - 클래스 로더(class loader) 1편(https://developer-youn.tistory.com/124)을 보고 오시는걸 추천드립니다. 0. 목표 java를 개발하다 보면 종종 class loader developer-youn.tistory.com 2편 : https://developer-youn.tistory.com/125 jvm 조금씩 알아가기 2편 - 클래스 로더(class loader) 1편(https://developer-youn.tistory.com/124..
1편 : https://developer-youn.tistory.com/124 jvm 조금씩 알아가기 1편 - jvm이란 2편 : https://developer-youn.tistory.com/125 jvm 조금씩 알아가기 2편 - 클래스 로더(class loader) 1편(https://developer-youn.tistory.com/124)을 보고 오시는걸 추천드립니다. 0. 목표 java를 개발하다 보면 종종 class loader developer-youn.tistory.com 2편 : https://developer-youn.tistory.com/125 jvm 조금씩 알아가기 2편 - 클래스 로더(class loader) 1편(https://developer-youn.tistory.com/124..
1편 : https://developer-youn.tistory.com/124 jvm 조금씩 알아가기 1편 - jvm이란 2편 : https://developer-youn.tistory.com/125 jvm 조금씩 알아가기 2편 - 클래스 로더(class loader) 1편(https://developer-youn.tistory.com/124)을 보고 오시는걸 추천드립니다. 0. 목표 java를 개발하다 보면 종종 class loader developer-youn.tistory.com 3편 : https://developer-youn.tistory.com/126 jvm 조금씩 알아가기 3편 - 데이터 영역(Runtime Data Areas) 1편과 2편을 보고 읽으시는 것을 추천드립니다 1편 https:..
2편 : https://developer-youn.tistory.com/125 jvm 조금씩 알아가기 2편 - 클래스 로더(class loader) 1편(https://developer-youn.tistory.com/124)을 보고 오시는걸 추천드립니다. 0. 목표 java를 개발하다 보면 종종 class loader라는 단어를 콘솔에 찍힌 에러 등을 통해 본 적이 있을 수도 있다.(실은 대부분 봤을 developer-youn.tistory.com 3편 : https://developer-youn.tistory.com/126 jvm 조금씩 알아가기 3편 - 데이터 영역(Runtime Data Areas) 1편과 2편을 보고 읽으시는 것을 추천드립니다 1편 https://developer-youn.tist..
· JAVA/spring
0. 이 글의 목적 BooleanExpression을 쓰는 게 best practice일 수 있지만 더 심플한 방법을 찾다 보니 가능한 방법을 찾아서 메모 겸 적어두고자 함 1. 상황 querydsl을 이용해 db에서 데이터를 가져오려고 하는데 where조건을 동적으로 해야할 일이 생김 e.g. //회사 로직을 제거하기 위해 최대한 단어를 추상화함 queryFactory .from(dataEntity) .groupBy(dataEntity.column1) .select( dataEntity.column1, dataEntity.column2.as("tmp"), dataEntity.column3 ) .where(dataEntity.column1.between( requestCondition.condition1..
Berno
'java' 태그의 글 목록