오늘은 제가 지금까지 정리한 스프링부트 기반 백엔드 기술에서 필요한 개념들을 정리해 봤습니다!
하루에 한 두 개 정리하고 시험기간에는 업로드를 쉬다 보니 3개월이 걸렸네요🫡
이 글을 쓰게 된 계기는 개발 동아리 면접 준비를 할 때마다 급하게 공부하고 외우는 것에 회의감을 느꼈기 때문인데요!
전공자인데 항상 무슨 개념을 들으면 아 그거?! 하고 알긴 아는데 막상 설명하려고 하면 감자🥔가 되는... 그런 게 싫어서 이번에 제대로 정리해 봤습니다. ㅎ
만약, 개발 동아리 면접을 준비 중이시라면 아주 큰 도움이 될 것이라고 자부합니다.ㅎ
동아리 면접을 보다 보니 물어보는 내용이 비슷하더라고요! 그래서 나왔던 질문들은 정리해 봤습니다. 어떤 동아리인지 밝힐 수는 없지만 정말 물어보는 내용이 웬만하면 비슷해서 어떤 동아리인지는 중요하지 않은 거 같습니다! 중복해서 나오던 글을 중요 표시를 해뒀으니 시간이 없다면 이러한 글을 위주로 보시면 좋을 거 같습니다~!
아래 글들을 정리하다보니 백엔드를 더 깊이 알게 된 거 같아 다른 분들도 본인만의 글을 정리해보는 것을 추천합니다! 아자뵹~
1️⃣ 기본 개념과 구조
[Spring] OOP vs AOP: 효율적인 코드 관리를 위한 소프트웨어 설계 핵심 패러다임 비교 🍃
🚩 INTRODUCTION소프트웨어 설계 패러다임은 프로그램을 만들 때 어떻게 설계할지를 결정하는 방식입니다. 쉽게 말해, 프로그램을 어떻게 구조화하고 어떤 방식으로 문제를 해결할지에 대한 생
blu-blu.tistory.com
* 아래 글 중요! 이건 울트라캡숑 중요!
[Spring] 제어의 역전(IoC)과 의존성 주입(DI) 완벽 이해하기 🍃
🚩 INTRODUCTION제어의 역전(IoC)과 의존성 주입(DI)은 객체지향 프로그래밍에서 코드의 유연성과 유지보수성을 높이는 데 중요한 설계 패턴입니다.이 두 개념은 주로 대규모 애플리케이션에서 코
blu-blu.tistory.com
[Spring] 스프링 빈(Bean)이란? 초보 개발자를 위한 쉬운 설명 🍃
Bean은 콩입니다. ⭐ 빈(Bean)의 유래빈이라고 작명한 이유를 알려면, 자바로 작명한 이유부터 알아야 합니다.자바로 작명한 이유는, 자주 마시는 커피가 인도네시아 자바 섬 커피였기 때문입
blu-blu.tistory.com
* 아래 글 중요!
[Spring] 스프링 컨테이너란? 의존성 주입의 마법 🍃
⭐ 스프링 컨테이너란?스프링 컨테이너(Spring Container)는 빈(Bean)이라 불리는 자바 객체의 생명 주기(빈의 생성, 관리, 제거 등의 주기)를 관리하며, 생성된 빈에게 추가적인 기능을 제공합니다.빈
blu-blu.tistory.com
[Spring] SpEL(Spring Expression Language)이란? Spring에서 표현식을 다루는 쉬운 방법 알아가기 🍃
⭐ SpEL(Spring Expression Language)이란?Spring Expression Language(SpEL)은 Spring 프레임워크에서 제공하는 강력한 표현식 언어로, 객체의 값을 동적으로 평가하거나 조작할 수 있는 기능을 제공합니다.즉, 코드
blu-blu.tistory.com
2️⃣ 웹 기술 및 MVC 아키텍처
[Spring] 서블릿(Servlet)에 대해 알려드리겠송! 😼🍃
⭐ 서블릿(Servlet)이란?서블릿(Servlet)은 자바 기반의 웹 애플리케이션에서 서버에서 클라이언트의 요청을 받아 그에 맞는 응답을 생성해주는 자바 프로그램으로, 웹 애플리케이션을 개발할 때
blu-blu.tistory.com
* 아래 글 중요!
[Spring] 스프링 MVC: 웹 개발의 기본, 쉽게 이해하기 🍃
🚩 소개웹 개발을 하다 보면 MVC라는 용어를 한번쯤은 접해보셨을텐데요! 오늘은 이게 무엇인지 설명할 수 있을 정도로 확실히 알아가려고 합니다!MVC는 현대 웹 개발에서 필수적인 도구 중 하나
blu-blu.tistory.com
[Spring] 안전한 웹 개발의 시작: 스프링의 Validation, Data Binding, Type Conversion 🍃
오늘은 스프링 프레임워크에서 매우 중요한 세 가지 개념인 Validation, Data Binding, 그리고 Type Conversion에 대해 알아보려고 합니다!이 개념들은 웹 애플리케이션에서 사용자 입력을 처리할 때 필수
blu-blu.tistory.com
[Spring] WebFlux: 비동기와 반응형 프로그래밍의 새로운 장 🍃
오늘은 Spring WebFlux에 대해 알아보려고 합니다.최근에는 비동기 및 반응형 프로그래밍이 많이 주목받고 있는데, WebFlux는 이러한 흐름을 지원하는 Spring의 프레임워크입니다.그럼 WebFlux의 기본 개
blu-blu.tistory.com
[Spring] 웹 애플리케이션 테스트를 위한 Spring의 두 가지 도구: MockMvc와 WebTestClient 🍃
Spring 프레임워크는 강력한 웹 애플리케이션 개발을 지원하며, 테스트를 통해 코드의 품질을 높이는 데 큰 도움이 됩니다.이 글에서는 웹 애플리케이션을 테스트하기 위한 두 가지 주요 도구인 M
blu-blu.tistory.com
[Spring] 웹 소켓, R 소켓, STOMP: 실시간 통신의 모든 것 🍃
현대 웹 애플리케이션에서는 사용자 경험을 향상시키기 위해 실시간 데이터 통신이 필수적입니다. 웹 소켓, R 소켓, STOMP는 이러한 실시간 통신을 구현하는 데 널리 사용되는 프로토콜입니다. 이
blu-blu.tistory.com
* 아래 글 중요!
[Spring] @Controller와 @RestController의 차이점
스프링 프레임워크는 웹 애플리케이션을 개발할 때 매우 유용한 다양한 어노테이션을 제공합니다.그중에서도 @Controller와 @RestController는 웹 요청을 처리하는 데 사용되는 핵심 어노테이션입니다
blu-blu.tistory.com
[Spring] REST vs SOAP: 두 웹 서비스 아키텍처의 비교 🍃
🚩 소개현대 웹 개발에서 API(Application Programming Interface)는 시스템 간의 상호작용을 가능하게 하는 중요한 요소입니다.이 중에서도 REST(Representational State Transfer)와 SOAP(Simple Object Access Protocol)는 주
blu-blu.tistory.com
[Spring] Java Message Service (JMS) 이해하기 : 비동기 메시징 🍃
🚩 소개JMS(Java Message Service)는 Java 애플리케이션 간의 비동기 메시징을 지원하는 API로, 프로듀서(메시지를 보내는 쪽)와 컨슈머(메시지를 받는 쪽)가 독립적으로 작동하여 데이터를 주고받을 수
blu-blu.tistory.com
[Framework] 웹 개발 프레임워크 비교: Spring Boot와 Node.js의 장단점
웹 애플리케이션을 개발할 때, 올바른 프레임워크를 선택하는 것은 매우 중요합니다.Spring Boot와 Node.js는 각각 장점과 단점이 있는 인기 있는 백엔드 프레임워크입니다. 이 글에서는 두 프레임워
blu-blu.tistory.com
3️⃣ 데이터베이스 및 데이터 처리
* 아래 글 중요!
[DB] 데이터베이스와의 상호작용을 쉽게 만드는 DAO 패턴 (+ DTO까지!)
🚩 DAO (Data Access Object) 패턴 소개소프트웨어 개발에서 데이터베이스와의 상호작용은 매우 중요합니다.그러나 데이터베이스 접근 로직이 코드에 직접 삽입되면, 유지보수와 테스트가 어려워질
blu-blu.tistory.com
* 아래 글 중요!
[DB] Spring에서의 데이터베이스 처리: JDBC vs JPA
⭐ JDBC란?JDBC(Java Database Connectivity)는 Java에서 데이터베이스에 접근하기 위한 API입니다. 즉, Java 프로그램이 데이터베이스와 소통할 수 있게 해주는 도구입니다. JDBC를 사용하면 SQL 쿼리를 직접 작
blu-blu.tistory.com
* 아래 글 중요!
[DB] JPA와 ORM: 데이터베이스와의 스마트한 연결
⭐ ORM (Object-Relational Mapping)란?ORM(Object-Relational Mapping)은 객체 지향 프로그래밍 언어에서 객체와 관계형 데이터베이스 간의 매핑을 자동으로 처리해주는 기술입니다.즉, 데이터베이스의 테이블과
blu-blu.tistory.com
* 아래 글 중요!
[DB] 동시성 문제 해결을 위한 다양한 접근법
🚩 소개소프트웨어 개발에서 동시성 문제는 필수적으로 다뤄야 할 중요한 이슈입니다.특히, 여러 트랜잭션이 동시에 데이터에 접근할 때 발생할 수 있는 일관성 문제는 시스템의 안정성과 성
blu-blu.tistory.com
* 아래 글 중요!
[DB] ACID 원칙과 정규화: 데이터베이스 설계의 핵심 원칙
🚩 소개데이터베이스 설계에서 안정성과 신뢰성을 확보하기 위해 두 가지 중요한 개념인 ACID 원칙과 정규화를 이해하는 것이 필수적입니다.이 글에서는 ACID 원칙을 각 요소별로 설명하고, 정
blu-blu.tistory.com
4️⃣ 시스템 아키텍처
* 아래 글 중요!
[시스템 아키텍처] 동기 vs 비동기 ➕ 블록 vs 논블록
⭐ 동기 (Synchronous)동기란 데이터의 요청과 결과가 동시에 이루어지는 것을 의미합니다.예를 들어, 사용자가 서버에 데이터를 요청하면, 그 요청에 대한 응답이 있을 때까지 사용자는 다른 작업
blu-blu.tistory.com
[시스템 아키텍처] CI/CD 오케스트레이션: Docker, Jenkins, Kubernetes의 조화로운 협력
🚩 소개소프트웨어 개발의 속도와 품질을 높이는 데 있어 CI/CD(지속적 통합 및 지속적 배포)는 필수적인 요소입니다.CI/CD 파이프라인은 코드의 빌드, 테스트, 배포 과정을 자동화하여 개발팀이
blu-blu.tistory.com
[시스템 아키텍처] Observability Support: 시스템 모니터링의 새로운 패러다임
🚩 소개현대의 복잡한 시스템 아키텍처에서 애플리케이션과 인프라의 상태를 파악하는 것은 필수적입니다.이때 Observability(관찰 가능성)는 시스템의 내부 상태를 이해하고 문제를 진단하는 데
blu-blu.tistory.com
5️⃣ 성능 및 확장성
[Optimization] API 부하 테스트란? : nGrinder 활용법
⭐ API 부하 테스트란?API 부하 테스트는 다수의 요청이 동시에 API로 들어올 때 시스템이 이를 얼마나 효율적으로 처리하는지 확인하기 위해 수행합니다.이 과정에서 시스템의 한계를 파악하고,
blu-blu.tistory.com
[Optimization]캐시 추상화 이해하기: 성능 최적화를 위한 캐싱 레이어 도입 방법
⭐ 캐시 추상화란?캐시 추상화는 개발자가 캐싱을 효과적으로 활용할 수 있도록 다양한 캐시 구현체를 추상화하는 개념입니다. 이를 통해 코드에서 캐시를 직접 관리하지 않고도 데이터를 캐싱
blu-blu.tistory.com
[Optimization] 무중단 배포: 서비스 중단 없이 안전하게 배포하는 방법
⭐ 무중단 배포의 개념무중단 배포란 애플리케이션 배포 시 서비스 중단 없이, 즉 사용자가 끊김 없이 애플리케이션을 사용할 수 있도록 하는 배포 방식입니다. 일반적으로 무중단 배포를 통해
blu-blu.tistory.com
[Optimization] Spring의 Ahead-of-Time (AOT) Compilation: 성능과 효율을 높이는 컴파일 방식 알아보기
🚩 소개Spring 애플리케이션의 성능을 개선하고, 실행 속도를 높이기 위해 사용되는 방법 중 하나가 Ahead-of-Time (AOT) 컴파일입니다.전통적인 Java 애플리케이션은 실행 시점에 필요한 코드를 동적
blu-blu.tistory.com
6️⃣ 클라우드
[Cloud] MSA vs 모놀리: 당신의 프로젝트에 적합한 아키텍처는?
⭐ 모놀리 아키텍처란?모놀리 아키텍처는 모든 기능이 하나의 코드베이스에 포함되어 있는 소프트웨어 구조입니다.이는 전통적인 방식으로, 애플리케이션의 모든 부분이 단일 유닛으로 배포되
blu-blu.tistory.com
'기술 지식 쌓아가기 📚 > Backend 🍔' 카테고리의 다른 글
[IntelliJ] 자동완성 기능 켜기/끄기 (0) | 2024.11.14 |
---|---|
[Spring Boot] 예외 처리 기초부터 심화까지: API 오류 응답 설계 방법 (0) | 2024.11.12 |
[Optimization] Spring의 Ahead-of-Time (AOT) Compilation: 성능과 효율을 높이는 컴파일 방식 알아보기 (0) | 2024.11.10 |
[Optimization] 무중단 배포: 서비스 중단 없이 안전하게 배포하는 방법 (0) | 2024.11.09 |
[Optimization] 캐시 추상화 이해하기: 성능 최적화를 위한 캐싱 레이어 도입 방법 (0) | 2024.11.08 |