2023년 회고 늦은 회고로.. 글은 올해(2024년도) 기준으로 작성되었다. Intro 2023년에도 잔디를 구멍 없이 심는 목표로 달려왔지만.. 아쉽게도 몇 군데 구멍이 보여서 아쉽다. 그래도 2023년을 열심히 달려온 나를 위해 박수로 시작을..👏🏼 2023년도는 정말 다사다난했다.. 기쁘고 감사한 시간이 많았던 만큼 힘들고 슬픈 시간도 있었지만, 돌아보면 결국 하나님께 감사드릴 일들뿐이다. 크고 작은 사건을 통해 작고 초라했던 나를 더 나은 사람으로 만들어 주시고, 주변에 좋은 사람들을 붙여 주시고, 부족한 것들을 채워주시고.. 돌아보면 모든 것이 감사한 한 해였다. 회사 프로젝트 2023년도에 기억에 남는 큼지막한(?) 프로젝트는 OOAh luxe, AppleCare+ 후 가입 서비스, DB 탈..
2022년 회고 2021년 회고에 이어 2022년 회고도 작성해보려고 한다. 회고를 작성하는 게 생각보다 귀찮고.. 어색하고.. 잘 쓰고 있는지도 사실 모르겠다..🙄 그래도 다른 분들의 회고를 참고해 보며 작성하다 보면 점점.. 적응이 되겠지...?!🥲 작년 숙제 작년 숙제는 꾸준히 Java/Spring 기술을 깊게 파면서, 유지보수하기 좋은 프로그램을 개발하기 위한 고민을 해보기 였다. 올해 이 숙제들을 잘 이뤄냈는지 돌아보자.. 결혼 준비와 이직 준비 10월달에 결혼을 하게 되어 1월부터 조금씩 결혼 준비를 하기 시작했다. 🎉🤵🏻👰🏻♀️🥳 그와 동시에.. 결혼을 하고 나면 이직 타이밍을 놓칠 것 같아서 어쩌다 보니.. 이직 준비도 같이 하게 되었다. 결혼 준비와 이직 준비를 동시에 어떻게 하냐고 많..
2021년 늦은 회고 함께 자라기 책을 읽고 나서 회고의 중요성을 알게 되었고, 첫 번째 회고 글을 작성해 보려고 한다. . 지금은 2022년 상반기가 지나가고 있지만, 늦은 2021년도 회고를 먼저 작성해보려고 한다. 놓친 기억들이 있다 보니 내용이 부족할 수 있지만.. 남은 기억만이라도 간직하고 싶다..😭 . 내가 어떤 것을 했고, 어떤 것을 느끼고, 어떤 교훈을 배웠는지 짚어보면서 나 자신을 개선해보자 💪🦸♂️🦸♀️ Turning Point 2020년 12월 JAVA/Spring 백엔드 개발자로 제대로 된 첫 입사(?)를 하고, 프로젝트에 JPA가 적용되어 있어서 영한님의 자바 ORM 표준 JPA 프로그래밍 책을 읽게 되었다. . 책을 읽으면서 JPA 공부를 하다보니 영한님에 대한 궁금증이 생기..
JPA 양방향 관계 Entity 저장하기 인간은 습관의 동물이다. 습관에는 대부분 좋은 습관이 많지만 그중에 나쁜 습관도 있다. 그것은 바로.. 원리를 모르고 개발하는 습관이다. 😯 . '요로케할 때 이렇게 했었으니까, 이렇게 해야지~!' 는 더 이상 통하지 않는다.. 사이드 프로젝트를 하며 깨닫는 부분이 많다. . 습관처럼 몸에 익어버린 방법들이 갑자기 뇌 정지가 오며 멈춰버렸을 때, 머릿속이 하얘지고 말았다. 적어도 왜 이렇게 개발했었는지 원리를 알았더라면, 이럴 일은 없었을텐데.. 정말 기본적인 것들 앞에서 갑자기 띠용🙄 할 때가 있다. (최근에 습관성 타이핑으로 노트북 비밀번호 까먹은 거는 진짜 비밀..🤫) . 본론으로, JPA 양방향 관계 Entity를 저장해보자. Situatio..
[JPA] JSON 직렬화 순환 참조 해결하기 순환 참조. JPA에서 양방향으로 연결된 엔티티를 JSON 형태로 직렬화하는 과정에서, 서로의 정보를 계속 순환하며 참조하여 StackOverflowError 를 발생시키는 현상 . 직렬화. 객체/데이터를 바이트 형태로 변환하여 네트워크를 통해 송수할 수 있도록 만드는 것 Situation Product 에서 ProductCategory를 조회할 수도 있고, ProductCategory 에서 Product 도 조회할 수 있어야 한다. Controller 에서 Product 목록을 JSON 형태 직렬화하여 반환해야 한다. @Getter @NoArgsConstructor @Entity public class Product extends BaseTimeEntity..
Infinite Scrolling & Pagination Infinite Scrolling 구현에 참고할 수 있는 정말 좋은 자료가 있다. jQuery Infinite Scrolling Demos 속도 개선을 위해 VanillaJs로 구현된 Demo를 활용하여 구현해보자. Demo scrollingTest.html 아래 코드를 적용해보면 바로 동작을 확인해볼 수 있다. Infinite Scroll + Pagination Experiment TEST Apply Demo 코드를 활용해서 적용해보자 ! View infiniteScrolling.html Infinite Scroll + Pagination Experiment TEST Controller GalleryApiController.java @Requir..
Spring QueryDSL & Pagination을 활용 jQuery Pagination plugin 적용 참고 [Spring] pagination, 3분만에 paging 만들기 Add Dependency querydsl-jpa / querydsl-apt QueryDSL에서 QClass를 사용하기 위해 plugin 등록이 필요하다. pom.xml com.querydsl querydsl-jpa com.querydsl querydsl-apt com.mysema.maven apt-maven-plugin 1.1.3 process target/generated-sources/java com.querydsl.apt.jpa.JPAAnnotationProcessor Set properties Spring Boot P..
JPA Cascade Types Spring JPA CascadeType 종류 javax.persistence.CascadeType JPA Cascade Type ALL PERSIST MERGE REMOVE REFRESH DETACH CascadeType.ALL 상위 엔터티에서 하위 엔터티로 모든 작업을 전파 @Entity public class Person { @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; private String name; @OneToMany(mappedBy = "person", cascade = CascadeType.ALL) private List addresses; } @Entity public class..