분류 전체보기
-
JPA 객체 사용 시 instanceof 는 주의해서 사용하자Computer - Java 2024. 6. 30. 00:40
JPA가 굉장히 유용한 툴이라는 것은 사용해보면 모두 알지만, 그럼에도 불구하고 생각 외로 의도하지 않은 동작을 하는 경우가 많다.그 중 최근 내가 겪은 문제들 중 프록시 객체를 사용하기 때문에 주의해야 하는 부분들을 몇 가지 소개하고자 한다. 1. Entity 객체 간 getClass 비교는 절대로 금물!다음 코드를 보고 직관적으로 특정 부분에서 잘못될 수 있다는 부분을 알 수 있겠는가?@Entity@Getter@AllArgsConstructorpublic class User { @GeneratedId private Long id; @NotNull private String name; @NotNull private String phoneNumber; @Overrid..
-
삿포로에서 후쿠오카까지 일본을 횡단하다! - 3일차. 사이타마 -> 오카야마 (+타카마츠)일상 2023. 7. 9. 22:08
2일차에 잠을 많이 자서인지 3일차에는 무언가 많이 해야겠다고 생각해서 무언가 많이 했다! 행선 차량 시간 오미야역 -> 아키하바라역 케이힌도호쿠선 09:58 -> 10:38 아키바하라역 -> 도쿄역 야마노테선 11시 30분 경 도쿄 -> 오카야마 신칸센 HIKARI 511 12:03 -> 16:02 오카야마 -> 타카마츠 마린라이너 49 17:13 -> 18:06 타카마츠 -> 오카야마 마린라이너 62 20:10 -> 21:05 비주얼은 맛없게 보이지만(...) 나름 맛있게 먹었다 딱 넷카페 같은 곳에서 아침 대용을 먹을 때 적당한 느낌 밥도 그런대로였지만 저기서 먹을 수 있는 드링크바가 정말 맛있었다 9시 반 정도에 짐을 싸 들고 나갔다 저번 일본여행 때 못 간 아키바하라 역 요즘 딱히 애니메이션이나..
-
삿포로에서 후쿠오카까지 일본을 횡단하다! - 2일차. 삿포로 -> 사이타마일상 2023. 7. 7. 00:26
삿포로 역 -> 신하코다테호쿠토역 HOKUTO 2 06:00 -> 09:18 신하코다테호쿠토역 -> 센다이역 HAYABUSA 19 09:35 -> 12:29 센다이역 -> 오미야역 YAMABIKO 214 14:02 -> 15:51 이제부터 철덕?답게 본격적인 철도여행 시작! (사실 찐철덕이라고 부르기에는 너무나도 귀족여행이다... 찐철덕이라면 아마 3박4일동안 재래선 타고 훗카이도에서 후쿠오카까지 갔을듯) 5시에 기상 저기 보이는 6:00 HAKODATE 저 열차를 타고 간다 삿포로 -> 호쿠타행 첫차를 타게 된다 특급열차 이름이 호쿠토(ほくと(北斗))인데, 북두칠성의 그 북두 맞다 잘 보일련지는 모르겠지만 전깃줄에 연결되어 있지 않다. 디젤동차이다! 덕분에 가는동안 조금 신기한 소리를 내면서 갔었다 (..
-
삿포로에서 후쿠오카까지 일본을 횡단하다! - 1일차. 삿포로일상 2023. 7. 6. 22:57
준비물 JR 패스 (그린샤권) 10월부터 JR패스가 엄청 비싸진다는 소문에 부랴부랴 그린샤 7일권을 구매. 소문으로는 2배 가까이 비싸진다고 하는데, 막차를 탄 셈. 한화로 37만원 정도였는데 신칸센 타고 훗카이도에서 후쿠오카까지 갈 생각하면 개이득 +) 타카마츠 잠깐 가본 거긴 했지만, 시고쿠 지방도 잠깐 가 봤다. 이정도면 정말 혜자 아닌가! 비행기 안 인천(11:00) => 삿포로(13:55) 저번 일본여행 때는 사전 입국 QR코드를 입력하지 않아 귀찮았는데 이번에는 공항에서 부랴부랴 했다 일본 여행갈 때 QR코드 미리 해 놓자 https://vjw-lp.digital.go.jp/en/ 저가형 항공사를 탔을 때 엥간하면 복도가 하나있는 단거리용이었는데 웬일로 삿포로 행은 비행을 어느정도 하는지 중장..
-
Spring Boot Test - 1. 기본개념Computer - Server 관련/Spring boot 2023. 1. 15. 17:45
일반 Java application에서의 Test module로는 JUnit 5와 AssertJ가 있는 것처럼, Spring Boot에서도 테스트 환경을 만들 수 있고, Http 요청에 따라 어떻게 반환하는지(header에 특정 값이 있는지, body가 어떠한지 등등...) 또한 테스트 할 수 있다. 1. 테스트 환경 만들기 당연하게도 JUnit5와 AssertJ만을 써서 Assertions.assertThat(~~).~~를 써서 테스트 할 수도 있지만, 이것만 쓴다면 서버를 구동시키고 서버에 요청을 보내고 받아오고 헤더 분리하고 바디 분리하고... 하는 게 굉장히 힘들 것이다. 그래서 Spring Boot에서는 테스트 환경을 조성할 수 있는 여러 모듈을 제공하는데, 일단 기본적인 건 한줄만 클래스 선언..
-
BOJ 26151 - NATO 음성 기호와 쿼리Computer - Problem Solving/Solved Problems 2022. 12. 24. 23:48
https://www.acmicpc.net/problem/26151 26151번: NATO 음성 기호와 쿼리 첫째 줄에 알파벳 대문자로만 이루어진 문자열 $ S $와 쿼리의 횟수 $ Q $가 주어진다. $( 1 \le |S| \le 200\,000; $ $ 1 \le Q \le 200\,000 )$ 이어 $ Q $개의 줄에 걸쳐 쿼리가 주어진다. www.acmicpc.net 진짜 오랜만에 푸는 백준 문제. 입사하고 난 다음 알고리즘 쪽 머리가 너무 굳은 것 같아 부담없이 하나 풀어보기로 하였다. 알고리즘 자체는 그렇게 어려운 편이 아니지만 자질구리하게 처리해야 하는게 귀찮았다. 더불어서 거의 처음으로 Visual Studio를 쓰다가 vim에서 하다보니 디버그가 익숙하지 않아 더 귀찮아졌다. 이정도면 그..
-
Effective Java - 3장. 모든 객체의 공통 메서드(2/2)Computer - Java 2022. 12. 24. 20:36
item 10. equals는 일반 규약을 지켜 재정의하라 item 11. equals를 재정의하려거든 hashCode도 재정의하라 item 12. toString을 항상 재정의하라 item 13. clone 재정의는 주의해서 진행하라 item 14. Comparable을 구현할지 고려하라 12~14는 10~11에 비해서 상대적으로 쉬운 개념?인거 같다 item 12. toString을 항상 재정의하라 Object.toString : “(클래스명)@(해쉬코드)” 만을 반환 ==> 필요 시 재정의! toString을 잘 구현한 클래스는 사용하기에 훨씬 즐겁고, 그 클래스를 사용한 시스템은 디버깅하기 쉽다 ex. PhoneNumber 클래스를 만들었다면, System.out.println(phoneNumbe..
-
Effective Java - 3장. 모든 객체의 공통 메서드(1/2)Computer - Java 2022. 12. 24. 20:25
Object에서 final이 아닌 메서드(equals, hashCode, toString, clone, finalize) 모두 재정의(override)를 염두에 두고 설계된 것 이들을 잘못 재정의하면 HashMap 등 오동작 가능 item 10. equals는 일반 규약을 지켜 재정의하라 item 11. equals를 재정의하려거든 hashCode도 재정의하라 item 12. toString을 항상 재정의하라 item 13. clone 재정의는 주의해서 진행하라 item 14. Comparable을 구현할지 고려하라 item 10. equals는 일반 규약을 지켜 재정의하라 Object.equals의 경우 해시코드를 비교한다 - 자기자신 아니면 무조건 false 일단 다음과 같은 경우라면 굳이 쓸 필요 ..