Spring 81

[📕 기초 Spring] 3-1. MVC 패턴의 도입

📕 목차기존 웹 개발의 문제점 템플릿 엔진의 도입 MVC 패턴의 도입[실습]1. 기존 웹 개발의 문제점비즈니스 로직과 화면 렌더링 혼합자바 코드로 HTML을 생성하는 방식에서는 비즈니스 로직과 화면 렌더링 코드가 하나의 파일에 섞여 있었다.이로 인해 코드 복잡성이 증가하고, 유지보수가 어려워짐. 문제점화면 구성 변경 시 비즈니스 로직까지 영향을 미침비즈니스 로직 수정 시 화면에 변화가 생김수정 시 모든 부분을 점검해야 함.2. 템플릿 엔진의 도입템플릿 엔진정적인 HTML에 동적 데이터를 삽입하여 최종 문서를 생성.Server Side Rendering(SSR)에 주로 사용됨. 대표적인 템플릿 엔진Thymeleaf: Spring과 통합 잘 됨.JSP: 예전에 많이 사용되었으나, 현재는 점차 사용을 자제하..

Spring/강의 2025.05.03

[📕 기초 Spring] 2-5. Java 웹 기술의 역사

Java 웹 기술은 서블릿과 JSP로 시작하여 MVC 패턴을 거쳐 MVC 프레임워크의 도입으로 구조화되었으며, 이후 어노테이션 기반의 Spring MVC와 비동기 처리에 최적화된 Spring WebFlux로 발전해왔다.1. Servlet의 등장 (1997)개요:Java를 사용한 웹 개발의 시초로, 서버에서 동적으로 콘텐츠를 생성하기 위해 사용되었다. 클라이언트의 요청을 받고, 그에 대한 응답을 생성하는 기본적인 구조를 제공했다.단점:코드의 복잡성이 증가하고, 유지보수가 어려워졌다.2. JSP (JavaServer Pages) 도입 (1999)개요:JSP는 HTML 내에 Java 코드를 삽입할 수 있는 기술로, 웹 페이지를 더 쉽게 동적으로 생성할 수 있도록 도와주었다.단점:JSP 내에서 비즈니스 로직을 ..

Spring/강의 2025.05.03

[📕 기초 Spring] 2-4. 빌드 관리 도구

📕 목차Gradlebuild.gradle1. GradleGradleGroovy 기반 스크립트 언어를 사용하여 다양한 소프트웨어를 빌드(Build)할 수 있는 유연한 빌드 자동화 도구이다. * 빌드(Build) 소스 코드를 컴퓨터가 실행 가능한 파일로 변환하는 작업이다. 빌드 작업에는 소스 코드 컴파일, 테스트, 패키징, 배포 준비 등이 포함된다. Gradle 특징유연성복잡한 빌드 시나리오를 처리할 수 있는 유연한 시스템을 제공한다.빌드 스크립트로 다양한 작업을 정의하고 커스터마이징 가능하다.성능Build Cache: 빌드 결과물을 캐싱하여 재사용한다.점진적 빌드: 변경된 부분만 빌드하며, 변경되지 않은 부분은 캐시된 결과를 사용한다.데몬 프로세스: 빌드 후 대기하는 프로세스로, 초기화 없이 빠르게 재빌..

Spring/강의 2025.05.03

[📕 기초 Spring] 2-3. Spring Framework와 Spring Boot

📕 목차Spring Framework Spring Boot 1. Spring FrameworkSpring FrameworkJava 애플리케이션 프레임워크로, 주로 엔터프라이즈 애플리케이션 개발에 사용된다. 등장 배경대형 쇼핑몰 시스템과 같은 엔터프라이즈 애플리케이션에서 수백만 명의 고객의 요청을 동시에 처리해야 했다.서버의 성능, 신뢰성, 보안이 중요하며, 이러한 문제들을 해결해주는 환경을 제공하여 개발자는 비즈니스 로직에만 집중할 수 있었다. 특징다양한 애플리케이션 구성 요소를 유연하게 연결하고 관리할 수 있다.오픈소스 프레임워크로 누구나 사용할 수 있다.모듈화되어 있어 필요한 기능만 선택적으로 사용할 수 있다.객체 지향 언어의 특징을 살려, 캡슐화, 상속, 추상화, 다형성을 지원한다. 2. Spri..

Spring/강의 2025.05.03

[📕 기초 Spring] 2-2. 어노테이션(Annotation) 이론

📕 목차어노테이션(Annotation) Lombok 1. 어노테이션(Annotation)어노테이션(Annotation)코드에 메타데이터를 추가하는 기능으로, 컴파일러나 런타임 환경에 특정 동작을 지시할 수 있다.주석은 사람에게, 어노테이션은 프로그램에게 정보를 제공한다.@ 기호로 시작하며 클래스, 메서드, 변수 등 다양한 요소에 적용 가능하다. 내장 어노테이션@Override: 상위 클래스의 메서드를 재정의함을 명시@Deprecated: 해당 요소가 더 이상 사용되지 않음을 나타냄@SuppressWarnings: 컴파일러 경고 억제 (unused, unchecked 등) 사용자 정의 어노테이션직접 정의 가능AOP 등 고급 기능 구현 시 사용됨 (심화 과정에서 다룰 예정)2. LombokLombok반복적..

