반응형

JAVA/JAVA | Spring 학습기록 71

[241030] 우아콘 2024 참여 후기

우아한형제들 주관 테크컨퍼런스인 WOOWACON 2024에 참여했다!https://2024.woowacon.com/ WOOWACON 2024한 번의 배달을 위해 필요한 모든 기술들2024.woowacon.com 작년 11월에는 우아콘 2023을 팀원분 한분과 함께 갔다왔었다. (후기: https://kth990303.tistory.com/468) 올해는 비교적 일찍인 10월 말에 우아콘이 열렸고, 팀원분 한분 뿐만이 아닌 팀원 5분 + 내 지인들 + 우테코 동료들 등등 엄청나게 많은 지인들과 함께 우아콘에 참여하였다. 지난 해와 다르게 이번에는 쿠키를 굿즈에 포함시켜주었다.아마 WOOWACON 내의 알파벳으로 구성된 쿠키 중 랜덤하게 주는 듯? 우아콘 2024 영상들은 추후 유튜브에 올라올 예정이라고 한..

[240831] 유스콘 2024 컨퍼런스 후기-이제는 발표자 신분으로! (다중 서버에서 똑똑하게 캐싱하기)

나는 꾸준히 유스콘에 참여했었다. 유스콘 2021 에 지인의 안내로 처음 참여해보고 유익하다는 생각이 들어서유스콘 2022, 2023 에도 청중(?) 신분으로 신청했었다.그리고 매번 후기를 작성했었다. 유스콘 2023 에서, 유스콘의 주최자인 제이슨이 이렇게 말한 적이 있었다.'케이, 발표자 한 번 하셔야죠~'(여담으로 케이는 내 우테코 시절 닉네임이다.) 사실 진심인지 아니면 가벼운 인사치레인지 모르겠지만ㅋㅋ (진심이라 말해줘요 제이슨~)그 말을 듣고, 나도 한번 내가 얻은 실무경험 중 신기하고 재밌었던 내용을 공유해보고 싶단 생각이 들었다.그리고 2024년 7월 경으로 기억하는데, 그 쯤에 발표자 신청 폼을 제출하여 다행히 발표자로 선정이 되었다!   그렇게 나는 유스콘 2024에서 `다중 서버에서 ..

[Java] 불변 객체와 UnsupportedOperationException

기본적이지만 놓치기 쉬운 부분을 기록해보려 한다. 이해하기 쉽게 예시를 들어, 코드와 함께 상황극으로 설명하려 한다. 아래와 같은 코드가 있다.1234567891011121314151617181920@Getterpublic class BoulderingCrewSignupRequest {     private ListLong> memberId;    private String crewName;     public BoulderingCrewSignupRequest(ListLong> memberId, String crewName) {        this.memberId = memberId;        this.crewName = crewName;    }     public static Bouldering..

[Spring] Spring Boot + Shedlock 이용한 API 응답 캐싱 폴링

우리 팀 API가 아닌 타 팀(또는 타사) API를 호출하여 응답을 이용하긴 하는데, 응답이 너무 반복적으로 같은 경우가 있다.예를 들어 국가 별 수도 목록을 구하는 api를 매번 호출한다고 하자. 수도는 웬만해서는 변하지 않기 때문에, 이런 경우에는 응답을 캐싱해두면 좋아보인다. 하지만 가끔 캐싱만으로는 걱정되는 경우가 존재한다.이번에 나는 캐싱 뿐 아니라, 폴링 로직을 추가하는 경험을 해보았는데 처음 경험해보는 것이어서 기록용으로 포스팅에 남겨두려고 한다. 포스팅 작성 시점 기준으로, 사내 개발환경에만 도입해보았고 실제 운영환경에 작성되지 않아 틀린점이 존재할 수 있습니다. 틀린 점 및 보완할 점은 댓글로 남겨주세요!폴링을 고려하게 된 계기응답을 캐싱해두면, 그 다음번부터는 api를 호출할 필요 없이..

[240525] Spring Camp 2024 갔다온 후기

스프링캠프 2024에 다녀왔다! (여담으로, 넥스터즈 23기 때 진행한 장소와 같아서 지리가 굉장히 익숙했다.) 2023에 다녀온지 얼마 안된 것 같은데, 2024가 벌써 열리다니.지난 스프링캠프 2023 후기는 여기서 볼 수 있다.https://kth990303.tistory.com/440 [230422] Spring Camp 2023 갔다온 후기KSUG에서 주최한 스프링캠프 2023 컨퍼런스에 다녀왔다~ https://springcamp.ksug.org/2023/ Spring Camp 2023 '스프링 캠프'는 애플리케이션 서버 개발자들과 함께 가치있는 기술에 관한 지식과 정보를 '공유'하kth990303.tistory.com  이번 스프링캠프 2024도 2023때와 마찬가지로 인프런에서 신청을 받았..

[Spring] JUnit5 에서 OutputCapture를 이용한 로그 테스트 해보기

최근에 우연히 로그를 테스트하는 방법에 대해 알게돼서 기록용으로 남겨보려 한다.바로 Spring Boot 에서 제공해주는 OutputCaptureExtension 이다.  Spring Boot 2.2.0 이상의 환경이라면 gradle에 별도의 추가설정 없이 사용이 가능하다.안내돼있는 것처럼, System.out, System.err 로 출력되는 코드들을 캡처해서 AssertJ, JUnit 테스트에서 로그 출력 여부를 확인할 수 있다. 참고로 @Slf4j 의 log.info, log.error 로그 출력 캡처도 가능하다.따라서 Java, Kotlin의 웬만한 환경에서는 다 사용이 가능하리라 생각한다.테스트회원가입 (signUp 메서드)을 진행하면 아래 코드와 같이 log.info 로 회원가입 로그를 찍는다..

[240406] GDSC Konkuk KPrintf 행사 참여 후기

아는 지인 중 샤인(https://github.com/zbqmgldjfh)이랑 수지누나(https://github.com/sujileelea)가 발표한다고 해서 참여한 행사. GDSC Konkuk 리더이신 현우님(https://github.com/l2hyunwoo) 이 준비하신 걸로 알고 있다. (맞나?) 샤인이 발표하는 헥사고날 아키텍처는 우리 팀의 일부 프로젝트에서 사용하기도 하고, 샤인이 발표하기도 해서 들어보려고 하고, Vision Pro로 접해보는 공간 컴퓨팅도 수지누나가 발표하고, 아예 새로운 분야여서 들어보기로 했다. 그리고 CS와 함께하는 BE 이야기 세션은 흥미로워보여서 중간에 2시부터라도 들어보려 했다. 일정 상 12시부터 3시까지만 참여하긴 했지만 이에 대해 후기를 적어보려 한다. ..

[Spring] @Transactional(readOnly=true)에서 write 시 예외 좀 더 살펴보기

개발하던 도중 아래 에러를 만났다. The MySQL server is running with the --read-only option so it cannot execute this statement 에러 발생 원인은 @Transactional(readOnly=true) 어노테이션이 붙어진 메서드에서 save 로직을 했기 때문이다. 근데 이 readOnly 옵션에 대해 의견이 분분했다. 그래서 이번 기회에 조금 더 살펴보려 한다. 코드 쪽을 쭉 살펴보면서 분석해봤으며, 혼자서 분석해본 것이라 틀린 내용이 포함될 수 있다. 결론부터 말하자면 아래와 같다. H2 DB는 readOnly 무시됨. (정말 유명한 사실이다.) MySQL, MariaDB는 readOnly 시 락 걸고, 여기에 위배되는 로직 작성 시..

[Spring] Amazon SNS, SQS 이벤트 순서 역전 및 유실에 대처해보자

타 서비스 간 통신을 위해 API Call 뿐 아니라, event 방식으로도 많이 이용한다. 특히, 강결합을 제외하고 싶을 때 + 서로간의 양방향 통신이 아닌, 특정 행위 발생 시 단방향으로 메시지를 보내고 싶을 때에 이벤트를 보내는 방식을 고려하게 된다. 이벤트를 보내는 방식은 다양하게 존재한다. 먼저, @EventListener를 이용하여 동일 서비스 내에서 보낸 이벤트를 받아 처리하는 방식이 있다. 이 방식은 이미 지난번에 작성한 포스팅이 존재한다. https://kth990303.tistory.com/441 [Spring] 이벤트 발행 및 @TransactionalEventListener을 이용한 의존성 줄이기 사이드 프로젝트에서 회원탈퇴 로직을 구현하는 백로그를 담당중이었다. 하지만 회원 탈퇴는..

[231115] 우아콘 2023 참여 후기

우아한형제들 주관 테크컨퍼런스인 WOOWACON 2023에 참여했다! https://woowacon.com/ WOOWACON 2023 한 번의 배달을 위해 필요한 모든 기술들 woowacon.com 정말 인기가 많았고 경쟁이 치열했다고 알고 있는 우아콘 2023. 확실히 사람들이 정말 많았다. 그리고 우테코, 우형 사람들이 정말 많았다...ㅋㅋ 이번 우아콘은 오프라인으로 열린다는 소식을 듣고 기대에 부푼 마음으로 참여해보았다. 사내에서 주최되는 행사이기도 하고, 사내 정책에 따라 컨퍼런스 참여는 근무시간으로 인정받을 수 있어서 팀원분이랑 함께 세션을 들으러 갔다. 굉장히 많은 세션들이 있었고, 나는 아래와 같이 세션을 들었다. 11:00 ~ 11:40 A-대규모 트랜잭션을 처리하는 배민 주문시스템 규모에..

반응형