일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- jvm
- 포트폴리오
- 헤리턴스아라
- 2022회고
- http
- til
- 몰디브
- http 완벽 가이드
- HTTP 완벽가이드
- 클로저
- 바닐라코딩
- SpringSecurity
- 취업회고
- 자바
- 부트캠프
- Hibernate Reactive
- 신혼여행
- Spring
- css
- 주간회고
- java
- 자바스크립트
- 메가테라
- leetcode
- 상속
- JavaScript
- 소프트웨어장인정신
- CORS
- 이펙티브자바
- html
- Today
- Total
목록전체 글 (287)
codingBird
AWS Lambda Paas(Platform as a service) 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스 Lambda는 고가용성 컴퓨팅 인프라에서 코드를 실행하고 서버와 운영 체제, 유지 관리, 용량 프로비저닝, 코드 및 보안 패치 배포 등 모든 컴퓨팅 리소스를 관리 수행한다. Lambda를 사용하면 Lambda가 지원하는 언어 런타임 중 하나로 코드를 제공하면 된다. 파일 처리 → 업로드 후 S3을 사용해 데이터 처리를 실시간으로 트리거 한다 웹 어플리케이션 → Lambda를 다른 AWS 서비스와 결합해 자동으로 스케일 업/다운 할 수 있다 코드는 콘솔, zip, s3을 통해 업로드 할 수 있다 프로비저닝 사용자 요구에 맞게 시스템 자원을 할당, 배치, ..

Jib - Java library for building containers Dockerfile을 작성하지 않고 Docker daemon 없이 Docker 이미지를 빌드할 수 있게 도와주는 라이브러리. Docker 이미지 레이어 캐싱을 통해 변경사항만 다시 빌드해 속도가 빠르고 Jar를 가지고 있지 않아 상당히 용량이 작다. 아래와 같이 작성하고 gradle jib 명령어를 실행하면 도커 이미지를 build.grade jib 에 설정한 대로 굽는다. plugins { id("com.google.cloud.tools.jib") version "3.1.4" } jib { from { image = "openjdk:17" platforms { platform { architecture = "arm64" os ..

첫 출근을 기다리며 여유롭게 코테, SQL, 프로젝트 마이그레이션을 진행하고 있다. 인생의 낙원이 있다면 이게 아닐까 생각하는 요즘이다. 기능 대부분은 마이그레이션 완료했으니 가능하면 출근 전에 선착순 상품 구현해보도록 하자. Filter 에서 발생하는 예외 처리 WebFlux는 Spring Security Interceptor가 없어 Filter에서 토큰 검증을 수행하고 decode된 값을 Handler Function의 Attribute로 넣어주고 있다. 기존 Interceptor는 DispatcherServelet과 Handler 사이에 위치해서 토큰 검증 시 예외가 발생하면 ControllerAdvice에서 처리할 수 있었지만 Filter는 보다 밖에 위치한 컴포넌트여서 에러처리를 위한 Fil..

JDSL를 통해 엔티티를 찾을 때 쿼리 조건에 해당하는 엔티티가 없으면 null이나 optional을 반환하지 않고 바로 예외를 발생시킨다. 따라서 CustomException을 발생시키거나 다른 로직을 구현하기 위해 Repository를 만들어 한 번 감싸서 사용했었다. 연관관계가 없는 경우 위의 코드로도 로직 구현이 가능하지만 위와 같이 Cart의 cartItems가 없는 경우에도fetch(Cart::cartItems)를 할 때 연관관계가 있는 데이터를 찾을 수 없어 동일한 예외가 발생한다. SQL Booster 스터디 처음 SQL 을 봤을 때 상당히 귀찮은 애라고 생각했다. 가뜩이나 Java, Javascript, TDD 어쩌고 저쩌고를 머리에 욱여넣을 때 만나서 더욱 그렇게 느껴졌던 것 같다...

SQL BOOSTER 라는 책을 추천 받아서 구입했더니 예제가 Oracle로 되어 있어 Oracle DB를 설치해야만 했다. 그런데 Oracle DB는 공식적으로 mac 환경 그러니까 arm64 x86을 지원하지 않아서 일반적으로는 실행할 수 없는 상황. 다행히 colima 라는 container runtimes on macOS가 있어서 Oracle DB를 사용할 수 있었다. 1. colima 설치 brew install colima 2. docker 설치 (설치하지 않았다면) https://www.docker.com/products/docker-desktop/ 3. colima 실행 colima start --memory 4 --arch x86_64 4. 만약 colima 실행이 안된다면 colima ..

기분 좋은 1차 면접 합격 소식이 있었다. 면접에 대해 조금 말하자면 상당히 만족스럽고 감동까지 받았던 면접이라고 말할 수 있다. 면접에는 팀장을 포함해 총 3명의 면접관이 있었는데, 모두 내 블로그에 작성된 글을 하나도 빠짐없이 읽었고 심지어 프로젝트 클론까지 떠서 꼼꼼히 검토했다는 말씀을 해주셨기 때문이다. 집에 돌아오는 길에 이런 회사에 합류할 수 있다면 더 이상 소원은 없을 것 같다고 생각하기도 했다. 이제 남은 건 2차 임원 면접. 어떻게 될지 모르지만 최선을 다해보자. 중첩된 data class로 발생했던 오류. @Entity data class A( @ElementCollection val b: List ) @Embeddable data class B( @Embedded val c: C ..

v1 → v2 프로젝트 6일 차. 익숙하지 않은 스타일과 서버 스펙이 달라 아예 새롭게 구현해야 되는 부분 때문에 그동안 기능 구현 속도가 나오지 않았지만 이제 스타일에 어느 정도 적응이 끝나 슬슬 구현 속도가 올라오는 것 같다. 큰 문제가 없다면 다음 주 주말에는 웬만한 기능은 완성되어 있을거라 생각한다. 전역 에러처리 webMVC를 사용할 땐 ControllerAdvice를 통해 편하게 전역 에러처리가 가능했다, 하지만 WebFlux는 ControllerAdvice를 지원하지 않아 전역 에러처리를 하고 싶다면 AbstractErrorWebExceptionHandler 를 직접 구현해야만 한다. 아래는 직접 구현한 GlobalErrorWebExceptionHandler의 일부. errorAttrib..

1. @ElementCollection의 기본 fetctType은 lazy이다. 2. JPA를 사용하면 @Treansactional 범위에서 엔티티 속성에 접근할 수 있어 크게 문제가 되지 않지만 JDSL-Reactive는 Hibernate-Reactive를 사용하면 @Transactional 지원을 하지 않아 session 범위에서 수동으로 fetch를 하거나 쿼리를 나눠야 한다. 3. JDSL - PageableQueryDSL에서 session 범위에서 fetch(Boo::bars)를 했는데 여전히 Lazy initialize exception이 발생했다. 원인은 PageableQueryDSL에서 fetch를 지원하지 않기 때문. 4. 참고로 JDSL은 @ElementalCollection의 fetc..