Spring/강의 2025.05.03

[📕 기초 Spring] 2-1. 프레임워크와 라이브러리

📕 목차프레임워크 (Framework) 라이브러리 (Library) 프레임워크 vs 라이브러리1. 프레임워크 (Framework)프레임워크 (Framework)소프트웨어 개발을 위한 ‘일할 수 있는 틀’을 제공하는 개발 환경이다.(비유) 붕어빵을 만들려면 붕어빵 틀이 필요하다. 개발자는 이 틀에 맞춰 재료를 넣고 구워야 한다. 장점일관된 구조 제공 → 협업과 유지보수 용이공통 기능(보안, 인증 등) 제공 → 비즈니스 로직에 집중 가능테스트 환경 지원커뮤니티와 문서가 풍부 단점복잡한 구조 → 학습 곡선이 높다구조 변경이 제한적 → 유연성 부족버전 업데이트 시 호환성 문제 가능2. 라이브러리 (Library)라이브러리 (Library)개발자가 필요할 때 가져다 쓰는 ‘도구 모음’이다.(비유) 자동차의 타이..

Spring/강의 2025.05.03

[📕 기초 Spring] 1-4. Web Application

📕 목차Web Server WAS (Web Application Server) 웹 시스템 구성 방식Servlet Thread SSRCSRSSR vs CSR1. Web Server Web ServerHTTP 기반으로 동작하며 정적 리소스(HTML, CSS, JS, 이미지 파일 등)를 클라이언트에게 제공하는 역할을 한다.웹 서버는 클라이언트로부터 HTTP 요청을 받아, 정적 리소스를 응답하거나 WAS로 요청을 전달한다. 대표적인 Web ServerNGINX: 가볍고 빠른 성능으로 유명한 웹 서버로, 리버스 프록시 및 로드 밸런서 기능도 강력하다.Apache HTTP Server: 오랜 역사와 다양한 모듈을 가진 웹 서버로, 높은 호환성과 안정성을 자랑한다.2. WAS (Web Application Serv..

Spring/강의 2025.05.03

[📕 기초 Spring] 1-3. HTTP

📕 목차HTTP(HyperText Transfer Protocol) HTTP 특징 HTTP 동작 순서 HTTP Message 구조 HTTP MethodHTTP 상태 코드 HTTP API 설계 HTTP HeaderRestful API 1. HTTP(HyperText Transfer Protocol)웹에서 정보를 주고받는 방식에 대한 규칙을 정의하는 프로토콜웹 브라우저와 서버 간의 데이터 전송을 위한 프로토콜이다.HTTP는 클라이언트-서버 구조를 기반으로 하며, 클라이언트(예: 웹 브라우저)는 서버에 요청을 보내고 서버는 이에 대한 응답을 반환한다.2. HTTP 특징클라이언트-서버 구조HTTP는 클라이언트(주로 브라우저)와 서버 간의 통신을 관리한다.라이언트는 요청을 보내고, 서버는 그 요청을 처리한 후..

Spring/강의 2025.05.03

[📕 기초 Spring] 용어 모음집

📕 목차프로그래밍 명명규칙 (Casing) JSON (JavaScript Object Notation) Scale Up vs Scale Out Stateful vs Stateless Connection vs Connectionless 1. 프로그래밍 명명규칙 (Casing) 명명법 특징 사용처snake_case 소문자 + 언더바 _ 연결파이썬, DB 컬럼 등camelCase 소문자로 시작, 단어마다 대문자Java 변수/메서드 등PascalCase 모든 단어의 시작이 대문자클래스명 등kebab-case소문자 + 하이픈 - 연결HTML/CSS, URL 등 2. JSON (JavaScript Object Notation)JSON (JavaScript Object Notation)클라이언트-서버 간 데이터를 ..

Spring/강의 2025.05.03

[📕 기초 Spring] 1-2. Web 기초

웹에 접속하는 데 필수적인 역할을 하는 DNS, URI, URL의 개념과 그들이 어떻게 동작하는지, 그리고 각각의 특징에 대해 알아보는 단계이다.📕 목차DNS (Domain Name System) URI (Uniform Resource Identifier) URL (Uniform Resource Locator) 브라우저에 URL을 입력하면 어떤 일이 일어날까?1. DNS (Domain Name System)DNS (Domain Name System)도메인 이름과 IP 주소를 상호 변환하는 시스템사용자가 사람이 읽을 수 있는 도메인 이름을 입력하면, DNS는 이를 컴퓨터가 이해할 수 있는 IP 주소로 변환하여 웹사이트에 접속할 수 있도록 한다. DNS 등장 배경컴퓨터 간 통신을 위해 IP 주소가 필요하..

Spring/강의 2025.05.03