[Spring Boot] Request Body가 계속 Null일 때. Import를 제대로 했나에 대하여.
·
기술 지식 쌓아가기 📚/Backend 🍔
안녕하세요.제가 import를 잘 못해서 Request Body를 null로만 받아온 사람으로 보이시나요? 맞긴합니다.지피티가 제가 JSON 데이터와 DTO 매칭 잘 했는지 의심을 계속해서 좀 속상했는데요. 코드를 잘 살펴보니 import를 잘 못했더라구요?  지피티도 못 찾을만한 실수에 대하여 글을 써봅니다. ⭐ RequestBody를 사용할 때 발생한 문제와 해결 방법Spring Boot에서 REST API를 개발할 때 @RequestBody는 클라이언트로부터 JSON 데이터를 객체로 변환하는 데 자주 사용됩니다.하지만 이 어노테이션을 사용할 때 올바르지 않은 라이브러리를 import하면 의도치 않은 문제가 발생할 수 있습니다.이번 글에서는 import org.springframework.web.bi..
[MySQL Workbench] 아주 쉽게 ERD 추출하여 이미지로 저장하는 방법
·
기술 지식 쌓아가기 📚/Backend 🍔
이터베이스 설계를 할 때, 테이블 간의 관계를 명확하게 시각화하는 것이 중요합니다. 이때 사용하는 것이 바로 ERD(Entity Relationship Diagram)입니다. ERD는 데이터베이스에서 정의된 테이블들의 관계를 시각적으로 표현하는 다이어그램으로, 주로 데이터베이스 모델을 보다 직관적으로 이해하고 설명할 때 유용합니다.ERD를 활용하면, 각 테이블 간의 연관 관계를 한눈에 파악할 수 있어 설계 과정을 효율적으로 진행할 수 있습니다. 이 글에서는 MySQL Workbench를 활용해 ERD를 그리는 방법을 다룰 것입니다. 1️⃣ 워크벤치 상단 메뉴에서 Database - Reverse Engineer 선택 2️⃣ 접속할 Hostname, Port, Username, Password 등 확인 3..
[IntelliJ] 자동완성 기능 켜기/끄기
·
기술 지식 쌓아가기 📚/Backend 🍔
보통은 자동완성이 필수적으로 필요하지만, 코딩테스트와 같은 테스트 연습을 인텔리제이에서 할 경우 자동완성기능을 끄고 싶을 때가 있는데요!저는 코딩테스트를 준비할 때는 자동완성을 끄고, 프로젝트를 개발할 때는 자동완성을 꼭...켜야하는데요!매번 까먹어서 글로 정리해봤습니다!1️⃣ Settings이동2️⃣ Editor > General > Code Completion 탭의 Show suggestions as you type 항목Editor > General > Code Completion 탭으로 이동하면 엉덩이가 가리키고 있는 Show suggestions as you type이라는 항목이 보이실텐데요! 이걸 체크하면 자동완성이나 힌트가 보이고,해제하면 자동완성 기능이 꺼집니다!
[Spring Boot] 예외 처리 기초부터 심화까지: API 오류 응답 설계 방법
·
기술 지식 쌓아가기 📚/Backend 🍔
개발을 해 나가면서 점점 더 중요하게 느껴지는 부분 중 하나가 바로 예외 처리입니다.초반에는 애플리케이션이 정상적으로 동작하는지에 집중하게 되지만, 시간이 지날수록 예외 상황에 대한 철저한 대응이 안정성에 필수적이라는 것을 실감하게 됩니다.특히 API 개발에서 예외 처리는 단순히 오류 메시지를 출력하는 것을 넘어서, 클라이언트가 요청의 실패 원인을 명확하게 알 수 있도록 도와주는 역할을 합니다.이 글에서는 스프링 부트 기반 애플리케이션에서 예외 처리를 체계적으로 구현하고, 이를 통해 API가 보다 안정적으로 동작하도록 설계하는 방법을 살펴보겠습니다. ⭐ 예외 처리란 무엇인가?예외 처리(Exception Handling)는 프로그램 실행 중 예기치 않은 오류가 발생했을 때 이에 대한 적절한 대응을 하는 것..
[Backend] 스프링부트로 설명하는 백엔드 개발 개념 완전 정복 🚀 (IT 개발 동아리 면접 질문 완벽 대비 가능⭐)
·
기술 지식 쌓아가기 📚/Backend 🍔
오늘은 제가 지금까지 정리한 스프링부트 기반 백엔드 기술에서 필요한 개념들을 정리해 봤습니다!하루에 한 두 개 정리하고 시험기간에는 업로드를 쉬다 보니 3개월이 걸렸네요🫡 이 글을 쓰게 된 계기는 개발 동아리 면접 준비를 할 때마다 급하게 공부하고 외우는 것에 회의감을 느꼈기 때문인데요!전공자인데 항상 무슨 개념을 들으면 아 그거?! 하고 알긴 아는데 막상 설명하려고 하면 감자🥔가 되는... 그런 게 싫어서 이번에 제대로 정리해 봤습니다. ㅎ 만약, 개발 동아리 면접을 준비 중이시라면 아주 큰 도움이 될 것이라고 자부합니다.ㅎ동아리 면접을 보다 보니 물어보는 내용이 비슷하더라고요! 그래서 나왔던 질문들은 정리해 봤습니다. 어떤 동아리인지 밝힐 수는 없지만 정말 물어보는 내용이 웬만하면 비슷해서 어떤 ..
[Optimization] Spring의 Ahead-of-Time (AOT) Compilation: 성능과 효율을 높이는 컴파일 방식 알아보기
·
기술 지식 쌓아가기 📚/Backend 🍔
🚩 소개Spring 애플리케이션의 성능을 개선하고, 실행 속도를 높이기 위해 사용되는 방법 중 하나가 Ahead-of-Time (AOT) 컴파일입니다.전통적인 Java 애플리케이션은 실행 시점에 필요한 코드를 동적으로 컴파일하는 Just-In-Time (JIT) 컴파일 방식을 사용합니다.하지만 AOT 컴파일을 활용하면 실행 전, 즉 빌드 단계에서 미리 필요한 코드를 컴파일해두어 애플리케이션의 시작 시간을 단축하고 메모리 사용량을 줄일 수 있습니다. 이번 글에서는 AOT 컴파일이 무엇인지, 어떤 원리로 동작하며 Spring에서 어떻게 활용되는지 알아보겠습니다. ⭐ AOT 컴파일이란?AOT 컴파일은 코드를 미리 컴파일하여 실행 파일로 만드는 방식입니다.전통적인 Java 애플리케이션에서는 JIT 컴파일러가 ..
[Optimization] 무중단 배포: 서비스 중단 없이 안전하게 배포하는 방법
·
기술 지식 쌓아가기 📚/Backend 🍔
⭐ 무중단 배포의 개념무중단 배포란 애플리케이션 배포 시 서비스 중단 없이, 즉 사용자가 끊김 없이 애플리케이션을 사용할 수 있도록 하는 배포 방식입니다. 일반적으로 무중단 배포를 통해 새로운 버전을 배포하거나 유지보수를 진행해도 사용자 경험에 영향을 주지 않는 것을 목표로 합니다.⭐ 무중단 배포가 필요한 이유 사용자 경험 개선: 서비스 중단이 잦으면 사용자는 불편을 느끼고, 이는 서비스에 대한 신뢰도에 영향을 줄 수 있습니다.비즈니스 연속성 유지: 특정 시간에 중단될 수 없는 서비스를 제공하는 경우(예: 금융, e-커머스), 무중단 배포는 필수적입니다.경쟁력 확보: 빠른 업데이트와 유지보수를 통해 경쟁 서비스를 뛰어넘는 기능을 신속하게 제공할 수 있습니다.⭐ 무중단 배포를 구현하는 방식 Blue-Gre..
[Optimization] 캐시 추상화 이해하기: 성능 최적화를 위한 캐싱 레이어 도입 방법
·
기술 지식 쌓아가기 📚/Backend 🍔
⭐ 캐시 추상화란?캐시 추상화는 개발자가 캐싱을 효과적으로 활용할 수 있도록 다양한 캐시 구현체를 추상화하는 개념입니다. 이를 통해 코드에서 캐시를 직접 관리하지 않고도 데이터를 캐싱할 수 있어, 성능 최적화와 코드 간결성을 동시에 얻을 수 있습니다.✅ 왜 캐시 추상화가 필요한가?캐시 추상화는 다음과 같은 이점을 제공합니다:코드의 유연성: 캐싱 로직을 비즈니스 로직에서 분리하여 관리할 수 있습니다.캐시 구현의 독립성: 캐시 제공자(Redis, Ehcache, Caffeine 등)를 쉽게 교체할 수 있습니다.일관된 캐시 인터페이스: 다양한 캐시 기술을 하나의 통합된 인터페이스로 사용하여 일관성 있는 코드를 유지할 수 있습니다. ⭐ Spring에서의 캐시 추상화Spring 프레임워크에서는 @Cacheable..
[Optimization] API 부하 테스트란? : nGrinder 활용법
·
기술 지식 쌓아가기 📚/Backend 🍔
⭐ API 부하 테스트란?API 부하 테스트는 다수의 요청이 동시에 API로 들어올 때 시스템이 이를 얼마나 효율적으로 처리하는지 확인하기 위해 수행합니다.이 과정에서 시스템의 한계를 파악하고, 대규모 트래픽 상황에서도 안정적인 응답을 보장할 수 있도록 최적화가 필요한 지점을 찾는 데 필수적인 작업입니다.✅ 왜 API 부하 테스트가 필요한가?서비스 사용량이 갑자기 늘어날 때, 시스템이 과부하에 의해 응답 속도가 느려지거나 장애가 발생할 수 있습니다. 부하 테스트는 다음과 같은 장점을 제공합니다.성능 한계 파악: 시스템이 정상적으로 처리할 수 있는 트래픽의 상한을 확인할 수 있습니다.안정성 확보: 예기치 않은 트래픽 증가 상황에서도 안정적인 응답을 보장할 수 있습니다.확장성 검증: 시스템이 확장될 때 성능..
[시스템 아키텍처] Observability Support: 시스템 모니터링의 새로운 패러다임
·
기술 지식 쌓아가기 📚/Backend 🍔
🚩 소개현대의 복잡한 시스템 아키텍처에서 애플리케이션과 인프라의 상태를 파악하는 것은 필수적입니다.이때 Observability(관찰 가능성)는 시스템의 내부 상태를 이해하고 문제를 진단하는 데 중요한 역할을 합니다.Observability Support는 이러한 과정을 더욱 효율적으로 만들어주는 도구와 프로세스를 의미합니다. ⭐ Observability란?Observability는 시스템의 내부 동작을 외부에서 관찰할 수 있는 능력을 말합니다.이는 주로 로그, 메트릭, 트레이스와 같은 데이터의 수집과 분석을 통해 이루어집니다.좋은 Observability는 문제를 빠르게 진단하고, 시스템의 성능을 최적화하며, 사용자 경험을 향상시킬 수 있게 해줍니다. ⭐ Observability Support의 중요..
코양이🤍
'기술 지식 쌓아가기 📚/Backend 🍔' 카테고리의 글 목록