전체 글 63

[TIL] spring boot 2.7.x 버전에서 mustache 한글 깨짐

요즘 공부 중인 책에서 mustache를 처음 써봤는데 첫 시작부터,,,, 한글이 나오지 않아 당황했다. 책은 2.1버전이고 나는 2.7버전으로 올려서 하다보니 자잘하게 막히는 부분들이 있는데, 찾아보니 이 한글깨짐도 2.7부터 발생하는 일이라고 한다! 스프링 부트 버전을 낮추지 않을 것이라면 application.yml 설정을 추가해주면 끝! server: servlet: encoding: force-response: true

TIL 2023.09.09

[TIL] Response값을 @JsonInclude 사용하여 조정해보자..

Response로 어떤 객체를 반환시키는데 null인 필드는 반환시키고 싶지 않았다..... 객체를 생성할 때 new로 생성도 해보고 build도 생성해보고 emptyList를 반환도 해보고.. 여러가지를 해보았지만 되지 않았다. 그러다가 어노테이션으로 설정하면 된다는 기쁜 소식을 듣고 사용하게 되었다.. 역시... 선배님들이 최고다👍 @JsonInclude(JsonInclude.Include.NON_NULL) public class CommonResponse { private T data; private List errors; } 이렇게 사용하면 되는데 target을 어느 선 까지 지정할 것인지 지정하여 사용하면 된다. NON_NULL null 은 제외하고 출력 NON_EMPTY null 과 "" em..

TIL 2023.08.29

git clone 할 때 에러 : Support for password authentication was removed on

오랜만에 remote에 있는 git project를 다운받을 일이 있어 해보다가 터미널에서 git clone을 했더니 이런 에러를 만났다! 흠.... 익숙하다 이 에러...... 토큰 관련 에러였던 것 같아서 찾아보니 토큰을 발급해야 하는게 맞았다ㅠ Settings > Developer Settings > Personal access tokens Tokens (classic) 여기서 Generate new token 으로 생성하면 끝~

TIL 2023.08.27

[TIL] stream을 사용하여 코드 간결하게 하기....

반환 값을 리스트로 뽑고 싶었다. 에러가 여러개일 땐 리스트에 담아서 그 리스트를 반환시키고 에러가 한개일 땐 그 한개만 반환하는 것... 그것이 내가 원하는 것이었다. stream을 쓰면 간단하게 표현할 수 있지만 머리가 복잡할 땐 일단 혼돈의 코드를 먼저 짜본다! ErrorResponse errorResponse = ErrorResponse.builder() .httpStatus(HttpStatus.BAD_REQUEST) .detail(errorMessage.toString()) .build(); if(errorMessage.size() > 1 ) { List list = new ArrayList(); for (Object o : errorMessage) { errorResponse = ErrorRe..

TIL 2023.08.15

[TIL] - spring annotation을 만들어 보았다.

재밌다 필요한 검증을 어노테이션을 만들어 사용할 수 있다니 내가 필요한 것 : null이여도 되고 핸드폰자리 11자리만 체크하는 것 시도해본 것 : @Pattern(regexp = "^[\d]{11}+$") @Pattern 어노테이션은 null 을 체크하기 때문에 내가 필요로 하는 것에 부합하지 않았다..... 그리하여 어쩔 수 없이 만들어 보게 된 어노테이션... 근데 좀 재밌었다 ㅎㅎ 총 두개의 class를 만든다. 1. 어노테이션으로 만들어 줄 인터페이스 2. 만들 어노테이션의 구현체 @Constraint(validatedBy = MobileNoValidator.class) // 구현체 class @Documented @Retention(RetentionPolicy.RUNTIME) @Target({..

TIL 2023.08.08

[TIL] 프로세스의 끝부분에서 에러가 났는데 그게 하나의 트랜잭션이라서...

오늘 또 하나를 배웠는데.. 너무어렵다.. java 버전업을 한 api하나를 배포했는데, 로직을 바꾼 것이 없고 자바버전만 바꾼 것인데다가 표준으로 배포했을 때도 문제가 없(는줄 알았는데..)어서 온프레미스 환경에서 배포를 진행했다. 그렇게 몇 주가 흘렀는데....; 문제는 몇 주가 흘러서 발견되는 것인가...? 사실 이게 직접적인 영향인지 아닌지도 모르지만 문제해결보단... - 문제 : 하나의 큰 프로세스인 A프로세스가 있는데, A 안엔 a-b-c-d 순서대로 돌아간다. 그리고 A가 제대로 실행되지 않았다. 여기서 a-b-c 는 DB 패키지 프로시져로 돌아가고 d는 자바단에서 ddd라는 api를 호출하는 연동부분이다. java 버전업을 진행한 부분은 ddd api였는데..!! 서버로그에서 에러가 나는 ..

TIL 2023.07.27

spring돌아가는게 궁금할 땐 디버깅으로 Java class들 읽어보기...

오늘 어떤 작업을 하다가 이게 어떻게 돌아가는지 궁금해서 우리 선배님께 여쭤보고 같이 찾아보았는데, 이분은 참 배울게 많은게 항상 정석대로? 하는 것 같아 정말 옆에서 같이 하다보면 나도 많이 배우게 된다. ExceptionHandler가 돌아가는 방식이 궁금해서 질문했는데 같이 java를 속속들이 찾아보게 됐다. 찾다보니 더 궁금해져서 좀 너무 딥하게 들어가서 약간 정신이 혼미해졌지만, 아무튼간에 이렇게 찾아보고 배울 수 있다는 것이 유익하고 좋았다. 이런 선배와 함께 일하게 된 것이 정말 행운이라고 생각한다... 오늘 같이 찾아본 class는 DispatcherServlet의 doDispatch org.springframework.web.servlet.DispatcherServlet 유익하고 좋은 시..

그냥일기 2023.07.19

[TIL] 서버에서 배포 시에 실패 Exit 뜰 때와 jdk버전차이 확인하기

흠흠 잘 메모해둔 덕에 금방 문제를 찾고 해결했다. 제법 멋져요 서버에서 수동으로 배포하는데 또 에러가 났다. 학습능력이 있는 인간이라면 배운데로 해야지요? (참고 - https://daretobe.tistory.com/12) 기동 후 exit nohup 명령어 없이 java 로 기동 [tomcat@was1 12301]$ java -jar -Dspring.profiles.active=profile_Name /was/fileName.jar Exception in thread "main" java.lang.UnsupportedClassVersionError: com/sanha/SpringBootStarter has been compiled by a more recent version of the Java R..

TIL 2023.07.13

[TIL] 생성자 관련 어노테이션 @NoArgsConstructor @RequiredArgsConstructor @AllArgsConstructor

별거아닌 기본인데 자꾸만 헷갈려서 안되겠다.. 내가보려고 써놓는 간단한 정리 @NoArgsConstructor - 기본생성자를 만든다. - public Member() {} @RequiredArgsConstructor - 선언된 모든 final필드가 포함된 생성자를 생성한다. - final이 없는 필드는 생성자에 포함되지 않는다. @Autowired를 사용하지 않고 이렇게 사용하는 것을 권장한다. @RequiredArgsConstructor @Controller public class IndexController { private final PostsService postsService; ... } @AllArgsConstructor - 선언된 모든 필드의 생성자를 생선한다. 만약 DTO클래스 내부에서 ..

TIL 2023.07.04