'2026/01 글 목록

공부하는 개발자

about 오늘도 뚝딱🔨 뚝딱 하는 주니어 개발자👩🏻‍💻

북마크

고정글

2026/01 4

최근 글

반응형
👩🏻‍💻 Springframwork 실무 : JSP에서 JavaScript로  데이터 토스 ! ObjectMapper로 해결한 이야기

👩🏻‍💻 Springframwork 실무 : JSP에서 JavaScript로 데이터 토스 ! ObjectMapper로 해결한 이야기

배경 및 문제 정의Spring MVC 프로젝트에서 JSP 화면의 JavaScript에 서버 데이터를 전달해야 하는 상황이 생겼다. Controller에서 Model에 Java 객체를 담아 넘겼는데, JavaScript에서 이 데이터를 인식하지 못하는 문제가 발생했다.Java 객체를 그대로 Model에 담으면 JavaScript는 [MemberDto@abc123] 같은 toString() 결과만 볼 수 있었고,이를 JSON 형태로 변환해야 정상적으로 사용할 수 있다는 걸 알게 됐다.결국 Jackson 라이브러리의 ObjectMapper를 활용해 Java 객체를 JSON 문자열로 변환하는 방식으로 해결했다. 최종 해결 요약 Jackson 라이브러리의 ObjectMapper.writeVa..

Inflearn ✅ 내가 하는 공부 로드맵 (feat. 2년 차 주니어가 만든 두 가지 학습 로드맵 이야기)

Inflearn ✅ 내가 하는 공부 로드맵 (feat. 2년 차 주니어가 만든 두 가지 학습 로드맵 이야기)

왜 로드맵을 두 개나 만들었나작년 말부터 다시 공부를 시작하면서 고민이 하나 생겼다.강의만 들을까, 책을 읽을까. 둘 다 장단점이 있었다.강의는 개념을 빠르게 이해할 수 있고 코드를 직접 보며 따라 칠 수 있다는 장점이 있다.특히 김영한 선생님 강의는 실습 위주라 손에 익히기 좋다.하지만 깊이 있는 내용은 책만한 게 없더라.특히 Real MySQL이나 이펙티브 자바 같은 책은 실무에서 막힐 때마다 찾아보는 레퍼런스가 되었다.그래서 두 개를 만들었다.강의 중심 로드맵: 빠르게 실무 감각을 익히고 싶을 때책+강의 로드맵: 제대로 깊게 공부하고 싶을 때 강의 로드맵 (21개 코스)강의 로드맵 보러가기이건 순수하게 강의만으로 구성했다.인프런에서 김영한 선생님 강의를 중심으로 Java 기초부터 Spring ..

👩🏻‍💻 Springframwork 실무 : 레거시 API 성능 개선기(feat. JPA) / N+1 문제와의 3라운드 사투🥊

👩🏻‍💻 Springframwork 실무 : 레거시 API 성능 개선기(feat. JPA) / N+1 문제와의 3라운드 사투🥊

⟡ 배경·문제 정의회사에 입사하고 3개월쯤 지났을 때, 선배가 "이 API 좀 느린데 확인해볼래?"라며게시판 조회 API 하나를 던져주었다.로컬에서 테스트해보니 응답시간이 3초. 데이터가 겨우 100건인데 말이다.쿼리 로그를 켜보니 SELECT 문이 101번 실행되고 있었다.전형적인 N+1 문제였다.fetch join을 적용하면 되겠지 싶었지만, 현실은 그렇게 호락호락하지 않았다.결국 fetch join → @EntityGraph → @BatchSize + DTO 변환까지3번의 시도 끝에 응답시간을 300ms로 줄일 수 있었다. ⟡ 최종 해결 요약최종적으로 선택한 방식은 다음과 같다:Post 엔티티: @BatchSize(size = 100) 적용Service 계층: DTO 변환으로 엔티티 ..

👩🏻‍💻 Springframwork Mig 기록 : 레거시 프로젝트에 단위 테스트 도입하기(feat.실패하고 배운 이야기)

👩🏻‍💻 Springframwork Mig 기록 : 레거시 프로젝트에 단위 테스트 도입하기(feat.실패하고 배운 이야기)

2026년 새해가 밝았다.오늘도 난 퇴근 후 공부를 하고 난뒤, 업무를 하면서 겪었던 내용을 정리해 포스팅을 한다😳누구에겐 오늘이 뜻깊고 한해를 마무리하는 날 이지만, 나에겐 그리 특별하지 않다. 그냥 매일 똑같은 하루 같은 느낌이랄까.그래도 이 글을 읽는 분들은 행복한 날이 되길 바래본다❤️다들 새해 복 많이 받으세요🫶 ⟡ 인트로신입으로 입사해 처음 맡은 고도화 프로젝트에서 가장 큰 불안 요소는 테스트 코드가 전혀 없는 레거시 시스템이었다.코드를 수정할 때마다 전체 애플리케이션을 실행해서 수동으로 확인해야 했고, 사이드 이펙트를 발견하는 건 운에 맡겨야 했다.단위 테스트를 도입하려고 했지만 처음에는 방법을 몰라서 여러 번 실패했다.전체 Spring 컨텍스트를 로딩하는 느린 테스트,..

반응형