TRY Java의 Generic은 컴파일 시 Object로 변경되거나 혹은 bound type(<E extends ExampleObject>) 같은 경우 ExampleObject 로 변경됩니다.. 그렇다면 ParameterizedTypeReference 는 어떻게 동작하는걸까요? CATCH Generic erasure 먼저 제네릭 소거는 다음과 같이 제네릭이 사용된 경우 컴파일 시 소거됩니다. // 소거 전 public class ExamClass<T> { private T value; public void set(T value)...
[Read More]
Java의 List, Set, Map의 of() static method (Immutable Collections)
TRY
지금까지 List.of, Set.of, Map.of를 그냥 Collection을 간단하게 생성할때 사용했었습니다.
그동안 List등 Of()로 생성한 Object의 요소를 변경하지않았기에 몰랐는데 오늘 메서드를 통해 생성된 Collection 들이 Immutable이란걸 알게 되었습니다.
[Read More]
QueryDsl fetchJoin()과 Paging시 applying in memory 경고
TRY
QueryDsl 에서 페이지를 조회할때 applying in memory 경고가 발생했다.
내용은 다음과 같다.
[Read More]
Aws Lambda 배포 및 direct(sdk) trigger(spring boot3)
TRY
스프링 부트3에서 Aws Lambda를 사용하고 싶어졌다.
그리고 API gateway나 다른 트리거가 아닌 코드에서 호출하고 싶었다.
[Read More]
Querydsl count 결과 값 distinct
TRY
Querydsl에서 count() 할떄 distinct() 되지않았다.
결과값은 10개가 나와야하는데 그 이상나왔다.
[Read More]
Jvm heap profiling
TRY
자바 앱의 메모리의 사용량이 높게 나와 메모리 누수를 확인하려고 했다.
GC등 정상적으로 돌고있는 것 같은데 메모리가 조금씩 올라가는 것 같았다.
그래서 heap dump 분석하려한다.
[Read More]
Java Optional의 orElse 와 orElseGet
TRY
Java의 Optional을 사용하면서 orElse와 orElseGet, orElseThrow는 정말 많이 사용한다.
그중 평소 orElse와 orElseGet는 그냥 null 값일때 빈 객체등을 받기위해 사용했었는데
이번에 map()등 stream api 메서드들과 사용하면서 의도와는 다르게 동작해 의아했고 또 재밌었다.
같이 보자.
[Read More]
Aws S3 SignatureDoesNotMatch with PresignedUrl
TRY
S3 PresignedUrl과 함께 Metadata을 추가하였다.
필요한 다양한 정보들을 Metadata에 저장하려고 했다.
겸사겸사 수정하다가 만나버렸다.
[Read More]
Aws sdk v2 와 Spring-cloud-aws(feat Spring boot3 and s3mock)
TRY S3관련 서비스를 구축하면서 겪었던 문제들이다. Spring boot 3을 사용하면서 다양한 이슈들을 겪었는데 (jakarta등 라이브러리 호환..) 처음 사용했던 Spring-cloud-aws 2버전대가 boot3와 이슈가 있다는 걸 지나가다 보았다. SQS를 이제 곧 사용하게 될텐데 이부분에서 이슈가 있다는 글들이었다. 해당 글들을 확인하고 spring-cloud-aws의 git을 확인하였다. link 이왕이면 호환도 되고 DynamoDB도 추가된 aws sdk v2를...
[Read More]
Spring Data Mongodb transaction
내용
Spring Data는 Transaction을 지원합니다.
[Read More]
r2dbc에서 Custom id 사용하기.
문제
save 시 @Id 컬럼을 기준으로 이 객체가 isNew인지 아닌지 체크
repository의 기본 save를 이용 시 새로운 객체로 insert를 해야하는데 update를 하려고 하고, 이때 없는 데이터라 update가 되지않음.
[Read More]
r2dbc에서 UUID 사용하기.
문제
r2dbc는 orm이 아니다.
몇몇 타입들은 custom converter가 있어야 data mapping이 된다.
참고
[Read More]
Docker-compose로 구성된 컨테이너 connection refuse(m1)
문제
docker 컨테이너로 띄워둔 mysql에서 connection refuse가 난다
개발 환경은 M1 mac
[Read More]
m1 macbook에서 netty no netty_resolver_dns_native_macos_aarch_64
문제
m1 맥북에서 netty 구동 시 에러가 나왔다.
java.lang.UnsatisfiedLinkError: no netty_resolver_dns_native_macos_aarch_64
[Read More]
EnumMap
EnumMap이란
[Read More]
grpc protoc 예
protoc -I=. \
–go_out . –go_opt paths=source_relative
–go-grpc_out . –go-grpc_opt paths=source_relative
proto/pbfile.proto
Transactional readOnly 옵션이 빠른 이유
readOnly = true
[Read More]
Spring Data JPA save()
save()
[Read More]
Spring Data JPA에서 연관관계 있는 엔티티 select 하기
상황
[Read More]
JPA 벌크연산
JPA 벌크연산이란
[Read More]
JPA가 언제 DB와 connection을 가질까
언제 가질까
[Read More]
에러, lazy loading, eager loading
문제의 에러
[Read More]
jpa의 distinct
Distinct
[Read More]
mvc와 webflux의 차이점
mvc와 webflux의 차이
[Read More]
jpa dirty checking
더티체킹이란 (dirty checking)
[Read More]
golang 설치 및 vscode 설정
golang 설치방법
[Read More]
python 에서 gRPC 테스트 해보기
gRPC란 RPC 란 Remote Procedure Call의 약자로 간편하게 다른 서비스의 함수 프로시저등을 호출할 수 있는 프로토콜이다. 다양한 언어를 지원하므로 언어가 다르거나 한 다른 서비스에 있는 함수나 프로시저를 호출하여 사용할 수 있다. 다양한 언어를 사용하는 MSA 구조에서 더욱 좋을 것 같다. gRPC gRPC는 구글에서 만든 RPC로 TCP/IP 와 HTTP/2를 프로토콜을 사용한다....
[Read More]
django ./manage.py
공부하며 차차 추가하자
[Read More]
django 기본
django 구성
[Read More]
Vue.js
뷰란
[Read More]
Stream 이란..
자바 Stream 이란 컬렉션에 저장된 요소들을 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자이다. Iterator 와 비슷한 반복자이다. 내부 반복자를 사용해 병렬처리가 쉽다고 한다.(외부는 개발자가 직접 요소를 반복하는 패턴for,while등) 개발자는 로직 코드만 작성해주면 된다. 스트림의 흐름 스트림 생성 > 중간연산 지정(스트림 리턴) > 종료연산을 적용해 결과 리턴(기본이거나 optional) 중간연산(여러번 사용가능)...
[Read More]
맥에서 파이썬 버전 설정
맥에서 brewdhk pyenv를 통해 파이썬 버전을 3.6.8버전을 받았다.
근데 파이썬 버전을 확인해보면 2.7.10 버전으로 되어있고 바뀌지 않았다.
[Read More]
Junit사용..
Junit이란
단위테스트 도구.. 생각보다 맘처럼 안된다.
test class에서 구현하므로 기능추가 시 재사용이나 restdocs같은 문서화가능한 것들과 같이 쓰면 문서 공유도 할 수 있다.
[Read More]
자바는 CallBy???
면접 질문중 자바는 Call By Value와 Call By Reference중 어떤 것이냐는 질문도 있었다는 걸 들었다..
사실 이런 부분까지 생각해 본 적은 없었다.. 자바는 어떤걸까? 일단 두개가 뭔지 알고 가자
[Read More]
static에 대해
오늘 면접에서 static의 생명주기에 대한 질문을 들었다.
static의 용도나 메모리에 한번 올라가고~ 이런건 알았는데 static이 언제 생성되고 언제 소멸하는지는 대충은 생각하고 있었지만
정확한 때는 몰랐던 것이다. 내가 생각하던건 선언될때 생성되고, 프로그램이 종료될때 소멸된다.. 라는 것
[Read More]
해시맵이란
해싱(Hashing)이란
해시함수(hash function)를 이용해서 데이터를 해시테이블(hash table)에 저장하고 검색하는 기법을 말한다.
[Read More]
asList, toCharArray
Arrays.asList는 배열을 리스트로 반환해 준다.
[Read More]
웹소켓과 쓰레드
WebSocket이란 웹소켓(WebSochet)은 서버와 클라이언트 간의 효율적인 양방향 통신을 실현하기 위한 구조 Transport protocol의 일종으로 쉽게 이야기하면 웹버전의 TCP 또는 Socket (소켓)이다. WebSocket은 서버와 클라이언트 간에 socket connection을 유지해서 언제든 양방향 통신 또는 데이터 전송이 가능하도록 하는 기술 Real-time web application에 쓰이며 서버 쪽 또는 클라이언트 쪽 데이터가 실시간으로 업데이트 되는...
[Read More]
스트링 메소드
charAt() - 문장중에 인덱스 위치에 해당되는 문자 추출하기
[Read More]
자바의 철학과 solid 5원칙
자바의 철학
[Read More]
예외처리, 예외종류
일단 에러와 예외가 있는데
에러는 개발자가 처리할 수 없다.(JVM, 하드웨어적인 문제)
[Read More]
컨트롤러 테스트(controller Test)
Controller
Controller 단위 테스트를 진행하기 위해서 MockMvc를 활용할 수 있다.
[Read More]
소수점자리 표현
소수점자리로 표현
[Read More]
Test를 위한 @ 및 메소드
@RunWith
JUnit 확장 하는 어노테이션이며 SpringJUit4classRunner로 JUnit용 테스트 컨텍스트 프레임 워크 확장 클래스를 지정하면 테스트 진행 시 컨텍스트를 생성하고 관리하는 작업을 한다.
[Read More]
BeanUtils.copyProperties()
BeanUtils.copyProperties()
여러 Setter를 한줄로 바꿀 수 있다.
[Read More]
가비지,힙덤프
자바의 메모리 구조?
[Read More]
AOP
읽어보자
[Read More]
DI 컨테이너
스프링은 DI 컨테이너라고도 부른다.
[Read More]
스프링기본
applicationContext?
[Read More]
ajax 란?
AJAX는 무엇입니까?
AJAX- 비동기 자바 스크립트와 XML
[Read More]
Q클래스 사용법
Q클래스 사용하기위해선
QueryDSL에 대해서 공부!
[Read More]
JPA cascade, 즉시로딩(pre), 지연로딩(lazy)
@Entity - 이 클래스를 테이블과 매핑한다고 Jpa에게 알려준다.
[Read More]
스프링 어노테이션
웹소켓 채팅에 적용하기
websocket을 이용한 채팅만들기
[Read More]
entity가 json으로 변환할때..
restController가 리턴하는 엔티티는 messageConverter가 변환한다.
json으로 변환 하는 것은 내부적으로 jackson이 사용된다.
[Read More]
web jar, 부트스트랩적용
jquery, bootstrap
[Read More]
스프링부트 querydsl 과 Repository
Spring DATA JPA 에서 다이나믹 SQL을 처리하는 방법?
JPA Criteria 를 사용하는 방법
EntityManager를 직접 사용하는 방법
QueryDSL 를 사용하는 방법
[Read More]
스프링부트 회원가입,글쓰기
회원가입 GET /users/join - 회원가입 폼이 보여진다. name,nickName, passwd, email을 입력 POST /users/join - 회원정보가 저장된다. 이때 USER권한을 가지도록 한다. // config에 permitAll 해야함 .antMatchers(“/users/join”).permitAll() GET /users/welcome - 회원가입후 redirect하여 보여지는 페이지. POST /users/join 를 처리하는 컨트롤러에서는 폼 파라미터를 받아들이기 위해 다음을 사용할 수 있다. @RequestParam 을 이용하여 값을 받을...
[Read More]
스프링시큐리티 기본
보안 (Spring Security)
[Read More]
lazy,OSiV
Spring Web MVC
[Read More]
자바 Optional이란?
자바 Optional
NullPointerException 을 방지하기 위해 Java8에 Optional 클래스가 추가되었다.
if문등을 써 반복적인 null 체크를 방지하기위해 Optional가 추가되었다.
[Read More]
JPQL 예제
JPQL 예제
JPQL 할게 많으니 따로 공부!
[Read More]
JPQL, fetch, join?
JPQL 특징
[Read More]
스프링부트 JPA 기본 설정
pom.xml 파일에서 mysql jdbc driver를 다음과 같이 수정한다.
mysql
mysql-connector-java
5.1.47
lombok 사용할 수 있도록 한다.
[Read More]
스프링부트 @Entity 관계설정
스프링 부트 @Entity 관계설정 생성하기
[Read More]
스프링부트 시작 및 예제
Spring boot 프로젝트를 생성할 수 있다.
[Read More]
스프링에서 파라미터 받는 방법
HttpServletRequest.getParameter()
[Read More]
lombok 설정 및 기능
lombok 설정 방법
[Read More]
람다식
람다식이란
식별자 없이 실행 가능한 함수.
메서드를 하나의 식(expression)으로 표현한 것
메서드를 람다식으로 표현하면 이름과 반환값이 없어지므로 람다식을 ‘익명함수’라고도 한다.
익명함수(anonoymous function), 이름없는 함수, 익명메소드 익명객체…
[Read More]
스프링 MVC
스프링 MVC
[Read More]
19-01-22
Spring 기본 용어
[Read More]
트랜잭션,레이어드 아키택처
Transaction
하나의 논리작업 단위
[Read More]
싱글턴 패턴 및 적용방법(hikariCP)
HikariCP를 가지는 객체는 메모리에 하나만 있으면 좋겠다.
메모리에 하나만 있는 객체를 우리는 ‘싱글턴’ 객체라고 한다.
[Read More]
부트스트랩 적용방법과 웹어플리케이션기본
부트스트랩 적용 방법
헤드
[Read More]
Thread 생성 방법
쓰레드를 생성하는 방법은 크게 2가지가 있다.
[Read More]
공유객체 사용법
문제없이 공유객체를 사용하는 방법.
[Read More]
쓰레드
자바 쓰레드Java Thread의 정의를 알기 전에 프로세스Process에 대해 알아야 합니다.
[Read More]
HTML
HTML 기본 태그
[Read More]