java8

DataBase

[PostgreSQL] CLOB타입과 TEXT타입 - JPA

🤸‍♂️서론 예전에 @Lob 에러 관련 글을 적은 적이 있다. 당시에는 postgresql에서 @Lob을 아예 사용할 수 없는 줄 알고 @Column(columnDefinition="TEXT") 사용을 무조건 해야 한다고 알고 있었지만 최근에 틀렸단 것을 깨닫고 글을 작성한다. 🙋‍♂️LOB? CLOB? 그게 일단 뭐야! 간단하게 알려줘!! LOB - Large Objcts ------------ CLOB - Character LOBs : DB 내부에 존재하는 대용량의 텍스트 BLOB - Binary LOBs : Image, Sound, Video 등의 대용량의 DB내부에 존재하는 데이터 NCLOB - National Character LOBs : DB 내부에 존재하는 대용량의 내셔널 텍스트 BFILE ..

JVM/Spring

[SPRING] feign은 뭘까?

🤔 서론 다른 서버와 통신을 하기 위한 API 를 설계 및 개발을 하면서 알게 된 feign에 대해서 정리하기 위해 작성하게 되었다. 그 전까지는 spring에서 다른 서버를 호출해본 적이 없었기 때문에 어떻게 하는지에 대한 궁금증이 있었는데 이번 기회에 알게 될 수 있었다. 🤷‍♂️ feign은 그래서 뭔데! - Netflix에서 만든 HTTP client binder로서 기존 http client 작성을 쉽게 만들어주는 라이브러리이다. - interface를 작성하고 annotation을 붙여서 쉽게 사용할 수 있기 때문에, HTTP API를 균일하게 바인딩하여 복잡성을 줄여준다. - 이전에는 RestTemplate 방식과 WebClient 방식이 존재했지만 현재 스프링 커뮤니티에서는 RestTemp..

JVM/Spring

[SPRING]@Transactional Annotation 알고 쓰자

- 첫 작성일 : 21년 3월 21일 velog 블로그 1. 서론 초반 @Transactional 어노테이션에 대해 자세히 알아보지 않고, 막연히 롤백때 사용한다고 하여 SQL C,U,D 를 할 때마다 메소드 위에 붙여서 사용하곤 하였다. 하지만, 내 코드를 보신 선임께서 단지 @Transactional 만 붙이면 롤백이 안되고, @Transactional(rollbackFor = Exception.class) 을 붙여야 된다고 알려주셨다. 여기에서 뭐 때문인지에 대해 호기심에 트랜잭션에 대해 찾아보다가 내가 생각했던 것 보다 더 많은 기능들이 존재한다는 것을 알고 정리해보려 한다. 2. 트랜잭션이 뭐지? 데이터베이스의 상태를 변경하는 작업 또는 한번에 수행되어야 하는 연산들을 의미한다. begin, c..

JVM/Java

[Java]예외(Exception)관련 정리

- 첫 작성일 : 3월 20일 velog 블로그 서론 트랜잭션에 대해 공부하다보니 예외를 빼놓을 수 없어서 한 번 정리한다. 예외(Exception) 란? 예외는 크게 두 종류로 나뉘게 된다. Checked Exception 와 Unchecked Exception 그리고 예외와 별개로 오류(Error)가 있다. 예외란 개발자가 로직을 잘못 짰거나 혹은 사용자가 잘못된 값을 넘겨 정상적인 프로그램 흐름에 벗어나는 행위를 말한다. 그래서 미리 예측을 하여 예외를 잡을 수 있다. 오류는 하드웨어에서 문제가 발생하는 경우도 있고, 완전 잘못된 로직을 짠 경우 등 시스템 레벨에서 발생하는 비정상적인 행위이기 때문에 이를 미리 예측해서 막을 수도 신경을 쓸 필요도 없다. Checked Exception / Unch..

JVM/Java

[Java]BeanUtils.copyProperties를 사용해보자

- 첫 작성일 : 21년 2월 11일 velog 블로그 BeanUtils.copyProperties ? 스프링에서 제공해주는 메소드로서 객체를 쉽고 간결하게 복사할 수 있게 해준다. 언제 사용하지? 예를들어 객체를 수정하기 위해 파라미터로 값을 받았을 때 필드가 많으면 많을 수록 setter의 횟수가 늘어나고 코드의 길이도 늘어나기 때문에 가독성과 소요시간이 떨어지게 됩니다. 이때 BeanUtils.copyProperties 메소드를 통해 한줄로 해결할 수 있습니다. 또한, 그대로 복사하지 않고 변경하지 않은 것들을 선택해서 원하는 것만 복사하고 싶을 때에도 사용하면 좋습니다. 사용방법 copyProperties(Object source, Object target) source - 원본 객체 target..

JVM/Java

[Java]String Format 사용법

- 첫 작성일 : 21년 1월 17일 velog 블로그 Stirng Format 문자열의 형식을 원하는대로 표현해주는 메소드로 유용하게 사용되고 있다. 표현가능한 데이터 타입 모든 인수 적용 가능(ex - stirng, int, Integer, Boolean ...) %b (인수가 null이면 false 아니면 true 반환 / Boolean) %h (인수가 null이면 null 아니면 16진수 반환 / Integer.toHexString) %s (인수가 null이면 null 아니면 문자열 반환 / toString()) 숫자 (char, Character, byte, Byte, short, Short, int, Integer) %c (char, byte, short ... 을 받아 유니코드로 반환) 정수..

JVM/Java

[Java]Apache? Tomcat?? 둘이 무슨 차이지?

- 첫 작성일 21년 1월 1일 velog 블로그 😀서론 학교에서 php를 하고, 회사에서 spring boot + jsp를 사용하면서 아파치 톰캣을 자연스럽게 사용하게 되었다. 하지만, 사용하는 동안 이게 도대체 무엇이길래 웹을 할 때 많은 곳에서 사용하는지? 이게 정확히 무엇을 해주는건지? 에 대해 많은 궁금증을 가지면서 하다가 이번 기회에 공부를 하면서 정리를 해본다. 아파치(Apache) (아파치 검색을 해보면 AH-64(아파치) 헬기가 가장 많이 나오길래 한번 가져와봤습니다..) 우리가 흔히 아파치라고 부르는 것은 Apache HTTP Server를 의미하는 데 이는 오픈 소스 소프트웨어 그룹인 아파치 소프트웨어 재단(Apache Software Foundation, ASF)에서 만든 웹서버 프..

JVM/Spring

[SPRING] lombok 활용

Lombok 이란 ❓❓ 자바 Model(DTO, VO, Domain)에서 반복적으로 만들어야하는 것들을(Getter/Setter...) 어노테이션을 통해 코드의 줄을 줄여주고, 가독성을 높이는 데에 굉장한 도움을 주는 라이브러리 입니다. 간단한 예제를 먼저 보여드리겠습니다. Getter / Setter 기존방식 경우 위처럼 객체를 사용하기 위해 배가 되는 줄을 반복적으로 만들어야하는 일이 빈번히 발생하곤 합니다. 위처럼 getter와 setter를 비롯하여 toString, Builder 등을 더 만들게 되면 더 많은 줄이 생기게 될 것입니다. 이를 매우 간편하게 줄여주는 도구가 lombok입니다. 위처럼 불필요한 줄들을 줄여 가독성면을 높이게 됩니다. 오른 쪽 면을 보시면 getter와 setter가 ..

Hyo Kim
'java8' 태그의 글 목록 (2 Page)